@principal-ai/subsystems-core 0.29.0 → 0.31.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.
- package/README.md +15 -110
- package/dist/index.d.ts +7 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -205
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +5 -61
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +9 -131
- package/dist/node.js.map +1 -1
- package/dist/types/index.d.ts +3 -348
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -19
- package/dist/types/index.js.map +1 -1
- package/dist/types/subsystem-model.d.ts +34 -3
- package/dist/types/subsystem-model.d.ts.map +1 -1
- package/dist/types/subsystem-model.js.map +1 -1
- package/package.json +7 -24
- package/schemas/subsystem-model.schema.json +52 -1
- package/src/index.ts +7 -580
- package/src/node.ts +21 -262
- package/src/types/index.ts +3 -456
- package/src/types/subsystem-model.ts +39 -3
- package/dist/ConfigurationLoader.d.ts +0 -76
- package/dist/ConfigurationLoader.d.ts.map +0 -1
- package/dist/ConfigurationLoader.js +0 -148
- package/dist/ConfigurationLoader.js.map +0 -1
- package/dist/ConfigurationValidator.d.ts +0 -31
- package/dist/ConfigurationValidator.d.ts.map +0 -1
- package/dist/ConfigurationValidator.js +0 -239
- package/dist/ConfigurationValidator.js.map +0 -1
- package/dist/EventProcessor.d.ts +0 -49
- package/dist/EventProcessor.d.ts.map +0 -1
- package/dist/EventProcessor.js +0 -220
- package/dist/EventProcessor.js.map +0 -1
- package/dist/EventRecorderService.d.ts +0 -305
- package/dist/EventRecorderService.d.ts.map +0 -1
- package/dist/EventRecorderService.js +0 -467
- package/dist/EventRecorderService.js.map +0 -1
- package/dist/LibraryLoader.d.ts +0 -65
- package/dist/LibraryLoader.d.ts.map +0 -1
- package/dist/LibraryLoader.js +0 -197
- package/dist/LibraryLoader.js.map +0 -1
- package/dist/PathBasedEventProcessor.d.ts +0 -77
- package/dist/PathBasedEventProcessor.d.ts.map +0 -1
- package/dist/PathBasedEventProcessor.js +0 -136
- package/dist/PathBasedEventProcessor.js.map +0 -1
- package/dist/SessionManager.d.ts +0 -194
- package/dist/SessionManager.d.ts.map +0 -1
- package/dist/SessionManager.js +0 -302
- package/dist/SessionManager.js.map +0 -1
- package/dist/ValidationEngine.d.ts +0 -31
- package/dist/ValidationEngine.d.ts.map +0 -1
- package/dist/ValidationEngine.js +0 -162
- package/dist/ValidationEngine.js.map +0 -1
- package/dist/auxiliary/AuxiliaryManifestValidator.d.ts +0 -41
- package/dist/auxiliary/AuxiliaryManifestValidator.d.ts.map +0 -1
- package/dist/auxiliary/AuxiliaryManifestValidator.js +0 -100
- package/dist/auxiliary/AuxiliaryManifestValidator.js.map +0 -1
- package/dist/auxiliary/index.d.ts +0 -9
- package/dist/auxiliary/index.d.ts.map +0 -1
- package/dist/auxiliary/index.js +0 -14
- package/dist/auxiliary/index.js.map +0 -1
- package/dist/auxiliary/validateAreaScopeDisjoint.d.ts +0 -24
- package/dist/auxiliary/validateAreaScopeDisjoint.d.ts.map +0 -1
- package/dist/auxiliary/validateAreaScopeDisjoint.js +0 -61
- package/dist/auxiliary/validateAreaScopeDisjoint.js.map +0 -1
- package/dist/cli/codegen.d.ts +0 -41
- package/dist/cli/codegen.d.ts.map +0 -1
- package/dist/cli/codegen.js +0 -257
- package/dist/cli/codegen.js.map +0 -1
- package/dist/codegen/type-generator.d.ts +0 -123
- package/dist/codegen/type-generator.d.ts.map +0 -1
- package/dist/codegen/type-generator.js +0 -433
- package/dist/codegen/type-generator.js.map +0 -1
- package/dist/codegen/usage-example.d.ts +0 -103
- package/dist/codegen/usage-example.d.ts.map +0 -1
- package/dist/codegen/usage-example.js +0 -258
- package/dist/codegen/usage-example.js.map +0 -1
- package/dist/dashboard/DashboardValidator.d.ts +0 -85
- package/dist/dashboard/DashboardValidator.d.ts.map +0 -1
- package/dist/dashboard/DashboardValidator.js +0 -775
- package/dist/dashboard/DashboardValidator.js.map +0 -1
- package/dist/dashboard/index.d.ts +0 -6
- package/dist/dashboard/index.d.ts.map +0 -1
- package/dist/dashboard/index.js +0 -10
- package/dist/dashboard/index.js.map +0 -1
- package/dist/discovery/CanvasDiscovery.d.ts +0 -160
- package/dist/discovery/CanvasDiscovery.d.ts.map +0 -1
- package/dist/discovery/CanvasDiscovery.js +0 -865
- package/dist/discovery/CanvasDiscovery.js.map +0 -1
- package/dist/discovery/CanvasFileManifest.d.ts +0 -86
- package/dist/discovery/CanvasFileManifest.d.ts.map +0 -1
- package/dist/discovery/CanvasFileManifest.js +0 -338
- package/dist/discovery/CanvasFileManifest.js.map +0 -1
- package/dist/discovery/LibraryDiscovery.d.ts +0 -108
- package/dist/discovery/LibraryDiscovery.d.ts.map +0 -1
- package/dist/discovery/LibraryDiscovery.js +0 -263
- package/dist/discovery/LibraryDiscovery.js.map +0 -1
- package/dist/discovery/types.d.ts +0 -403
- package/dist/discovery/types.d.ts.map +0 -1
- package/dist/discovery/types.js +0 -6
- package/dist/discovery/types.js.map +0 -1
- package/dist/events/EventsCanvasValidator.d.ts +0 -139
- package/dist/events/EventsCanvasValidator.d.ts.map +0 -1
- package/dist/events/EventsCanvasValidator.js +0 -281
- package/dist/events/EventsCanvasValidator.js.map +0 -1
- package/dist/events/NamespacePathIndex.d.ts +0 -61
- package/dist/events/NamespacePathIndex.d.ts.map +0 -1
- package/dist/events/NamespacePathIndex.js +0 -74
- package/dist/events/NamespacePathIndex.js.map +0 -1
- package/dist/events/OtelEventPathsValidator.d.ts +0 -75
- package/dist/events/OtelEventPathsValidator.d.ts.map +0 -1
- package/dist/events/OtelEventPathsValidator.js +0 -126
- package/dist/events/OtelEventPathsValidator.js.map +0 -1
- package/dist/events/ScopeEventsValidator.d.ts +0 -68
- package/dist/events/ScopeEventsValidator.d.ts.map +0 -1
- package/dist/events/ScopeEventsValidator.js +0 -91
- package/dist/events/ScopeEventsValidator.js.map +0 -1
- package/dist/events/index.d.ts +0 -9
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -12
- package/dist/events/index.js.map +0 -1
- package/dist/events/path-helpers.d.ts +0 -33
- package/dist/events/path-helpers.d.ts.map +0 -1
- package/dist/events/path-helpers.js +0 -59
- package/dist/events/path-helpers.js.map +0 -1
- package/dist/execution/ExecutionLoader.d.ts +0 -135
- package/dist/execution/ExecutionLoader.d.ts.map +0 -1
- package/dist/execution/ExecutionLoader.js +0 -266
- package/dist/execution/ExecutionLoader.js.map +0 -1
- package/dist/execution/ExecutionValidator.d.ts +0 -94
- package/dist/execution/ExecutionValidator.d.ts.map +0 -1
- package/dist/execution/ExecutionValidator.js +0 -503
- package/dist/execution/ExecutionValidator.js.map +0 -1
- package/dist/generated/graph-converter-execution.types.d.ts +0 -177
- package/dist/generated/graph-converter-execution.types.d.ts.map +0 -1
- package/dist/generated/graph-converter-execution.types.js +0 -12
- package/dist/generated/graph-converter-execution.types.js.map +0 -1
- package/dist/helpers/GraphInstrumentationHelper.d.ts +0 -93
- package/dist/helpers/GraphInstrumentationHelper.d.ts.map +0 -1
- package/dist/helpers/GraphInstrumentationHelper.js +0 -252
- package/dist/helpers/GraphInstrumentationHelper.js.map +0 -1
- package/dist/matchers/SpanMatcher.d.ts +0 -107
- package/dist/matchers/SpanMatcher.d.ts.map +0 -1
- package/dist/matchers/SpanMatcher.js +0 -274
- package/dist/matchers/SpanMatcher.js.map +0 -1
- package/dist/orchestration/TraceOrchestrator.d.ts +0 -71
- package/dist/orchestration/TraceOrchestrator.d.ts.map +0 -1
- package/dist/orchestration/TraceOrchestrator.js +0 -416
- package/dist/orchestration/TraceOrchestrator.js.map +0 -1
- package/dist/parsers/OtlpTraceParser.d.ts +0 -131
- package/dist/parsers/OtlpTraceParser.d.ts.map +0 -1
- package/dist/parsers/OtlpTraceParser.js +0 -310
- package/dist/parsers/OtlpTraceParser.js.map +0 -1
- package/dist/registry/CompositeRegistry.d.ts +0 -71
- package/dist/registry/CompositeRegistry.d.ts.map +0 -1
- package/dist/registry/CompositeRegistry.js +0 -113
- package/dist/registry/CompositeRegistry.js.map +0 -1
- package/dist/registry/EventRegistry.d.ts +0 -79
- package/dist/registry/EventRegistry.d.ts.map +0 -1
- package/dist/registry/EventRegistry.js +0 -165
- package/dist/registry/EventRegistry.js.map +0 -1
- package/dist/registry/LocalRegistry.d.ts +0 -111
- package/dist/registry/LocalRegistry.d.ts.map +0 -1
- package/dist/registry/LocalRegistry.js +0 -335
- package/dist/registry/LocalRegistry.js.map +0 -1
- package/dist/registry/RemoteRegistry.d.ts +0 -122
- package/dist/registry/RemoteRegistry.d.ts.map +0 -1
- package/dist/registry/RemoteRegistry.js +0 -399
- package/dist/registry/RemoteRegistry.js.map +0 -1
- package/dist/registry/VersionRegistry.d.ts +0 -51
- package/dist/registry/VersionRegistry.d.ts.map +0 -1
- package/dist/registry/VersionRegistry.js +0 -105
- package/dist/registry/VersionRegistry.js.map +0 -1
- package/dist/rules/config.d.ts +0 -57
- package/dist/rules/config.d.ts.map +0 -1
- package/dist/rules/config.js +0 -382
- package/dist/rules/config.js.map +0 -1
- package/dist/rules/engine.d.ts +0 -70
- package/dist/rules/engine.d.ts.map +0 -1
- package/dist/rules/engine.js +0 -373
- package/dist/rules/engine.js.map +0 -1
- package/dist/rules/implementations/connection-type-references.d.ts +0 -7
- package/dist/rules/implementations/connection-type-references.d.ts.map +0 -1
- package/dist/rules/implementations/connection-type-references.js +0 -107
- package/dist/rules/implementations/connection-type-references.js.map +0 -1
- package/dist/rules/implementations/dead-end-states.d.ts +0 -17
- package/dist/rules/implementations/dead-end-states.d.ts.map +0 -1
- package/dist/rules/implementations/dead-end-states.js +0 -75
- package/dist/rules/implementations/dead-end-states.js.map +0 -1
- package/dist/rules/implementations/index.d.ts +0 -23
- package/dist/rules/implementations/index.d.ts.map +0 -1
- package/dist/rules/implementations/index.js +0 -73
- package/dist/rules/implementations/index.js.map +0 -1
- package/dist/rules/implementations/minimum-node-sources.d.ts +0 -24
- package/dist/rules/implementations/minimum-node-sources.d.ts.map +0 -1
- package/dist/rules/implementations/minimum-node-sources.js +0 -59
- package/dist/rules/implementations/minimum-node-sources.js.map +0 -1
- package/dist/rules/implementations/no-unknown-fields.d.ts +0 -7
- package/dist/rules/implementations/no-unknown-fields.d.ts.map +0 -1
- package/dist/rules/implementations/no-unknown-fields.js +0 -216
- package/dist/rules/implementations/no-unknown-fields.js.map +0 -1
- package/dist/rules/implementations/orphaned-edge-types.d.ts +0 -7
- package/dist/rules/implementations/orphaned-edge-types.d.ts.map +0 -1
- package/dist/rules/implementations/orphaned-edge-types.js +0 -50
- package/dist/rules/implementations/orphaned-edge-types.js.map +0 -1
- package/dist/rules/implementations/orphaned-node-types.d.ts +0 -7
- package/dist/rules/implementations/orphaned-node-types.d.ts.map +0 -1
- package/dist/rules/implementations/orphaned-node-types.js +0 -53
- package/dist/rules/implementations/orphaned-node-types.js.map +0 -1
- package/dist/rules/implementations/required-metadata.d.ts +0 -7
- package/dist/rules/implementations/required-metadata.d.ts.map +0 -1
- package/dist/rules/implementations/required-metadata.js +0 -48
- package/dist/rules/implementations/required-metadata.js.map +0 -1
- package/dist/rules/implementations/state-transition-references.d.ts +0 -7
- package/dist/rules/implementations/state-transition-references.d.ts.map +0 -1
- package/dist/rules/implementations/state-transition-references.js +0 -138
- package/dist/rules/implementations/state-transition-references.js.map +0 -1
- package/dist/rules/implementations/unreachable-states.d.ts +0 -7
- package/dist/rules/implementations/unreachable-states.d.ts.map +0 -1
- package/dist/rules/implementations/unreachable-states.js +0 -83
- package/dist/rules/implementations/unreachable-states.js.map +0 -1
- package/dist/rules/implementations/valid-action-patterns.d.ts +0 -17
- package/dist/rules/implementations/valid-action-patterns.d.ts.map +0 -1
- package/dist/rules/implementations/valid-action-patterns.js +0 -112
- package/dist/rules/implementations/valid-action-patterns.js.map +0 -1
- package/dist/rules/implementations/valid-color-format.d.ts +0 -7
- package/dist/rules/implementations/valid-color-format.d.ts.map +0 -1
- package/dist/rules/implementations/valid-color-format.js +0 -94
- package/dist/rules/implementations/valid-color-format.js.map +0 -1
- package/dist/rules/implementations/valid-edge-types.d.ts +0 -7
- package/dist/rules/implementations/valid-edge-types.d.ts.map +0 -1
- package/dist/rules/implementations/valid-edge-types.js +0 -248
- package/dist/rules/implementations/valid-edge-types.js.map +0 -1
- package/dist/rules/implementations/valid-node-types.d.ts +0 -7
- package/dist/rules/implementations/valid-node-types.d.ts.map +0 -1
- package/dist/rules/implementations/valid-node-types.js +0 -187
- package/dist/rules/implementations/valid-node-types.js.map +0 -1
- package/dist/rules/index.d.ts +0 -28
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -70
- package/dist/rules/index.js.map +0 -1
- package/dist/rules/types.d.ts +0 -309
- package/dist/rules/types.d.ts.map +0 -1
- package/dist/rules/types.js +0 -40
- package/dist/rules/types.js.map +0 -1
- package/dist/scopes/ScopePathIndex.d.ts +0 -56
- package/dist/scopes/ScopePathIndex.d.ts.map +0 -1
- package/dist/scopes/ScopePathIndex.js +0 -67
- package/dist/scopes/ScopePathIndex.js.map +0 -1
- package/dist/scopes/ScopesCanvasValidator.d.ts +0 -76
- package/dist/scopes/ScopesCanvasValidator.d.ts.map +0 -1
- package/dist/scopes/ScopesCanvasValidator.js +0 -221
- package/dist/scopes/ScopesCanvasValidator.js.map +0 -1
- package/dist/scopes/index.d.ts +0 -12
- package/dist/scopes/index.d.ts.map +0 -1
- package/dist/scopes/index.js +0 -30
- package/dist/scopes/index.js.map +0 -1
- package/dist/scopes/utils.d.ts +0 -85
- package/dist/scopes/utils.d.ts.map +0 -1
- package/dist/scopes/utils.js +0 -143
- package/dist/scopes/utils.js.map +0 -1
- package/dist/scopes/validateScopeNamespaceNesting.d.ts +0 -38
- package/dist/scopes/validateScopeNamespaceNesting.d.ts.map +0 -1
- package/dist/scopes/validateScopeNamespaceNesting.js +0 -69
- package/dist/scopes/validateScopeNamespaceNesting.js.map +0 -1
- package/dist/spans/index.d.ts +0 -12
- package/dist/spans/index.d.ts.map +0 -1
- package/dist/spans/index.js +0 -25
- package/dist/spans/index.js.map +0 -1
- package/dist/spans/utils.d.ts +0 -70
- package/dist/spans/utils.d.ts.map +0 -1
- package/dist/spans/utils.js +0 -205
- package/dist/spans/utils.js.map +0 -1
- package/dist/storyboard/builder.d.ts +0 -135
- package/dist/storyboard/builder.d.ts.map +0 -1
- package/dist/storyboard/builder.js +0 -235
- package/dist/storyboard/builder.js.map +0 -1
- package/dist/storyboard/index.d.ts +0 -9
- package/dist/storyboard/index.d.ts.map +0 -1
- package/dist/storyboard/index.js +0 -18
- package/dist/storyboard/index.js.map +0 -1
- package/dist/storyboard/types.d.ts +0 -101
- package/dist/storyboard/types.d.ts.map +0 -1
- package/dist/storyboard/types.js +0 -10
- package/dist/storyboard/types.js.map +0 -1
- package/dist/telemetry/coverage.d.ts +0 -92
- package/dist/telemetry/coverage.d.ts.map +0 -1
- package/dist/telemetry/coverage.js +0 -335
- package/dist/telemetry/coverage.js.map +0 -1
- package/dist/telemetry/event-validator.d.ts +0 -86
- package/dist/telemetry/event-validator.d.ts.map +0 -1
- package/dist/telemetry/event-validator.js +0 -257
- package/dist/telemetry/event-validator.js.map +0 -1
- package/dist/types/audit.d.ts +0 -236
- package/dist/types/audit.d.ts.map +0 -1
- package/dist/types/audit.js +0 -53
- package/dist/types/audit.js.map +0 -1
- package/dist/types/auxiliary.d.ts +0 -54
- package/dist/types/auxiliary.d.ts.map +0 -1
- package/dist/types/auxiliary.js +0 -27
- package/dist/types/auxiliary.js.map +0 -1
- package/dist/types/canvas-scope.d.ts +0 -156
- package/dist/types/canvas-scope.d.ts.map +0 -1
- package/dist/types/canvas-scope.js +0 -62
- package/dist/types/canvas-scope.js.map +0 -1
- package/dist/types/canvas.d.ts +0 -1138
- package/dist/types/canvas.d.ts.map +0 -1
- package/dist/types/canvas.js +0 -178
- package/dist/types/canvas.js.map +0 -1
- package/dist/types/dashboard.d.ts +0 -170
- package/dist/types/dashboard.d.ts.map +0 -1
- package/dist/types/dashboard.js +0 -14
- package/dist/types/dashboard.js.map +0 -1
- package/dist/types/library.d.ts +0 -227
- package/dist/types/library.d.ts.map +0 -1
- package/dist/types/library.js +0 -16
- package/dist/types/library.js.map +0 -1
- package/dist/types/otel.d.ts +0 -465
- package/dist/types/otel.d.ts.map +0 -1
- package/dist/types/otel.js +0 -163
- package/dist/types/otel.js.map +0 -1
- package/dist/types/path-based-config.d.ts +0 -235
- package/dist/types/path-based-config.d.ts.map +0 -1
- package/dist/types/path-based-config.js +0 -11
- package/dist/types/path-based-config.js.map +0 -1
- package/dist/types/registered-trace.d.ts +0 -337
- package/dist/types/registered-trace.d.ts.map +0 -1
- package/dist/types/registered-trace.js +0 -16
- package/dist/types/registered-trace.js.map +0 -1
- package/dist/types/resource-match.d.ts +0 -207
- package/dist/types/resource-match.d.ts.map +0 -1
- package/dist/types/resource-match.js +0 -74
- package/dist/types/resource-match.js.map +0 -1
- package/dist/types/version-registry.d.ts +0 -137
- package/dist/types/version-registry.d.ts.map +0 -1
- package/dist/types/version-registry.js +0 -10
- package/dist/types/version-registry.js.map +0 -1
- package/dist/utils/CanvasConverter.d.ts +0 -148
- package/dist/utils/CanvasConverter.d.ts.map +0 -1
- package/dist/utils/CanvasConverter.js +0 -530
- package/dist/utils/CanvasConverter.js.map +0 -1
- package/dist/utils/GraphConverter.d.ts +0 -18
- package/dist/utils/GraphConverter.d.ts.map +0 -1
- package/dist/utils/GraphConverter.js +0 -80
- package/dist/utils/GraphConverter.js.map +0 -1
- package/dist/utils/PathMatcher.d.ts +0 -55
- package/dist/utils/PathMatcher.d.ts.map +0 -1
- package/dist/utils/PathMatcher.js +0 -178
- package/dist/utils/PathMatcher.js.map +0 -1
- package/dist/utils/TraceToCanvas.d.ts +0 -83
- package/dist/utils/TraceToCanvas.d.ts.map +0 -1
- package/dist/utils/TraceToCanvas.js +0 -336
- package/dist/utils/TraceToCanvas.js.map +0 -1
- package/dist/utils/YamlParser.d.ts +0 -36
- package/dist/utils/YamlParser.d.ts.map +0 -1
- package/dist/utils/YamlParser.js +0 -92
- package/dist/utils/YamlParser.js.map +0 -1
- package/dist/utils/registeredTraceHelpers.d.ts +0 -76
- package/dist/utils/registeredTraceHelpers.d.ts.map +0 -1
- package/dist/utils/registeredTraceHelpers.js +0 -203
- package/dist/utils/registeredTraceHelpers.js.map +0 -1
- package/dist/utils/traceAggregation.d.ts +0 -25
- package/dist/utils/traceAggregation.d.ts.map +0 -1
- package/dist/utils/traceAggregation.js +0 -140
- package/dist/utils/traceAggregation.js.map +0 -1
- package/dist/validation/OtelCanvasValidator.d.ts +0 -40
- package/dist/validation/OtelCanvasValidator.d.ts.map +0 -1
- package/dist/validation/OtelCanvasValidator.js +0 -59
- package/dist/validation/OtelCanvasValidator.js.map +0 -1
- package/dist/validation/index.d.ts +0 -8
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js +0 -13
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/libraryValidation.d.ts +0 -53
- package/dist/validation/libraryValidation.d.ts.map +0 -1
- package/dist/validation/libraryValidation.js +0 -115
- package/dist/validation/libraryValidation.js.map +0 -1
- package/dist/workflow/edge-derivation.d.ts +0 -111
- package/dist/workflow/edge-derivation.d.ts.map +0 -1
- package/dist/workflow/edge-derivation.js +0 -174
- package/dist/workflow/edge-derivation.js.map +0 -1
- package/dist/workflow/edge-validation.d.ts +0 -170
- package/dist/workflow/edge-validation.d.ts.map +0 -1
- package/dist/workflow/edge-validation.js +0 -332
- package/dist/workflow/edge-validation.js.map +0 -1
- package/dist/workflow/example.d.ts +0 -11
- package/dist/workflow/example.d.ts.map +0 -1
- package/dist/workflow/example.js +0 -310
- package/dist/workflow/example.js.map +0 -1
- package/dist/workflow/index.d.ts +0 -20
- package/dist/workflow/index.d.ts.map +0 -1
- package/dist/workflow/index.js +0 -49
- package/dist/workflow/index.js.map +0 -1
- package/dist/workflow/scenario-matcher.d.ts +0 -63
- package/dist/workflow/scenario-matcher.d.ts.map +0 -1
- package/dist/workflow/scenario-matcher.js +0 -215
- package/dist/workflow/scenario-matcher.js.map +0 -1
- package/dist/workflow/template-parser.d.ts +0 -73
- package/dist/workflow/template-parser.d.ts.map +0 -1
- package/dist/workflow/template-parser.js +0 -280
- package/dist/workflow/template-parser.js.map +0 -1
- package/dist/workflow/template-renderer.d.ts +0 -45
- package/dist/workflow/template-renderer.d.ts.map +0 -1
- package/dist/workflow/template-renderer.js +0 -401
- package/dist/workflow/template-renderer.js.map +0 -1
- package/dist/workflow/types.d.ts +0 -393
- package/dist/workflow/types.d.ts.map +0 -1
- package/dist/workflow/types.js +0 -40
- package/dist/workflow/types.js.map +0 -1
- package/dist/workflow/validator.d.ts +0 -363
- package/dist/workflow/validator.d.ts.map +0 -1
- package/dist/workflow/validator.js +0 -2283
- package/dist/workflow/validator.js.map +0 -1
- package/schemas/auxiliary.manifest.schema.json +0 -56
- package/src/ConfigurationLoader.test.ts +0 -466
- package/src/ConfigurationLoader.ts +0 -184
- package/src/ConfigurationValidator.test.ts +0 -200
- package/src/ConfigurationValidator.ts +0 -273
- package/src/EventProcessor.test.ts +0 -405
- package/src/EventProcessor.ts +0 -256
- package/src/EventRecorderService.test.ts +0 -543
- package/src/EventRecorderService.ts +0 -741
- package/src/LibraryLoader.ts +0 -194
- package/src/PathBasedEventProcessor.test.ts +0 -336
- package/src/PathBasedEventProcessor.ts +0 -196
- package/src/SessionManager.test.ts +0 -424
- package/src/SessionManager.ts +0 -471
- package/src/ValidationEngine.test.ts +0 -520
- package/src/ValidationEngine.ts +0 -200
- package/src/auxiliary/AuxiliaryManifestValidator.test.ts +0 -93
- package/src/auxiliary/AuxiliaryManifestValidator.ts +0 -132
- package/src/auxiliary/index.ts +0 -18
- package/src/auxiliary/validateAreaScopeDisjoint.test.ts +0 -85
- package/src/auxiliary/validateAreaScopeDisjoint.ts +0 -72
- package/src/cli/codegen.ts +0 -286
- package/src/codegen/type-generator.test.ts +0 -219
- package/src/codegen/type-generator.ts +0 -560
- package/src/codegen/usage-example.ts +0 -357
- package/src/dashboard/DashboardValidator.ts +0 -904
- package/src/dashboard/index.ts +0 -14
- package/src/discovery/CanvasDiscovery.test.ts +0 -691
- package/src/discovery/CanvasDiscovery.ts +0 -1114
- package/src/discovery/CanvasFileManifest.test.ts +0 -521
- package/src/discovery/CanvasFileManifest.ts +0 -419
- package/src/discovery/LibraryDiscovery.test.ts +0 -329
- package/src/discovery/LibraryDiscovery.ts +0 -386
- package/src/discovery/types.ts +0 -453
- package/src/events/EventsCanvasValidator.test.ts +0 -191
- package/src/events/EventsCanvasValidator.ts +0 -428
- package/src/events/NamespacePathIndex.test.ts +0 -97
- package/src/events/NamespacePathIndex.ts +0 -100
- package/src/events/OtelEventPathsValidator.test.ts +0 -243
- package/src/events/OtelEventPathsValidator.ts +0 -191
- package/src/events/ScopeEventsValidator.test.ts +0 -173
- package/src/events/ScopeEventsValidator.ts +0 -158
- package/src/events/index.ts +0 -27
- package/src/events/path-helpers.ts +0 -53
- package/src/execution/ExecutionLoader.test.ts +0 -378
- package/src/execution/ExecutionLoader.ts +0 -331
- package/src/execution/ExecutionValidator.test.ts +0 -503
- package/src/execution/ExecutionValidator.ts +0 -617
- package/src/generated/graph-converter-execution.types.ts +0 -193
- package/src/helpers/GraphInstrumentationHelper.test.ts +0 -364
- package/src/helpers/GraphInstrumentationHelper.ts +0 -323
- package/src/matchers/SpanMatcher.test.ts +0 -1105
- package/src/matchers/SpanMatcher.ts +0 -381
- package/src/orchestration/TraceOrchestrator.ts +0 -560
- package/src/orchestration/__tests__/TraceOrchestrator.test.ts +0 -1098
- package/src/parsers/OtlpTraceParser.ts +0 -401
- package/src/parsers/__tests__/OtlpTraceParser.test.ts +0 -197
- package/src/registry/CompositeRegistry.ts +0 -140
- package/src/registry/EventRegistry.test.ts +0 -387
- package/src/registry/EventRegistry.ts +0 -191
- package/src/registry/LocalRegistry.ts +0 -416
- package/src/registry/RemoteRegistry.ts +0 -499
- package/src/registry/VersionRegistry.test.ts +0 -223
- package/src/registry/VersionRegistry.ts +0 -121
- package/src/rules/config.test.ts +0 -277
- package/src/rules/config.ts +0 -450
- package/src/rules/engine.test.ts +0 -331
- package/src/rules/engine.ts +0 -448
- package/src/rules/implementations/connection-type-references.ts +0 -117
- package/src/rules/implementations/dead-end-states.ts +0 -101
- package/src/rules/implementations/index.ts +0 -66
- package/src/rules/implementations/minimum-node-sources.ts +0 -84
- package/src/rules/implementations/no-unknown-fields.ts +0 -372
- package/src/rules/implementations/orphaned-edge-types.ts +0 -55
- package/src/rules/implementations/orphaned-node-types.ts +0 -58
- package/src/rules/implementations/required-metadata.ts +0 -52
- package/src/rules/implementations/state-transition-references.ts +0 -155
- package/src/rules/implementations/unreachable-states.ts +0 -94
- package/src/rules/implementations/valid-action-patterns.ts +0 -140
- package/src/rules/implementations/valid-color-format.ts +0 -152
- package/src/rules/implementations/valid-edge-types.ts +0 -273
- package/src/rules/implementations/valid-node-types.ts +0 -200
- package/src/rules/index.ts +0 -92
- package/src/rules/types.ts +0 -426
- package/src/scopes/ScopePathIndex.test.ts +0 -94
- package/src/scopes/ScopePathIndex.ts +0 -89
- package/src/scopes/ScopesCanvasValidator.test.ts +0 -127
- package/src/scopes/ScopesCanvasValidator.ts +0 -305
- package/src/scopes/__tests__/utils.test.ts +0 -383
- package/src/scopes/index.ts +0 -42
- package/src/scopes/utils.ts +0 -182
- package/src/scopes/validateScopeNamespaceNesting.test.ts +0 -127
- package/src/scopes/validateScopeNamespaceNesting.ts +0 -88
- package/src/spans/index.ts +0 -24
- package/src/spans/utils.ts +0 -249
- package/src/storyboard/builder.ts +0 -308
- package/src/storyboard/index.ts +0 -26
- package/src/storyboard/types.ts +0 -117
- package/src/telemetry/coverage.ts +0 -480
- package/src/telemetry/event-validator.ts +0 -312
- package/src/types/audit.ts +0 -314
- package/src/types/auxiliary.ts +0 -63
- package/src/types/canvas-scope.ts +0 -190
- package/src/types/canvas.test.ts +0 -199
- package/src/types/canvas.ts +0 -1395
- package/src/types/dashboard.ts +0 -257
- package/src/types/library.ts +0 -283
- package/src/types/otel.test.ts +0 -219
- package/src/types/otel.ts +0 -620
- package/src/types/path-based-config.ts +0 -285
- package/src/types/registered-trace.ts +0 -432
- package/src/types/resource-match.ts +0 -263
- package/src/types/version-registry.ts +0 -150
- package/src/utils/CanvasConverter.ts +0 -670
- package/src/utils/GraphConverter.test.ts +0 -322
- package/src/utils/GraphConverter.ts +0 -84
- package/src/utils/PathMatcher.test.ts +0 -139
- package/src/utils/PathMatcher.ts +0 -185
- package/src/utils/TraceToCanvas.test.ts +0 -310
- package/src/utils/TraceToCanvas.ts +0 -510
- package/src/utils/YamlParser.ts +0 -77
- package/src/utils/registeredTraceHelpers.ts +0 -251
- package/src/utils/traceAggregation.test.ts +0 -385
- package/src/utils/traceAggregation.ts +0 -173
- package/src/validation/OtelCanvasValidator.ts +0 -86
- package/src/validation/index.ts +0 -17
- package/src/validation/libraryValidation.ts +0 -206
- package/src/workflow/README.md +0 -408
- package/src/workflow/__tests__/edge-derivation.test.ts +0 -449
- package/src/workflow/__tests__/edge-validation.test.ts +0 -417
- package/src/workflow/__tests__/scenario-matcher.test.ts +0 -225
- package/src/workflow/__tests__/template-parser.test.ts +0 -276
- package/src/workflow/__tests__/template-renderer.test.ts +0 -509
- package/src/workflow/__tests__/types.test.ts +0 -187
- package/src/workflow/__tests__/validator.test.ts +0 -3225
- package/src/workflow/edge-derivation.ts +0 -265
- package/src/workflow/edge-validation.ts +0 -503
- package/src/workflow/example.ts +0 -330
- package/src/workflow/index.ts +0 -86
- package/src/workflow/scenario-matcher.ts +0 -253
- package/src/workflow/template-parser.ts +0 -350
- package/src/workflow/template-renderer.ts +0 -453
- package/src/workflow/types.ts +0 -511
- package/src/workflow/validator.ts +0 -2737
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from 'bun:test';
|
|
2
|
-
import { validateScopeNamespaceNesting } from './validateScopeNamespaceNesting';
|
|
3
|
-
import type { ExtendedCanvas } from '../types/canvas';
|
|
4
|
-
|
|
5
|
-
function scopesCanvas(nodes: Array<{ scope: string; paths?: string[] }>): ExtendedCanvas {
|
|
6
|
-
return {
|
|
7
|
-
nodes: nodes.map((n, i) => ({
|
|
8
|
-
id: `s${i}`,
|
|
9
|
-
type: 'otel-scope',
|
|
10
|
-
description: `${n.scope} scope`,
|
|
11
|
-
...(n.paths !== undefined ? { paths: n.paths } : {}),
|
|
12
|
-
otel: { scope: n.scope },
|
|
13
|
-
x: 0, y: 0, width: 100, height: 50,
|
|
14
|
-
})),
|
|
15
|
-
edges: [],
|
|
16
|
-
} as ExtendedCanvas;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function eventsCanvas(namespaces: Array<{ name: string; paths?: string[] }>): ExtendedCanvas {
|
|
20
|
-
return {
|
|
21
|
-
nodes: namespaces.map((ns, i) => ({
|
|
22
|
-
id: `n${i}`,
|
|
23
|
-
type: 'event-namespace',
|
|
24
|
-
namespace: {
|
|
25
|
-
name: ns.name,
|
|
26
|
-
description: `${ns.name} namespace`,
|
|
27
|
-
...(ns.paths !== undefined ? { paths: ns.paths } : {}),
|
|
28
|
-
events: [],
|
|
29
|
-
},
|
|
30
|
-
x: 0, y: 0, width: 100, height: 50,
|
|
31
|
-
})),
|
|
32
|
-
edges: [],
|
|
33
|
-
} as ExtendedCanvas;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
describe('validateScopeNamespaceNesting', () => {
|
|
37
|
-
test('passes when every namespace path is covered by its scope path', () => {
|
|
38
|
-
const violations = validateScopeNamespaceNesting({
|
|
39
|
-
scopesCanvas: scopesCanvas([{ scope: 'a', paths: ['packages/subsystems-core/src'] }]),
|
|
40
|
-
eventsCanvases: [
|
|
41
|
-
{
|
|
42
|
-
scope: 'a',
|
|
43
|
-
eventsCanvas: eventsCanvas([
|
|
44
|
-
{ name: 'events', paths: ['packages/subsystems-core/src/events'] },
|
|
45
|
-
{ name: 'workflow', paths: ['packages/subsystems-core/src/workflow'] },
|
|
46
|
-
]),
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
});
|
|
50
|
-
expect(violations).toHaveLength(0);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test('flags namespace paths that escape their scope', () => {
|
|
54
|
-
const violations = validateScopeNamespaceNesting({
|
|
55
|
-
scopesCanvas: scopesCanvas([{ scope: 'a', paths: ['packages/subsystems-core/src'] }]),
|
|
56
|
-
eventsCanvases: [
|
|
57
|
-
{
|
|
58
|
-
scope: 'a',
|
|
59
|
-
eventsCanvas: eventsCanvas([
|
|
60
|
-
{ name: 'rogue', paths: ['packages/subsystems-react/src/hooks'] },
|
|
61
|
-
]),
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
expect(violations).toHaveLength(1);
|
|
66
|
-
expect(violations[0].ruleId).toBe('scopes-namespace-paths-escape');
|
|
67
|
-
expect(violations[0].severity).toBe('error');
|
|
68
|
-
expect(violations[0].message).toContain('rogue');
|
|
69
|
-
expect(violations[0].message).toContain('packages/subsystems-react/src/hooks');
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
test('namespace path equal to scope path is covered (not an escape)', () => {
|
|
73
|
-
const violations = validateScopeNamespaceNesting({
|
|
74
|
-
scopesCanvas: scopesCanvas([{ scope: 'a', paths: ['packages/subsystems-core/src'] }]),
|
|
75
|
-
eventsCanvases: [
|
|
76
|
-
{
|
|
77
|
-
scope: 'a',
|
|
78
|
-
eventsCanvas: eventsCanvas([{ name: 'whole', paths: ['packages/subsystems-core/src'] }]),
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
});
|
|
82
|
-
expect(violations).toHaveLength(0);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
test('scope without paths imposes no constraint (opt-out)', () => {
|
|
86
|
-
const violations = validateScopeNamespaceNesting({
|
|
87
|
-
scopesCanvas: scopesCanvas([{ scope: 'a' }]),
|
|
88
|
-
eventsCanvases: [
|
|
89
|
-
{
|
|
90
|
-
scope: 'a',
|
|
91
|
-
eventsCanvas: eventsCanvas([{ name: 'anywhere', paths: ['packages/anywhere/src'] }]),
|
|
92
|
-
},
|
|
93
|
-
],
|
|
94
|
-
});
|
|
95
|
-
expect(violations).toHaveLength(0);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
test('namespaces without paths are skipped (opt-in per namespace)', () => {
|
|
99
|
-
const violations = validateScopeNamespaceNesting({
|
|
100
|
-
scopesCanvas: scopesCanvas([{ scope: 'a', paths: ['packages/subsystems-core/src'] }]),
|
|
101
|
-
eventsCanvases: [
|
|
102
|
-
{
|
|
103
|
-
scope: 'a',
|
|
104
|
-
eventsCanvas: eventsCanvas([{ name: 'unenforced' }]),
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
});
|
|
108
|
-
expect(violations).toHaveLength(0);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
test('multiple scope paths: namespace covered by any one is allowed', () => {
|
|
112
|
-
const violations = validateScopeNamespaceNesting({
|
|
113
|
-
scopesCanvas: scopesCanvas([
|
|
114
|
-
{ scope: 'a', paths: ['packages/subsystems-core/src', 'packages/subsystems-core/generated'] },
|
|
115
|
-
]),
|
|
116
|
-
eventsCanvases: [
|
|
117
|
-
{
|
|
118
|
-
scope: 'a',
|
|
119
|
-
eventsCanvas: eventsCanvas([
|
|
120
|
-
{ name: 'gen', paths: ['packages/subsystems-core/generated/events'] },
|
|
121
|
-
]),
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
});
|
|
125
|
-
expect(violations).toHaveLength(0);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scope-Namespace Nesting Validator
|
|
3
|
-
*
|
|
4
|
-
* Cross-canvas check: every `event-namespace.paths` entry declared in a
|
|
5
|
-
* scope's events canvas must be covered by that scope's own `paths`.
|
|
6
|
-
* Surfaces `scopes-namespace-paths-escape` when a namespace claims a region
|
|
7
|
-
* outside its owning scope.
|
|
8
|
-
*
|
|
9
|
-
* Runs alongside the existing scopes-canvas validation but requires both
|
|
10
|
-
* canvases as input, so it lives outside `ScopesCanvasValidator` (which is
|
|
11
|
-
* single-canvas).
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type { ExtendedCanvas } from '../types/canvas';
|
|
15
|
-
import { isOtelScopeNode } from '../types/canvas';
|
|
16
|
-
import { pathCovers } from '../events/path-helpers';
|
|
17
|
-
import type { ScopesCanvasViolation } from './ScopesCanvasValidator';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* One events canvas paired with the scope it documents.
|
|
21
|
-
* The mapping comes from the existing scope → events-canvas filename
|
|
22
|
-
* convention (see `ScopeEventsValidator`); callers resolve it before
|
|
23
|
-
* passing it in.
|
|
24
|
-
*/
|
|
25
|
-
export interface ScopeEventsCanvasPair {
|
|
26
|
-
scope: string;
|
|
27
|
-
eventsCanvas: ExtendedCanvas;
|
|
28
|
-
eventsCanvasPath?: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface ValidateScopeNamespaceNestingInput {
|
|
32
|
-
scopesCanvas: ExtendedCanvas;
|
|
33
|
-
scopesCanvasPath?: string;
|
|
34
|
-
eventsCanvases: readonly ScopeEventsCanvasPair[];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* For every namespace.paths entry, verify it is covered by its scope's paths.
|
|
39
|
-
* Scopes without `paths` impose no constraint (opt-in per scope) and are
|
|
40
|
-
* skipped. Namespaces without `paths` are also skipped — namespace-level
|
|
41
|
-
* enforcement remains independently opt-in.
|
|
42
|
-
*/
|
|
43
|
-
export function validateScopeNamespaceNesting(
|
|
44
|
-
input: ValidateScopeNamespaceNestingInput,
|
|
45
|
-
): ScopesCanvasViolation[] {
|
|
46
|
-
const { scopesCanvas, scopesCanvasPath, eventsCanvases } = input;
|
|
47
|
-
const violations: ScopesCanvasViolation[] = [];
|
|
48
|
-
|
|
49
|
-
// Build scope → paths map from the scopes canvas.
|
|
50
|
-
const scopePaths = new Map<string, string[]>();
|
|
51
|
-
for (const node of scopesCanvas.nodes || []) {
|
|
52
|
-
if (!isOtelScopeNode(node)) continue;
|
|
53
|
-
const scope = node.otel?.scope;
|
|
54
|
-
const paths = node.paths;
|
|
55
|
-
if (!scope || !paths || paths.length === 0) continue;
|
|
56
|
-
scopePaths.set(scope, paths);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// For each events canvas, walk its event-namespace nodes and check that
|
|
60
|
-
// every namespace.paths entry sits inside the owning scope's paths.
|
|
61
|
-
for (const pair of eventsCanvases) {
|
|
62
|
-
const ownerPaths = scopePaths.get(pair.scope);
|
|
63
|
-
if (!ownerPaths) continue; // scope opted out — nothing to check
|
|
64
|
-
|
|
65
|
-
for (const node of pair.eventsCanvas.nodes || []) {
|
|
66
|
-
if ((node as any)?.type !== 'event-namespace') continue;
|
|
67
|
-
const ns = (node as any).namespace;
|
|
68
|
-
if (!ns?.name || !Array.isArray(ns.paths) || ns.paths.length === 0) continue;
|
|
69
|
-
|
|
70
|
-
for (const declared of ns.paths as string[]) {
|
|
71
|
-
const covered = ownerPaths.some((sp) => pathCovers(sp, declared));
|
|
72
|
-
if (covered) continue;
|
|
73
|
-
|
|
74
|
-
violations.push({
|
|
75
|
-
ruleId: 'scopes-namespace-paths-escape',
|
|
76
|
-
severity: 'error',
|
|
77
|
-
file: scopesCanvasPath || '.principal-views/architecture.scopes.canvas',
|
|
78
|
-
path: `nodes[scope="${pair.scope}"].paths`,
|
|
79
|
-
message: `Namespace "${ns.name}" path "${declared}" escapes the bounds of scope "${pair.scope}" (paths: ${ownerPaths.map((p) => `"${p}"`).join(', ')})`,
|
|
80
|
-
impact: 'A namespace claiming code outside its owning scope breaks the scope→namespace partition; events from that file would be attributed to the wrong scope',
|
|
81
|
-
suggestion: `Either move the namespace path under one of "${pair.scope}"'s paths, or extend the scope to cover the namespace's region. If the code genuinely belongs to a different scope, declare the namespace in that scope's events canvas instead.`,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return violations;
|
|
88
|
-
}
|
package/src/spans/index.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spans module
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities for working with span conventions from .spans.canvas files.
|
|
5
|
-
* Span colors are used as fill colors for events emitted within that span.
|
|
6
|
-
*
|
|
7
|
-
* Color Contract:
|
|
8
|
-
* - Scope color → Border (from library.yaml owned-scopes)
|
|
9
|
-
* - Span color → Fill (from .spans.canvas)
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
DEFAULT_SPAN_COLOR,
|
|
14
|
-
extractSpanConvention,
|
|
15
|
-
extractSpanConventions,
|
|
16
|
-
buildSpanColorMap,
|
|
17
|
-
buildSpanColorMapFromCanvases,
|
|
18
|
-
buildSpanIconMap,
|
|
19
|
-
matchSpanPattern,
|
|
20
|
-
getSpanColor,
|
|
21
|
-
getSpanIcon,
|
|
22
|
-
resolveEventSpanColor,
|
|
23
|
-
type NormalizedSpanConvention,
|
|
24
|
-
} from './utils';
|
package/src/spans/utils.ts
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Span utility functions
|
|
3
|
-
*
|
|
4
|
-
* Helpers for working with span conventions from .spans.canvas files.
|
|
5
|
-
* Span colors are used as fill colors for events emitted within that span.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { ExtendedCanvas, ExtendedCanvasNode } from '../types/canvas';
|
|
9
|
-
import { isOtelSpanConventionNode, isStandardCanvasNode } from '../types/canvas';
|
|
10
|
-
|
|
11
|
-
/** Default color for spans without a defined color */
|
|
12
|
-
export const DEFAULT_SPAN_COLOR = '#9CA3AF'; // gray-400
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Normalized span convention entry
|
|
16
|
-
*/
|
|
17
|
-
export interface NormalizedSpanConvention {
|
|
18
|
-
/** Unique identifier for this span convention */
|
|
19
|
-
id: string;
|
|
20
|
-
/** Pattern to match span names (e.g., "validate.*") */
|
|
21
|
-
spanPattern: string;
|
|
22
|
-
/** Color for this span (used as fill for events) */
|
|
23
|
-
color: string;
|
|
24
|
-
/** Icon identifier (Lucide icons) */
|
|
25
|
-
icon?: string;
|
|
26
|
-
/** Human-readable description */
|
|
27
|
-
description?: string;
|
|
28
|
-
/** Status of the span convention */
|
|
29
|
-
status?: 'draft' | 'approved' | 'implemented';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Extract span convention from a canvas node
|
|
34
|
-
*/
|
|
35
|
-
export function extractSpanConvention(node: ExtendedCanvasNode): NormalizedSpanConvention | null {
|
|
36
|
-
// Handle OTEL span convention nodes (top-level otel field)
|
|
37
|
-
if (isOtelSpanConventionNode(node)) {
|
|
38
|
-
const spanPattern = node.otel?.spanPattern;
|
|
39
|
-
if (!spanPattern) return null;
|
|
40
|
-
|
|
41
|
-
const color = node.color as string | undefined;
|
|
42
|
-
if (!color) return null;
|
|
43
|
-
|
|
44
|
-
return {
|
|
45
|
-
id: node.id,
|
|
46
|
-
spanPattern,
|
|
47
|
-
color,
|
|
48
|
-
icon: node.icon,
|
|
49
|
-
description: node.description,
|
|
50
|
-
status: node.otel?.status,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Handle standard nodes with pv.nodeType === 'span-convention'
|
|
55
|
-
if (!isStandardCanvasNode(node)) return null;
|
|
56
|
-
|
|
57
|
-
const pv = node.pv;
|
|
58
|
-
if (!pv) return null;
|
|
59
|
-
|
|
60
|
-
const nodeType = pv.nodeType;
|
|
61
|
-
if (nodeType !== 'span-convention') return null;
|
|
62
|
-
|
|
63
|
-
const otel = pv.otel as { spanPattern?: string; spanKind?: string } | undefined;
|
|
64
|
-
const spanPattern = otel?.spanPattern;
|
|
65
|
-
if (!spanPattern) return null;
|
|
66
|
-
|
|
67
|
-
// Get color from node (required for span conventions)
|
|
68
|
-
const color = node.color as string | undefined;
|
|
69
|
-
if (!color) return null;
|
|
70
|
-
|
|
71
|
-
// Extract description from node text if present (only text nodes have text)
|
|
72
|
-
let description: string | undefined;
|
|
73
|
-
if ('text' in node && typeof node.text === 'string') {
|
|
74
|
-
const text = node.text;
|
|
75
|
-
// Try to extract description from markdown (lines after the header)
|
|
76
|
-
const lines = text.split('\n');
|
|
77
|
-
const descLines = lines.filter(line => !line.startsWith('#') && line.trim());
|
|
78
|
-
if (descLines.length > 0) {
|
|
79
|
-
description = descLines.join(' ').trim();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Get icon from pv.icon (Lucide icon identifier)
|
|
84
|
-
const icon = pv.icon as string | undefined;
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
id: node.id,
|
|
88
|
-
spanPattern,
|
|
89
|
-
color,
|
|
90
|
-
icon,
|
|
91
|
-
description,
|
|
92
|
-
status: pv.status as 'draft' | 'approved' | 'implemented' | undefined,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Extract all span conventions from a spans.canvas file
|
|
98
|
-
*/
|
|
99
|
-
export function extractSpanConventions(canvas: ExtendedCanvas): NormalizedSpanConvention[] {
|
|
100
|
-
const conventions: NormalizedSpanConvention[] = [];
|
|
101
|
-
|
|
102
|
-
if (!canvas.nodes) return conventions;
|
|
103
|
-
|
|
104
|
-
for (const node of canvas.nodes) {
|
|
105
|
-
const convention = extractSpanConvention(node);
|
|
106
|
-
if (convention) {
|
|
107
|
-
conventions.push(convention);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return conventions;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Build a span color map from a spans.canvas
|
|
116
|
-
* Returns a map of spanPattern -> color for fast lookups
|
|
117
|
-
*/
|
|
118
|
-
export function buildSpanColorMap(canvas: ExtendedCanvas | null | undefined): Record<string, string> {
|
|
119
|
-
const colorMap: Record<string, string> = {};
|
|
120
|
-
|
|
121
|
-
if (!canvas) return colorMap;
|
|
122
|
-
|
|
123
|
-
const conventions = extractSpanConventions(canvas);
|
|
124
|
-
for (const convention of conventions) {
|
|
125
|
-
colorMap[convention.spanPattern] = convention.color;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return colorMap;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Build a span color map from multiple spans.canvas files
|
|
133
|
-
* Later files override earlier ones for duplicate patterns
|
|
134
|
-
*/
|
|
135
|
-
export function buildSpanColorMapFromCanvases(
|
|
136
|
-
canvases: (ExtendedCanvas | null | undefined)[]
|
|
137
|
-
): Record<string, string> {
|
|
138
|
-
const colorMap: Record<string, string> = {};
|
|
139
|
-
|
|
140
|
-
for (const canvas of canvases) {
|
|
141
|
-
if (!canvas) continue;
|
|
142
|
-
const conventions = extractSpanConventions(canvas);
|
|
143
|
-
for (const convention of conventions) {
|
|
144
|
-
colorMap[convention.spanPattern] = convention.color;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return colorMap;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Match a span name to a span pattern
|
|
153
|
-
* Supports exact matches and wildcard patterns (e.g., "validate.*")
|
|
154
|
-
*/
|
|
155
|
-
export function matchSpanPattern(spanName: string, pattern: string): boolean {
|
|
156
|
-
// Exact match
|
|
157
|
-
if (spanName === pattern) return true;
|
|
158
|
-
|
|
159
|
-
// Wildcard pattern (e.g., "validate.*")
|
|
160
|
-
if (pattern.endsWith('.*')) {
|
|
161
|
-
const prefix = pattern.slice(0, -2);
|
|
162
|
-
return spanName.startsWith(prefix + '.') || spanName === prefix;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Find the color for a span name by matching against span patterns
|
|
170
|
-
* Returns the first matching pattern's color, or default if none match
|
|
171
|
-
*/
|
|
172
|
-
export function getSpanColor(
|
|
173
|
-
spanName: string,
|
|
174
|
-
spanColorMap: Record<string, string>
|
|
175
|
-
): string {
|
|
176
|
-
// First try exact match
|
|
177
|
-
if (spanColorMap[spanName]) {
|
|
178
|
-
return spanColorMap[spanName];
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Then try pattern matching
|
|
182
|
-
for (const [pattern, color] of Object.entries(spanColorMap)) {
|
|
183
|
-
if (matchSpanPattern(spanName, pattern)) {
|
|
184
|
-
return color;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return DEFAULT_SPAN_COLOR;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Resolve span color for an event based on its workflow's spanPattern
|
|
193
|
-
* This is the primary method for determining event fill color
|
|
194
|
-
*/
|
|
195
|
-
export function resolveEventSpanColor(
|
|
196
|
-
workflowSpanPattern: string | undefined,
|
|
197
|
-
spanColorMap: Record<string, string>
|
|
198
|
-
): string {
|
|
199
|
-
if (!workflowSpanPattern) return DEFAULT_SPAN_COLOR;
|
|
200
|
-
|
|
201
|
-
// Direct lookup (pattern as key)
|
|
202
|
-
if (spanColorMap[workflowSpanPattern]) {
|
|
203
|
-
return spanColorMap[workflowSpanPattern];
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return DEFAULT_SPAN_COLOR;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Build a span icon map from a spans.canvas
|
|
211
|
-
* Returns a map of spanPattern -> icon for fast lookups
|
|
212
|
-
*/
|
|
213
|
-
export function buildSpanIconMap(canvas: ExtendedCanvas | null | undefined): Record<string, string> {
|
|
214
|
-
const iconMap: Record<string, string> = {};
|
|
215
|
-
|
|
216
|
-
if (!canvas) return iconMap;
|
|
217
|
-
|
|
218
|
-
const conventions = extractSpanConventions(canvas);
|
|
219
|
-
for (const convention of conventions) {
|
|
220
|
-
if (convention.icon) {
|
|
221
|
-
iconMap[convention.spanPattern] = convention.icon;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return iconMap;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Find the icon for a span name by matching against span patterns
|
|
230
|
-
* Returns the first matching pattern's icon, or undefined if none match
|
|
231
|
-
*/
|
|
232
|
-
export function getSpanIcon(
|
|
233
|
-
spanName: string,
|
|
234
|
-
spanIconMap: Record<string, string>
|
|
235
|
-
): string | undefined {
|
|
236
|
-
// First try exact match
|
|
237
|
-
if (spanIconMap[spanName]) {
|
|
238
|
-
return spanIconMap[spanName];
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Then try pattern matching
|
|
242
|
-
for (const [pattern, icon] of Object.entries(spanIconMap)) {
|
|
243
|
-
if (matchSpanPattern(spanName, pattern)) {
|
|
244
|
-
return icon;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return undefined;
|
|
249
|
-
}
|