@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,335 @@
1
+ "use strict";
2
+ /**
3
+ * LocalRegistry - Browser-safe registry for local workspaces
4
+ *
5
+ * Features:
6
+ * - Uses FileTree abstraction (browser-safe)
7
+ * - No version registry lookups (uses FileTree directly)
8
+ * - Cache invalidation via external triggers
9
+ * - Supports multiple registered workspaces
10
+ * - Auto-discovers scope names from library.yaml resources
11
+ *
12
+ * Note: File watching must be handled externally by calling invalidateCache()
13
+ * when .principal-views files change.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.LocalRegistry = void 0;
17
+ const CanvasDiscovery_1 = require("../discovery/CanvasDiscovery");
18
+ const LibraryDiscovery_1 = require("../discovery/LibraryDiscovery");
19
+ /**
20
+ * Local registry for development mode
21
+ */
22
+ class LocalRegistry {
23
+ constructor(fileReader, fsAdapter) {
24
+ this.fileReader = fileReader;
25
+ this.cache = new Map();
26
+ this.workspaces = new Map(); // workspaceId → registration
27
+ this.scopeToWorkspaceId = new Map(); // scopeName → workspaceId
28
+ this.libraryDiscovery = null;
29
+ this.discovery = new CanvasDiscovery_1.CanvasDiscovery();
30
+ if (fsAdapter) {
31
+ this.libraryDiscovery = new LibraryDiscovery_1.LibraryDiscovery(fsAdapter);
32
+ }
33
+ }
34
+ /**
35
+ * Register a local workspace
36
+ *
37
+ * Auto-discovers service names and owned scopes from library.yaml resources section.
38
+ * Each service in resources with a service.name becomes a registered scope.
39
+ * Additionally, owned-scopes from each service are mapped to their owning service.
40
+ *
41
+ * File watching should be handled externally. When .principal-views files change,
42
+ * call invalidateCache(scopeName) to rebuild the snapshot.
43
+ *
44
+ * @param fileTree - FileTree for the workspace
45
+ * @returns Array of all registered scope names (services + owned scopes)
46
+ */
47
+ async registerWorkspace(fileTree) {
48
+ // Use stable identifier: rootPath (repository path) or sha (content hash)
49
+ // Note: metadata.id includes a timestamp suffix making it unique per build,
50
+ // which would cause duplicate registrations on every file tree update
51
+ const workspaceId = fileTree.metadata.sourceInfo?.rootPath || fileTree.sha || fileTree.metadata.id;
52
+ // Check if already registered
53
+ if (this.workspaces.has(workspaceId)) {
54
+ const existing = this.workspaces.get(workspaceId);
55
+ const currentSha = fileTree.sha || '';
56
+ // Check if fileTree content changed (different SHA)
57
+ if (existing.fileTreeSha !== currentSha) {
58
+ console.log('[LocalRegistry] Workspace content changed, re-discovering scopes:', {
59
+ workspaceId,
60
+ oldSha: existing.fileTreeSha,
61
+ newSha: currentSha,
62
+ });
63
+ // Re-discover scope names from updated library.yaml
64
+ const { serviceNames, ownedScopes, scopeToServiceMap } = await this.discoverScopesInfo(fileTree);
65
+ // Clear old scope mappings
66
+ for (const scopeName of [...existing.serviceNames, ...existing.ownedScopes]) {
67
+ this.scopeToWorkspaceId.delete(scopeName);
68
+ }
69
+ // Update registration with new scope info
70
+ existing.fileTree = fileTree;
71
+ existing.fileTreeSha = currentSha;
72
+ existing.serviceNames = serviceNames;
73
+ existing.ownedScopes = ownedScopes;
74
+ // Update scope-to-workspace mapping with new scopes
75
+ for (const [scopeName] of scopeToServiceMap) {
76
+ this.scopeToWorkspaceId.set(scopeName, workspaceId);
77
+ }
78
+ console.log('[LocalRegistry] Updated workspace registration:', {
79
+ workspaceId,
80
+ serviceNames,
81
+ ownedScopes,
82
+ fileTreeSha: currentSha,
83
+ });
84
+ return [...new Set([...serviceNames, ...ownedScopes])];
85
+ }
86
+ console.log('[LocalRegistry] Workspace already registered (no changes):', workspaceId);
87
+ // Update the fileTree reference to the latest version
88
+ existing.fileTree = fileTree;
89
+ return [...new Set([...existing.serviceNames, ...existing.ownedScopes])];
90
+ }
91
+ // Auto-discover service names and owned scopes from library.yaml
92
+ const { serviceNames, ownedScopes, scopeToServiceMap } = await this.discoverScopesInfo(fileTree);
93
+ if (serviceNames.length === 0) {
94
+ console.warn('[LocalRegistry] No service names discovered for workspace:', workspaceId);
95
+ console.warn('[LocalRegistry] Make sure library.yaml has a resources section with service.name attributes');
96
+ }
97
+ // Register workspace
98
+ this.workspaces.set(workspaceId, {
99
+ workspaceId,
100
+ fileTree,
101
+ fileTreeSha: fileTree.sha || '',
102
+ serviceNames,
103
+ ownedScopes,
104
+ });
105
+ // Map all scope names (services + owned scopes) to this workspace
106
+ for (const [scopeName] of scopeToServiceMap) {
107
+ this.scopeToWorkspaceId.set(scopeName, workspaceId);
108
+ }
109
+ console.log('[LocalRegistry] Registered workspace:', {
110
+ workspaceId,
111
+ serviceNames,
112
+ ownedScopes,
113
+ fileTreeSha: fileTree.sha,
114
+ });
115
+ return [...new Set([...serviceNames, ...ownedScopes])];
116
+ }
117
+ /**
118
+ * Unregister a workspace (cleanup)
119
+ * @param workspaceId - Workspace ID (rootPath, sha, or metadata.id)
120
+ */
121
+ unregisterWorkspace(workspaceId) {
122
+ const workspace = this.workspaces.get(workspaceId);
123
+ if (!workspace) {
124
+ return;
125
+ }
126
+ // Clear cache for all scope names (services + owned scopes)
127
+ const allScopes = [...workspace.serviceNames, ...workspace.ownedScopes];
128
+ for (const scopeName of allScopes) {
129
+ this.cache.delete(scopeName);
130
+ this.scopeToWorkspaceId.delete(scopeName);
131
+ }
132
+ // Remove registration
133
+ this.workspaces.delete(workspaceId);
134
+ console.log('[LocalRegistry] Unregistered workspace:', {
135
+ workspaceId,
136
+ serviceNames: workspace.serviceNames,
137
+ ownedScopes: workspace.ownedScopes,
138
+ });
139
+ }
140
+ async lookupByScope(scope, _resource) {
141
+ // Map scope name to workspace ID
142
+ const workspaceId = this.scopeToWorkspaceId.get(scope.name);
143
+ if (!workspaceId) {
144
+ console.log('[LocalRegistry] No workspace registered for scope:', scope.name);
145
+ return { found: false, reason: 'scope_not_owned', scopeName: scope.name };
146
+ }
147
+ const workspace = this.workspaces.get(workspaceId);
148
+ if (!workspace) {
149
+ console.error('[LocalRegistry] Workspace not found:', workspaceId);
150
+ return { found: false, reason: 'scope_not_owned', scopeName: scope.name };
151
+ }
152
+ // Check cache first (cache by scope name for granularity)
153
+ const cacheKey = scope.name;
154
+ if (this.cache.has(cacheKey)) {
155
+ const cachedSnapshot = this.cache.get(cacheKey);
156
+ if (cachedSnapshot.storyboards.length === 0) {
157
+ return { found: false, reason: 'no_storyboards', scopeName: scope.name };
158
+ }
159
+ return { found: true, snapshot: cachedSnapshot };
160
+ }
161
+ // Build VersionSnapshot from FileTree
162
+ const snapshot = await this.buildFromFileTree(workspace.fileTree);
163
+ // Cache it
164
+ this.cache.set(cacheKey, snapshot);
165
+ // Check if storyboards were found
166
+ if (snapshot.storyboards.length === 0) {
167
+ return { found: false, reason: 'no_storyboards', scopeName: scope.name };
168
+ }
169
+ return { found: true, snapshot };
170
+ }
171
+ /**
172
+ * Auto-discover service names and owned scopes from library.yaml files
173
+ *
174
+ * Uses LibraryDiscovery to find all library.yaml files across packages
175
+ * and extract service.name and owned-scopes from their resources sections.
176
+ *
177
+ * @param fileTree - FileTree to discover scopes from
178
+ * @returns Object with serviceNames, ownedScopes, and scopeToServiceMap
179
+ */
180
+ async discoverScopesInfo(fileTree) {
181
+ if (!this.libraryDiscovery) {
182
+ console.warn('[LocalRegistry] No LibraryDiscovery available - provide FileSystemAdapter to constructor');
183
+ return { serviceNames: [], ownedScopes: [], scopeToServiceMap: new Map() };
184
+ }
185
+ try {
186
+ const result = await this.libraryDiscovery.discover(fileTree, {
187
+ fileReader: this.fileReader,
188
+ });
189
+ if (result.errors.length > 0) {
190
+ console.warn('[LocalRegistry] Errors during library discovery:', result.errors);
191
+ }
192
+ // Collect all owned scopes across all services (deduplicated)
193
+ const ownedScopesSet = new Set();
194
+ for (const lib of result.libraries) {
195
+ for (const service of lib.servicesWithScopes) {
196
+ for (const scope of service.ownedScopes) {
197
+ ownedScopesSet.add(scope);
198
+ }
199
+ }
200
+ }
201
+ const ownedScopes = [...ownedScopesSet];
202
+ console.log('[LocalRegistry] Discovered services and scopes:', {
203
+ serviceNames: result.allServiceNames,
204
+ ownedScopes,
205
+ scopeToServiceMapSize: result.scopeToServiceMap.size,
206
+ });
207
+ return {
208
+ serviceNames: result.allServiceNames,
209
+ ownedScopes,
210
+ scopeToServiceMap: result.scopeToServiceMap,
211
+ };
212
+ }
213
+ catch (error) {
214
+ console.error('[LocalRegistry] Failed to discover scopes:', error);
215
+ return { serviceNames: [], ownedScopes: [], scopeToServiceMap: new Map() };
216
+ }
217
+ }
218
+ /**
219
+ * Build VersionSnapshot from FileTree using CanvasDiscovery
220
+ */
221
+ async buildFromFileTree(fileTree) {
222
+ // Use CanvasDiscovery to find all storyboards
223
+ const discoveryResult = await this.discovery.discover(fileTree, {
224
+ fileReader: this.fileReader,
225
+ includeContent: true,
226
+ });
227
+ const snapshot = {
228
+ repositoryUrl: 'local',
229
+ commitSha: fileTree.sha || 'dev',
230
+ storyboards: discoveryResult.storyboards,
231
+ registeredAt: new Date().toISOString(),
232
+ metadata: {
233
+ environment: 'development',
234
+ isLocal: true,
235
+ },
236
+ };
237
+ // Log errors if any
238
+ if (discoveryResult.errors.length > 0) {
239
+ console.warn('[LocalRegistry] Discovery errors:', discoveryResult.errors);
240
+ }
241
+ return snapshot;
242
+ }
243
+ /**
244
+ * Invalidate cache for a scope
245
+ *
246
+ * Call this when .principal-views files change to trigger rebuild on next lookup.
247
+ * Debouncing should be handled by external file watcher if needed.
248
+ */
249
+ invalidateCache(scopeName) {
250
+ this.cache.delete(scopeName);
251
+ console.log('[LocalRegistry] Cache invalidated:', scopeName);
252
+ }
253
+ async listScopes() {
254
+ const scopes = [];
255
+ for (const workspace of this.workspaces.values()) {
256
+ // Include service names and owned scopes
257
+ const allScopes = [...workspace.serviceNames, ...workspace.ownedScopes];
258
+ for (const scopeName of allScopes) {
259
+ scopes.push({
260
+ name: scopeName,
261
+ versions: ['dev'], // Local workspaces always use 'dev' version
262
+ });
263
+ }
264
+ }
265
+ return scopes;
266
+ }
267
+ supportsHotReload() {
268
+ return true;
269
+ }
270
+ /**
271
+ * Get list of registered workspaces
272
+ */
273
+ getRegisteredWorkspaces() {
274
+ const workspaces = [];
275
+ for (const workspace of this.workspaces.values()) {
276
+ // Include service names and owned scopes
277
+ const allScopes = [...workspace.serviceNames, ...workspace.ownedScopes];
278
+ for (const scopeName of allScopes) {
279
+ workspaces.push({
280
+ scopeName,
281
+ fileTreeSha: workspace.fileTree.sha || 'unknown',
282
+ });
283
+ }
284
+ }
285
+ return workspaces;
286
+ }
287
+ /**
288
+ * Get all cached VersionSnapshots
289
+ *
290
+ * Returns snapshots that have been built and cached via lookupByScope().
291
+ * Note: This only returns snapshots that have been looked up at least once.
292
+ * Call lookupByScope() for each scope to ensure all snapshots are cached.
293
+ */
294
+ getAllSnapshots() {
295
+ return Array.from(this.cache.values());
296
+ }
297
+ /**
298
+ * Get all snapshots for all registered scopes
299
+ *
300
+ * Unlike getAllSnapshots(), this method ensures all registered scopes
301
+ * have their snapshots built and cached before returning.
302
+ * Note: Returns one snapshot per workspace (not per scope).
303
+ */
304
+ async getAllSnapshotsForRegisteredScopes() {
305
+ const snapshots = [];
306
+ const seenWorkspaceIds = new Set();
307
+ for (const workspace of this.workspaces.values()) {
308
+ // Only build one snapshot per workspace
309
+ if (seenWorkspaceIds.has(workspace.workspaceId))
310
+ continue;
311
+ seenWorkspaceIds.add(workspace.workspaceId);
312
+ // Use first service name to trigger snapshot build
313
+ const firstServiceName = workspace.serviceNames[0];
314
+ if (firstServiceName) {
315
+ const result = await this.lookupByScope({ name: firstServiceName, version: 'dev' }, {});
316
+ if (result.found) {
317
+ snapshots.push(result.snapshot);
318
+ }
319
+ }
320
+ }
321
+ return snapshots;
322
+ }
323
+ /**
324
+ * Cleanup: clear all state
325
+ */
326
+ destroy() {
327
+ console.log('[LocalRegistry] Destroying and clearing state...');
328
+ // Clear state
329
+ this.workspaces.clear();
330
+ this.cache.clear();
331
+ this.discovery.clearCache();
332
+ }
333
+ }
334
+ exports.LocalRegistry = LocalRegistry;
335
+ //# sourceMappingURL=LocalRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalRegistry.js","sourceRoot":"","sources":["../../src/registry/LocalRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * RemoteRegistry - Calls web-ade API for published libraries
3
+ *
4
+ * Features:
5
+ * - HTTP caching (immutable schematics)
6
+ * - Handles PURL lookups (published libraries)
7
+ * - Handles customerId + serviceName lookups (services)
8
+ * - Version → commit hash resolution
9
+ */
10
+ import type { StoryboardRegistryInterface, ScopeLookupResult } from '../types/registered-trace';
11
+ import type { VersionSnapshot } from '../types/version-registry';
12
+ /**
13
+ * Remote registry implementation
14
+ */
15
+ export declare class RemoteRegistry implements StoryboardRegistryInterface {
16
+ private apiBaseUrl;
17
+ private cache;
18
+ private scopeToSnapshotKey;
19
+ private cacheTTL;
20
+ constructor(apiBaseUrl: string, cacheTTL?: number);
21
+ lookupByScope(scope: {
22
+ name: string;
23
+ version: string;
24
+ }, resource: {
25
+ attributes?: Record<string, unknown>;
26
+ }): Promise<ScopeLookupResult>;
27
+ /**
28
+ * Lookup published library by PURL
29
+ */
30
+ private lookupLibrary;
31
+ /**
32
+ * Lookup service by customerId + serviceName
33
+ */
34
+ private lookupService;
35
+ /**
36
+ * Lookup version mapping (version string → commit hash)
37
+ */
38
+ private lookupVersionMapping;
39
+ /**
40
+ * Fetch schematic by repository URL and commit SHA
41
+ */
42
+ private fetchSchematic;
43
+ /**
44
+ * Parse PURL string into components
45
+ *
46
+ * Format: pkg:ecosystem/namespace/name
47
+ * Examples:
48
+ * pkg:npm/@acme/auth-library
49
+ * pkg:pypi/acme-auth-library
50
+ * pkg:maven/com.acme/auth-library
51
+ * pkg:golang/github.com/acme/auth-lib
52
+ */
53
+ private parsePURL;
54
+ /**
55
+ * Get repository URL from package registry metadata
56
+ *
57
+ * This queries the package registry (npm, pypi, etc.) to get the repository URL.
58
+ */
59
+ private getPackageRepository;
60
+ /**
61
+ * Get repository URL from npm registry
62
+ */
63
+ private getNpmRepository;
64
+ /**
65
+ * Get repository URL from PyPI
66
+ */
67
+ private getPypiRepository;
68
+ listScopes(): Promise<Array<{
69
+ name: string;
70
+ versions: string[];
71
+ }>>;
72
+ supportsHotReload(): boolean;
73
+ /**
74
+ * Register a schematic directly (for preloading)
75
+ *
76
+ * This is similar to LocalRegistry's registerWorkspace() - it allows you to
77
+ * preload schematics before traces arrive, so the owned-scopes mapping is
78
+ * already populated when lookupByScope is called.
79
+ *
80
+ * @param snapshot - The VersionSnapshot to register
81
+ * @returns Array of registered scope names (from owned-scopes)
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * // Fetch schematic from your API
86
+ * const response = await fetch('/api/schematics/my-panel');
87
+ * const snapshot = await response.json();
88
+ *
89
+ * // Register it with RemoteRegistry
90
+ * const scopes = registry.registerSchematic(snapshot);
91
+ * console.log('Registered scopes:', scopes);
92
+ * // Now traces with these scopes will match this schematic's storyboards
93
+ * ```
94
+ */
95
+ registerSchematic(snapshot: VersionSnapshot): string[];
96
+ /**
97
+ * Register owned scopes from a schematic's resources
98
+ *
99
+ * This builds a mapping from instrumentation scope names to their owning
100
+ * schematic cache key. When a trace comes in with a scope listed in
101
+ * `owned-scopes`, we can route it to the correct storyboards without
102
+ * needing a separate lookup.
103
+ */
104
+ private registerOwnedScopes;
105
+ /**
106
+ * Extract all owned scopes from resources (for logging)
107
+ */
108
+ private getOwnedScopesFromResources;
109
+ /**
110
+ * Clear the cache (useful for testing)
111
+ */
112
+ clearCache(): void;
113
+ /**
114
+ * Get cache statistics
115
+ */
116
+ getCacheStats(): {
117
+ size: number;
118
+ ttl: number;
119
+ ownedScopesCount: number;
120
+ };
121
+ }
122
+ //# sourceMappingURL=RemoteRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/RemoteRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAsCjE;;GAEG;AACH,qBAAa,cAAe,YAAW,2BAA2B;IAM9D,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAS;gBAGf,UAAU,EAAE,MAAM,EAC1B,QAAQ,GAAE,MAAuB;IAK7B,aAAa,CACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACxC,QAAQ,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GACjD,OAAO,CAAC,iBAAiB,CAAC;IAmD7B;;OAEG;YACW,aAAa;IA8B3B;;OAEG;YACW,aAAa;IAkC3B;;OAEG;YACW,oBAAoB;IAkClC;;OAEG;YACW,cAAc;IAoD5B;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS;IA2BjB;;;;OAIG;YACW,oBAAoB;IAiBlC;;OAEG;YACW,gBAAgB;IAuB9B;;OAEG;YACW,iBAAiB;IAazB,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAKxE,iBAAiB,IAAI,OAAO;IAI5B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,EAAE;IA8BtD;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAWnC;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;CAOzE"}