@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,221 @@
1
+ "use strict";
2
+ /**
3
+ * Scopes Canvas Validator
4
+ *
5
+ * Validates that a .scopes.canvas file exists and properly documents
6
+ * all instrumentation scopes declared in library.yaml.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ScopesCanvasValidator = void 0;
10
+ const canvas_1 = require("../types/canvas");
11
+ const path_helpers_1 = require("../events/path-helpers");
12
+ /**
13
+ * Validates scopes canvas files
14
+ */
15
+ class ScopesCanvasValidator {
16
+ constructor(fsAdapter) {
17
+ this.fsAdapter = fsAdapter;
18
+ }
19
+ /**
20
+ * Validate a scopes canvas against library.yaml owned-scopes
21
+ */
22
+ async validate(context) {
23
+ const violations = [];
24
+ const { scopesCanvas, scopesCanvasPath, ownedScopes, basePath } = context;
25
+ // Initialize coverage tracking
26
+ const documentedScopes = [];
27
+ const missingScopes = [];
28
+ const extraScopes = [];
29
+ // Check if scopes canvas exists when owned-scopes are defined
30
+ if (ownedScopes.length > 0 && !scopesCanvas) {
31
+ violations.push({
32
+ ruleId: 'scopes-canvas-required',
33
+ severity: 'error',
34
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
35
+ message: 'Scopes canvas is required when library.yaml defines owned-scopes',
36
+ impact: 'Cannot visualize or validate instrumentation scope boundaries',
37
+ suggestion: `Create a scopes canvas at .principal-views/architecture.scopes.canvas with nodes for each scope:\n` +
38
+ ownedScopes.map(s => ` - ${s}`).join('\n') +
39
+ '\n\nUse type: "otel-scope" with otel.scope set to the scope name.',
40
+ });
41
+ return {
42
+ valid: false,
43
+ violations,
44
+ coverage: {
45
+ totalOwnedScopes: ownedScopes.length,
46
+ documentedScopes: [],
47
+ missingScopes: [...ownedScopes],
48
+ extraScopes: [],
49
+ },
50
+ };
51
+ }
52
+ // If no owned scopes and no canvas, that's fine
53
+ if (ownedScopes.length === 0) {
54
+ return {
55
+ valid: true,
56
+ violations,
57
+ coverage: {
58
+ totalOwnedScopes: 0,
59
+ documentedScopes: [],
60
+ missingScopes: [],
61
+ extraScopes: [],
62
+ },
63
+ };
64
+ }
65
+ // Extract scopes from canvas nodes
66
+ const canvasScopes = this.extractScopesFromCanvas(scopesCanvas);
67
+ const canvasScopeSet = new Set(canvasScopes.map(s => s.scope));
68
+ const ownedScopeSet = new Set(ownedScopes);
69
+ // Check which scopes are documented
70
+ for (const scope of ownedScopes) {
71
+ if (canvasScopeSet.has(scope)) {
72
+ documentedScopes.push(scope);
73
+ }
74
+ else {
75
+ missingScopes.push(scope);
76
+ }
77
+ }
78
+ // Check for extra scopes not in owned-scopes
79
+ for (const { scope, nodeId } of canvasScopes) {
80
+ if (!ownedScopeSet.has(scope)) {
81
+ extraScopes.push(scope);
82
+ }
83
+ }
84
+ // Report missing scopes
85
+ if (missingScopes.length > 0) {
86
+ violations.push({
87
+ ruleId: 'scopes-canvas-incomplete',
88
+ severity: 'error',
89
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
90
+ message: `Scopes canvas is missing ${missingScopes.length} scope(s) from library.yaml`,
91
+ impact: 'These scopes are not documented in the scope boundary map',
92
+ suggestion: `Add nodes for the following scopes:\n` +
93
+ missingScopes.map(s => ` - ${s}: Add type: "otel-scope" node with otel.scope: "${s}"`).join('\n'),
94
+ });
95
+ }
96
+ // Report extra scopes (warning, not error)
97
+ if (extraScopes.length > 0) {
98
+ violations.push({
99
+ ruleId: 'scopes-canvas-extra-scopes',
100
+ severity: 'warn',
101
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
102
+ message: `Scopes canvas contains ${extraScopes.length} scope(s) not in library.yaml owned-scopes`,
103
+ impact: 'These scopes may be external or need to be added to library.yaml',
104
+ suggestion: `Either:\n` +
105
+ ` - Add these scopes to owned-scopes in library.yaml: ${extraScopes.join(', ')}\n` +
106
+ ` - Or remove them from the scopes canvas if they are external`,
107
+ });
108
+ }
109
+ // Validate scope nodes have required fields (otel-scope nodes only)
110
+ for (const { scope, nodeId, node } of canvasScopes) {
111
+ // type === 'otel-scope' with top-level description
112
+ const otelScopeNode = node;
113
+ if (!otelScopeNode.description) {
114
+ violations.push({
115
+ ruleId: 'scopes-canvas-node-description',
116
+ severity: 'warn',
117
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
118
+ path: `nodes[${nodeId}]`,
119
+ message: `Scope node "${scope}" is missing a description`,
120
+ impact: 'Scope documentation is incomplete without a description',
121
+ suggestion: `Add a description field to explain what this scope covers`,
122
+ });
123
+ }
124
+ }
125
+ // Validate scope paths (optional field — enforcement is opt-in per scope).
126
+ // Collects declared paths across scopes to check for cross-scope overlap.
127
+ const declaredPaths = [];
128
+ for (const { scope, nodeId, node } of canvasScopes) {
129
+ const otelScopeNode = node;
130
+ const paths = otelScopeNode.paths;
131
+ if (!paths || paths.length === 0)
132
+ continue;
133
+ // Warn when a scope declares more than one path — prompt author to
134
+ // confirm the multi-location is intentional (monorepo bundling,
135
+ // generated code, platform splits, migration) rather than accidental.
136
+ if (paths.length > 1) {
137
+ violations.push({
138
+ ruleId: 'scopes-paths-multiple',
139
+ severity: 'warn',
140
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
141
+ path: `nodes[${nodeId}].paths`,
142
+ message: `Scope "${scope}" declares ${paths.length} paths`,
143
+ impact: 'Multiple paths can indicate legitimate cases (monorepo bundling, generated code, platform splits, migration) but often signal that the scope should be split',
144
+ suggestion: 'Confirm the multi-location is intentional. Otherwise consider splitting the scope or grouping the code under a single parent folder.',
145
+ });
146
+ }
147
+ for (const p of paths) {
148
+ declaredPaths.push({ scope, nodeId, path: p });
149
+ // Warn when a declared path does not exist relative to the repo root.
150
+ const resolved = this.fsAdapter.join(basePath, p);
151
+ if (!(await this.fsAdapter.exists(resolved))) {
152
+ violations.push({
153
+ ruleId: 'scopes-paths-missing',
154
+ severity: 'warn',
155
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
156
+ path: `nodes[${nodeId}].paths`,
157
+ message: `Path "${p}" declared by scope "${scope}" does not exist`,
158
+ impact: 'Events emitted under this scope cannot be validated against a real code location',
159
+ suggestion: 'Verify the path exists relative to the repository root, or remove it from the scope declaration.',
160
+ });
161
+ }
162
+ }
163
+ }
164
+ // Cross-scope overlap check. Parent-child path nesting is a valid partition
165
+ // (longest-prefix wins at runtime); any other overlap makes scope ownership
166
+ // of a file ambiguous.
167
+ for (let i = 0; i < declaredPaths.length; i++) {
168
+ for (let j = i + 1; j < declaredPaths.length; j++) {
169
+ const a = declaredPaths[i];
170
+ const b = declaredPaths[j];
171
+ if (a.scope === b.scope)
172
+ continue;
173
+ const relationship = (0, path_helpers_1.pathsOverlap)(a.path, b.path);
174
+ if (relationship === 'conflict') {
175
+ violations.push({
176
+ ruleId: 'scopes-paths-overlap',
177
+ severity: 'error',
178
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
179
+ message: `Paths overlap between scopes "${a.scope}" ("${a.path}") and "${b.scope}" ("${b.path}")`,
180
+ impact: 'A file covered by two scopes makes scope ownership ambiguous',
181
+ suggestion: 'Separate the paths so they are disjoint, or restructure as parent/child scopes by dotted name (e.g., "principal-ai.core" covering "packages/subsystems-core/src" and "principal-ai.core.validation" covering "packages/subsystems-core/src/validation").',
182
+ });
183
+ }
184
+ }
185
+ }
186
+ const errors = violations.filter(v => v.severity === 'error');
187
+ return {
188
+ valid: errors.length === 0,
189
+ violations,
190
+ coverage: {
191
+ totalOwnedScopes: ownedScopes.length,
192
+ documentedScopes,
193
+ missingScopes,
194
+ extraScopes,
195
+ },
196
+ };
197
+ }
198
+ /**
199
+ * Extract scope information from canvas nodes (otel-scope nodes only)
200
+ */
201
+ extractScopesFromCanvas(canvas) {
202
+ const scopes = [];
203
+ for (const node of canvas.nodes || []) {
204
+ // Only process otel-scope nodes
205
+ if ((0, canvas_1.isOtelScopeNode)(node)) {
206
+ const scope = node.otel?.scope;
207
+ if (scope && typeof scope === 'string') {
208
+ scopes.push({
209
+ scope,
210
+ nodeId: node.id,
211
+ node: node,
212
+ });
213
+ }
214
+ }
215
+ // Legacy pv.otel.scope format is no longer supported
216
+ }
217
+ return scopes;
218
+ }
219
+ }
220
+ exports.ScopesCanvasValidator = ScopesCanvasValidator;
221
+ //# sourceMappingURL=ScopesCanvasValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopesCanvasValidator.js","sourceRoot":"","sources":["../../src/scopes/ScopesCanvasValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Scopes module
3
+ *
4
+ * Provides utilities and validation for instrumentation scopes:
5
+ * - Scope utilities for working with top-level scopes and owned-scopes references
6
+ * - Validation for .scopes.canvas files that document scope boundaries
7
+ */
8
+ export { ScopesCanvasValidator, type ScopesCanvasValidationContext, type ScopesCanvasValidationResult, type ScopesCanvasViolation, } from './ScopesCanvasValidator';
9
+ export { ScopePathIndex, type ScopePathEntry, type ScopePathMatch, } from './ScopePathIndex';
10
+ export { validateScopeNamespaceNesting, type ScopeEventsCanvasPair, type ValidateScopeNamespaceNestingInput, } from './validateScopeNamespaceNesting';
11
+ export { DEFAULT_SCOPE_COLOR, DRAFT_NODE_COLOR, getScopeNames, getScopeDefinition, getScopeColor, getScopeIcon, normalizeScopes, buildScopeColorMap, buildScopeColorMapFromCanvas, getScopeNamesFromCanvas, getScopeNodeFromCanvas, getAllScopeNames, type NormalizedScope, } from './utils';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,GACxC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * Scopes module
4
+ *
5
+ * Provides utilities and validation for instrumentation scopes:
6
+ * - Scope utilities for working with top-level scopes and owned-scopes references
7
+ * - Validation for .scopes.canvas files that document scope boundaries
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getAllScopeNames = exports.getScopeNodeFromCanvas = exports.getScopeNamesFromCanvas = exports.buildScopeColorMapFromCanvas = exports.buildScopeColorMap = exports.normalizeScopes = exports.getScopeIcon = exports.getScopeColor = exports.getScopeDefinition = exports.getScopeNames = exports.DRAFT_NODE_COLOR = exports.DEFAULT_SCOPE_COLOR = exports.validateScopeNamespaceNesting = exports.ScopePathIndex = exports.ScopesCanvasValidator = void 0;
11
+ var ScopesCanvasValidator_1 = require("./ScopesCanvasValidator");
12
+ Object.defineProperty(exports, "ScopesCanvasValidator", { enumerable: true, get: function () { return ScopesCanvasValidator_1.ScopesCanvasValidator; } });
13
+ var ScopePathIndex_1 = require("./ScopePathIndex");
14
+ Object.defineProperty(exports, "ScopePathIndex", { enumerable: true, get: function () { return ScopePathIndex_1.ScopePathIndex; } });
15
+ var validateScopeNamespaceNesting_1 = require("./validateScopeNamespaceNesting");
16
+ Object.defineProperty(exports, "validateScopeNamespaceNesting", { enumerable: true, get: function () { return validateScopeNamespaceNesting_1.validateScopeNamespaceNesting; } });
17
+ var utils_1 = require("./utils");
18
+ Object.defineProperty(exports, "DEFAULT_SCOPE_COLOR", { enumerable: true, get: function () { return utils_1.DEFAULT_SCOPE_COLOR; } });
19
+ Object.defineProperty(exports, "DRAFT_NODE_COLOR", { enumerable: true, get: function () { return utils_1.DRAFT_NODE_COLOR; } });
20
+ Object.defineProperty(exports, "getScopeNames", { enumerable: true, get: function () { return utils_1.getScopeNames; } });
21
+ Object.defineProperty(exports, "getScopeDefinition", { enumerable: true, get: function () { return utils_1.getScopeDefinition; } });
22
+ Object.defineProperty(exports, "getScopeColor", { enumerable: true, get: function () { return utils_1.getScopeColor; } });
23
+ Object.defineProperty(exports, "getScopeIcon", { enumerable: true, get: function () { return utils_1.getScopeIcon; } });
24
+ Object.defineProperty(exports, "normalizeScopes", { enumerable: true, get: function () { return utils_1.normalizeScopes; } });
25
+ Object.defineProperty(exports, "buildScopeColorMap", { enumerable: true, get: function () { return utils_1.buildScopeColorMap; } });
26
+ Object.defineProperty(exports, "buildScopeColorMapFromCanvas", { enumerable: true, get: function () { return utils_1.buildScopeColorMapFromCanvas; } });
27
+ Object.defineProperty(exports, "getScopeNamesFromCanvas", { enumerable: true, get: function () { return utils_1.getScopeNamesFromCanvas; } });
28
+ Object.defineProperty(exports, "getScopeNodeFromCanvas", { enumerable: true, get: function () { return utils_1.getScopeNodeFromCanvas; } });
29
+ Object.defineProperty(exports, "getAllScopeNames", { enumerable: true, get: function () { return utils_1.getAllScopeNames; } });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iEAKiC;AAJ/B,8HAAA,qBAAqB,OAAA;AAMvB,mDAI0B;AAHxB,gHAAA,cAAc,OAAA;AAKhB,iFAIyC;AAHvC,8IAAA,6BAA6B,OAAA;AAK/B,iCAciB;AAbf,4GAAA,mBAAmB,OAAA;AACnB,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,2GAAA,kBAAkB,OAAA;AAClB,qHAAA,4BAA4B,OAAA;AAC5B,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA;AACtB,yGAAA,gBAAgB,OAAA"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Scope utility functions
3
+ *
4
+ * Helpers for working with scopes defined in the top-level `scopes` section
5
+ * and referenced by resources via `owned-scopes`.
6
+ */
7
+ import type { OwnedScopes, ScopeDefinition } from '../types/library';
8
+ import type { ExtendedCanvas, OtelScopeNode } from '../types/canvas';
9
+ /** Default color for scopes without a defined color */
10
+ export declare const DEFAULT_SCOPE_COLOR = "#6B7280";
11
+ /** Default color for draft nodes (no scope) */
12
+ export declare const DRAFT_NODE_COLOR = "#9CA3AF";
13
+ /**
14
+ * Normalized scope entry with name and definition
15
+ */
16
+ export interface NormalizedScope {
17
+ name: string;
18
+ color: string;
19
+ /** Icon identifier (Lucide icons) */
20
+ icon?: string;
21
+ description?: string;
22
+ /** Whether this scope is defined externally (in another library) */
23
+ external?: boolean;
24
+ }
25
+ /**
26
+ * Get all scope names from owned-scopes array
27
+ */
28
+ export declare function getScopeNames(scopes: OwnedScopes | undefined): string[];
29
+ /**
30
+ * Get scope definition by name from library scopes
31
+ */
32
+ export declare function getScopeDefinition(libraryScopes: Record<string, ScopeDefinition> | undefined, scopeName: string): ScopeDefinition | undefined;
33
+ /**
34
+ * Get scope color by name from library scopes
35
+ * Returns the defined color, or default color if not found
36
+ */
37
+ export declare function getScopeColor(libraryScopes: Record<string, ScopeDefinition> | undefined, scopeName: string): string;
38
+ /**
39
+ * Normalize scope names to NormalizedScope array using library scope definitions
40
+ */
41
+ export declare function normalizeScopes(scopeNames: OwnedScopes | undefined, libraryScopes: Record<string, ScopeDefinition> | undefined): NormalizedScope[];
42
+ /**
43
+ * Get scope icon by name from library scopes
44
+ * Returns the defined icon, or undefined if not found
45
+ */
46
+ export declare function getScopeIcon(libraryScopes: Record<string, ScopeDefinition> | undefined, scopeName: string): string | undefined;
47
+ /**
48
+ * Build a scope color map from .scopes.canvas
49
+ * Returns a simple name -> color mapping for fast lookups
50
+ *
51
+ * @deprecated The library.scopes parameter has been removed. Use scopesCanvas instead.
52
+ * @param scopesCanvas - Canvas containing scope definitions with colors
53
+ * @returns Map of scope name to color (hex format)
54
+ */
55
+ export declare function buildScopeColorMap(scopesCanvas: ExtendedCanvas | undefined): Record<string, string>;
56
+ /**
57
+ * Get all scope names defined in library
58
+ */
59
+ export declare function getAllScopeNames(library: {
60
+ scopes?: Record<string, ScopeDefinition>;
61
+ } | undefined): string[];
62
+ /**
63
+ * Build scope color map from .scopes.canvas nodes
64
+ * Extracts color from otel-scope nodes only
65
+ *
66
+ * @param scopesCanvas - Canvas containing scope definitions
67
+ * @returns Map of scope name to color (hex format)
68
+ */
69
+ export declare function buildScopeColorMapFromCanvas(scopesCanvas: ExtendedCanvas | undefined): Record<string, string>;
70
+ /**
71
+ * Extract all scope names from a scopes canvas
72
+ *
73
+ * @param scopesCanvas - Canvas containing scope definitions
74
+ * @returns Array of scope names
75
+ */
76
+ export declare function getScopeNamesFromCanvas(scopesCanvas: ExtendedCanvas | undefined): string[];
77
+ /**
78
+ * Get scope node by scope name
79
+ *
80
+ * @param scopesCanvas - Canvas containing scope definitions
81
+ * @param scopeName - Name of the scope to find
82
+ * @returns The scope node, or undefined if not found
83
+ */
84
+ export declare function getScopeNodeFromCanvas(scopesCanvas: ExtendedCanvas | undefined, scopeName: string): OtelScopeNode | undefined;
85
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CAE7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GACzD,eAAe,EAAE,CAanB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,cAAc,GAAG,SAAS,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,EAAE,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,cAAc,GAAG,SAAS,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBxB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,cAAc,GAAG,SAAS,GACvC,MAAM,EAAE,CAOV;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,GAChB,aAAa,GAAG,SAAS,CAM3B"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Scope utility functions
4
+ *
5
+ * Helpers for working with scopes defined in the top-level `scopes` section
6
+ * and referenced by resources via `owned-scopes`.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getScopeNodeFromCanvas = exports.getScopeNamesFromCanvas = exports.buildScopeColorMapFromCanvas = exports.getAllScopeNames = exports.buildScopeColorMap = exports.getScopeIcon = exports.normalizeScopes = exports.getScopeColor = exports.getScopeDefinition = exports.getScopeNames = exports.DRAFT_NODE_COLOR = exports.DEFAULT_SCOPE_COLOR = void 0;
10
+ const canvas_1 = require("../types/canvas");
11
+ /** Default color for scopes without a defined color */
12
+ exports.DEFAULT_SCOPE_COLOR = '#6B7280'; // gray-500
13
+ /** Default color for draft nodes (no scope) */
14
+ exports.DRAFT_NODE_COLOR = '#9CA3AF'; // gray-400
15
+ /**
16
+ * Get all scope names from owned-scopes array
17
+ */
18
+ function getScopeNames(scopes) {
19
+ return scopes ?? [];
20
+ }
21
+ exports.getScopeNames = getScopeNames;
22
+ /**
23
+ * Get scope definition by name from library scopes
24
+ */
25
+ function getScopeDefinition(libraryScopes, scopeName) {
26
+ return libraryScopes?.[scopeName];
27
+ }
28
+ exports.getScopeDefinition = getScopeDefinition;
29
+ /**
30
+ * Get scope color by name from library scopes
31
+ * Returns the defined color, or default color if not found
32
+ */
33
+ function getScopeColor(libraryScopes, scopeName) {
34
+ return libraryScopes?.[scopeName]?.color ?? exports.DEFAULT_SCOPE_COLOR;
35
+ }
36
+ exports.getScopeColor = getScopeColor;
37
+ /**
38
+ * Normalize scope names to NormalizedScope array using library scope definitions
39
+ */
40
+ function normalizeScopes(scopeNames, libraryScopes) {
41
+ if (!scopeNames)
42
+ return [];
43
+ return scopeNames.map((name) => {
44
+ const definition = libraryScopes?.[name];
45
+ return {
46
+ name,
47
+ color: definition?.color ?? exports.DEFAULT_SCOPE_COLOR,
48
+ icon: definition?.icon,
49
+ description: definition?.description,
50
+ external: definition?.external,
51
+ };
52
+ });
53
+ }
54
+ exports.normalizeScopes = normalizeScopes;
55
+ /**
56
+ * Get scope icon by name from library scopes
57
+ * Returns the defined icon, or undefined if not found
58
+ */
59
+ function getScopeIcon(libraryScopes, scopeName) {
60
+ return libraryScopes?.[scopeName]?.icon;
61
+ }
62
+ exports.getScopeIcon = getScopeIcon;
63
+ /**
64
+ * Build a scope color map from .scopes.canvas
65
+ * Returns a simple name -> color mapping for fast lookups
66
+ *
67
+ * @deprecated The library.scopes parameter has been removed. Use scopesCanvas instead.
68
+ * @param scopesCanvas - Canvas containing scope definitions with colors
69
+ * @returns Map of scope name to color (hex format)
70
+ */
71
+ function buildScopeColorMap(scopesCanvas) {
72
+ return buildScopeColorMapFromCanvas(scopesCanvas);
73
+ }
74
+ exports.buildScopeColorMap = buildScopeColorMap;
75
+ /**
76
+ * Get all scope names defined in library
77
+ */
78
+ function getAllScopeNames(library) {
79
+ if (!library?.scopes)
80
+ return [];
81
+ return Object.keys(library.scopes);
82
+ }
83
+ exports.getAllScopeNames = getAllScopeNames;
84
+ /**
85
+ * Build scope color map from .scopes.canvas nodes
86
+ * Extracts color from otel-scope nodes only
87
+ *
88
+ * @param scopesCanvas - Canvas containing scope definitions
89
+ * @returns Map of scope name to color (hex format)
90
+ */
91
+ function buildScopeColorMapFromCanvas(scopesCanvas) {
92
+ const colorMap = {};
93
+ if (!scopesCanvas?.nodes)
94
+ return colorMap;
95
+ for (const node of scopesCanvas.nodes) {
96
+ // Only process otel-scope nodes
97
+ if (!(0, canvas_1.isOtelScopeNode)(node))
98
+ continue;
99
+ const scopeName = node.otel?.scope;
100
+ if (!scopeName)
101
+ continue;
102
+ // Get color from node.color field and resolve presets to hex
103
+ const resolvedColor = (0, canvas_1.resolveCanvasColor)(node.color);
104
+ if (resolvedColor) {
105
+ colorMap[scopeName] = resolvedColor;
106
+ }
107
+ else {
108
+ // Use default color if no color specified
109
+ colorMap[scopeName] = exports.DEFAULT_SCOPE_COLOR;
110
+ }
111
+ }
112
+ return colorMap;
113
+ }
114
+ exports.buildScopeColorMapFromCanvas = buildScopeColorMapFromCanvas;
115
+ /**
116
+ * Extract all scope names from a scopes canvas
117
+ *
118
+ * @param scopesCanvas - Canvas containing scope definitions
119
+ * @returns Array of scope names
120
+ */
121
+ function getScopeNamesFromCanvas(scopesCanvas) {
122
+ if (!scopesCanvas?.nodes)
123
+ return [];
124
+ return scopesCanvas.nodes
125
+ .filter(canvas_1.isOtelScopeNode)
126
+ .map(node => node.otel?.scope)
127
+ .filter((scope) => !!scope);
128
+ }
129
+ exports.getScopeNamesFromCanvas = getScopeNamesFromCanvas;
130
+ /**
131
+ * Get scope node by scope name
132
+ *
133
+ * @param scopesCanvas - Canvas containing scope definitions
134
+ * @param scopeName - Name of the scope to find
135
+ * @returns The scope node, or undefined if not found
136
+ */
137
+ function getScopeNodeFromCanvas(scopesCanvas, scopeName) {
138
+ if (!scopesCanvas?.nodes)
139
+ return undefined;
140
+ return scopesCanvas.nodes.find(node => (0, canvas_1.isOtelScopeNode)(node) && node.otel?.scope === scopeName);
141
+ }
142
+ exports.getScopeNodeFromCanvas = getScopeNodeFromCanvas;
143
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Scope-Namespace Nesting Validator
3
+ *
4
+ * Cross-canvas check: every `event-namespace.paths` entry declared in a
5
+ * scope's events canvas must be covered by that scope's own `paths`.
6
+ * Surfaces `scopes-namespace-paths-escape` when a namespace claims a region
7
+ * outside its owning scope.
8
+ *
9
+ * Runs alongside the existing scopes-canvas validation but requires both
10
+ * canvases as input, so it lives outside `ScopesCanvasValidator` (which is
11
+ * single-canvas).
12
+ */
13
+ import type { ExtendedCanvas } from '../types/canvas';
14
+ import type { ScopesCanvasViolation } from './ScopesCanvasValidator';
15
+ /**
16
+ * One events canvas paired with the scope it documents.
17
+ * The mapping comes from the existing scope → events-canvas filename
18
+ * convention (see `ScopeEventsValidator`); callers resolve it before
19
+ * passing it in.
20
+ */
21
+ export interface ScopeEventsCanvasPair {
22
+ scope: string;
23
+ eventsCanvas: ExtendedCanvas;
24
+ eventsCanvasPath?: string;
25
+ }
26
+ export interface ValidateScopeNamespaceNestingInput {
27
+ scopesCanvas: ExtendedCanvas;
28
+ scopesCanvasPath?: string;
29
+ eventsCanvases: readonly ScopeEventsCanvasPair[];
30
+ }
31
+ /**
32
+ * For every namespace.paths entry, verify it is covered by its scope's paths.
33
+ * Scopes without `paths` impose no constraint (opt-in per scope) and are
34
+ * skipped. Namespaces without `paths` are also skipped — namespace-level
35
+ * enforcement remains independently opt-in.
36
+ */
37
+ export declare function validateScopeNamespaceNesting(input: ValidateScopeNamespaceNestingInput): ScopesCanvasViolation[];
38
+ //# sourceMappingURL=validateScopeNamespaceNesting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateScopeNamespaceNesting.d.ts","sourceRoot":"","sources":["../../src/scopes/validateScopeNamespaceNesting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,cAAc,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,cAAc,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,qBAAqB,EAAE,CA2CzB"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * Scope-Namespace Nesting Validator
4
+ *
5
+ * Cross-canvas check: every `event-namespace.paths` entry declared in a
6
+ * scope's events canvas must be covered by that scope's own `paths`.
7
+ * Surfaces `scopes-namespace-paths-escape` when a namespace claims a region
8
+ * outside its owning scope.
9
+ *
10
+ * Runs alongside the existing scopes-canvas validation but requires both
11
+ * canvases as input, so it lives outside `ScopesCanvasValidator` (which is
12
+ * single-canvas).
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.validateScopeNamespaceNesting = void 0;
16
+ const canvas_1 = require("../types/canvas");
17
+ const path_helpers_1 = require("../events/path-helpers");
18
+ /**
19
+ * For every namespace.paths entry, verify it is covered by its scope's paths.
20
+ * Scopes without `paths` impose no constraint (opt-in per scope) and are
21
+ * skipped. Namespaces without `paths` are also skipped — namespace-level
22
+ * enforcement remains independently opt-in.
23
+ */
24
+ function validateScopeNamespaceNesting(input) {
25
+ const { scopesCanvas, scopesCanvasPath, eventsCanvases } = input;
26
+ const violations = [];
27
+ // Build scope → paths map from the scopes canvas.
28
+ const scopePaths = new Map();
29
+ for (const node of scopesCanvas.nodes || []) {
30
+ if (!(0, canvas_1.isOtelScopeNode)(node))
31
+ continue;
32
+ const scope = node.otel?.scope;
33
+ const paths = node.paths;
34
+ if (!scope || !paths || paths.length === 0)
35
+ continue;
36
+ scopePaths.set(scope, paths);
37
+ }
38
+ // For each events canvas, walk its event-namespace nodes and check that
39
+ // every namespace.paths entry sits inside the owning scope's paths.
40
+ for (const pair of eventsCanvases) {
41
+ const ownerPaths = scopePaths.get(pair.scope);
42
+ if (!ownerPaths)
43
+ continue; // scope opted out — nothing to check
44
+ for (const node of pair.eventsCanvas.nodes || []) {
45
+ if (node?.type !== 'event-namespace')
46
+ continue;
47
+ const ns = node.namespace;
48
+ if (!ns?.name || !Array.isArray(ns.paths) || ns.paths.length === 0)
49
+ continue;
50
+ for (const declared of ns.paths) {
51
+ const covered = ownerPaths.some((sp) => (0, path_helpers_1.pathCovers)(sp, declared));
52
+ if (covered)
53
+ continue;
54
+ violations.push({
55
+ ruleId: 'scopes-namespace-paths-escape',
56
+ severity: 'error',
57
+ file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
58
+ path: `nodes[scope="${pair.scope}"].paths`,
59
+ message: `Namespace "${ns.name}" path "${declared}" escapes the bounds of scope "${pair.scope}" (paths: ${ownerPaths.map((p) => `"${p}"`).join(', ')})`,
60
+ impact: 'A namespace claiming code outside its owning scope breaks the scope→namespace partition; events from that file would be attributed to the wrong scope',
61
+ suggestion: `Either move the namespace path under one of "${pair.scope}"'s paths, or extend the scope to cover the namespace's region. If the code genuinely belongs to a different scope, declare the namespace in that scope's events canvas instead.`,
62
+ });
63
+ }
64
+ }
65
+ }
66
+ return violations;
67
+ }
68
+ exports.validateScopeNamespaceNesting = validateScopeNamespaceNesting;
69
+ //# sourceMappingURL=validateScopeNamespaceNesting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateScopeNamespaceNesting.js","sourceRoot":"","sources":["../../src/scopes/validateScopeNamespaceNesting.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAGH,4CAAkD;AAClD,yDAAoD;AAqBpD;;;;;GAKG;AACH,SAAgB,6BAA6B,CAC3C,KAAyC;IAEzC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACjE,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,kDAAkD;IAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE;QAC3C,IAAI,CAAC,IAAA,wBAAe,EAAC,IAAI,CAAC;YAAE,SAAS;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACrD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC9B;IAED,wEAAwE;IACxE,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QACjC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,SAAS,CAAC,qCAAqC;QAEhE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE;YAChD,IAAK,IAAY,EAAE,IAAI,KAAK,iBAAiB;gBAAE,SAAS;YACxD,MAAM,EAAE,GAAI,IAAY,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAE7E,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,KAAiB,EAAE;gBAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAClE,IAAI,OAAO;oBAAE,SAAS;gBAEtB,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,+BAA+B;oBACvC,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,gBAAgB,IAAI,6CAA6C;oBACvE,IAAI,EAAE,gBAAgB,IAAI,CAAC,KAAK,UAAU;oBAC1C,OAAO,EAAE,cAAc,EAAE,CAAC,IAAI,WAAW,QAAQ,kCAAkC,IAAI,CAAC,KAAK,aAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACvJ,MAAM,EAAE,uJAAuJ;oBAC/J,UAAU,EAAE,gDAAgD,IAAI,CAAC,KAAK,kLAAkL;iBACzP,CAAC,CAAC;aACJ;SACF;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AA7CD,sEA6CC"}