@principal-ai/subsystems-core 0.29.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.
Files changed (614) hide show
  1. package/README.md +124 -0
  2. package/dist/ConfigurationLoader.d.ts +76 -0
  3. package/dist/ConfigurationLoader.d.ts.map +1 -0
  4. package/dist/ConfigurationLoader.js +148 -0
  5. package/dist/ConfigurationLoader.js.map +1 -0
  6. package/dist/ConfigurationValidator.d.ts +31 -0
  7. package/dist/ConfigurationValidator.d.ts.map +1 -0
  8. package/dist/ConfigurationValidator.js +239 -0
  9. package/dist/ConfigurationValidator.js.map +1 -0
  10. package/dist/EventProcessor.d.ts +49 -0
  11. package/dist/EventProcessor.d.ts.map +1 -0
  12. package/dist/EventProcessor.js +220 -0
  13. package/dist/EventProcessor.js.map +1 -0
  14. package/dist/EventRecorderService.d.ts +305 -0
  15. package/dist/EventRecorderService.d.ts.map +1 -0
  16. package/dist/EventRecorderService.js +467 -0
  17. package/dist/EventRecorderService.js.map +1 -0
  18. package/dist/LibraryLoader.d.ts +65 -0
  19. package/dist/LibraryLoader.d.ts.map +1 -0
  20. package/dist/LibraryLoader.js +197 -0
  21. package/dist/LibraryLoader.js.map +1 -0
  22. package/dist/PathBasedEventProcessor.d.ts +77 -0
  23. package/dist/PathBasedEventProcessor.d.ts.map +1 -0
  24. package/dist/PathBasedEventProcessor.js +136 -0
  25. package/dist/PathBasedEventProcessor.js.map +1 -0
  26. package/dist/SessionManager.d.ts +194 -0
  27. package/dist/SessionManager.d.ts.map +1 -0
  28. package/dist/SessionManager.js +302 -0
  29. package/dist/SessionManager.js.map +1 -0
  30. package/dist/ValidationEngine.d.ts +31 -0
  31. package/dist/ValidationEngine.d.ts.map +1 -0
  32. package/dist/ValidationEngine.js +162 -0
  33. package/dist/ValidationEngine.js.map +1 -0
  34. package/dist/agent-sessions/fixture.d.ts +80 -0
  35. package/dist/agent-sessions/fixture.d.ts.map +1 -0
  36. package/dist/agent-sessions/fixture.js +130 -0
  37. package/dist/agent-sessions/fixture.js.map +1 -0
  38. package/dist/agent-sessions/index.d.ts +3 -0
  39. package/dist/agent-sessions/index.d.ts.map +1 -0
  40. package/dist/agent-sessions/index.js +6 -0
  41. package/dist/agent-sessions/index.js.map +1 -0
  42. package/dist/auxiliary/AuxiliaryManifestValidator.d.ts +41 -0
  43. package/dist/auxiliary/AuxiliaryManifestValidator.d.ts.map +1 -0
  44. package/dist/auxiliary/AuxiliaryManifestValidator.js +100 -0
  45. package/dist/auxiliary/AuxiliaryManifestValidator.js.map +1 -0
  46. package/dist/auxiliary/index.d.ts +9 -0
  47. package/dist/auxiliary/index.d.ts.map +1 -0
  48. package/dist/auxiliary/index.js +14 -0
  49. package/dist/auxiliary/index.js.map +1 -0
  50. package/dist/auxiliary/validateAreaScopeDisjoint.d.ts +24 -0
  51. package/dist/auxiliary/validateAreaScopeDisjoint.d.ts.map +1 -0
  52. package/dist/auxiliary/validateAreaScopeDisjoint.js +61 -0
  53. package/dist/auxiliary/validateAreaScopeDisjoint.js.map +1 -0
  54. package/dist/cli/codegen.d.ts +41 -0
  55. package/dist/cli/codegen.d.ts.map +1 -0
  56. package/dist/cli/codegen.js +257 -0
  57. package/dist/cli/codegen.js.map +1 -0
  58. package/dist/codegen/type-generator.d.ts +123 -0
  59. package/dist/codegen/type-generator.d.ts.map +1 -0
  60. package/dist/codegen/type-generator.js +433 -0
  61. package/dist/codegen/type-generator.js.map +1 -0
  62. package/dist/codegen/usage-example.d.ts +103 -0
  63. package/dist/codegen/usage-example.d.ts.map +1 -0
  64. package/dist/codegen/usage-example.js +258 -0
  65. package/dist/codegen/usage-example.js.map +1 -0
  66. package/dist/dashboard/DashboardValidator.d.ts +85 -0
  67. package/dist/dashboard/DashboardValidator.d.ts.map +1 -0
  68. package/dist/dashboard/DashboardValidator.js +775 -0
  69. package/dist/dashboard/DashboardValidator.js.map +1 -0
  70. package/dist/dashboard/index.d.ts +6 -0
  71. package/dist/dashboard/index.d.ts.map +1 -0
  72. package/dist/dashboard/index.js +10 -0
  73. package/dist/dashboard/index.js.map +1 -0
  74. package/dist/discovery/CanvasDiscovery.d.ts +160 -0
  75. package/dist/discovery/CanvasDiscovery.d.ts.map +1 -0
  76. package/dist/discovery/CanvasDiscovery.js +865 -0
  77. package/dist/discovery/CanvasDiscovery.js.map +1 -0
  78. package/dist/discovery/CanvasFileManifest.d.ts +86 -0
  79. package/dist/discovery/CanvasFileManifest.d.ts.map +1 -0
  80. package/dist/discovery/CanvasFileManifest.js +338 -0
  81. package/dist/discovery/CanvasFileManifest.js.map +1 -0
  82. package/dist/discovery/LibraryDiscovery.d.ts +108 -0
  83. package/dist/discovery/LibraryDiscovery.d.ts.map +1 -0
  84. package/dist/discovery/LibraryDiscovery.js +263 -0
  85. package/dist/discovery/LibraryDiscovery.js.map +1 -0
  86. package/dist/discovery/types.d.ts +403 -0
  87. package/dist/discovery/types.d.ts.map +1 -0
  88. package/dist/discovery/types.js +6 -0
  89. package/dist/discovery/types.js.map +1 -0
  90. package/dist/events/EventsCanvasValidator.d.ts +139 -0
  91. package/dist/events/EventsCanvasValidator.d.ts.map +1 -0
  92. package/dist/events/EventsCanvasValidator.js +281 -0
  93. package/dist/events/EventsCanvasValidator.js.map +1 -0
  94. package/dist/events/NamespacePathIndex.d.ts +61 -0
  95. package/dist/events/NamespacePathIndex.d.ts.map +1 -0
  96. package/dist/events/NamespacePathIndex.js +74 -0
  97. package/dist/events/NamespacePathIndex.js.map +1 -0
  98. package/dist/events/OtelEventPathsValidator.d.ts +75 -0
  99. package/dist/events/OtelEventPathsValidator.d.ts.map +1 -0
  100. package/dist/events/OtelEventPathsValidator.js +126 -0
  101. package/dist/events/OtelEventPathsValidator.js.map +1 -0
  102. package/dist/events/ScopeEventsValidator.d.ts +68 -0
  103. package/dist/events/ScopeEventsValidator.d.ts.map +1 -0
  104. package/dist/events/ScopeEventsValidator.js +91 -0
  105. package/dist/events/ScopeEventsValidator.js.map +1 -0
  106. package/dist/events/index.d.ts +9 -0
  107. package/dist/events/index.d.ts.map +1 -0
  108. package/dist/events/index.js +12 -0
  109. package/dist/events/index.js.map +1 -0
  110. package/dist/events/path-helpers.d.ts +33 -0
  111. package/dist/events/path-helpers.d.ts.map +1 -0
  112. package/dist/events/path-helpers.js +59 -0
  113. package/dist/events/path-helpers.js.map +1 -0
  114. package/dist/execution/ExecutionLoader.d.ts +135 -0
  115. package/dist/execution/ExecutionLoader.d.ts.map +1 -0
  116. package/dist/execution/ExecutionLoader.js +266 -0
  117. package/dist/execution/ExecutionLoader.js.map +1 -0
  118. package/dist/execution/ExecutionValidator.d.ts +94 -0
  119. package/dist/execution/ExecutionValidator.d.ts.map +1 -0
  120. package/dist/execution/ExecutionValidator.js +503 -0
  121. package/dist/execution/ExecutionValidator.js.map +1 -0
  122. package/dist/generated/graph-converter-execution.types.d.ts +177 -0
  123. package/dist/generated/graph-converter-execution.types.d.ts.map +1 -0
  124. package/dist/generated/graph-converter-execution.types.js +12 -0
  125. package/dist/generated/graph-converter-execution.types.js.map +1 -0
  126. package/dist/helpers/GraphInstrumentationHelper.d.ts +93 -0
  127. package/dist/helpers/GraphInstrumentationHelper.d.ts.map +1 -0
  128. package/dist/helpers/GraphInstrumentationHelper.js +252 -0
  129. package/dist/helpers/GraphInstrumentationHelper.js.map +1 -0
  130. package/dist/index.d.ts +82 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +214 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/matchers/SpanMatcher.d.ts +107 -0
  135. package/dist/matchers/SpanMatcher.d.ts.map +1 -0
  136. package/dist/matchers/SpanMatcher.js +274 -0
  137. package/dist/matchers/SpanMatcher.js.map +1 -0
  138. package/dist/node.d.ts +78 -0
  139. package/dist/node.d.ts.map +1 -0
  140. package/dist/node.js +177 -0
  141. package/dist/node.js.map +1 -0
  142. package/dist/opencode/OpenCodeEventStore.d.ts +25 -0
  143. package/dist/opencode/OpenCodeEventStore.d.ts.map +1 -0
  144. package/dist/opencode/OpenCodeEventStore.js +182 -0
  145. package/dist/opencode/OpenCodeEventStore.js.map +1 -0
  146. package/dist/opencode/agent-sessions.d.ts +46 -0
  147. package/dist/opencode/agent-sessions.d.ts.map +1 -0
  148. package/dist/opencode/agent-sessions.js +302 -0
  149. package/dist/opencode/agent-sessions.js.map +1 -0
  150. package/dist/opencode/index.d.ts +6 -0
  151. package/dist/opencode/index.d.ts.map +1 -0
  152. package/dist/opencode/index.js +15 -0
  153. package/dist/opencode/index.js.map +1 -0
  154. package/dist/opencode/node-path-adapter.d.ts +25 -0
  155. package/dist/opencode/node-path-adapter.d.ts.map +1 -0
  156. package/dist/opencode/node-path-adapter.js +188 -0
  157. package/dist/opencode/node-path-adapter.js.map +1 -0
  158. package/dist/opencode/pipeline.d.ts +42 -0
  159. package/dist/opencode/pipeline.d.ts.map +1 -0
  160. package/dist/opencode/pipeline.js +90 -0
  161. package/dist/opencode/pipeline.js.map +1 -0
  162. package/dist/opencode/types.d.ts +39 -0
  163. package/dist/opencode/types.d.ts.map +1 -0
  164. package/dist/opencode/types.js +3 -0
  165. package/dist/opencode/types.js.map +1 -0
  166. package/dist/orchestration/TraceOrchestrator.d.ts +71 -0
  167. package/dist/orchestration/TraceOrchestrator.d.ts.map +1 -0
  168. package/dist/orchestration/TraceOrchestrator.js +416 -0
  169. package/dist/orchestration/TraceOrchestrator.js.map +1 -0
  170. package/dist/parsers/OtlpTraceParser.d.ts +131 -0
  171. package/dist/parsers/OtlpTraceParser.d.ts.map +1 -0
  172. package/dist/parsers/OtlpTraceParser.js +310 -0
  173. package/dist/parsers/OtlpTraceParser.js.map +1 -0
  174. package/dist/registry/CompositeRegistry.d.ts +71 -0
  175. package/dist/registry/CompositeRegistry.d.ts.map +1 -0
  176. package/dist/registry/CompositeRegistry.js +113 -0
  177. package/dist/registry/CompositeRegistry.js.map +1 -0
  178. package/dist/registry/EventRegistry.d.ts +79 -0
  179. package/dist/registry/EventRegistry.d.ts.map +1 -0
  180. package/dist/registry/EventRegistry.js +165 -0
  181. package/dist/registry/EventRegistry.js.map +1 -0
  182. package/dist/registry/LocalRegistry.d.ts +111 -0
  183. package/dist/registry/LocalRegistry.d.ts.map +1 -0
  184. package/dist/registry/LocalRegistry.js +335 -0
  185. package/dist/registry/LocalRegistry.js.map +1 -0
  186. package/dist/registry/RemoteRegistry.d.ts +122 -0
  187. package/dist/registry/RemoteRegistry.d.ts.map +1 -0
  188. package/dist/registry/RemoteRegistry.js +399 -0
  189. package/dist/registry/RemoteRegistry.js.map +1 -0
  190. package/dist/registry/VersionRegistry.d.ts +51 -0
  191. package/dist/registry/VersionRegistry.d.ts.map +1 -0
  192. package/dist/registry/VersionRegistry.js +105 -0
  193. package/dist/registry/VersionRegistry.js.map +1 -0
  194. package/dist/rules/config.d.ts +57 -0
  195. package/dist/rules/config.d.ts.map +1 -0
  196. package/dist/rules/config.js +382 -0
  197. package/dist/rules/config.js.map +1 -0
  198. package/dist/rules/engine.d.ts +70 -0
  199. package/dist/rules/engine.d.ts.map +1 -0
  200. package/dist/rules/engine.js +373 -0
  201. package/dist/rules/engine.js.map +1 -0
  202. package/dist/rules/implementations/connection-type-references.d.ts +7 -0
  203. package/dist/rules/implementations/connection-type-references.d.ts.map +1 -0
  204. package/dist/rules/implementations/connection-type-references.js +107 -0
  205. package/dist/rules/implementations/connection-type-references.js.map +1 -0
  206. package/dist/rules/implementations/dead-end-states.d.ts +17 -0
  207. package/dist/rules/implementations/dead-end-states.d.ts.map +1 -0
  208. package/dist/rules/implementations/dead-end-states.js +75 -0
  209. package/dist/rules/implementations/dead-end-states.js.map +1 -0
  210. package/dist/rules/implementations/index.d.ts +23 -0
  211. package/dist/rules/implementations/index.d.ts.map +1 -0
  212. package/dist/rules/implementations/index.js +73 -0
  213. package/dist/rules/implementations/index.js.map +1 -0
  214. package/dist/rules/implementations/minimum-node-sources.d.ts +24 -0
  215. package/dist/rules/implementations/minimum-node-sources.d.ts.map +1 -0
  216. package/dist/rules/implementations/minimum-node-sources.js +59 -0
  217. package/dist/rules/implementations/minimum-node-sources.js.map +1 -0
  218. package/dist/rules/implementations/no-unknown-fields.d.ts +7 -0
  219. package/dist/rules/implementations/no-unknown-fields.d.ts.map +1 -0
  220. package/dist/rules/implementations/no-unknown-fields.js +216 -0
  221. package/dist/rules/implementations/no-unknown-fields.js.map +1 -0
  222. package/dist/rules/implementations/orphaned-edge-types.d.ts +7 -0
  223. package/dist/rules/implementations/orphaned-edge-types.d.ts.map +1 -0
  224. package/dist/rules/implementations/orphaned-edge-types.js +50 -0
  225. package/dist/rules/implementations/orphaned-edge-types.js.map +1 -0
  226. package/dist/rules/implementations/orphaned-node-types.d.ts +7 -0
  227. package/dist/rules/implementations/orphaned-node-types.d.ts.map +1 -0
  228. package/dist/rules/implementations/orphaned-node-types.js +53 -0
  229. package/dist/rules/implementations/orphaned-node-types.js.map +1 -0
  230. package/dist/rules/implementations/required-metadata.d.ts +7 -0
  231. package/dist/rules/implementations/required-metadata.d.ts.map +1 -0
  232. package/dist/rules/implementations/required-metadata.js +48 -0
  233. package/dist/rules/implementations/required-metadata.js.map +1 -0
  234. package/dist/rules/implementations/state-transition-references.d.ts +7 -0
  235. package/dist/rules/implementations/state-transition-references.d.ts.map +1 -0
  236. package/dist/rules/implementations/state-transition-references.js +138 -0
  237. package/dist/rules/implementations/state-transition-references.js.map +1 -0
  238. package/dist/rules/implementations/unreachable-states.d.ts +7 -0
  239. package/dist/rules/implementations/unreachable-states.d.ts.map +1 -0
  240. package/dist/rules/implementations/unreachable-states.js +83 -0
  241. package/dist/rules/implementations/unreachable-states.js.map +1 -0
  242. package/dist/rules/implementations/valid-action-patterns.d.ts +17 -0
  243. package/dist/rules/implementations/valid-action-patterns.d.ts.map +1 -0
  244. package/dist/rules/implementations/valid-action-patterns.js +112 -0
  245. package/dist/rules/implementations/valid-action-patterns.js.map +1 -0
  246. package/dist/rules/implementations/valid-color-format.d.ts +7 -0
  247. package/dist/rules/implementations/valid-color-format.d.ts.map +1 -0
  248. package/dist/rules/implementations/valid-color-format.js +94 -0
  249. package/dist/rules/implementations/valid-color-format.js.map +1 -0
  250. package/dist/rules/implementations/valid-edge-types.d.ts +7 -0
  251. package/dist/rules/implementations/valid-edge-types.d.ts.map +1 -0
  252. package/dist/rules/implementations/valid-edge-types.js +248 -0
  253. package/dist/rules/implementations/valid-edge-types.js.map +1 -0
  254. package/dist/rules/implementations/valid-node-types.d.ts +7 -0
  255. package/dist/rules/implementations/valid-node-types.d.ts.map +1 -0
  256. package/dist/rules/implementations/valid-node-types.js +187 -0
  257. package/dist/rules/implementations/valid-node-types.js.map +1 -0
  258. package/dist/rules/index.d.ts +28 -0
  259. package/dist/rules/index.d.ts.map +1 -0
  260. package/dist/rules/index.js +70 -0
  261. package/dist/rules/index.js.map +1 -0
  262. package/dist/rules/types.d.ts +309 -0
  263. package/dist/rules/types.d.ts.map +1 -0
  264. package/dist/rules/types.js +40 -0
  265. package/dist/rules/types.js.map +1 -0
  266. package/dist/scopes/ScopePathIndex.d.ts +56 -0
  267. package/dist/scopes/ScopePathIndex.d.ts.map +1 -0
  268. package/dist/scopes/ScopePathIndex.js +67 -0
  269. package/dist/scopes/ScopePathIndex.js.map +1 -0
  270. package/dist/scopes/ScopesCanvasValidator.d.ts +76 -0
  271. package/dist/scopes/ScopesCanvasValidator.d.ts.map +1 -0
  272. package/dist/scopes/ScopesCanvasValidator.js +221 -0
  273. package/dist/scopes/ScopesCanvasValidator.js.map +1 -0
  274. package/dist/scopes/index.d.ts +12 -0
  275. package/dist/scopes/index.d.ts.map +1 -0
  276. package/dist/scopes/index.js +30 -0
  277. package/dist/scopes/index.js.map +1 -0
  278. package/dist/scopes/utils.d.ts +85 -0
  279. package/dist/scopes/utils.d.ts.map +1 -0
  280. package/dist/scopes/utils.js +143 -0
  281. package/dist/scopes/utils.js.map +1 -0
  282. package/dist/scopes/validateScopeNamespaceNesting.d.ts +38 -0
  283. package/dist/scopes/validateScopeNamespaceNesting.d.ts.map +1 -0
  284. package/dist/scopes/validateScopeNamespaceNesting.js +69 -0
  285. package/dist/scopes/validateScopeNamespaceNesting.js.map +1 -0
  286. package/dist/spans/index.d.ts +12 -0
  287. package/dist/spans/index.d.ts.map +1 -0
  288. package/dist/spans/index.js +25 -0
  289. package/dist/spans/index.js.map +1 -0
  290. package/dist/spans/utils.d.ts +70 -0
  291. package/dist/spans/utils.d.ts.map +1 -0
  292. package/dist/spans/utils.js +205 -0
  293. package/dist/spans/utils.js.map +1 -0
  294. package/dist/storage/topic-types.d.ts +203 -0
  295. package/dist/storage/topic-types.d.ts.map +1 -0
  296. package/dist/storage/topic-types.js +60 -0
  297. package/dist/storage/topic-types.js.map +1 -0
  298. package/dist/storage/topicStore.d.ts +135 -0
  299. package/dist/storage/topicStore.d.ts.map +1 -0
  300. package/dist/storage/topicStore.js +389 -0
  301. package/dist/storage/topicStore.js.map +1 -0
  302. package/dist/storyboard/builder.d.ts +135 -0
  303. package/dist/storyboard/builder.d.ts.map +1 -0
  304. package/dist/storyboard/builder.js +235 -0
  305. package/dist/storyboard/builder.js.map +1 -0
  306. package/dist/storyboard/index.d.ts +9 -0
  307. package/dist/storyboard/index.d.ts.map +1 -0
  308. package/dist/storyboard/index.js +18 -0
  309. package/dist/storyboard/index.js.map +1 -0
  310. package/dist/storyboard/types.d.ts +101 -0
  311. package/dist/storyboard/types.d.ts.map +1 -0
  312. package/dist/storyboard/types.js +10 -0
  313. package/dist/storyboard/types.js.map +1 -0
  314. package/dist/telemetry/coverage.d.ts +92 -0
  315. package/dist/telemetry/coverage.d.ts.map +1 -0
  316. package/dist/telemetry/coverage.js +335 -0
  317. package/dist/telemetry/coverage.js.map +1 -0
  318. package/dist/telemetry/event-validator.d.ts +86 -0
  319. package/dist/telemetry/event-validator.d.ts.map +1 -0
  320. package/dist/telemetry/event-validator.js +257 -0
  321. package/dist/telemetry/event-validator.js.map +1 -0
  322. package/dist/types/audit.d.ts +236 -0
  323. package/dist/types/audit.d.ts.map +1 -0
  324. package/dist/types/audit.js +53 -0
  325. package/dist/types/audit.js.map +1 -0
  326. package/dist/types/auxiliary.d.ts +54 -0
  327. package/dist/types/auxiliary.d.ts.map +1 -0
  328. package/dist/types/auxiliary.js +27 -0
  329. package/dist/types/auxiliary.js.map +1 -0
  330. package/dist/types/canvas-scope.d.ts +156 -0
  331. package/dist/types/canvas-scope.d.ts.map +1 -0
  332. package/dist/types/canvas-scope.js +62 -0
  333. package/dist/types/canvas-scope.js.map +1 -0
  334. package/dist/types/canvas.d.ts +1138 -0
  335. package/dist/types/canvas.d.ts.map +1 -0
  336. package/dist/types/canvas.js +178 -0
  337. package/dist/types/canvas.js.map +1 -0
  338. package/dist/types/dashboard.d.ts +170 -0
  339. package/dist/types/dashboard.d.ts.map +1 -0
  340. package/dist/types/dashboard.js +14 -0
  341. package/dist/types/dashboard.js.map +1 -0
  342. package/dist/types/index.d.ts +352 -0
  343. package/dist/types/index.d.ts.map +1 -0
  344. package/dist/types/index.js +39 -0
  345. package/dist/types/index.js.map +1 -0
  346. package/dist/types/library.d.ts +227 -0
  347. package/dist/types/library.d.ts.map +1 -0
  348. package/dist/types/library.js +16 -0
  349. package/dist/types/library.js.map +1 -0
  350. package/dist/types/otel.d.ts +465 -0
  351. package/dist/types/otel.d.ts.map +1 -0
  352. package/dist/types/otel.js +163 -0
  353. package/dist/types/otel.js.map +1 -0
  354. package/dist/types/path-based-config.d.ts +235 -0
  355. package/dist/types/path-based-config.d.ts.map +1 -0
  356. package/dist/types/path-based-config.js +11 -0
  357. package/dist/types/path-based-config.js.map +1 -0
  358. package/dist/types/registered-trace.d.ts +337 -0
  359. package/dist/types/registered-trace.d.ts.map +1 -0
  360. package/dist/types/registered-trace.js +16 -0
  361. package/dist/types/registered-trace.js.map +1 -0
  362. package/dist/types/resource-match.d.ts +207 -0
  363. package/dist/types/resource-match.d.ts.map +1 -0
  364. package/dist/types/resource-match.js +74 -0
  365. package/dist/types/resource-match.js.map +1 -0
  366. package/dist/types/subsystem-model.d.ts +265 -0
  367. package/dist/types/subsystem-model.d.ts.map +1 -0
  368. package/dist/types/subsystem-model.js +35 -0
  369. package/dist/types/subsystem-model.js.map +1 -0
  370. package/dist/types/version-registry.d.ts +137 -0
  371. package/dist/types/version-registry.d.ts.map +1 -0
  372. package/dist/types/version-registry.js +10 -0
  373. package/dist/types/version-registry.js.map +1 -0
  374. package/dist/utils/CanvasConverter.d.ts +148 -0
  375. package/dist/utils/CanvasConverter.d.ts.map +1 -0
  376. package/dist/utils/CanvasConverter.js +530 -0
  377. package/dist/utils/CanvasConverter.js.map +1 -0
  378. package/dist/utils/GraphConverter.d.ts +18 -0
  379. package/dist/utils/GraphConverter.d.ts.map +1 -0
  380. package/dist/utils/GraphConverter.js +80 -0
  381. package/dist/utils/GraphConverter.js.map +1 -0
  382. package/dist/utils/PathMatcher.d.ts +55 -0
  383. package/dist/utils/PathMatcher.d.ts.map +1 -0
  384. package/dist/utils/PathMatcher.js +178 -0
  385. package/dist/utils/PathMatcher.js.map +1 -0
  386. package/dist/utils/TraceToCanvas.d.ts +83 -0
  387. package/dist/utils/TraceToCanvas.d.ts.map +1 -0
  388. package/dist/utils/TraceToCanvas.js +336 -0
  389. package/dist/utils/TraceToCanvas.js.map +1 -0
  390. package/dist/utils/YamlParser.d.ts +36 -0
  391. package/dist/utils/YamlParser.d.ts.map +1 -0
  392. package/dist/utils/YamlParser.js +92 -0
  393. package/dist/utils/YamlParser.js.map +1 -0
  394. package/dist/utils/registeredTraceHelpers.d.ts +76 -0
  395. package/dist/utils/registeredTraceHelpers.d.ts.map +1 -0
  396. package/dist/utils/registeredTraceHelpers.js +203 -0
  397. package/dist/utils/registeredTraceHelpers.js.map +1 -0
  398. package/dist/utils/traceAggregation.d.ts +25 -0
  399. package/dist/utils/traceAggregation.d.ts.map +1 -0
  400. package/dist/utils/traceAggregation.js +140 -0
  401. package/dist/utils/traceAggregation.js.map +1 -0
  402. package/dist/validation/OtelCanvasValidator.d.ts +40 -0
  403. package/dist/validation/OtelCanvasValidator.d.ts.map +1 -0
  404. package/dist/validation/OtelCanvasValidator.js +59 -0
  405. package/dist/validation/OtelCanvasValidator.js.map +1 -0
  406. package/dist/validation/index.d.ts +8 -0
  407. package/dist/validation/index.d.ts.map +1 -0
  408. package/dist/validation/index.js +13 -0
  409. package/dist/validation/index.js.map +1 -0
  410. package/dist/validation/libraryValidation.d.ts +53 -0
  411. package/dist/validation/libraryValidation.d.ts.map +1 -0
  412. package/dist/validation/libraryValidation.js +115 -0
  413. package/dist/validation/libraryValidation.js.map +1 -0
  414. package/dist/workflow/edge-derivation.d.ts +111 -0
  415. package/dist/workflow/edge-derivation.d.ts.map +1 -0
  416. package/dist/workflow/edge-derivation.js +174 -0
  417. package/dist/workflow/edge-derivation.js.map +1 -0
  418. package/dist/workflow/edge-validation.d.ts +170 -0
  419. package/dist/workflow/edge-validation.d.ts.map +1 -0
  420. package/dist/workflow/edge-validation.js +332 -0
  421. package/dist/workflow/edge-validation.js.map +1 -0
  422. package/dist/workflow/example.d.ts +11 -0
  423. package/dist/workflow/example.d.ts.map +1 -0
  424. package/dist/workflow/example.js +310 -0
  425. package/dist/workflow/example.js.map +1 -0
  426. package/dist/workflow/index.d.ts +20 -0
  427. package/dist/workflow/index.d.ts.map +1 -0
  428. package/dist/workflow/index.js +49 -0
  429. package/dist/workflow/index.js.map +1 -0
  430. package/dist/workflow/scenario-matcher.d.ts +63 -0
  431. package/dist/workflow/scenario-matcher.d.ts.map +1 -0
  432. package/dist/workflow/scenario-matcher.js +215 -0
  433. package/dist/workflow/scenario-matcher.js.map +1 -0
  434. package/dist/workflow/template-parser.d.ts +73 -0
  435. package/dist/workflow/template-parser.d.ts.map +1 -0
  436. package/dist/workflow/template-parser.js +280 -0
  437. package/dist/workflow/template-parser.js.map +1 -0
  438. package/dist/workflow/template-renderer.d.ts +45 -0
  439. package/dist/workflow/template-renderer.d.ts.map +1 -0
  440. package/dist/workflow/template-renderer.js +401 -0
  441. package/dist/workflow/template-renderer.js.map +1 -0
  442. package/dist/workflow/types.d.ts +393 -0
  443. package/dist/workflow/types.d.ts.map +1 -0
  444. package/dist/workflow/types.js +40 -0
  445. package/dist/workflow/types.js.map +1 -0
  446. package/dist/workflow/validator.d.ts +363 -0
  447. package/dist/workflow/validator.d.ts.map +1 -0
  448. package/dist/workflow/validator.js +2283 -0
  449. package/dist/workflow/validator.js.map +1 -0
  450. package/package.json +84 -0
  451. package/schemas/auxiliary.manifest.schema.json +56 -0
  452. package/schemas/subsystem-model.schema.json +767 -0
  453. package/src/ConfigurationLoader.test.ts +466 -0
  454. package/src/ConfigurationLoader.ts +184 -0
  455. package/src/ConfigurationValidator.test.ts +200 -0
  456. package/src/ConfigurationValidator.ts +273 -0
  457. package/src/EventProcessor.test.ts +405 -0
  458. package/src/EventProcessor.ts +256 -0
  459. package/src/EventRecorderService.test.ts +543 -0
  460. package/src/EventRecorderService.ts +741 -0
  461. package/src/LibraryLoader.ts +194 -0
  462. package/src/PathBasedEventProcessor.test.ts +336 -0
  463. package/src/PathBasedEventProcessor.ts +196 -0
  464. package/src/SessionManager.test.ts +424 -0
  465. package/src/SessionManager.ts +471 -0
  466. package/src/ValidationEngine.test.ts +520 -0
  467. package/src/ValidationEngine.ts +200 -0
  468. package/src/agent-sessions/fixture.ts +225 -0
  469. package/src/agent-sessions/index.ts +10 -0
  470. package/src/auxiliary/AuxiliaryManifestValidator.test.ts +93 -0
  471. package/src/auxiliary/AuxiliaryManifestValidator.ts +132 -0
  472. package/src/auxiliary/index.ts +18 -0
  473. package/src/auxiliary/validateAreaScopeDisjoint.test.ts +85 -0
  474. package/src/auxiliary/validateAreaScopeDisjoint.ts +72 -0
  475. package/src/browser-safety.test.ts +170 -0
  476. package/src/cli/codegen.ts +286 -0
  477. package/src/codegen/type-generator.test.ts +219 -0
  478. package/src/codegen/type-generator.ts +560 -0
  479. package/src/codegen/usage-example.ts +357 -0
  480. package/src/dashboard/DashboardValidator.ts +904 -0
  481. package/src/dashboard/index.ts +14 -0
  482. package/src/discovery/CanvasDiscovery.test.ts +691 -0
  483. package/src/discovery/CanvasDiscovery.ts +1114 -0
  484. package/src/discovery/CanvasFileManifest.test.ts +521 -0
  485. package/src/discovery/CanvasFileManifest.ts +419 -0
  486. package/src/discovery/LibraryDiscovery.test.ts +329 -0
  487. package/src/discovery/LibraryDiscovery.ts +386 -0
  488. package/src/discovery/types.ts +453 -0
  489. package/src/events/EventsCanvasValidator.test.ts +191 -0
  490. package/src/events/EventsCanvasValidator.ts +428 -0
  491. package/src/events/NamespacePathIndex.test.ts +97 -0
  492. package/src/events/NamespacePathIndex.ts +100 -0
  493. package/src/events/OtelEventPathsValidator.test.ts +243 -0
  494. package/src/events/OtelEventPathsValidator.ts +191 -0
  495. package/src/events/ScopeEventsValidator.test.ts +173 -0
  496. package/src/events/ScopeEventsValidator.ts +158 -0
  497. package/src/events/index.ts +27 -0
  498. package/src/events/path-helpers.ts +53 -0
  499. package/src/execution/ExecutionLoader.test.ts +378 -0
  500. package/src/execution/ExecutionLoader.ts +331 -0
  501. package/src/execution/ExecutionValidator.test.ts +503 -0
  502. package/src/execution/ExecutionValidator.ts +617 -0
  503. package/src/generated/graph-converter-execution.types.ts +193 -0
  504. package/src/helpers/GraphInstrumentationHelper.test.ts +364 -0
  505. package/src/helpers/GraphInstrumentationHelper.ts +323 -0
  506. package/src/index.ts +587 -0
  507. package/src/matchers/SpanMatcher.test.ts +1105 -0
  508. package/src/matchers/SpanMatcher.ts +381 -0
  509. package/src/node.ts +316 -0
  510. package/src/opencode/EVENT_MAPPING.md +82 -0
  511. package/src/opencode/OpenCodeEventStore.ts +214 -0
  512. package/src/opencode/__fixtures__/event-shapes.json +443 -0
  513. package/src/opencode/__fixtures__/session-events.json +13491 -0
  514. package/src/opencode/agent-sessions.ts +376 -0
  515. package/src/opencode/index.ts +23 -0
  516. package/src/opencode/node-path-adapter.ts +205 -0
  517. package/src/opencode/pipeline.ts +141 -0
  518. package/src/opencode/types.ts +43 -0
  519. package/src/orchestration/TraceOrchestrator.ts +560 -0
  520. package/src/orchestration/__tests__/TraceOrchestrator.test.ts +1098 -0
  521. package/src/parsers/OtlpTraceParser.ts +401 -0
  522. package/src/parsers/__tests__/OtlpTraceParser.test.ts +197 -0
  523. package/src/registry/CompositeRegistry.ts +140 -0
  524. package/src/registry/EventRegistry.test.ts +387 -0
  525. package/src/registry/EventRegistry.ts +191 -0
  526. package/src/registry/LocalRegistry.ts +416 -0
  527. package/src/registry/RemoteRegistry.ts +499 -0
  528. package/src/registry/VersionRegistry.test.ts +223 -0
  529. package/src/registry/VersionRegistry.ts +121 -0
  530. package/src/rules/config.test.ts +277 -0
  531. package/src/rules/config.ts +450 -0
  532. package/src/rules/engine.test.ts +331 -0
  533. package/src/rules/engine.ts +448 -0
  534. package/src/rules/implementations/connection-type-references.ts +117 -0
  535. package/src/rules/implementations/dead-end-states.ts +101 -0
  536. package/src/rules/implementations/index.ts +66 -0
  537. package/src/rules/implementations/minimum-node-sources.ts +84 -0
  538. package/src/rules/implementations/no-unknown-fields.ts +372 -0
  539. package/src/rules/implementations/orphaned-edge-types.ts +55 -0
  540. package/src/rules/implementations/orphaned-node-types.ts +58 -0
  541. package/src/rules/implementations/required-metadata.ts +52 -0
  542. package/src/rules/implementations/state-transition-references.ts +155 -0
  543. package/src/rules/implementations/unreachable-states.ts +94 -0
  544. package/src/rules/implementations/valid-action-patterns.ts +140 -0
  545. package/src/rules/implementations/valid-color-format.ts +152 -0
  546. package/src/rules/implementations/valid-edge-types.ts +273 -0
  547. package/src/rules/implementations/valid-node-types.ts +200 -0
  548. package/src/rules/index.ts +92 -0
  549. package/src/rules/types.ts +426 -0
  550. package/src/scopes/ScopePathIndex.test.ts +94 -0
  551. package/src/scopes/ScopePathIndex.ts +89 -0
  552. package/src/scopes/ScopesCanvasValidator.test.ts +127 -0
  553. package/src/scopes/ScopesCanvasValidator.ts +305 -0
  554. package/src/scopes/__tests__/utils.test.ts +383 -0
  555. package/src/scopes/index.ts +42 -0
  556. package/src/scopes/utils.ts +182 -0
  557. package/src/scopes/validateScopeNamespaceNesting.test.ts +127 -0
  558. package/src/scopes/validateScopeNamespaceNesting.ts +88 -0
  559. package/src/spans/index.ts +24 -0
  560. package/src/spans/utils.ts +249 -0
  561. package/src/storage/topic-types.ts +235 -0
  562. package/src/storage/topicStore.test.ts +193 -0
  563. package/src/storage/topicStore.ts +489 -0
  564. package/src/storyboard/builder.ts +308 -0
  565. package/src/storyboard/index.ts +26 -0
  566. package/src/storyboard/types.ts +117 -0
  567. package/src/telemetry/coverage.ts +480 -0
  568. package/src/telemetry/event-validator.ts +312 -0
  569. package/src/types/audit.ts +314 -0
  570. package/src/types/auxiliary.ts +63 -0
  571. package/src/types/canvas-scope.ts +190 -0
  572. package/src/types/canvas.test.ts +199 -0
  573. package/src/types/canvas.ts +1395 -0
  574. package/src/types/dashboard.ts +257 -0
  575. package/src/types/index.ts +460 -0
  576. package/src/types/library.ts +283 -0
  577. package/src/types/otel.test.ts +219 -0
  578. package/src/types/otel.ts +620 -0
  579. package/src/types/path-based-config.ts +285 -0
  580. package/src/types/registered-trace.ts +432 -0
  581. package/src/types/resource-match.ts +263 -0
  582. package/src/types/subsystem-model.ts +352 -0
  583. package/src/types/version-registry.ts +150 -0
  584. package/src/utils/CanvasConverter.ts +670 -0
  585. package/src/utils/GraphConverter.test.ts +322 -0
  586. package/src/utils/GraphConverter.ts +84 -0
  587. package/src/utils/PathMatcher.test.ts +139 -0
  588. package/src/utils/PathMatcher.ts +185 -0
  589. package/src/utils/TraceToCanvas.test.ts +310 -0
  590. package/src/utils/TraceToCanvas.ts +510 -0
  591. package/src/utils/YamlParser.ts +77 -0
  592. package/src/utils/registeredTraceHelpers.ts +251 -0
  593. package/src/utils/traceAggregation.test.ts +385 -0
  594. package/src/utils/traceAggregation.ts +173 -0
  595. package/src/validation/OtelCanvasValidator.ts +86 -0
  596. package/src/validation/index.ts +17 -0
  597. package/src/validation/libraryValidation.ts +206 -0
  598. package/src/workflow/README.md +408 -0
  599. package/src/workflow/__tests__/edge-derivation.test.ts +449 -0
  600. package/src/workflow/__tests__/edge-validation.test.ts +417 -0
  601. package/src/workflow/__tests__/scenario-matcher.test.ts +225 -0
  602. package/src/workflow/__tests__/template-parser.test.ts +276 -0
  603. package/src/workflow/__tests__/template-renderer.test.ts +509 -0
  604. package/src/workflow/__tests__/types.test.ts +187 -0
  605. package/src/workflow/__tests__/validator.test.ts +3225 -0
  606. package/src/workflow/edge-derivation.ts +265 -0
  607. package/src/workflow/edge-validation.ts +503 -0
  608. package/src/workflow/example.ts +330 -0
  609. package/src/workflow/index.ts +86 -0
  610. package/src/workflow/scenario-matcher.ts +253 -0
  611. package/src/workflow/template-parser.ts +350 -0
  612. package/src/workflow/template-renderer.ts +453 -0
  613. package/src/workflow/types.ts +511 -0
  614. package/src/workflow/validator.ts +2737 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * OTEL Canvas Validator
