@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,135 @@
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
+ import type { CanvasType } from '../discovery/types';
11
+ /**
12
+ * Map of event name to canvas node IDs that emit that event.
13
+ */
14
+ export type EventNodeMap = Map<string, string[]>;
15
+ /**
16
+ * Options for building storyboard context.
17
+ */
18
+ export interface BuildStoryboardContextOptions {
19
+ /** The parsed canvas content */
20
+ canvas: ExtendedCanvas;
21
+ /** Storyboard metadata (id, name, path) */
22
+ storyboard: StoryboardReference;
23
+ /** Canvas type (defaults to 'otel') */
24
+ canvasType?: CanvasType;
25
+ /** Optional: Selected workflow template and its path */
26
+ workflow?: {
27
+ template: WorkflowTemplate;
28
+ path: string;
29
+ };
30
+ /** Optional: Selected scenario within the workflow */
31
+ scenario?: WorkflowScenario;
32
+ /** Optional: Additional supporting files to include */
33
+ additionalSupportingFiles?: string[];
34
+ }
35
+ /**
36
+ * Build a map of event name to canvas node IDs.
37
+ * Uses `pv.event.name` or `pv.eventRef` from each node.
38
+ *
39
+ * @param canvas - The extended canvas with nodes
40
+ * @returns Map of event names to node IDs that emit those events
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const eventMap = buildEventNodeMap(canvas);
45
+ * // Map { 'auth.login' => ['node-abc'], 'api.fetch' => ['node-xyz', 'node-def'] }
46
+ * ```
47
+ */
48
+ export declare function buildEventNodeMap(canvas: ExtendedCanvas): EventNodeMap;
49
+ /**
50
+ * Get the event name from a canvas node.
51
+ *
52
+ * Supports two schema locations:
53
+ * 1. Top-level `event.name` / `eventRef` (OtelEventNode in .otel.canvas files)
54
+ * 2. `pv.event.name` / `pv.eventRef` (PVNodeExtension for generic canvas nodes)
55
+ *
56
+ * @param node - The canvas node
57
+ * @returns Event name or undefined if node doesn't emit events
58
+ */
59
+ export declare function getNodeEventName(node: ExtendedCanvasNode): string | undefined;
60
+ /**
61
+ * Resolve workflow scenario event requirements to canvas node IDs.
62
+ *
63
+ * Given a scenario's required events, finds which canvas nodes emit those events.
64
+ *
65
+ * @param canvas - The extended canvas with nodes
66
+ * @param scenario - The workflow scenario with event requirements
67
+ * @returns Array of canvas node IDs involved in this scenario
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const nodeIds = resolveScenarioNodeIds(canvas, scenario);
72
+ * // ['node-abc', 'node-xyz'] - nodes that emit events required by the scenario
73
+ * ```
74
+ */
75
+ export declare function resolveScenarioNodeIds(canvas: ExtendedCanvas, scenario: WorkflowScenario): string[];
76
+ /**
77
+ * Resolve workflow template to canvas node IDs.
78
+ *
79
+ * Returns all unique node IDs that are involved in any scenario of the workflow.
80
+ *
81
+ * @param canvas - The extended canvas with nodes
82
+ * @param workflow - The workflow template with scenarios
83
+ * @returns Array of canvas node IDs involved in this workflow
84
+ */
85
+ export declare function resolveWorkflowNodeIds(canvas: ExtendedCanvas, workflow: WorkflowTemplate): string[];
86
+ /**
87
+ * Find node IDs matching an event pattern (supports glob-style wildcards).
88
+ *
89
+ * @param eventMap - Map of event names to node IDs
90
+ * @param pattern - Event pattern (e.g., "auth.login", "*.error", "api.*")
91
+ * @returns Array of matching node IDs
92
+ */
93
+ export declare function findNodesMatchingEventPattern(eventMap: EventNodeMap, pattern: string): string[];
94
+ /**
95
+ * Get all node IDs from a canvas.
96
+ * Useful when no specific workflow/scenario is selected (widest scope).
97
+ *
98
+ * @param canvas - The extended canvas with nodes
99
+ * @returns Array of all node IDs in the canvas
100
+ */
101
+ export declare function getAllNodeIds(canvas: ExtendedCanvas): string[];
102
+ /**
103
+ * Build a complete StoryboardContextSliceData from canvas and optional workflow/scenario.
104
+ *
105
+ * This is the main function for creating the context slice that panels consume.
106
+ *
107
+ * @param options - Build options with canvas, storyboard, and optional workflow/scenario
108
+ * @returns Complete storyboard context slice data
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Just storyboard selected (widest scope)
113
+ * const context = buildStoryboardContext({
114
+ * canvas: parsedCanvas,
115
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
116
+ * });
117
+ *
118
+ * // With workflow selected (medium scope)
119
+ * const context = buildStoryboardContext({
120
+ * canvas: parsedCanvas,
121
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
122
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
123
+ * });
124
+ *
125
+ * // With scenario selected (narrowest scope)
126
+ * const context = buildStoryboardContext({
127
+ * canvas: parsedCanvas,
128
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
129
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
130
+ * scenario: selectedScenario,
131
+ * });
132
+ * ```
133
+ */
134
+ export declare function buildStoryboardContext(options: BuildStoryboardContextOptions): StoryboardContextSliceData;
135
+ //# 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;AAE1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EACV,mBAAmB,EAGnB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD;;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,uCAAuC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,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,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAiBtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAgB7E;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"}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ /**
3
+ * Storyboard Context Builder
4
+ *
5
+ * Utilities for building StoryboardContextSliceData from canvas and workflow artifacts.
6
+ * Used by hosts to create the context slice for panels like File City.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.buildStoryboardContext = exports.getAllNodeIds = exports.findNodesMatchingEventPattern = exports.resolveWorkflowNodeIds = exports.resolveScenarioNodeIds = exports.getNodeEventName = exports.buildEventNodeMap = void 0;
10
+ const canvas_1 = require("../types/canvas");
11
+ const CanvasFileManifest_1 = require("../discovery/CanvasFileManifest");
12
+ // ============================================================================
13
+ // Core Functions
14
+ // ============================================================================
15
+ /**
16
+ * Build a map of event name to canvas node IDs.
17
+ * Uses `pv.event.name` or `pv.eventRef` from each node.
18
+ *
19
+ * @param canvas - The extended canvas with nodes
20
+ * @returns Map of event names to node IDs that emit those events
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const eventMap = buildEventNodeMap(canvas);
25
+ * // Map { 'auth.login' => ['node-abc'], 'api.fetch' => ['node-xyz', 'node-def'] }
26
+ * ```
27
+ */
28
+ function buildEventNodeMap(canvas) {
29
+ const eventMap = new Map();
30
+ if (!canvas.nodes) {
31
+ return eventMap;
32
+ }
33
+ for (const node of canvas.nodes) {
34
+ const eventName = getNodeEventName(node);
35
+ if (eventName) {
36
+ const existing = eventMap.get(eventName) || [];
37
+ existing.push(node.id);
38
+ eventMap.set(eventName, existing);
39
+ }
40
+ }
41
+ return eventMap;
42
+ }
43
+ exports.buildEventNodeMap = buildEventNodeMap;
44
+ /**
45
+ * Get the event name from a canvas node.
46
+ *
47
+ * Supports two schema locations:
48
+ * 1. Top-level `event.name` / `eventRef` (OtelEventNode in .otel.canvas files)
49
+ * 2. `pv.event.name` / `pv.eventRef` (PVNodeExtension for generic canvas nodes)
50
+ *
51
+ * @param node - The canvas node
52
+ * @returns Event name or undefined if node doesn't emit events
53
+ */
54
+ function getNodeEventName(node) {
55
+ // 1. Top-level OtelEventNode format (newer .otel.canvas files)
56
+ const topLevelEvent = node.event?.name;
57
+ if (topLevelEvent)
58
+ return topLevelEvent;
59
+ // Check OTEL event node (top-level event/eventRef)
60
+ if ((0, canvas_1.isOtelEventNode)(node)) {
61
+ return node.event?.name || node.eventRef;
62
+ }
63
+ // Check standard node with pv.event/pv.eventRef
64
+ if ((0, canvas_1.isStandardCanvasNode)(node)) {
65
+ return node.pv?.event?.name || node.pv?.eventRef;
66
+ }
67
+ return undefined;
68
+ }
69
+ exports.getNodeEventName = getNodeEventName;
70
+ /**
71
+ * Resolve workflow scenario event requirements to canvas node IDs.
72
+ *
73
+ * Given a scenario's required events, finds which canvas nodes emit those events.
74
+ *
75
+ * @param canvas - The extended canvas with nodes
76
+ * @param scenario - The workflow scenario with event requirements
77
+ * @returns Array of canvas node IDs involved in this scenario
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * const nodeIds = resolveScenarioNodeIds(canvas, scenario);
82
+ * // ['node-abc', 'node-xyz'] - nodes that emit events required by the scenario
83
+ * ```
84
+ */
85
+ function resolveScenarioNodeIds(canvas, scenario) {
86
+ const eventMap = buildEventNodeMap(canvas);
87
+ const nodeIds = new Set();
88
+ // Get required events from scenario template.events
89
+ const requiredEvents = Object.keys(scenario.template?.events || {});
90
+ for (const eventPattern of requiredEvents) {
91
+ // Handle glob patterns (e.g., "*.error", "auth.*")
92
+ const matchingNodes = findNodesMatchingEventPattern(eventMap, eventPattern);
93
+ for (const nodeId of matchingNodes) {
94
+ nodeIds.add(nodeId);
95
+ }
96
+ }
97
+ return Array.from(nodeIds);
98
+ }
99
+ exports.resolveScenarioNodeIds = resolveScenarioNodeIds;
100
+ /**
101
+ * Resolve workflow template to canvas node IDs.
102
+ *
103
+ * Returns all unique node IDs that are involved in any scenario of the workflow.
104
+ *
105
+ * @param canvas - The extended canvas with nodes
106
+ * @param workflow - The workflow template with scenarios
107
+ * @returns Array of canvas node IDs involved in this workflow
108
+ */
109
+ function resolveWorkflowNodeIds(canvas, workflow) {
110
+ const nodeIds = new Set();
111
+ for (const scenario of workflow.scenarios) {
112
+ const scenarioNodeIds = resolveScenarioNodeIds(canvas, scenario);
113
+ for (const nodeId of scenarioNodeIds) {
114
+ nodeIds.add(nodeId);
115
+ }
116
+ }
117
+ return Array.from(nodeIds);
118
+ }
119
+ exports.resolveWorkflowNodeIds = resolveWorkflowNodeIds;
120
+ /**
121
+ * Find node IDs matching an event pattern (supports glob-style wildcards).
122
+ *
123
+ * @param eventMap - Map of event names to node IDs
124
+ * @param pattern - Event pattern (e.g., "auth.login", "*.error", "api.*")
125
+ * @returns Array of matching node IDs
126
+ */
127
+ function findNodesMatchingEventPattern(eventMap, pattern) {
128
+ const matchingNodes = [];
129
+ // Simple glob matching
130
+ const regexPattern = pattern
131
+ .replace(/\./g, '\\.') // Escape dots
132
+ .replace(/\*/g, '.*'); // Convert * to .*
133
+ const regex = new RegExp(`^${regexPattern}$`);
134
+ for (const [eventName, nodeIds] of eventMap) {
135
+ if (regex.test(eventName)) {
136
+ matchingNodes.push(...nodeIds);
137
+ }
138
+ }
139
+ return matchingNodes;
140
+ }
141
+ exports.findNodesMatchingEventPattern = findNodesMatchingEventPattern;
142
+ /**
143
+ * Get all node IDs from a canvas.
144
+ * Useful when no specific workflow/scenario is selected (widest scope).
145
+ *
146
+ * @param canvas - The extended canvas with nodes
147
+ * @returns Array of all node IDs in the canvas
148
+ */
149
+ function getAllNodeIds(canvas) {
150
+ if (!canvas.nodes) {
151
+ return [];
152
+ }
153
+ return canvas.nodes.map((node) => node.id);
154
+ }
155
+ exports.getAllNodeIds = getAllNodeIds;
156
+ // ============================================================================
157
+ // Context Builder
158
+ // ============================================================================
159
+ /**
160
+ * Build a complete StoryboardContextSliceData from canvas and optional workflow/scenario.
161
+ *
162
+ * This is the main function for creating the context slice that panels consume.
163
+ *
164
+ * @param options - Build options with canvas, storyboard, and optional workflow/scenario
165
+ * @returns Complete storyboard context slice data
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * // Just storyboard selected (widest scope)
170
+ * const context = buildStoryboardContext({
171
+ * canvas: parsedCanvas,
172
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
173
+ * });
174
+ *
175
+ * // With workflow selected (medium scope)
176
+ * const context = buildStoryboardContext({
177
+ * canvas: parsedCanvas,
178
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
179
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
180
+ * });
181
+ *
182
+ * // With scenario selected (narrowest scope)
183
+ * const context = buildStoryboardContext({
184
+ * canvas: parsedCanvas,
185
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
186
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
187
+ * scenario: selectedScenario,
188
+ * });
189
+ * ```
190
+ */
191
+ function buildStoryboardContext(options) {
192
+ const { canvas, storyboard, canvasType = 'otel', workflow, scenario, additionalSupportingFiles = [] } = options;
193
+ // Build canvas file manifest
194
+ const manifest = (0, CanvasFileManifest_1.buildCanvasFileManifest)(canvas, storyboard.id, storyboard.path, canvasType);
195
+ // Build supporting files list
196
+ const supportingFiles = [storyboard.path];
197
+ if (workflow) {
198
+ supportingFiles.push(workflow.path);
199
+ }
200
+ // Add markdown doc if canvas has one
201
+ if (canvas.markdown) {
202
+ supportingFiles.push(canvas.markdown);
203
+ }
204
+ supportingFiles.push(...additionalSupportingFiles);
205
+ // Determine workflow reference
206
+ let workflowReference = null;
207
+ if (workflow) {
208
+ const workflowNodeIds = resolveWorkflowNodeIds(canvas, workflow.template);
209
+ workflowReference = {
210
+ id: `${storyboard.id}/${workflow.template.name.toLowerCase().replace(/\s+/g, '-')}`,
211
+ name: workflow.template.name,
212
+ path: workflow.path,
213
+ nodeIds: workflowNodeIds,
214
+ };
215
+ }
216
+ // Determine scenario reference
217
+ let scenarioReference = null;
218
+ if (scenario) {
219
+ const scenarioNodeIds = resolveScenarioNodeIds(canvas, scenario);
220
+ scenarioReference = {
221
+ id: scenario.id,
222
+ name: scenario.description,
223
+ nodeIds: scenarioNodeIds,
224
+ };
225
+ }
226
+ return {
227
+ storyboard,
228
+ workflow: workflowReference,
229
+ scenario: scenarioReference,
230
+ manifest,
231
+ supportingFiles,
232
+ };
233
+ }
234
+ exports.buildStoryboardContext = buildStoryboardContext;
235
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/storyboard/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Storyboard Context Module
3
+ *
4
+ * Types and utilities for building storyboard context data that panels consume.
5
+ */
6
+ export type { StoryboardReference, WorkflowReference, ScenarioReference, StoryboardContextSliceData, } from './types';
7
+ export { buildStoryboardContext, buildEventNodeMap, getNodeEventName, resolveScenarioNodeIds, resolveWorkflowNodeIds, findNodesMatchingEventPattern, getAllNodeIds, } from './builder';
8
+ export type { EventNodeMap, BuildStoryboardContextOptions } from './builder';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storyboard/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,YAAY,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Storyboard Context Module
4
+ *
5
+ * Types and utilities for building storyboard context data that panels consume.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getAllNodeIds = exports.findNodesMatchingEventPattern = exports.resolveWorkflowNodeIds = exports.resolveScenarioNodeIds = exports.getNodeEventName = exports.buildEventNodeMap = exports.buildStoryboardContext = void 0;
9
+ // Builder utilities
10
+ var builder_1 = require("./builder");
11
+ Object.defineProperty(exports, "buildStoryboardContext", { enumerable: true, get: function () { return builder_1.buildStoryboardContext; } });
12
+ Object.defineProperty(exports, "buildEventNodeMap", { enumerable: true, get: function () { return builder_1.buildEventNodeMap; } });
13
+ Object.defineProperty(exports, "getNodeEventName", { enumerable: true, get: function () { return builder_1.getNodeEventName; } });
14
+ Object.defineProperty(exports, "resolveScenarioNodeIds", { enumerable: true, get: function () { return builder_1.resolveScenarioNodeIds; } });
15
+ Object.defineProperty(exports, "resolveWorkflowNodeIds", { enumerable: true, get: function () { return builder_1.resolveWorkflowNodeIds; } });
16
+ Object.defineProperty(exports, "findNodesMatchingEventPattern", { enumerable: true, get: function () { return builder_1.findNodesMatchingEventPattern; } });
17
+ Object.defineProperty(exports, "getAllNodeIds", { enumerable: true, get: function () { return builder_1.getAllNodeIds; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storyboard/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,oBAAoB;AACpB,qCAQmB;AAPjB,iHAAA,sBAAsB,OAAA;AACtB,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAChB,iHAAA,sBAAsB,OAAA;AACtB,iHAAA,sBAAsB,OAAA;AACtB,wHAAA,6BAA6B,OAAA;AAC7B,wGAAA,aAAa,OAAA"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Storyboard Context Types
3
+ *
4
+ * Types for representing storyboard context data that panels consume.
5
+ * Used to communicate which storyboard/workflow/scenario is selected
6
+ * and provide file manifests for visualization.
7
+ */
8
+ import type { CanvasFileManifest } from '../discovery/types';
9
+ /**
10
+ * Reference to a storyboard (canvas) in the storyboard context.
11
+ * Represents the top-level selection in the storyboard hierarchy.
12
+ */
13
+ export interface StoryboardReference {
14
+ /** Unique storyboard identifier (e.g., "core/checkout-flow") */
15
+ id: string;
16
+ /** Display name (e.g., "Checkout Flow") */
17
+ name: string;
18
+ /** Path to the canvas file (e.g., ".principal-views/checkout-flow.otel.canvas") */
19
+ path: string;
20
+ }
21
+ /**
22
+ * Reference to a workflow within a storyboard.
23
+ * Workflows define a subset of nodes from the parent canvas.
24
+ */
25
+ export interface WorkflowReference {
26
+ /** Unique workflow identifier (e.g., "core/checkout-flow/complete-checkout") */
27
+ id: string;
28
+ /** Display name (e.g., "Complete Checkout") */
29
+ name: string;
30
+ /** Path to the workflow file (e.g., ".principal-views/checkout-flow/complete-checkout.workflow.json") */
31
+ path: string;
32
+ /** Canvas node IDs involved in this workflow (resolved from event requirements) */
33
+ nodeIds: string[];
34
+ }
35
+ /**
36
+ * Reference to a scenario within a workflow.
37
+ * Scenarios represent specific execution paths through a workflow.
38
+ */
39
+ export interface ScenarioReference {
40
+ /** Unique scenario identifier (e.g., "payment-success") */
41
+ id: string;
42
+ /** Display name (e.g., "Payment Success") */
43
+ name: string;
44
+ /** Canvas node IDs involved in this scenario (subset of workflow nodes) */
45
+ nodeIds: string[];
46
+ }
47
+ /**
48
+ * Storyboard context slice data.
49
+ *
50
+ * Provides context about the currently selected storyboard, workflow, and scenario.
51
+ * Used by panels (like File City) to highlight files associated with the selection.
52
+ *
53
+ * Hierarchy: Storyboard → Workflow → Scenario
54
+ * - 1 Storyboard = 1 Canvas
55
+ * - Workflows contain a subset of nodes from the canvas
56
+ * - Scenarios contain a subset of nodes from their parent workflow
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const storyboardContext: StoryboardContextSliceData = {
61
+ * storyboard: {
62
+ * id: 'checkout-flow',
63
+ * name: 'Checkout Flow',
64
+ * path: '.principal-views/checkout-flow.otel.canvas',
65
+ * },
66
+ * workflow: {
67
+ * id: 'checkout-flow/complete-checkout',
68
+ * name: 'Complete Checkout',
69
+ * path: '.principal-views/checkout-flow/complete-checkout.workflow.json',
70
+ * nodeIds: ['node-cart', 'node-payment', 'node-confirm'],
71
+ * },
72
+ * scenario: null,
73
+ * manifest: { ... }, // CanvasFileManifest with file mappings
74
+ * supportingFiles: [
75
+ * '.principal-views/checkout-flow.otel.canvas',
76
+ * '.principal-views/checkout-flow/complete-checkout.workflow.json',
77
+ * ],
78
+ * };
79
+ * ```
80
+ */
81
+ export interface StoryboardContextSliceData {
82
+ /** Currently selected storyboard (1 storyboard = 1 canvas) */
83
+ storyboard: StoryboardReference | null;
84
+ /** Currently selected workflow (optional, narrower scope than storyboard) */
85
+ workflow: WorkflowReference | null;
86
+ /** Currently selected scenario (optional, narrowest scope) */
87
+ scenario: ScenarioReference | null;
88
+ /**
89
+ * Canvas file manifest with bidirectional mappings.
90
+ * Use `manifest.nodeToFiles.get(nodeId)` to get files for a node.
91
+ * Use `manifest.fileToNodes.get(path)` to get nodes for a file.
92
+ * Use `manifest.byRole.instrumentation` for instrumented files.
93
+ */
94
+ manifest: CanvasFileManifest | null;
95
+ /**
96
+ * Additional files associated with the storyboard context.
97
+ * Includes canvas files, workflow definitions, and related documentation.
98
+ */
99
+ supportingFiles: string[];
100
+ }
101
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storyboard/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM7D;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,yGAAyG;IACzG,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEvC,6EAA6E;IAC7E,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEnC,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEnC;;;;;OAKG;IACH,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Storyboard Context Types
4
+ *
5
+ * Types for representing storyboard context data that panels consume.
6
+ * Used to communicate which storyboard/workflow/scenario is selected
7
+ * and provide file manifests for visualization.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storyboard/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Telemetry Coverage Analysis
3
+ *
4
+ * Measures observability coverage by analyzing which implementation files
5
+ * contain the OpenTelemetry events documented in canvas nodes.
6
+ *
7
+ * Uses codebase-composition's ImplementationFileLayerModule for accurate,
8
+ * framework-aware detection of implementation files.
9
+ */
10
+ import type { FileTree } from '@principal-ai/repository-abstraction';
11
+ /**
12
+ * Per-file instrumentation details
13
+ */
14
+ export interface FileInstrumentation {
15
+ filePath: string;
16
+ expectedEvents: string[];
17
+ foundEvents: string[];
18
+ instrumentationCount: number;
19
+ hasInstrumentation: boolean;
20
+ missingEvents: string[];
21
+ isImplementationFile: boolean;
22
+ }
23
+ /**
24
+ * Node status breakdown
25
+ */
26
+ export interface NodeStatusBreakdown {
27
+ missingStatusCount: number;
28
+ draftCount: number;
29
+ approvedCount: number;
30
+ approvedWithFilesCount: number;
31
+ implementedCount: number;
32
+ implementedWithFilesCount: number;
33
+ }
34
+ /**
35
+ * Validation error for a canvas node
36
+ */
37
+ export interface ValidationError {
38
+ nodeId: string;
39
+ canvasPath: string;
40
+ error: string;
41
+ status?: string;
42
+ }
43
+ /**
44
+ * Overall coverage metrics (file-based)
45
+ */
46
+ export interface CoverageMetrics {
47
+ totalImplementationFiles: number;
48
+ filesWithInstrumentation: number;
49
+ coveragePercentage: number;
50
+ fileCoverage: FileInstrumentation[];
51
+ canvasFiles: string[];
52
+ totalExpectedEvents: number;
53
+ totalFoundEvents: number;
54
+ packageCoverage: PackageCoverageMetrics[];
55
+ nodeStatus: NodeStatusBreakdown;
56
+ validationErrors: ValidationError[];
57
+ }
58
+ /**
59
+ * Per-package coverage metrics
60
+ */
61
+ export interface PackageCoverageMetrics {
62
+ packageName: string;
63
+ packagePath: string;
64
+ totalFiles: number;
65
+ filesWithInstrumentation: number;
66
+ coveragePercentage: number;
67
+ filesByExtension: Record<string, number>;
68
+ }
69
+ /**
70
+ * Generate telemetry coverage report from canvas files
71
+ *
72
+ * Uses codebase-composition's ImplementationFileLayerModule for accurate,
73
+ * framework-aware detection of implementation files.
74
+ *
75
+ * @param fileTree - FileTree representation of the codebase
76
+ * @param fileReader - Function to read file contents
77
+ * @returns Coverage metrics based on file instrumentation
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * import { FilesystemService, NodeFileSystemAdapter } from '@principal-ai/codebase-composition/node';
82
+ * import { readFile } from 'fs/promises';
83
+ * import { resolve } from 'path';
84
+ *
85
+ * const service = new FilesystemService(new NodeFileSystemAdapter());
86
+ * const fileTree = await service.buildFileSystemTreeFromPath('/path/to/project');
87
+ * const fileReader = async (path: string) => readFile(resolve('/path/to/project', path), 'utf-8');
88
+ * const metrics = await analyzeCoverage(fileTree, fileReader);
89
+ * ```
90
+ */
91
+ export declare function analyzeCoverage(fileTree: FileTree, fileReader: (path: string) => Promise<string>): Promise<CoverageMetrics>;
92
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAYrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAGpC,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAG1C,UAAU,EAAE,mBAAmB,CAAC;IAGhC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAkRD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC5C,OAAO,CAAC,eAAe,CAAC,CAoF1B"}