@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,399 @@
1
+ "use strict";
2
+ /**
3
+ * RemoteRegistry - Calls web-ade API for published libraries
4
+ *
5
+ * Features:
6
+ * - HTTP caching (immutable schematics)
7
+ * - Handles PURL lookups (published libraries)
8
+ * - Handles customerId + serviceName lookups (services)
9
+ * - Version → commit hash resolution
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RemoteRegistry = void 0;
13
+ const utils_1 = require("../scopes/utils");
14
+ /**
15
+ * Remote registry implementation
16
+ */
17
+ class RemoteRegistry {
18
+ constructor(apiBaseUrl, cacheTTL = 60 * 60 * 1000 // Default: 1 hour
19
+ ) {
20
+ this.apiBaseUrl = apiBaseUrl;
21
+ this.cache = new Map();
22
+ this.scopeToSnapshotKey = new Map();
23
+ this.cacheTTL = cacheTTL;
24
+ }
25
+ async lookupByScope(scope, resource) {
26
+ // First, check if this scope is owned by a cached schematic
27
+ const owningCacheKey = this.scopeToSnapshotKey.get(scope.name);
28
+ if (owningCacheKey) {
29
+ const cached = this.cache.get(owningCacheKey);
30
+ if (cached && cached.expiresAt > Date.now()) {
31
+ console.log('[RemoteRegistry] Scope found via owned-scopes mapping:', {
32
+ scopeName: scope.name,
33
+ cacheKey: owningCacheKey,
34
+ });
35
+ if (cached.snapshot.storyboards.length === 0) {
36
+ return { found: false, reason: 'no_storyboards', scopeName: scope.name };
37
+ }
38
+ return { found: true, snapshot: cached.snapshot };
39
+ }
40
+ // Cache expired, remove stale mapping
41
+ this.scopeToSnapshotKey.delete(scope.name);
42
+ }
43
+ // Check if this is a library (PURL format)
44
+ if (scope.name.startsWith('pkg:')) {
45
+ const snapshot = await this.lookupLibrary(scope.name, scope.version);
46
+ if (!snapshot) {
47
+ return { found: false, reason: 'scope_not_owned', scopeName: scope.name };
48
+ }
49
+ if (snapshot.storyboards.length === 0) {
50
+ return { found: false, reason: 'no_storyboards', scopeName: scope.name };
51
+ }
52
+ return { found: true, snapshot };
53
+ }
54
+ // Otherwise it's a service - need customerId
55
+ const customerId = resource.attributes?.['customer.id'];
56
+ if (!customerId) {
57
+ console.warn('[RemoteRegistry] Service scope requires customer.id in resource attributes:', { scopeName: scope.name });
58
+ return { found: false, reason: 'scope_not_owned', scopeName: scope.name };
59
+ }
60
+ const snapshot = await this.lookupService(customerId, scope.name, scope.version);
61
+ if (!snapshot) {
62
+ return { found: false, reason: 'scope_not_owned', scopeName: scope.name };
63
+ }
64
+ if (snapshot.storyboards.length === 0) {
65
+ return { found: false, reason: 'no_storyboards', scopeName: scope.name };
66
+ }
67
+ return { found: true, snapshot };
68
+ }
69
+ /**
70
+ * Lookup published library by PURL
71
+ */
72
+ async lookupLibrary(purl, version) {
73
+ try {
74
+ // Parse PURL to extract components
75
+ const components = this.parsePURL(purl);
76
+ if (!components) {
77
+ console.error('[RemoteRegistry] Invalid PURL format:', purl);
78
+ return null;
79
+ }
80
+ // Get repository URL from package registry
81
+ const repoUrl = await this.getPackageRepository(components);
82
+ if (!repoUrl) {
83
+ console.error('[RemoteRegistry] Could not resolve repository for package:', purl);
84
+ return null;
85
+ }
86
+ // Lookup version → commit hash
87
+ const versionInfo = await this.lookupVersionMapping(repoUrl, version);
88
+ if (!versionInfo) {
89
+ return null;
90
+ }
91
+ // Fetch schematic by commit hash
92
+ return this.fetchSchematic(repoUrl, versionInfo.gitSHA);
93
+ }
94
+ catch (error) {
95
+ console.error('[RemoteRegistry] Library lookup failed:', error);
96
+ return null;
97
+ }
98
+ }
99
+ /**
100
+ * Lookup service by customerId + serviceName
101
+ */
102
+ async lookupService(customerId, serviceName, version) {
103
+ try {
104
+ // Lookup version → commit hash
105
+ const url = new URL(`${this.apiBaseUrl}/api/versions/lookup`);
106
+ url.searchParams.set('customerId', customerId);
107
+ url.searchParams.set('serviceName', serviceName);
108
+ url.searchParams.set('version', version);
109
+ const response = await fetch(url.toString());
110
+ if (!response.ok) {
111
+ if (response.status === 404) {
112
+ console.log('[RemoteRegistry] Version not found:', { customerId, serviceName, version });
113
+ return null;
114
+ }
115
+ throw new Error(`API error: ${response.status}`);
116
+ }
117
+ const data = await response.json();
118
+ if (!data.found || !data.registration) {
119
+ return null;
120
+ }
121
+ // Fetch schematic by commit hash
122
+ return this.fetchSchematic(data.registration.repositoryUrl, data.registration.gitSHA);
123
+ }
124
+ catch (error) {
125
+ console.error('[RemoteRegistry] Service lookup failed:', error);
126
+ return null;
127
+ }
128
+ }
129
+ /**
130
+ * Lookup version mapping (version string → commit hash)
131
+ */
132
+ async lookupVersionMapping(repositoryUrl, version) {
133
+ try {
134
+ // For libraries, we use repositoryUrl + version
135
+ // The API expects this format for published packages
136
+ const url = new URL(`${this.apiBaseUrl}/api/versions/lookup`);
137
+ url.searchParams.set('repositoryUrl', repositoryUrl);
138
+ url.searchParams.set('version', version);
139
+ const response = await fetch(url.toString());
140
+ if (!response.ok) {
141
+ if (response.status === 404) {
142
+ return null;
143
+ }
144
+ throw new Error(`API error: ${response.status}`);
145
+ }
146
+ const data = await response.json();
147
+ if (!data.found || !data.registration) {
148
+ return null;
149
+ }
150
+ return {
151
+ gitSHA: data.registration.gitSHA,
152
+ repositoryUrl: data.registration.repositoryUrl,
153
+ };
154
+ }
155
+ catch (error) {
156
+ console.error('[RemoteRegistry] Version mapping lookup failed:', error);
157
+ return null;
158
+ }
159
+ }
160
+ /**
161
+ * Fetch schematic by repository URL and commit SHA
162
+ */
163
+ async fetchSchematic(repositoryUrl, commitSha) {
164
+ // Check cache first
165
+ const cacheKey = `${repositoryUrl}@${commitSha}`;
166
+ const cached = this.cache.get(cacheKey);
167
+ if (cached && cached.expiresAt > Date.now()) {
168
+ return cached.snapshot;
169
+ }
170
+ try {
171
+ const url = new URL(`${this.apiBaseUrl}/api/versions/schematic`);
172
+ url.searchParams.set('repositoryUrl', repositoryUrl);
173
+ url.searchParams.set('commitSha', commitSha);
174
+ const response = await fetch(url.toString());
175
+ if (!response.ok) {
176
+ if (response.status === 404) {
177
+ console.log('[RemoteRegistry] Schematic not found:', { repositoryUrl, commitSha });
178
+ return null;
179
+ }
180
+ throw new Error(`API error: ${response.status}`);
181
+ }
182
+ const snapshot = await response.json();
183
+ // Cache the result
184
+ this.cache.set(cacheKey, {
185
+ snapshot,
186
+ expiresAt: Date.now() + this.cacheTTL,
187
+ });
188
+ // Register owned scopes for routing
189
+ if (snapshot.resources) {
190
+ this.registerOwnedScopes(cacheKey, snapshot.resources);
191
+ }
192
+ console.log('[RemoteRegistry] Schematic fetched:', {
193
+ repositoryUrl,
194
+ commitSha,
195
+ storyboardCount: snapshot.storyboards.length,
196
+ ownedScopes: this.getOwnedScopesFromResources(snapshot.resources),
197
+ });
198
+ return snapshot;
199
+ }
200
+ catch (error) {
201
+ console.error('[RemoteRegistry] Schematic fetch failed:', error);
202
+ return null;
203
+ }
204
+ }
205
+ /**
206
+ * Parse PURL string into components
207
+ *
208
+ * Format: pkg:ecosystem/namespace/name
209
+ * Examples:
210
+ * pkg:npm/@acme/auth-library
211
+ * pkg:pypi/acme-auth-library
212
+ * pkg:maven/com.acme/auth-library
213
+ * pkg:golang/github.com/acme/auth-lib
214
+ */
215
+ parsePURL(purl) {
216
+ const match = purl.match(/^pkg:([^/]+)\/(.+)$/);
217
+ if (!match) {
218
+ return null;
219
+ }
220
+ const ecosystem = match[1];
221
+ const rest = match[2];
222
+ // Handle scoped packages (e.g., @acme/package-name)
223
+ const parts = rest.split('/');
224
+ if (parts.length === 2) {
225
+ return {
226
+ ecosystem,
227
+ namespace: parts[0],
228
+ name: parts[1],
229
+ };
230
+ }
231
+ else if (parts.length === 1) {
232
+ return {
233
+ ecosystem,
234
+ name: parts[0],
235
+ };
236
+ }
237
+ return null;
238
+ }
239
+ /**
240
+ * Get repository URL from package registry metadata
241
+ *
242
+ * This queries the package registry (npm, pypi, etc.) to get the repository URL.
243
+ */
244
+ async getPackageRepository(components) {
245
+ try {
246
+ switch (components.ecosystem) {
247
+ case 'npm':
248
+ return this.getNpmRepository(components);
249
+ case 'pypi':
250
+ return this.getPypiRepository(components);
251
+ default:
252
+ console.warn('[RemoteRegistry] Unsupported ecosystem:', components.ecosystem);
253
+ return null;
254
+ }
255
+ }
256
+ catch (error) {
257
+ console.error('[RemoteRegistry] Package repository lookup failed:', error);
258
+ return null;
259
+ }
260
+ }
261
+ /**
262
+ * Get repository URL from npm registry
263
+ */
264
+ async getNpmRepository(components) {
265
+ const packageName = components.namespace
266
+ ? `${components.namespace}/${components.name}`
267
+ : components.name;
268
+ const url = `https://registry.npmjs.org/${encodeURIComponent(packageName)}`;
269
+ const response = await fetch(url);
270
+ if (!response.ok) {
271
+ return null;
272
+ }
273
+ const data = await response.json();
274
+ const repoUrl = data.repository?.url || data.repository;
275
+ if (!repoUrl) {
276
+ return null;
277
+ }
278
+ // Clean up git URLs (git+https://github.com/... → https://github.com/...)
279
+ return repoUrl.replace(/^git\+/, '').replace(/\.git$/, '');
280
+ }
281
+ /**
282
+ * Get repository URL from PyPI
283
+ */
284
+ async getPypiRepository(components) {
285
+ const packageName = components.name;
286
+ const url = `https://pypi.org/pypi/${encodeURIComponent(packageName)}/json`;
287
+ const response = await fetch(url);
288
+ if (!response.ok) {
289
+ return null;
290
+ }
291
+ const data = await response.json();
292
+ return data.info?.project_urls?.Source || data.info?.home_page || null;
293
+ }
294
+ async listScopes() {
295
+ console.warn('[RemoteRegistry] listScopes not implemented for remote registry');
296
+ return [];
297
+ }
298
+ supportsHotReload() {
299
+ return false;
300
+ }
301
+ /**
302
+ * Register a schematic directly (for preloading)
303
+ *
304
+ * This is similar to LocalRegistry's registerWorkspace() - it allows you to
305
+ * preload schematics before traces arrive, so the owned-scopes mapping is
306
+ * already populated when lookupByScope is called.
307
+ *
308
+ * @param snapshot - The VersionSnapshot to register
309
+ * @returns Array of registered scope names (from owned-scopes)
310
+ *
311
+ * @example
312
+ * ```typescript
313
+ * // Fetch schematic from your API
314
+ * const response = await fetch('/api/schematics/my-panel');
315
+ * const snapshot = await response.json();
316
+ *
317
+ * // Register it with RemoteRegistry
318
+ * const scopes = registry.registerSchematic(snapshot);
319
+ * console.log('Registered scopes:', scopes);
320
+ * // Now traces with these scopes will match this schematic's storyboards
321
+ * ```
322
+ */
323
+ registerSchematic(snapshot) {
324
+ const cacheKey = `${snapshot.repositoryUrl}@${snapshot.commitSha}`;
325
+ // Cache the snapshot
326
+ this.cache.set(cacheKey, {
327
+ snapshot,
328
+ expiresAt: Date.now() + this.cacheTTL,
329
+ });
330
+ // Register owned scopes (supports both legacy array and new record format)
331
+ const registeredScopes = [];
332
+ if (snapshot.resources) {
333
+ for (const [_resourceName, attrs] of Object.entries(snapshot.resources)) {
334
+ const scopeNames = (0, utils_1.getScopeNames)(attrs['owned-scopes']);
335
+ for (const scope of scopeNames) {
336
+ this.scopeToSnapshotKey.set(scope, cacheKey);
337
+ registeredScopes.push(scope);
338
+ }
339
+ }
340
+ }
341
+ console.log('[RemoteRegistry] Registered schematic:', {
342
+ cacheKey,
343
+ storyboardCount: snapshot.storyboards?.length || 0,
344
+ registeredScopes,
345
+ });
346
+ return registeredScopes;
347
+ }
348
+ /**
349
+ * Register owned scopes from a schematic's resources
350
+ *
351
+ * This builds a mapping from instrumentation scope names to their owning
352
+ * schematic cache key. When a trace comes in with a scope listed in
353
+ * `owned-scopes`, we can route it to the correct storyboards without
354
+ * needing a separate lookup.
355
+ */
356
+ registerOwnedScopes(cacheKey, resources) {
357
+ for (const [_resourceName, attrs] of Object.entries(resources)) {
358
+ const scopeNames = (0, utils_1.getScopeNames)(attrs['owned-scopes']);
359
+ for (const scope of scopeNames) {
360
+ this.scopeToSnapshotKey.set(scope, cacheKey);
361
+ console.log('[RemoteRegistry] Registered owned scope:', {
362
+ scope,
363
+ cacheKey,
364
+ });
365
+ }
366
+ }
367
+ }
368
+ /**
369
+ * Extract all owned scopes from resources (for logging)
370
+ */
371
+ getOwnedScopesFromResources(resources) {
372
+ if (!resources)
373
+ return [];
374
+ const scopes = [];
375
+ for (const attrs of Object.values(resources)) {
376
+ scopes.push(...(0, utils_1.getScopeNames)(attrs['owned-scopes']));
377
+ }
378
+ return scopes;
379
+ }
380
+ /**
381
+ * Clear the cache (useful for testing)
382
+ */
383
+ clearCache() {
384
+ this.cache.clear();
385
+ this.scopeToSnapshotKey.clear();
386
+ }
387
+ /**
388
+ * Get cache statistics
389
+ */
390
+ getCacheStats() {
391
+ return {
392
+ size: this.cache.size,
393
+ ttl: this.cacheTTL,
394
+ ownedScopesCount: this.scopeToSnapshotKey.size,
395
+ };
396
+ }
397
+ }
398
+ exports.RemoteRegistry = RemoteRegistry;
399
+ //# sourceMappingURL=RemoteRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRegistry.js","sourceRoot":"","sources":["../../src/registry/RemoteRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * In-Memory Version Registry Implementation
3
+ *
4
+ * This is a simple in-memory implementation of the VersionRegistry interface,
5
+ * useful for testing and development. For production use, implement a persistent
6
+ * backend (database, S3, etc.).
7
+ */
8
+ import type { VersionRegistry, RegisterVersionRequest, GetVersionResponse, VersionIdentifier } from '../types/version-registry';
9
+ /**
10
+ * In-memory version registry for testing and development
11
+ */
12
+ export declare class InMemoryVersionRegistry implements VersionRegistry {
13
+ private versions;
14
+ /**
15
+ * Create a unique key for a version
16
+ */
17
+ private getKey;
18
+ /**
19
+ * Register a new version snapshot
20
+ */
21
+ register(request: RegisterVersionRequest): Promise<void>;
22
+ /**
23
+ * Get a version snapshot by repository URL and commit SHA
24
+ */
25
+ get(repositoryUrl: string, commitSha: string): Promise<GetVersionResponse>;
26
+ /**
27
+ * Check if a version exists in the registry
28
+ */
29
+ exists(repositoryUrl: string, commitSha: string): Promise<boolean>;
30
+ /**
31
+ * Delete a version from the registry
32
+ */
33
+ delete(repositoryUrl: string, commitSha: string): Promise<void>;
34
+ /**
35
+ * List all versions for a repository
36
+ */
37
+ listVersions(repositoryUrl: string): Promise<VersionIdentifier[]>;
38
+ /**
39
+ * Clear all versions (for testing)
40
+ */
41
+ clear(): void;
42
+ /**
43
+ * Get the number of versions in the registry (for testing)
44
+ */
45
+ get size(): number;
46
+ }
47
+ /**
48
+ * Create a new in-memory version registry
49
+ */
50
+ export declare function createInMemoryVersionRegistry(): InMemoryVersionRegistry;
51
+ //# sourceMappingURL=VersionRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/VersionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAA2C;IAE3D;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D;;OAEG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBhF;;OAEG;IACG,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE;;OAEG;IACG,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAevE;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * In-Memory Version Registry Implementation
4
+ *
5
+ * This is a simple in-memory implementation of the VersionRegistry interface,
6
+ * useful for testing and development. For production use, implement a persistent
7
+ * backend (database, S3, etc.).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createInMemoryVersionRegistry = exports.InMemoryVersionRegistry = void 0;
11
+ /**
12
+ * In-memory version registry for testing and development
13
+ */
14
+ class InMemoryVersionRegistry {
15
+ constructor() {
16
+ this.versions = new Map();
17
+ }
18
+ /**
19
+ * Create a unique key for a version
20
+ */
21
+ getKey(repositoryUrl, commitSha) {
22
+ return `${repositoryUrl}@${commitSha}`;
23
+ }
24
+ /**
25
+ * Register a new version snapshot
26
+ */
27
+ async register(request) {
28
+ const key = this.getKey(request.repositoryUrl, request.commitSha);
29
+ const snapshot = {
30
+ repositoryUrl: request.repositoryUrl,
31
+ commitSha: request.commitSha,
32
+ storyboards: request.storyboards,
33
+ registeredAt: new Date().toISOString(),
34
+ metadata: request.metadata,
35
+ };
36
+ this.versions.set(key, snapshot);
37
+ }
38
+ /**
39
+ * Get a version snapshot by repository URL and commit SHA
40
+ */
41
+ async get(repositoryUrl, commitSha) {
42
+ const key = this.getKey(repositoryUrl, commitSha);
43
+ const snapshot = this.versions.get(key);
44
+ if (!snapshot) {
45
+ return {
46
+ found: false,
47
+ error: `Version not found: ${repositoryUrl}@${commitSha}`,
48
+ };
49
+ }
50
+ return {
51
+ found: true,
52
+ snapshot,
53
+ };
54
+ }
55
+ /**
56
+ * Check if a version exists in the registry
57
+ */
58
+ async exists(repositoryUrl, commitSha) {
59
+ const key = this.getKey(repositoryUrl, commitSha);
60
+ return this.versions.has(key);
61
+ }
62
+ /**
63
+ * Delete a version from the registry
64
+ */
65
+ async delete(repositoryUrl, commitSha) {
66
+ const key = this.getKey(repositoryUrl, commitSha);
67
+ this.versions.delete(key);
68
+ }
69
+ /**
70
+ * List all versions for a repository
71
+ */
72
+ async listVersions(repositoryUrl) {
73
+ const versions = [];
74
+ for (const [_key, snapshot] of this.versions.entries()) {
75
+ if (snapshot.repositoryUrl === repositoryUrl) {
76
+ versions.push({
77
+ repositoryUrl: snapshot.repositoryUrl,
78
+ commitSha: snapshot.commitSha,
79
+ });
80
+ }
81
+ }
82
+ return versions.sort((a, b) => a.commitSha.localeCompare(b.commitSha));
83
+ }
84
+ /**
85
+ * Clear all versions (for testing)
86
+ */
87
+ clear() {
88
+ this.versions.clear();
89
+ }
90
+ /**
91
+ * Get the number of versions in the registry (for testing)
92
+ */
93
+ get size() {
94
+ return this.versions.size;
95
+ }
96
+ }
97
+ exports.InMemoryVersionRegistry = InMemoryVersionRegistry;
98
+ /**
99
+ * Create a new in-memory version registry
100
+ */
101
+ function createInMemoryVersionRegistry() {
102
+ return new InMemoryVersionRegistry();
103
+ }
104
+ exports.createInMemoryVersionRegistry = createInMemoryVersionRegistry;
105
+ //# sourceMappingURL=VersionRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionRegistry.js","sourceRoot":"","sources":["../../src/registry/VersionRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Principal Views Configuration Loader and Validator
3
+ * Handles loading and validating privu config files
4
+ */
5
+ import type { PrivuConfig, RuleSeverity } from './types';
6
+ /**
7
+ * Valid config file names in resolution order
8
+ */
9
+ export declare const CONFIG_FILE_NAMES: readonly [".privurc.yaml", ".privurc.yml", ".privurc.json"];
10
+ /**
11
+ * Default include patterns
12
+ */
13
+ export declare const DEFAULT_INCLUDE_PATTERNS: string[];
14
+ /**
15
+ * Default exclude patterns
16
+ */
17
+ export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
18
+ /**
19
+ * Valid severity values
20
+ */
21
+ export declare const VALID_SEVERITIES: readonly (RuleSeverity | false)[];
22
+ /**
23
+ * All valid rule IDs
24
+ */
25
+ export declare const VALID_RULE_IDS: readonly ["no-unknown-fields", "required-metadata", "valid-node-types", "valid-edge-types", "valid-color-format", "connection-type-references", "state-transition-references", "minimum-node-sources", "orphaned-node-types", "orphaned-edge-types", "unreachable-states", "dead-end-states", "valid-action-patterns"];
26
+ export type ValidRuleId = (typeof VALID_RULE_IDS)[number];
27
+ /**
28
+ * Rule-specific valid options
29
+ */
30
+ export declare const RULE_OPTIONS_SCHEMA: Record<string, string[]>;
31
+ export interface ConfigValidationError {
32
+ path: string;
33
+ message: string;
34
+ suggestion?: string;
35
+ }
36
+ export interface ConfigValidationResult {
37
+ valid: boolean;
38
+ errors: ConfigValidationError[];
39
+ config?: PrivuConfig;
40
+ }
41
+ /**
42
+ * Validate a VGC configuration object
43
+ */
44
+ export declare function validatePrivuConfig(config: unknown): ConfigValidationResult;
45
+ /**
46
+ * Get the default VGC configuration
47
+ */
48
+ export declare function getDefaultConfig(): PrivuConfig;
49
+ /**
50
+ * Merge configs with proper precedence (later configs override earlier)
51
+ */
52
+ export declare function mergeConfigs(...configs: (PrivuConfig | undefined)[]): PrivuConfig;
53
+ /**
54
+ * Format config validation errors for display
55
+ */
56
+ export declare function formatConfigErrors(errors: ConfigValidationError[]): string;
57
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/rules/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMzD;;GAEG;AACH,eAAO,MAAM,iBAAiB,6DAA8D,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAIpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAAwC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,EAQ7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,wTAkBjB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAIxD,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAuH3E;AAoHD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAO9C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,WAAW,CAkBjF;AAgED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAc1E"}