3
+ *
4
+ * Validates that OTEL canvas files do not use explicit fill/color fields on event nodes.
5
+ * OTEL event nodes must use scope-based coloring exclusively for consistency.
6
+ */
7
+ import type { ExtendedCanvas } from '../types/canvas';
8
+ /**
9
+ * OTEL canvas validation violation
10
+ */
11
+ export interface OtelCanvasViolation {
12
+ /** Rule ID that detected this violation */
13
+ ruleId: string;
14
+ /** Severity level */
15
+ severity: 'error' | 'warn';
16
+ /** File path where violation occurred */
17
+ file: string;
18
+ /** JSON path within file (optional) */
19
+ path?: string;
20
+ /** Human-readable description of what's wrong */
21
+ message: string;
22
+ /** Why this matters */
23
+ impact: string;
24
+ /** How to fix it */
25
+ suggestion: string;
26
+ }
27
+ /**
28
+ * Validates OTEL canvas files
29
+ */
30
+ export declare class OtelCanvasValidator {
31
+ /**
32
+ * Validate an OTEL canvas for explicit color usage on event nodes
33
+ *
34
+ * @param canvas - The canvas to validate
35
+ * @param canvasPath - Path to the canvas file (for error reporting)
36
+ * @returns Array of violations found
37
+ */
38
+ validate(canvas: ExtendedCanvas, canvasPath: string): OtelCanvasViolation[];
39
+ }
40
+ //# sourceMappingURL=OtelCanvasValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtelCanvasValidator.d.ts","sourceRoot":"","sources":["../../src/validation/OtelCanvasValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,mBAAmB,EAAE;CAsC5E"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * OTEL Canvas Validator
4
+ *
5
+ * Validates that OTEL canvas files do not use explicit fill/color fields on event nodes.
6
+ * OTEL event nodes must use scope-based coloring exclusively for consistency.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OtelCanvasValidator = void 0;
10
+ const canvas_1 = require("../types/canvas");
11
+ /**
12
+ * Validates OTEL canvas files
13
+ */
14
+ class OtelCanvasValidator {
15
+ /**
16
+ * Validate an OTEL canvas for explicit color usage on event nodes
17
+ *
18
+ * @param canvas - The canvas to validate
19
+ * @param canvasPath - Path to the canvas file (for error reporting)
20
+ * @returns Array of violations found
21
+ */
22
+ validate(canvas, canvasPath) {
23
+ const violations = [];
24
+ // Check all nodes in the canvas - only validate otel-event nodes
25
+ for (const node of canvas.nodes || []) {
26
+ if ((0, canvas_1.isOtelEventNode)(node)) {
27
+ // Check for deprecated fill field
28
+ if (node.fill !== undefined) {
29
+ const scopeHint = node.otel?.scope || 'your-scope';
30
+ violations.push({
31
+ ruleId: 'otel-event-explicit-fill-color',
32
+ severity: 'error',
33
+ file: canvasPath,
34
+ path: `nodes[id="${node.id}"].fill`,
35
+ message: `OTEL event node "${node.id}" has explicit fill color which is not allowed`,
36
+ impact: 'OTEL event nodes must use scope-based coloring for consistency. Explicit colors defeat this purpose.',
37
+ suggestion: `Remove the "fill" field and set the color on the otel-scope node for "${scopeHint}" in your .scopes.canvas file`,
38
+ });
39
+ }
40
+ // Check for deprecated color field
41
+ if (node.color !== undefined) {
42
+ const scopeHint = node.otel?.scope || 'your-scope';
43
+ violations.push({
44
+ ruleId: 'otel-event-explicit-color',
45
+ severity: 'error',
46
+ file: canvasPath,
47
+ path: `nodes[id="${node.id}"].color`,
48
+ message: `OTEL event node "${node.id}" has explicit color which is not allowed`,
49
+ impact: 'OTEL event nodes must use scope-based coloring for consistency. Explicit colors defeat this purpose.',
50
+ suggestion: `Remove the "color" field and set the color on the otel-scope node for "${scopeHint}" in your .scopes.canvas file`,
51
+ });
52
+ }
53
+ }
54
+ }
55
+ return violations;
56
+ }
57
+ }
58
+ exports.OtelCanvasValidator = OtelCanvasValidator;
59
+ //# sourceMappingURL=OtelCanvasValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtelCanvasValidator.js","sourceRoot":"","sources":["../../src/validation/OtelCanvasValidator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,4CAAkD;AA4BlD;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAsB,EAAE,UAAkB;QACjD,MAAM,UAAU,GAA0B,EAAE,CAAC;QAE7C,iEAAiE;QACjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;YACrC,IAAI,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE;gBACzB,kCAAkC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC;oBACnD,UAAU,CAAC,IAAI,CAAC;wBACd,MAAM,EAAE,gCAAgC;wBACxC,QAAQ,EAAE,OAAO;wBACjB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,aAAa,IAAI,CAAC,EAAE,SAAS;wBACnC,OAAO,EAAE,oBAAoB,IAAI,CAAC,EAAE,gDAAgD;wBACpF,MAAM,EAAE,sGAAsG;wBAC9G,UAAU,EAAE,yEAAyE,SAAS,+BAA+B;qBAC9H,CAAC,CAAC;iBACJ;gBAED,mCAAmC;gBACnC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC;oBACnD,UAAU,CAAC,IAAI,CAAC;wBACd,MAAM,EAAE,2BAA2B;wBACnC,QAAQ,EAAE,OAAO;wBACjB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,aAAa,IAAI,CAAC,EAAE,UAAU;wBACpC,OAAO,EAAE,oBAAoB,IAAI,CAAC,EAAE,2CAA2C;wBAC/E,MAAM,EAAE,sGAAsG;wBAC9G,UAAU,EAAE,0EAA0E,SAAS,+BAA+B;qBAC/H,CAAC,CAAC;iBACJ;aACF;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA9CD,kDA8CC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validation Module
3
+ *
4
+ * Exports validation functions for various Principal View data structures.
5
+ */
6
+ export { validateLibraryStructure, type LibraryValidationError, type LibraryValidationErrorType, type LibraryValidationResult, } from './libraryValidation';
7
+ export { OtelCanvasValidator, type OtelCanvasViolation, } from './OtelCanvasValidator';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Validation Module
4
+ *
5
+ * Exports validation functions for various Principal View data structures.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.OtelCanvasValidator = exports.validateLibraryStructure = void 0;
9
+ var libraryValidation_1 = require("./libraryValidation");
10
+ Object.defineProperty(exports, "validateLibraryStructure", { enumerable: true, get: function () { return libraryValidation_1.validateLibraryStructure; } });
11
+ var OtelCanvasValidator_1 = require("./OtelCanvasValidator");
12
+ Object.defineProperty(exports, "OtelCanvasValidator", { enumerable: true, get: function () { return OtelCanvasValidator_1.OtelCanvasValidator; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yDAK6B;AAJ3B,6HAAA,wBAAwB,OAAA;AAM1B,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Library Validation
3
+ *
4
+ * Standalone validation functions for ComponentLibrary schema.
5
+ * Used by both LibraryLoader (core), LibraryDiscovery, and CLI validation.
6
+ */
7
+ import type { ComponentLibrary } from '../types/library';
8
+ /**
9
+ * Types of library validation errors
10
+ */
11
+ export type LibraryValidationErrorType = 'parse-error' | 'validation-error' | 'schema-error' | 'scopes-canvas-required';
12
+ /**
13
+ * A library validation error
14
+ *
15
+ * Unified type used across LibraryLoader, LibraryDiscovery, and CLI validation.
16
+ */
17
+ export interface LibraryValidationError {
18
+ /** Error message */
19
+ message: string;
20
+ /** Path to the invalid field or file */
21
+ path: string;
22
+ /** Error category */
23
+ type?: LibraryValidationErrorType;
24
+ /** Optional suggestion for fixing the error */
25
+ suggestion?: string;
26
+ }
27
+ /**
28
+ * Result of library structure validation
29
+ */
30
+ export interface LibraryValidationResult {
31
+ /** Whether validation passed */
32
+ valid: boolean;
33
+ /** List of validation errors (empty if valid) */
34
+ errors: LibraryValidationError[];
35
+ }
36
+ /**
37
+ * Validate a ComponentLibrary structure
38
+ *
39
+ * This validates the core schema requirements:
40
+ * - Required fields (version, name, nodeComponents, edgeComponents)
41
+ * - Event schemas structure
42
+ * - Top-level scopes (color required unless external)
43
+ * - Resources structure and owned-scopes references
44
+ * - Connection rules references
45
+ *
46
+ * Note: This does NOT validate unknown fields or icon names.
47
+ * The CLI adds those supplementary validations.
48
+ *
49
+ * @param library - The library object to validate
50
+ * @returns Validation result with any errors
51
+ */
52
+ export declare function validateLibraryStructure(library: ComponentLibrary): LibraryValidationResult;
53
+ //# sourceMappingURL=libraryValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryValidation.d.ts","sourceRoot":"","sources":["../../src/validation/libraryValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,wBAAwB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,uBAAuB,CA4I3F"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * Library Validation
4
+ *
5
+ * Standalone validation functions for ComponentLibrary schema.
6
+ * Used by both LibraryLoader (core), LibraryDiscovery, and CLI validation.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.validateLibraryStructure = void 0;
10
+ /** Helper to create a schema error */
11
+ function schemaError(message, path, suggestion) {
12
+ return { message, path, type: 'schema-error', suggestion };
13
+ }
14
+ /**
15
+ * Validate a ComponentLibrary structure
16
+ *
17
+ * This validates the core schema requirements:
18
+ * - Required fields (version, name, nodeComponents, edgeComponents)
19
+ * - Event schemas structure
20
+ * - Top-level scopes (color required unless external)
21
+ * - Resources structure and owned-scopes references
22
+ * - Connection rules references
23
+ *
24
+ * Note: This does NOT validate unknown fields or icon names.
25
+ * The CLI adds those supplementary validations.
26
+ *
27
+ * @param library - The library object to validate
28
+ * @returns Validation result with any errors
29
+ */
30
+ function validateLibraryStructure(library) {
31
+ const errors = [];
32
+ // Required fields
33
+ if (!library.version) {
34
+ errors.push(schemaError('Missing required field "version"', 'version', 'Add: version: "1.0.0"'));
35
+ }
36
+ if (!library.name) {
37
+ errors.push(schemaError('Missing required field "name"', 'name', 'Add: name: "my-library"'));
38
+ }
39
+ // Validate event schemas if present
40
+ if (library.eventSchemas !== undefined) {
41
+ if (typeof library.eventSchemas !== 'object' || library.eventSchemas === null) {
42
+ errors.push(schemaError('Field "eventSchemas" must be an object', 'eventSchemas', 'Use: eventSchemas: { "my-event": { description: "...", attributes: {} } }'));
43
+ }
44
+ else {
45
+ for (const [eventName, schema] of Object.entries(library.eventSchemas)) {
46
+ if (!schema.description) {
47
+ errors.push(schemaError(`Event schema "${eventName}" is missing required field "description"`, `eventSchemas.${eventName}.description`, 'Add a description for this event schema'));
48
+ }
49
+ if (!schema.attributes || typeof schema.attributes !== 'object') {
50
+ errors.push(schemaError(`Event schema "${eventName}" is missing or has invalid "attributes" field`, `eventSchemas.${eventName}.attributes`, 'Add: attributes: {} (can be empty but must be present)'));
51
+ }
52
+ else {
53
+ // Validate each attribute
54
+ const validTypes = ['string', 'number', 'boolean', 'object', 'array'];
55
+ for (const [attrName, attrSchema] of Object.entries(schema.attributes)) {
56
+ if (!attrSchema.type) {
57
+ errors.push(schemaError(`Event schema "${eventName}" attribute "${attrName}" is missing required field "type"`, `eventSchemas.${eventName}.attributes.${attrName}.type`, `Add type: one of ${validTypes.join(', ')}`));
58
+ }
59
+ else if (!validTypes.includes(attrSchema.type)) {
60
+ errors.push(schemaError(`Event schema "${eventName}" attribute "${attrName}" has invalid type "${attrSchema.type}"`, `eventSchemas.${eventName}.attributes.${attrName}.type`, `Valid types: ${validTypes.join(', ')}`));
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ // Note: scopes validation removed - scopes field is deprecated
68
+ // The CLI validate.ts will show an error if library.scopes is present
69
+ // Validate resources if present
70
+ if (library.resources !== undefined) {
71
+ if (typeof library.resources !== 'object' || library.resources === null || Array.isArray(library.resources)) {
72
+ errors.push(schemaError('Field "resources" must be an object', 'resources', 'Use: resources: { my-service: { "service.name": "my-service", ... } }'));
73
+ }
74
+ else {
75
+ for (const [serviceId, resourceAttrs] of Object.entries(library.resources)) {
76
+ if (typeof resourceAttrs !== 'object' || Array.isArray(resourceAttrs) || resourceAttrs === null) {
77
+ errors.push(schemaError(`Resource "${serviceId}" must be an object`, `resources.${serviceId}`, 'Use: { "service.name": "...", "owned-scopes": [...] }'));
78
+ continue;
79
+ }
80
+ // Check that service.name is present (required)
81
+ if (!resourceAttrs['service.name']) {
82
+ errors.push(schemaError(`Resource "${serviceId}" is missing required attribute "service.name"`, `resources.${serviceId}`, 'Add: "service.name": "my-service-name"'));
83
+ }
84
+ // Validate owned-scopes
85
+ const ownedScopes = resourceAttrs['owned-scopes'];
86
+ if (ownedScopes !== undefined) {
87
+ if (!Array.isArray(ownedScopes)) {
88
+ errors.push(schemaError(`Resource "${serviceId}" owned-scopes must be an array`, `resources.${serviceId}.owned-scopes`, 'Use: owned-scopes: ["scope-name-1", "scope-name-2"]'));
89
+ }
90
+ else {
91
+ for (const scope of ownedScopes) {
92
+ if (typeof scope !== 'string') {
93
+ errors.push(schemaError(`Resource "${serviceId}" owned-scopes contains non-string value`, `resources.${serviceId}.owned-scopes`, 'All owned-scopes entries must be strings'));
94
+ }
95
+ // Note: Scope existence validation removed - scopes are now defined in .scopes.canvas
96
+ // The CLI will validate that owned-scopes exist in .scopes.canvas
97
+ }
98
+ }
99
+ }
100
+ // Validate other attributes are strings (except owned-scopes)
101
+ for (const [attrName, attrValue] of Object.entries(resourceAttrs)) {
102
+ if (attrName !== 'owned-scopes' && typeof attrValue !== 'string') {
103
+ errors.push(schemaError(`Resource "${serviceId}" attribute "${attrName}" must have a string value`, `resources.${serviceId}.${attrName}`, 'Resource attributes (except owned-scopes) must be strings'));
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ return {
110
+ valid: errors.length === 0,
111
+ errors,
112
+ };
113
+ }
114
+ exports.validateLibraryStructure = validateLibraryStructure;
115
+ //# sourceMappingURL=libraryValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryValidation.js","sourceRoot":"","sources":["../../src/validation/libraryValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Edge Derivation from Workflows
3
+ *
4
+ * Extracts span context from workflow event templates and derives
5
+ * expected edges (span transitions) for validation against spans.canvas.
6
+ *
7
+ * @see .principal-views/WORKFLOW-SPAN-INTEGRATION.md
8
+ */
9
+ import type { WorkflowTemplate, WorkflowScenario } from './types';
10
+ /**
11
+ * A derived edge representing a span transition observed in a workflow
12
+ */
13
+ export interface DerivedEdge {
14
+ /** Source span name (exact) */
15
+ fromSpan: string;
16
+ /** Target span name (exact) */
17
+ toSpan: string;
18
+ /** Workflow file where this edge was observed */
19
+ workflowFile?: string;
20
+ /** Scenario ID where this edge was observed */
21
+ scenarioId: string;
22
+ /** Event names that caused this transition */
23
+ eventNames: string[];
24
+ /** Execution order (1-based) within the scenario */
25
+ sequenceNumber: number;
26
+ }
27
+ /**
28
+ * Result of edge derivation from a single workflow
29
+ */
30
+ export interface WorkflowEdgeDerivationResult {
31
+ /** Workflow name */
32
+ workflowName: string;
33
+ /** Root span for this workflow */
34
+ rootSpan: string | undefined;
35
+ /** All spans referenced in this workflow */
36
+ referencedSpans: string[];
37
+ /** Derived edges per scenario */
38
+ scenarioEdges: Array<{
39
+ scenarioId: string;
40
+ edges: DerivedEdge[];
41
+ }>;
42
+ }
43
+ /**
44
+ * Result of edge derivation across all workflows
45
+ */
46
+ export interface EdgeDerivationResult {
47
+ /** All derived edges (deduplicated) */
48
+ edges: DerivedEdge[];
49
+ /** Per-workflow breakdown */
50
+ workflows: WorkflowEdgeDerivationResult[];
51
+ /** All unique spans referenced across workflows */
52
+ allSpans: string[];
53
+ }
54
+ /**
55
+ * Extract span context from a workflow's event templates
56
+ *
57
+ * @param scenario - Workflow scenario to analyze
58
+ * @param rootSpan - Default span for events without explicit span
59
+ * @returns Array of { eventName, span } entries in template order
60
+ */
61
+ export declare function extractEventSpans(scenario: WorkflowScenario, rootSpan: string | undefined): Array<{
62
+ eventName: string;
63
+ span: string;
64
+ }>;
65
+ /**
66
+ * Derive edges from span transitions in event sequence
67
+ *
68
+ * Identifies when consecutive events are in different spans,
69
+ * which represents a potential edge (call relationship).
70
+ *
71
+ * Note: This captures temporal order, not parent-child nesting.
72
+ * We observe "span A was active, then span B was active" but
73
+ * cannot infer nesting without actual trace data.
74
+ *
75
+ * @param eventSpans - Event-span mappings in order
76
+ * @param scenarioId - ID of the scenario being analyzed
77
+ * @returns Array of derived edges
78
+ */
79
+ export declare function deriveEdgesFromSequence(eventSpans: Array<{
80
+ eventName: string;
81
+ span: string;
82
+ }>, scenarioId: string): DerivedEdge[];
83
+ /**
84
+ * Derive all edges from a workflow template
85
+ *
86
+ * @param workflow - Workflow template to analyze
87
+ * @param workflowFile - Optional file path for tracking
88
+ * @returns Edge derivation result for this workflow
89
+ */
90
+ export declare function deriveWorkflowEdges(workflow: WorkflowTemplate, workflowFile?: string): WorkflowEdgeDerivationResult;
91
+ /**
92
+ * Derive edges from multiple workflows
93
+ *
94
+ * @param workflows - Array of { workflow, filePath } pairs
95
+ * @returns Combined edge derivation result
96
+ */
97
+ export declare function deriveEdgesFromWorkflows(workflows: Array<{
98
+ workflow: WorkflowTemplate;
99
+ filePath?: string;
100
+ }>): EdgeDerivationResult;
101
+ /**
102
+ * Group derived edges by source and target for display
103
+ *
104
+ * @param edges - Derived edges to group
105
+ * @returns Map of edge key to list of workflows/scenarios containing it
106
+ */
107
+ export declare function groupEdgesBySources(edges: DerivedEdge[]): Map<string, Array<{
108
+ workflowFile?: string;
109
+ scenarioId: string;
110
+ }>>;
111
+ //# sourceMappingURL=edge-derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-derivation.d.ts","sourceRoot":"","sources":["../../src/workflow/edge-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,4CAA4C;IAC5C,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B,iCAAiC;IACjC,aAAa,EAAE,KAAK,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB,6BAA6B;IAC7B,SAAS,EAAE,4BAA4B,EAAE,CAAC;IAE1C,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,EAAE,MAAM,GACjB,WAAW,EAAE,CA4Bf;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,4BAA4B,CAuC9B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,oBAAoB,CA+BtB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAAE,GACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAcnE"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /**
3
+ * Edge Derivation from Workflows
4
+ *
5
+ * Extracts span context from workflow event templates and derives
6
+ * expected edges (span transitions) for validation against spans.canvas.
7
+ *
8
+ * @see .principal-views/WORKFLOW-SPAN-INTEGRATION.md
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.groupEdgesBySources = exports.deriveEdgesFromWorkflows = exports.deriveWorkflowEdges = exports.deriveEdgesFromSequence = exports.extractEventSpans = void 0;
12
+ const types_1 = require("./types");
13
+ /**
14
+ * Extract span context from a workflow's event templates
15
+ *
16
+ * @param scenario - Workflow scenario to analyze
17
+ * @param rootSpan - Default span for events without explicit span
18
+ * @returns Array of { eventName, span } entries in template order
19
+ */
20
+ function extractEventSpans(scenario, rootSpan) {
21
+ const events = scenario.template.events;
22
+ if (!events) {
23
+ return [];
24
+ }
25
+ const result = [];
26
+ for (const [eventName, eventTemplate] of Object.entries(events)) {
27
+ const explicitSpan = (0, types_1.isEventTemplate)(eventTemplate)
28
+ ? (0, types_1.getEventSpan)(eventTemplate)
29
+ : undefined;
30
+ // Use explicit span if provided, otherwise fall back to rootSpan
31
+ const span = explicitSpan ?? rootSpan;
32
+ if (span) {
33
+ result.push({ eventName, span });
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+ exports.extractEventSpans = extractEventSpans;
39
+ /**
40
+ * Derive edges from span transitions in event sequence
41
+ *
42
+ * Identifies when consecutive events are in different spans,
43
+ * which represents a potential edge (call relationship).
44
+ *
45
+ * Note: This captures temporal order, not parent-child nesting.
46
+ * We observe "span A was active, then span B was active" but
47
+ * cannot infer nesting without actual trace data.
48
+ *
49
+ * @param eventSpans - Event-span mappings in order
50
+ * @param scenarioId - ID of the scenario being analyzed
51
+ * @returns Array of derived edges
52
+ */
53
+ function deriveEdgesFromSequence(eventSpans, scenarioId) {
54
+ const edges = [];
55
+ const seenEdges = new Set();
56
+ let sequenceNumber = 0;
57
+ for (let i = 0; i < eventSpans.length - 1; i++) {
58
+ const current = eventSpans[i];
59
+ const next = eventSpans[i + 1];
60
+ // Transition occurs when spans differ
61
+ if (current.span !== next.span) {
62
+ const edgeKey = `${current.span}->${next.span}`;
63
+ if (!seenEdges.has(edgeKey)) {
64
+ seenEdges.add(edgeKey);
65
+ sequenceNumber++;
66
+ edges.push({
67
+ fromSpan: current.span,
68
+ toSpan: next.span,
69
+ scenarioId,
70
+ eventNames: [current.eventName, next.eventName],
71
+ sequenceNumber,
72
+ });
73
+ }
74
+ }
75
+ }
76
+ return edges;
77
+ }
78
+ exports.deriveEdgesFromSequence = deriveEdgesFromSequence;
79
+ /**
80
+ * Derive all edges from a workflow template
81
+ *
82
+ * @param workflow - Workflow template to analyze
83
+ * @param workflowFile - Optional file path for tracking
84
+ * @returns Edge derivation result for this workflow
85
+ */
86
+ function deriveWorkflowEdges(workflow, workflowFile) {
87
+ const rootSpan = (0, types_1.getWorkflowRootSpan)(workflow);
88
+ const allSpans = new Set();
89
+ const scenarioEdges = [];
90
+ if (rootSpan) {
91
+ allSpans.add(rootSpan);
92
+ }
93
+ for (const scenario of workflow.scenarios) {
94
+ const eventSpans = extractEventSpans(scenario, rootSpan);
95
+ // Collect all referenced spans
96
+ for (const { span } of eventSpans) {
97
+ allSpans.add(span);
98
+ }
99
+ // Derive edges from transitions
100
+ const edges = deriveEdgesFromSequence(eventSpans, scenario.id);
101
+ // Attach workflow file to each edge
102
+ if (workflowFile) {
103
+ for (const edge of edges) {
104
+ edge.workflowFile = workflowFile;
105
+ }
106
+ }
107
+ scenarioEdges.push({
108
+ scenarioId: scenario.id,
109
+ edges,
110
+ });
111
+ }
112
+ return {
113
+ workflowName: workflow.name,
114
+ rootSpan,
115
+ referencedSpans: Array.from(allSpans),
116
+ scenarioEdges,
117
+ };
118
+ }
119
+ exports.deriveWorkflowEdges = deriveWorkflowEdges;
120
+ /**
121
+ * Derive edges from multiple workflows
122
+ *
123
+ * @param workflows - Array of { workflow, filePath } pairs
124
+ * @returns Combined edge derivation result
125
+ */
126
+ function deriveEdgesFromWorkflows(workflows) {
127
+ const allSpans = new Set();
128
+ const workflowResults = [];
129
+ const edgeMap = new Map();
130
+ for (const { workflow, filePath } of workflows) {
131
+ const result = deriveWorkflowEdges(workflow, filePath);
132
+ workflowResults.push(result);
133
+ // Collect spans
134
+ for (const span of result.referencedSpans) {
135
+ allSpans.add(span);
136
+ }
137
+ // Collect and deduplicate edges
138
+ for (const scenarioResult of result.scenarioEdges) {
139
+ for (const edge of scenarioResult.edges) {
140
+ const key = `${edge.fromSpan}->${edge.toSpan}`;
141
+ if (!edgeMap.has(key)) {
142
+ edgeMap.set(key, edge);
143
+ }
144
+ }
145
+ }
146
+ }
147
+ return {
148
+ edges: Array.from(edgeMap.values()),
149
+ workflows: workflowResults,
150
+ allSpans: Array.from(allSpans),
151
+ };
152
+ }
153
+ exports.deriveEdgesFromWorkflows = deriveEdgesFromWorkflows;
154
+ /**
155
+ * Group derived edges by source and target for display
156
+ *
157
+ * @param edges - Derived edges to group
158
+ * @returns Map of edge key to list of workflows/scenarios containing it
159
+ */
160
+ function groupEdgesBySources(edges) {
161
+ const grouped = new Map();
162
+ for (const edge of edges) {
163
+ const key = `${edge.fromSpan}->${edge.toSpan}`;
164
+ const sources = grouped.get(key) || [];
165
+ sources.push({
166
+ workflowFile: edge.workflowFile,
167
+ scenarioId: edge.scenarioId,
168
+ });
169
+ grouped.set(key, sources);
170
+ }
171
+ return grouped;
172
+ }
173
+ exports.groupEdgesBySources = groupEdgesBySources;
174
+ //# sourceMappingURL=edge-derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-derivation.js","sourceRoot":"","sources":["../../src/workflow/edge-derivation.ts"],"names":[],"mappings":"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"}