@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,620 @@
1
+ /**
2
+ * OpenTelemetry Types for Log Association and Trace Matching
3
+ *
4
+ * This module provides:
5
+ * 1. Re-exports of official OTLP types from @opentelemetry/otlp-transformer
6
+ * 2. Helper functions for working with OTLP data structures
7
+ * 3. Application-level types (TraceInfo, WorkflowMatchInfo)
8
+ * 4. Simplified types for logs and basic telemetry (backward compatible)
9
+ *
10
+ * @see https://opentelemetry.io/docs/specs/otel/protocol/otlp/
11
+ * @see https://opentelemetry.io/docs/specs/otel/logs/data-model/
12
+ * @see https://opentelemetry.io/docs/specs/otel/resource/semantic_conventions/
13
+ */
14
+
15
+ // =============================================================================
16
+ // OTLP Data Structures (JSON Format)
17
+ // =============================================================================
18
+
19
+ /**
20
+ * OTLP attribute value
21
+ *
22
+ * Based on OTLP/JSON specification. Represents a single value which can be
23
+ * a primitive type or a complex structure (array, key-value list).
24
+ */
25
+ export interface OtelAnyValue {
26
+ stringValue?: string;
27
+ intValue?: number;
28
+ doubleValue?: number;
29
+ boolValue?: boolean;
30
+ arrayValue?: { values: OtelAnyValue[] };
31
+ kvlistValue?: { values: OtelKeyValue[] };
32
+ bytesValue?: Uint8Array;
33
+ }
34
+
35
+ /**
36
+ * OTLP key-value pair (attribute)
37
+ */
38
+ export interface OtelKeyValue {
39
+ key: string;
40
+ value: OtelAnyValue;
41
+ }
42
+
43
+ /**
44
+ * OTLP resource
45
+ *
46
+ * Describes the entity producing telemetry (service, pod, host, etc.)
47
+ */
48
+ export interface OtelResourceData {
49
+ attributes: OtelKeyValue[];
50
+ droppedAttributesCount?: number;
51
+ }
52
+
53
+ /**
54
+ * OTLP span event
55
+ */
56
+ export interface OtelSpanEvent {
57
+ timeUnixNano: string;
58
+ name: string;
59
+ attributes: OtelKeyValue[];
60
+ droppedAttributesCount?: number;
61
+ }
62
+
63
+ /**
64
+ * OTLP span link
65
+ */
66
+ export interface OtelLink {
67
+ traceId: string | Uint8Array;
68
+ spanId: string | Uint8Array;
69
+ traceState?: string;
70
+ attributes: OtelKeyValue[];
71
+ droppedAttributesCount?: number;
72
+ }
73
+
74
+ /**
75
+ * OTLP span status
76
+ */
77
+ export interface OtelSpanStatus {
78
+ code: number; // 0 = UNSET, 1 = OK, 2 = ERROR
79
+ message?: string;
80
+ }
81
+
82
+ /**
83
+ * OTLP span
84
+ *
85
+ * Represents a unit of work in a distributed trace.
86
+ */
87
+ export interface OtelSpanData {
88
+ traceId: string;
89
+ spanId: string;
90
+ parentSpanId?: string;
91
+ name: string;
92
+ kind: number; // ESpanKind enum (0-5)
93
+ startTimeUnixNano: string;
94
+ endTimeUnixNano: string;
95
+ attributes: OtelKeyValue[];
96
+ droppedAttributesCount?: number;
97
+ events: OtelSpanEvent[];
98
+ droppedEventsCount?: number;
99
+ links?: OtelLink[];
100
+ droppedLinksCount?: number;
101
+ status: OtelSpanStatus;
102
+ }
103
+
104
+ /**
105
+ * OTLP instrumentation scope
106
+ */
107
+ export interface OtelInstrumentationScope {
108
+ name: string;
109
+ version?: string;
110
+ attributes?: OtelKeyValue[];
111
+ droppedAttributesCount?: number;
112
+ }
113
+
114
+ /**
115
+ * OTLP scope spans
116
+ */
117
+ export interface OtelScopeSpans {
118
+ scope?: OtelInstrumentationScope;
119
+ spans: OtelSpanData[];
120
+ schemaUrl?: string;
121
+ }
122
+
123
+ /**
124
+ * OTLP resource spans
125
+ */
126
+ export interface OtelResourceSpansData {
127
+ resource: OtelResourceData;
128
+ scopeSpans: OtelScopeSpans[];
129
+ schemaUrl?: string;
130
+ }
131
+
132
+ /**
133
+ * OTLP export trace service request
134
+ */
135
+ export interface OtelExportTraceServiceRequest {
136
+ resourceSpans: OtelResourceSpansData[];
137
+ }
138
+
139
+ // =============================================================================
140
+ // Helper Functions for OTLP Data
141
+ // =============================================================================
142
+
143
+ /**
144
+ * Extract string value from OTEL attribute value
145
+ *
146
+ * @param value - OTEL attribute value
147
+ * @returns String value if present, undefined otherwise
148
+ */
149
+ export function getAttributeStringValue(value: OtelAnyValue): string | undefined {
150
+ return value.stringValue ?? undefined;
151
+ }
152
+
153
+ /**
154
+ * Find attribute by key in attribute array
155
+ *
156
+ * @param attributes - Array of OTEL attributes
157
+ * @param key - Attribute key to find
158
+ * @returns Attribute if found, undefined otherwise
159
+ */
160
+ export function findAttribute(
161
+ attributes: OtelKeyValue[] | undefined,
162
+ key: string
163
+ ): OtelKeyValue | undefined {
164
+ return attributes?.find((attr) => attr.key === key);
165
+ }
166
+
167
+ /**
168
+ * Get attribute value by key
169
+ *
170
+ * Supports string, number, and boolean values. For complex types
171
+ * (arrays, maps), returns undefined.
172
+ *
173
+ * @param attributes - Array of OTEL attributes
174
+ * @param key - Attribute key to get
175
+ * @returns Attribute value if found and is a primitive type
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * const attrs: OtelKeyValue[] = [
180
+ * { key: 'http.method', value: { stringValue: 'GET' } },
181
+ * { key: 'http.status_code', value: { intValue: 200 } }
182
+ * ];
183
+ *
184
+ * getAttributeValue(attrs, 'http.method'); // 'GET'
185
+ * getAttributeValue(attrs, 'http.status_code'); // 200
186
+ * ```
187
+ */
188
+ export function getAttributeValue(
189
+ attributes: OtelKeyValue[] | undefined,
190
+ key: string
191
+ ): string | number | boolean | undefined {
192
+ const attr = findAttribute(attributes, key);
193
+ if (!attr) return undefined;
194
+
195
+ return (
196
+ attr.value.stringValue ??
197
+ attr.value.intValue ??
198
+ attr.value.doubleValue ??
199
+ attr.value.boolValue ??
200
+ undefined
201
+ );
202
+ }
203
+
204
+ /**
205
+ * Convert resource attributes to flat string map
206
+ *
207
+ * Only includes string-valued attributes. Useful for matching
208
+ * and filtering operations.
209
+ *
210
+ * @param resource - OTEL resource
211
+ * @returns Flat object with string key-value pairs
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * const resource: OtelResourceData = {
216
+ * attributes: [
217
+ * { key: 'service.name', value: { stringValue: 'checkout-api' } },
218
+ * { key: 'deployment.environment', value: { stringValue: 'production' } }
219
+ * ]
220
+ * };
221
+ *
222
+ * flattenResourceAttributes(resource);
223
+ * // { 'service.name': 'checkout-api', 'deployment.environment': 'production' }
224
+ * ```
225
+ */
226
+ export function flattenResourceAttributes(resource: OtelResourceData): Record<string, string> {
227
+ const result: Record<string, string> = {};
228
+
229
+ if (!resource.attributes) return result;
230
+
231
+ for (const attr of resource.attributes) {
232
+ const value = getAttributeStringValue(attr.value);
233
+ if (value !== undefined) {
234
+ result[attr.key] = value;
235
+ }
236
+ }
237
+
238
+ return result;
239
+ }
240
+
241
+ /**
242
+ * Parse OTEL nanosecond timestamp to milliseconds
243
+ *
244
+ * OTLP uses string representation for nanosecond timestamps in JSON format.
245
+ * This converts them to JavaScript milliseconds (standard Date format).
246
+ *
247
+ * @param nanos - Nanosecond timestamp as string
248
+ * @returns Milliseconds since Unix epoch
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * parseNanoTime('1737835200000000000'); // 1737835200000
253
+ * ```
254
+ */
255
+ export function parseNanoTime(nanos: string | number): number {
256
+ const nanosNum = typeof nanos === 'string' ? parseInt(nanos, 10) : nanos;
257
+ return nanosNum / 1_000_000;
258
+ }
259
+
260
+ /**
261
+ * Calculate span duration in milliseconds
262
+ *
263
+ * @param span - OTEL span
264
+ * @returns Duration in milliseconds
265
+ */
266
+ export function getSpanDuration(span: OtelSpanData): number {
267
+ const start = parseInt(span.startTimeUnixNano, 10);
268
+ const end = parseInt(span.endTimeUnixNano, 10);
269
+ return (end - start) / 1_000_000;
270
+ }
271
+
272
+ // =============================================================================
273
+ // Application-Level Types
274
+ // =============================================================================
275
+
276
+ /**
277
+ * Workflow matching metadata extracted from trace resource attributes
278
+ *
279
+ * Traces can be correlated to storyboards, workflows, and scenarios
280
+ * via resource attributes like pv.storyboard.id, pv.workflow.id, etc.
281
+ */
282
+ export interface WorkflowMatchInfo {
283
+ /** Storyboard ID */
284
+ storyboardId: string;
285
+ /** Storyboard name */
286
+ storyboardName: string;
287
+ /** Workflow ID (optional) */
288
+ workflowId?: string;
289
+ /** Workflow name (optional) */
290
+ workflowName?: string;
291
+ /** Scenario ID (optional) */
292
+ scenarioId?: string;
293
+ /** Scenario name (optional) */
294
+ scenarioName?: string;
295
+ /** Canvas node IDs that matched this trace */
296
+ matchedNodeIds?: string[];
297
+ }
298
+
299
+ /**
300
+ * Aggregated trace information
301
+ *
302
+ * Represents a complete trace with metadata extracted from all its spans.
303
+ * This is a higher-level view than individual spans, useful for trace lists,
304
+ * filtering, and visualization.
305
+ *
306
+ * @example
307
+ * ```typescript
308
+ * const trace: TraceInfo = {
309
+ * traceId: 'abc123',
310
+ * name: 'POST /api/checkout',
311
+ * startTime: 1737835200000,
312
+ * duration: 150,
313
+ * spanCount: 5,
314
+ * serviceNames: ['checkout-api', 'payment-service'],
315
+ * hasErrors: false,
316
+ * rootSpanId: 'span1'
317
+ * };
318
+ * ```
319
+ */
320
+ export interface TraceInfo {
321
+ /** Trace ID */
322
+ traceId: string;
323
+ /** Trace name (usually root span name) */
324
+ name: string;
325
+ /** Start timestamp in milliseconds */
326
+ startTime: number;
327
+ /** Duration in milliseconds */
328
+ duration: number;
329
+ /** Number of spans in trace */
330
+ spanCount: number;
331
+ /** Unique service names across all spans */
332
+ serviceNames: string[];
333
+ /** True if any span has error status */
334
+ hasErrors: boolean;
335
+ /** Root span ID (if identifiable) */
336
+ rootSpanId?: string;
337
+ /** Workflow matching metadata (if matched) */
338
+ matchedWorkflow?: WorkflowMatchInfo;
339
+ }
340
+
341
+ // =============================================================================
342
+ // Simplified Types (Backward Compatible)
343
+ // =============================================================================
344
+
345
+ /**
346
+ * @deprecated Use IAnyValue and helper functions instead
347
+ */
348
+
349
+ /**
350
+ * OpenTelemetry attribute value type per OTEL spec
351
+ * @see https://opentelemetry.io/docs/specs/otel/common/attribute-naming/
352
+ */
353
+ export type OtelAttributeValue = string | number | boolean | string[] | number[] | boolean[];
354
+
355
+ /**
356
+ * OpenTelemetry attributes (key-value pairs)
357
+ */
358
+ export type OtelAttributes = Record<string, OtelAttributeValue>;
359
+
360
+ /**
361
+ * OTEL Resource - describes the entity producing telemetry
362
+ *
363
+ * Resources are immutable metadata about the source of telemetry.
364
+ * Common attributes follow semantic conventions.
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const resource: OtelResource = {
369
+ * 'service.name': 'checkout-api',
370
+ * 'service.namespace': 'checkout',
371
+ * 'deployment.environment': 'production',
372
+ * 'k8s.pod.name': 'checkout-api-7d8f9c6b5d-x2j4k'
373
+ * };
374
+ * ```
375
+ */
376
+ export interface OtelResource {
377
+ // Service identification (most common)
378
+ 'service.name'?: string;
379
+ 'service.namespace'?: string;
380
+ 'service.instance.id'?: string;
381
+ 'service.version'?: string;
382
+
383
+ // Kubernetes
384
+ 'k8s.pod.name'?: string;
385
+ 'k8s.pod.uid'?: string;
386
+ 'k8s.deployment.name'?: string;
387
+ 'k8s.namespace.name'?: string;
388
+ 'k8s.node.name'?: string;
389
+ 'k8s.container.name'?: string;
390
+ 'k8s.replicaset.name'?: string;
391
+
392
+ // Cloud
393
+ 'cloud.provider'?: string;
394
+ 'cloud.region'?: string;
395
+ 'cloud.availability_zone'?: string;
396
+ 'cloud.account.id'?: string;
397
+
398
+ // Deployment
399
+ 'deployment.environment'?: string;
400
+
401
+ // Host
402
+ 'host.name'?: string;
403
+ 'host.id'?: string;
404
+ 'host.type'?: string;
405
+
406
+ // Process
407
+ 'process.pid'?: number;
408
+ 'process.executable.name'?: string;
409
+ 'process.runtime.name'?: string;
410
+ 'process.runtime.version'?: string;
411
+
412
+ // Database (for DB spans/logs)
413
+ 'db.system'?: string;
414
+ 'db.name'?: string;
415
+ 'db.user'?: string;
416
+
417
+ // Messaging (for queue spans/logs)
418
+ 'messaging.system'?: string;
419
+ 'messaging.destination.name'?: string;
420
+
421
+ // Allow arbitrary attributes
422
+ [key: string]: string | number | boolean | undefined;
423
+ }
424
+
425
+ /**
426
+ * OTEL Severity levels
427
+ *
428
+ * Can be either text names or numeric values (1-24).
429
+ * @see https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
430
+ */
431
+ export type OtelSeverityText = 'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'FATAL';
432
+ export type OtelSeverityNumber =
433
+ | 1
434
+ | 2
435
+ | 3
436
+ | 4
437
+ | 5
438
+ | 6
439
+ | 7
440
+ | 8
441
+ | 9
442
+ | 10
443
+ | 11
444
+ | 12
445
+ | 13
446
+ | 14
447
+ | 15
448
+ | 16
449
+ | 17
450
+ | 18
451
+ | 19
452
+ | 20
453
+ | 21
454
+ | 22
455
+ | 23
456
+ | 24;
457
+ export type OtelSeverity = OtelSeverityText | OtelSeverityNumber;
458
+
459
+ /**
460
+ * OTEL Log Record
461
+ *
462
+ * Represents a single log entry with resource context and optional trace correlation.
463
+ *
464
+ * @example
465
+ * ```typescript
466
+ * const log: OtelLog = {
467
+ * timestamp: Date.now(),
468
+ * severity: 'INFO',
469
+ * body: 'Payment processed successfully',
470
+ * resource: {
471
+ * 'service.name': 'payment-service',
472
+ * 'deployment.environment': 'production'
473
+ * },
474
+ * attributes: {
475
+ * 'payment.id': 'pay_123',
476
+ * 'payment.amount': 99.99
477
+ * },
478
+ * traceId: 'abc123',
479
+ * spanId: 'def456'
480
+ * };
481
+ * ```
482
+ */
483
+ export interface OtelLog {
484
+ /** Timestamp in milliseconds, nanoseconds, or ISO string */
485
+ timestamp: number | string;
486
+
487
+ /** Observed timestamp (when collector received it) */
488
+ observedTimestamp?: number | string;
489
+
490
+ /** Severity number (1-24) */
491
+ severity?: OtelSeverity;
492
+
493
+ /** Severity text (DEBUG, INFO, etc.) */
494
+ severityText?: string;
495
+
496
+ /** Log body - the actual message or structured content */
497
+ body: string | Record<string, unknown>;
498
+
499
+ /** Resource describing the source entity */
500
+ resource: OtelResource;
501
+
502
+ /** Log attributes (structured data specific to this log) */
503
+ attributes?: OtelAttributes;
504
+
505
+ /** Trace ID for correlation */
506
+ traceId?: string;
507
+
508
+ /** Span ID for correlation */
509
+ spanId?: string;
510
+
511
+ /** Trace flags */
512
+ traceFlags?: number;
513
+
514
+ /**
515
+ * Source location (for path-based matching)
516
+ * This extends OTEL with source file information for code coverage analysis.
517
+ */
518
+ source?: {
519
+ file?: string;
520
+ line?: number;
521
+ function?: string;
522
+ };
523
+ }
524
+
525
+ /**
526
+ * OTEL Span Kind
527
+ */
528
+ export type OtelSpanKind = 'INTERNAL' | 'SERVER' | 'CLIENT' | 'PRODUCER' | 'CONSUMER';
529
+
530
+ /**
531
+ * OTEL Span Status (simplified, for backward compatibility)
532
+ *
533
+ * @deprecated Use OtelSpanStatus from OTLP data structures instead
534
+ */
535
+ export interface OtelSimplifiedSpanStatus {
536
+ code: 'UNSET' | 'OK' | 'ERROR';
537
+ message?: string;
538
+ }
539
+
540
+ /**
541
+ * OTEL Span
542
+ *
543
+ * Represents a unit of work in a distributed trace.
544
+ * Used for trace-based edge derivation between canvas nodes.
545
+ *
546
+ * @example
547
+ * ```typescript
548
+ * const span: OtelSpan = {
549
+ * traceId: 'abc123',
550
+ * spanId: 'span1',
551
+ * parentSpanId: 'span0',
552
+ * name: 'POST /api/checkout',
553
+ * kind: 'SERVER',
554
+ * startTime: Date.now(),
555
+ * resource: {
556
+ * 'service.name': 'checkout-api'
557
+ * }
558
+ * };
559
+ * ```
560
+ */
561
+ export interface OtelSpan {
562
+ /** Trace ID this span belongs to */
563
+ traceId: string;
564
+
565
+ /** Unique span ID */
566
+ spanId: string;
567
+
568
+ /** Parent span ID (undefined for root spans) */
569
+ parentSpanId?: string;
570
+
571
+ /** Span name (usually operation name) */
572
+ name: string;
573
+
574
+ /** Span kind */
575
+ kind: OtelSpanKind;
576
+
577
+ /** Start time in milliseconds, nanoseconds, or ISO string */
578
+ startTime: number | string;
579
+
580
+ /** End time (undefined if span is still active) */
581
+ endTime?: number | string;
582
+
583
+ /** Resource describing the source entity */
584
+ resource: OtelResource;
585
+
586
+ /** Span attributes */
587
+ attributes?: OtelAttributes;
588
+
589
+ /** Span status */
590
+ status?: OtelSimplifiedSpanStatus;
591
+
592
+ /** Events (logs within the span) */
593
+ events?: Array<{
594
+ name: string;
595
+ timestamp: number | string;
596
+ attributes?: OtelAttributes;
597
+ }>;
598
+ }
599
+
600
+ /**
601
+ * Type guard: Check if severity indicates an error
602
+ */
603
+ export function isErrorSeverity(severity: OtelSeverity | undefined): boolean {
604
+ if (severity === undefined) return false;
605
+ if (typeof severity === 'string') {
606
+ return severity === 'ERROR' || severity === 'FATAL';
607
+ }
608
+ return severity >= 17; // ERROR starts at 17 in OTEL spec
609
+ }
610
+
611
+ /**
612
+ * Type guard: Check if severity indicates a warning
613
+ */
614
+ export function isWarnSeverity(severity: OtelSeverity | undefined): boolean {
615
+ if (severity === undefined) return false;
616
+ if (typeof severity === 'string') {
617
+ return severity === 'WARN';
618
+ }
619
+ return severity >= 13 && severity <= 16; // WARN is 13-16 in OTEL spec
620
+ }