@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,131 @@
1
+ /**
2
+ * OTLP Trace Parser
3
+ *
4
+ * Extracts structured data from OTLP traces for scope-based matching.
5
+ *
6
+ * Responsibilities:
7
+ * - Extract resources (service info, attributes)
8
+ * - Extract scopes (instrumentation libraries)
9
+ * - Map spans to their scopes
10
+ * - Extract span events
11
+ * - Convert OTLP timestamps and IDs to usable formats
12
+ */
13
+ import type { OtelExportTraceServiceRequest, OtelSpanEvent, OtelKeyValue } from '../types/otel';
14
+ import type { TraceResource } from '../types/registered-trace';
15
+ /**
16
+ * Extracted span information
17
+ */
18
+ export interface ExtractedSpan {
19
+ spanId: string;
20
+ spanName: string;
21
+ parentSpanId?: string;
22
+ traceId: string;
23
+ startTime: number;
24
+ endTime: number;
25
+ duration: number;
26
+ attributes: Record<string, unknown>;
27
+ events: ExtractedEvent[];
28
+ status: {
29
+ code: number;
30
+ message?: string;
31
+ };
32
+ scopeName: string;
33
+ }
34
+ /**
35
+ * Extracted event information
36
+ */
37
+ export interface ExtractedEvent {
38
+ name: string;
39
+ timestamp: number;
40
+ attributes: Record<string, unknown>;
41
+ }
42
+ /**
43
+ * Parser for OTLP traces
44
+ */
45
+ export declare class OtlpTraceParser {
46
+ /**
47
+ * Extract all resources from OTLP trace
48
+ *
49
+ * Returns array of resources, each with their scopes and span mappings.
50
+ */
51
+ extractResources(otlpData: OtelExportTraceServiceRequest): TraceResource[];
52
+ /**
53
+ * Extract single resource
54
+ */
55
+ private extractResource;
56
+ /**
57
+ * Extract service identifier for routing
58
+ *
59
+ * Priority: dev.server.url > service.name
60
+ */
61
+ private extractServiceIdentifier;
62
+ /**
63
+ * Extract all scopes from scopeSpans
64
+ */
65
+ private extractScopes;
66
+ /**
67
+ * Get all spans for a specific scope
68
+ */
69
+ getSpansForScope(otlpData: OtelExportTraceServiceRequest, scopeName: string): ExtractedSpan[];
70
+ /**
71
+ * Extract span information
72
+ */
73
+ private extractSpan;
74
+ /**
75
+ * Extract events from span
76
+ */
77
+ extractEvents(events: OtelSpanEvent[]): ExtractedEvent[];
78
+ /**
79
+ * Extract basic trace information
80
+ */
81
+ extractTraceInfo(otlpData: OtelExportTraceServiceRequest): {
82
+ traceId: string;
83
+ name: string;
84
+ startTime: number;
85
+ endTime: number;
86
+ duration: number;
87
+ spanCount: number;
88
+ hasErrors: boolean;
89
+ };
90
+ /**
91
+ * Extract trace ID
92
+ */
93
+ private extractTraceId;
94
+ /**
95
+ * Extract trace name (root span name)
96
+ */
97
+ private extractTraceName;
98
+ /**
99
+ * Extract time range across all spans
100
+ */
101
+ private extractTimeRange;
102
+ /**
103
+ * Count total spans
104
+ */
105
+ private countSpans;
106
+ /**
107
+ * Detect if any span has errors
108
+ */
109
+ private detectErrors;
110
+ /**
111
+ * Get all spans from trace (flattened)
112
+ */
113
+ private getAllSpans;
114
+ /**
115
+ * Convert OTLP attributes to simple key-value record
116
+ */
117
+ convertAttributes(attrs: OtelKeyValue[]): Record<string, unknown>;
118
+ /**
119
+ * Extract value from OTLP AnyValue
120
+ */
121
+ private extractAttributeValue;
122
+ /**
123
+ * Convert nanoseconds to milliseconds
124
+ */
125
+ private nanoToMillis;
126
+ /**
127
+ * Check if trace is in local development mode
128
+ */
129
+ isLocalDevelopment(otlpData: OtelExportTraceServiceRequest): boolean;
130
+ }
131
+ //# sourceMappingURL=OtlpTraceParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpTraceParser.d.ts","sourceRoot":"","sources":["../../src/parsers/OtlpTraceParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,6BAA6B,EAI7B,aAAa,EACb,YAAY,EAEb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,6BAA6B,GAAG,aAAa,EAAE;IAW1E;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,gBAAgB,CACd,QAAQ,EAAE,6BAA6B,EACvC,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE;IAgBlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE;IAQxD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,6BAA6B,GAAG;QACzD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;KACpB;IAkBD;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAajE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,6BAA6B,GAAG,OAAO;CA4BrE"}
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ /**
3
+ * OTLP Trace Parser
4
+ *
5
+ * Extracts structured data from OTLP traces for scope-based matching.
6
+ *
7
+ * Responsibilities:
8
+ * - Extract resources (service info, attributes)
9
+ * - Extract scopes (instrumentation libraries)
10
+ * - Map spans to their scopes
11
+ * - Extract span events
12
+ * - Convert OTLP timestamps and IDs to usable formats
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OtlpTraceParser = void 0;
16
+ /**
17
+ * Parser for OTLP traces
18
+ */
19
+ class OtlpTraceParser {
20
+ /**
21
+ * Extract all resources from OTLP trace
22
+ *
23
+ * Returns array of resources, each with their scopes and span mappings.
24
+ */
25
+ extractResources(otlpData) {
26
+ const resources = [];
27
+ for (const resourceSpan of otlpData.resourceSpans || []) {
28
+ const resource = this.extractResource(resourceSpan);
29
+ resources.push(resource);
30
+ }
31
+ return resources;
32
+ }
33
+ /**
34
+ * Extract single resource
35
+ */
36
+ extractResource(resourceSpan) {
37
+ const attributes = this.convertAttributes(resourceSpan.resource.attributes);
38
+ // Extract service identifier (for routing)
39
+ const serviceIdentifier = this.extractServiceIdentifier(attributes);
40
+ // Extract service name
41
+ const serviceName = attributes['service.name'] || 'unknown';
42
+ // Extract all scopes within this resource
43
+ const scopes = this.extractScopes(resourceSpan.scopeSpans || []);
44
+ return {
45
+ serviceIdentifier,
46
+ serviceName,
47
+ attributes,
48
+ scopes,
49
+ };
50
+ }
51
+ /**
52
+ * Extract service identifier for routing
53
+ *
54
+ * Priority: dev.server.url > service.name
55
+ */
56
+ extractServiceIdentifier(attributes) {
57
+ return (attributes['dev.server.url'] ||
58
+ attributes['service.name'] ||
59
+ 'unknown');
60
+ }
61
+ /**
62
+ * Extract all scopes from scopeSpans
63
+ */
64
+ extractScopes(scopeSpans) {
65
+ const scopes = [];
66
+ for (const scopeSpan of scopeSpans) {
67
+ const scope = scopeSpan.scope;
68
+ if (!scope)
69
+ continue;
70
+ // Extract span IDs for this scope
71
+ const spanIds = scopeSpan.spans?.map((span) => span.spanId) || [];
72
+ scopes.push({
73
+ scope: {
74
+ name: scope.name,
75
+ version: scope.version || '0.0.0',
76
+ attributes: scope.attributes
77
+ ? this.convertAttributes(scope.attributes)
78
+ : undefined,
79
+ schemaUrl: scopeSpan.schemaUrl,
80
+ },
81
+ spanIds,
82
+ });
83
+ }
84
+ return scopes;
85
+ }
86
+ /**
87
+ * Get all spans for a specific scope
88
+ */
89
+ getSpansForScope(otlpData, scopeName) {
90
+ const spans = [];
91
+ for (const resourceSpan of otlpData.resourceSpans || []) {
92
+ for (const scopeSpan of resourceSpan.scopeSpans || []) {
93
+ if (scopeSpan.scope?.name === scopeName) {
94
+ for (const span of scopeSpan.spans || []) {
95
+ spans.push(this.extractSpan(span, scopeName));
96
+ }
97
+ }
98
+ }
99
+ }
100
+ return spans;
101
+ }
102
+ /**
103
+ * Extract span information
104
+ */
105
+ extractSpan(span, scopeName) {
106
+ const startTime = this.nanoToMillis(span.startTimeUnixNano);
107
+ const endTime = this.nanoToMillis(span.endTimeUnixNano);
108
+ return {
109
+ spanId: span.spanId,
110
+ spanName: span.name,
111
+ parentSpanId: span.parentSpanId,
112
+ traceId: span.traceId,
113
+ startTime,
114
+ endTime,
115
+ duration: endTime - startTime,
116
+ attributes: this.convertAttributes(span.attributes),
117
+ events: this.extractEvents(span.events || []),
118
+ status: {
119
+ code: span.status.code,
120
+ message: span.status.message,
121
+ },
122
+ scopeName,
123
+ };
124
+ }
125
+ /**
126
+ * Extract events from span
127
+ */
128
+ extractEvents(events) {
129
+ return events.map((event) => ({
130
+ name: event.name,
131
+ timestamp: this.nanoToMillis(event.timeUnixNano),
132
+ attributes: this.convertAttributes(event.attributes || []),
133
+ }));
134
+ }
135
+ /**
136
+ * Extract basic trace information
137
+ */
138
+ extractTraceInfo(otlpData) {
139
+ const traceId = this.extractTraceId(otlpData);
140
+ const name = this.extractTraceName(otlpData);
141
+ const { startTime, endTime } = this.extractTimeRange(otlpData);
142
+ const spanCount = this.countSpans(otlpData);
143
+ const hasErrors = this.detectErrors(otlpData);
144
+ return {
145
+ traceId,
146
+ name,
147
+ startTime,
148
+ endTime,
149
+ duration: endTime - startTime,
150
+ spanCount,
151
+ hasErrors,
152
+ };
153
+ }
154
+ /**
155
+ * Extract trace ID
156
+ */
157
+ extractTraceId(otlpData) {
158
+ const firstSpan = otlpData.resourceSpans?.[0]?.scopeSpans?.[0]?.spans?.[0];
159
+ return firstSpan?.traceId || 'unknown';
160
+ }
161
+ /**
162
+ * Extract trace name (root span name)
163
+ */
164
+ extractTraceName(otlpData) {
165
+ // Find root span (no parentSpanId) or use first span
166
+ const allSpans = this.getAllSpans(otlpData);
167
+ const rootSpan = allSpans.find((s) => !s.parentSpanId) || allSpans[0];
168
+ return rootSpan?.name || 'Unknown Trace';
169
+ }
170
+ /**
171
+ * Extract time range across all spans
172
+ */
173
+ extractTimeRange(otlpData) {
174
+ let minStart = Number.MAX_SAFE_INTEGER;
175
+ let maxEnd = 0;
176
+ for (const resourceSpan of otlpData.resourceSpans || []) {
177
+ for (const scopeSpan of resourceSpan.scopeSpans || []) {
178
+ for (const span of scopeSpan.spans || []) {
179
+ const start = this.nanoToMillis(span.startTimeUnixNano);
180
+ const end = this.nanoToMillis(span.endTimeUnixNano);
181
+ if (start < minStart)
182
+ minStart = start;
183
+ if (end > maxEnd)
184
+ maxEnd = end;
185
+ }
186
+ }
187
+ }
188
+ return {
189
+ startTime: minStart === Number.MAX_SAFE_INTEGER ? Date.now() : minStart,
190
+ endTime: maxEnd || Date.now(),
191
+ };
192
+ }
193
+ /**
194
+ * Count total spans
195
+ */
196
+ countSpans(otlpData) {
197
+ let count = 0;
198
+ for (const resourceSpan of otlpData.resourceSpans || []) {
199
+ for (const scopeSpan of resourceSpan.scopeSpans || []) {
200
+ count += scopeSpan.spans?.length || 0;
201
+ }
202
+ }
203
+ return count;
204
+ }
205
+ /**
206
+ * Detect if any span has errors
207
+ */
208
+ detectErrors(otlpData) {
209
+ for (const resourceSpan of otlpData.resourceSpans || []) {
210
+ for (const scopeSpan of resourceSpan.scopeSpans || []) {
211
+ for (const span of scopeSpan.spans || []) {
212
+ if (span.status.code === 2) {
213
+ // ERROR
214
+ return true;
215
+ }
216
+ }
217
+ }
218
+ }
219
+ return false;
220
+ }
221
+ /**
222
+ * Get all spans from trace (flattened)
223
+ */
224
+ getAllSpans(otlpData) {
225
+ const spans = [];
226
+ for (const resourceSpan of otlpData.resourceSpans || []) {
227
+ for (const scopeSpan of resourceSpan.scopeSpans || []) {
228
+ spans.push(...(scopeSpan.spans || []));
229
+ }
230
+ }
231
+ return spans;
232
+ }
233
+ /**
234
+ * Convert OTLP attributes to simple key-value record
235
+ */
236
+ convertAttributes(attrs) {
237
+ const result = {};
238
+ for (const attr of attrs || []) {
239
+ const value = this.extractAttributeValue(attr.value);
240
+ if (value !== undefined) {
241
+ result[attr.key] = value;
242
+ }
243
+ }
244
+ return result;
245
+ }
246
+ /**
247
+ * Extract value from OTLP AnyValue
248
+ */
249
+ extractAttributeValue(value) {
250
+ if (value.stringValue !== undefined)
251
+ return value.stringValue;
252
+ if (value.intValue !== undefined)
253
+ return value.intValue;
254
+ if (value.doubleValue !== undefined)
255
+ return value.doubleValue;
256
+ if (value.boolValue !== undefined)
257
+ return value.boolValue;
258
+ // Handle complex types
259
+ if (value.arrayValue) {
260
+ return value.arrayValue.values.map((v) => this.extractAttributeValue(v));
261
+ }
262
+ if (value.kvlistValue) {
263
+ const obj = {};
264
+ for (const kv of value.kvlistValue.values) {
265
+ obj[kv.key] = this.extractAttributeValue(kv.value);
266
+ }
267
+ return obj;
268
+ }
269
+ if (value.bytesValue) {
270
+ return value.bytesValue;
271
+ }
272
+ return undefined;
273
+ }
274
+ /**
275
+ * Convert nanoseconds to milliseconds
276
+ */
277
+ nanoToMillis(nanos) {
278
+ if (!nanos)
279
+ return 0;
280
+ const nanosNum = typeof nanos === 'string' ? parseInt(nanos, 10) : nanos;
281
+ return Math.floor(nanosNum / 1000000);
282
+ }
283
+ /**
284
+ * Check if trace is in local development mode
285
+ */
286
+ isLocalDevelopment(otlpData) {
287
+ const resources = this.extractResources(otlpData);
288
+ for (const resource of resources) {
289
+ // Check for dev.mode flag
290
+ if (resource.attributes?.['dev.mode'] === true) {
291
+ return true;
292
+ }
293
+ // Check for dev workspace path
294
+ if (resource.attributes?.['dev.workspace.path']) {
295
+ return true;
296
+ }
297
+ // Check for dev version patterns in scopes
298
+ for (const { scope } of resource.scopes) {
299
+ if (scope.version?.includes('-dev') ||
300
+ scope.version?.includes('-local') ||
301
+ scope.version === '0.0.0-dev') {
302
+ return true;
303
+ }
304
+ }
305
+ }
306
+ return false;
307
+ }
308
+ }
309
+ exports.OtlpTraceParser = OtlpTraceParser;
310
+ //# sourceMappingURL=OtlpTraceParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OtlpTraceParser.js","sourceRoot":"","sources":["../../src/parsers/OtlpTraceParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * CompositeRegistry - Routes between local and remote registries
3
+ *
4
+ * Decision logic:
5
+ * 1. Check if scope is in local development mode
6
+ * 2. If yes → use LocalRegistry
7
+ * 3. If no → use RemoteRegistry
8
+ *
9
+ * This is the main registry implementation that should be used in production.
10
+ */
11
+ import type { FileTree } from '@principal-ai/repository-abstraction';
12
+ import type { StoryboardRegistryInterface, ScopeLookupResult } from '../types/registered-trace';
13
+ import type { LocalRegistry } from './LocalRegistry';
14
+ import type { RemoteRegistry } from './RemoteRegistry';
15
+ /**
16
+ * Composite registry that routes to local or remote
17
+ */
18
+ export declare class CompositeRegistry implements StoryboardRegistryInterface {
19
+ private localRegistry;
20
+ private remoteRegistry;
21
+ constructor(localRegistry: LocalRegistry, remoteRegistry: RemoteRegistry);
22
+ lookupByScope(scope: {
23
+ name: string;
24
+ version: string;
25
+ }, resource: {
26
+ attributes?: Record<string, unknown>;
27
+ }): Promise<ScopeLookupResult>;
28
+ /**
29
+ * Determine if this scope is in local development mode
30
+ */
31
+ private isLocalDevelopment;
32
+ listScopes(): Promise<Array<{
33
+ name: string;
34
+ versions: string[];
35
+ }>>;
36
+ supportsHotReload(): boolean;
37
+ /**
38
+ * Get the local registry (for workspace management)
39
+ */
40
+ getLocalRegistry(): LocalRegistry;
41
+ /**
42
+ * Get the remote registry (for cache management, etc.)
43
+ */
44
+ getRemoteRegistry(): RemoteRegistry;
45
+ /**
46
+ * Register a local workspace (convenience method)
47
+ */
48
+ registerWorkspace(fileTree: FileTree): Promise<string[]>;
49
+ /**
50
+ * Unregister a local workspace (convenience method)
51
+ */
52
+ unregisterWorkspace(scopeName: string): void;
53
+ /**
54
+ * Get list of registered local workspaces
55
+ */
56
+ getRegisteredWorkspaces(): Array<{
57
+ scopeName: string;
58
+ fileTreeSha: string;
59
+ }>;
60
+ /**
61
+ * Invalidate cache for a workspace (convenience method)
62
+ *
63
+ * Call this when .principal-views files change to trigger rebuild.
64
+ */
65
+ invalidateCache(scopeName: string): void;
66
+ /**
67
+ * Cleanup: destroy local registry watchers
68
+ */
69
+ destroy(): void;
70
+ }
71
+ //# sourceMappingURL=CompositeRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompositeRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/CompositeRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,2BAA2B;IAEjE,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;gBADd,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc;IAGlC,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;IAY7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuBpB,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAmBxE,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI9D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,uBAAuB,IAAI,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5E;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * CompositeRegistry - Routes between local and remote registries
4
+ *
5
+ * Decision logic:
6
+ * 1. Check if scope is in local development mode
7
+ * 2. If yes → use LocalRegistry
8
+ * 3. If no → use RemoteRegistry
9
+ *
10
+ * This is the main registry implementation that should be used in production.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CompositeRegistry = void 0;
14
+ /**
15
+ * Composite registry that routes to local or remote
16
+ */
17
+ class CompositeRegistry {
18
+ constructor(localRegistry, remoteRegistry) {
19
+ this.localRegistry = localRegistry;
20
+ this.remoteRegistry = remoteRegistry;
21
+ }
22
+ async lookupByScope(scope, resource) {
23
+ // Check if this is local development
24
+ if (this.isLocalDevelopment(resource, scope)) {
25
+ console.log('[CompositeRegistry] Using LocalRegistry for:', scope.name);
26
+ return this.localRegistry.lookupByScope(scope, resource);
27
+ }
28
+ // Use remote registry for published libraries/services
29
+ console.log('[CompositeRegistry] Using RemoteRegistry for:', scope.name);
30
+ return this.remoteRegistry.lookupByScope(scope, resource);
31
+ }
32
+ /**
33
+ * Determine if this scope is in local development mode
34
+ */
35
+ isLocalDevelopment(resource, scope) {
36
+ // Check for dev.mode flag
37
+ if (resource.attributes?.['dev.mode'] === true) {
38
+ console.log('[CompositeRegistry] Dev mode detected (dev.mode=true)');
39
+ return true;
40
+ }
41
+ // Check for dev version patterns
42
+ if (scope.version?.includes('-dev') ||
43
+ scope.version?.includes('-local') ||
44
+ scope.version === '0.0.0-dev') {
45
+ console.log('[CompositeRegistry] Dev mode detected (dev version pattern):', scope.version);
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ async listScopes() {
51
+ // Combine scopes from both registries
52
+ const localScopes = await this.localRegistry.listScopes();
53
+ const remoteScopes = await this.remoteRegistry.listScopes();
54
+ // Merge, preferring local for conflicts
55
+ const scopeMap = new Map();
56
+ for (const scope of remoteScopes) {
57
+ scopeMap.set(scope.name, scope);
58
+ }
59
+ for (const scope of localScopes) {
60
+ scopeMap.set(scope.name, scope); // Local overrides remote
61
+ }
62
+ return Array.from(scopeMap.values());
63
+ }
64
+ supportsHotReload() {
65
+ return this.localRegistry.supportsHotReload();
66
+ }
67
+ /**
68
+ * Get the local registry (for workspace management)
69
+ */
70
+ getLocalRegistry() {
71
+ return this.localRegistry;
72
+ }
73
+ /**
74
+ * Get the remote registry (for cache management, etc.)
75
+ */
76
+ getRemoteRegistry() {
77
+ return this.remoteRegistry;
78
+ }
79
+ /**
80
+ * Register a local workspace (convenience method)
81
+ */
82
+ async registerWorkspace(fileTree) {
83
+ return this.localRegistry.registerWorkspace(fileTree);
84
+ }
85
+ /**
86
+ * Unregister a local workspace (convenience method)
87
+ */
88
+ unregisterWorkspace(scopeName) {
89
+ this.localRegistry.unregisterWorkspace(scopeName);
90
+ }
91
+ /**
92
+ * Get list of registered local workspaces
93
+ */
94
+ getRegisteredWorkspaces() {
95
+ return this.localRegistry.getRegisteredWorkspaces();
96
+ }
97
+ /**
98
+ * Invalidate cache for a workspace (convenience method)
99
+ *
100
+ * Call this when .principal-views files change to trigger rebuild.
101
+ */
102
+ invalidateCache(scopeName) {
103
+ this.localRegistry.invalidateCache(scopeName);
104
+ }
105
+ /**
106
+ * Cleanup: destroy local registry watchers
107
+ */
108
+ destroy() {
109
+ this.localRegistry.destroy();
110
+ }
111
+ }
112
+ exports.CompositeRegistry = CompositeRegistry;
113
+ //# sourceMappingURL=CompositeRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompositeRegistry.js","sourceRoot":"","sources":["../../src/registry/CompositeRegistry.ts"],"names":[],"mappings":"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"}