@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
package/src/workflow/README.md
DELETED
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
# Workflow Template System
|
|
2
|
-
|
|
3
|
-
Transform OpenTelemetry event streams into human-readable execution workflows.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The Workflow Template System converts raw OTEL telemetry data (spans, logs, metrics) into structured, readable workflows that tell the story of what happened during an execution.
|
|
8
|
-
|
|
9
|
-
## Features
|
|
10
|
-
|
|
11
|
-
- **Scenario-based Matching**: Automatically selects the appropriate workflow based on which events occurred
|
|
12
|
-
- **Template Expression Language**: Rich templating with property access, conditionals, arithmetic, and string operations
|
|
13
|
-
- **Hierarchical Rendering**: Renders spans following parent-child relationships
|
|
14
|
-
- **Log Integration**: Attach logs to their parent spans
|
|
15
|
-
- **Flexible Conditions**: Match scenarios based on required/excluded events and attribute assertions
|
|
16
|
-
|
|
17
|
-
## Quick Start
|
|
18
|
-
|
|
19
|
-
### 1. Create a Workflow Template
|
|
20
|
-
|
|
21
|
-
Create a `.workflow.json` file that references your `.otel.canvas` file:
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"version": "1.0.0",
|
|
26
|
-
"canvas": "my-execution.otel.canvas",
|
|
27
|
-
"name": "My Execution Workflow",
|
|
28
|
-
"scenarioSelection": "first-match",
|
|
29
|
-
"scenarios": [
|
|
30
|
-
{
|
|
31
|
-
"id": "success",
|
|
32
|
-
"priority": 1,
|
|
33
|
-
"condition": {
|
|
34
|
-
"requires": ["execution.complete"],
|
|
35
|
-
"assertions": { "result.status": { "$eq": "success" } }
|
|
36
|
-
},
|
|
37
|
-
"template": {
|
|
38
|
-
"introduction": "✅ Execution Successful",
|
|
39
|
-
"summary": "Completed in {duration.ms}ms"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 2. Use the Workflow Renderer
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
import { renderWorkflow } from '@principal-ai/subsystems-core/workflow';
|
|
50
|
-
import type { OtelEvent } from '@principal-ai/subsystems-core/workflow';
|
|
51
|
-
|
|
52
|
-
// Your OTEL events
|
|
53
|
-
const events: OtelEvent[] = [
|
|
54
|
-
{
|
|
55
|
-
name: 'execution.started',
|
|
56
|
-
timestamp: 1000,
|
|
57
|
-
type: 'span',
|
|
58
|
-
spanId: 'span1',
|
|
59
|
-
traceId: 'trace1'
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'execution.complete',
|
|
63
|
-
timestamp: 2000,
|
|
64
|
-
type: 'span',
|
|
65
|
-
spanId: 'span1',
|
|
66
|
-
traceId: 'trace1',
|
|
67
|
-
attributes: {
|
|
68
|
-
'result.status': 'success',
|
|
69
|
-
'duration.ms': 1000
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
];
|
|
73
|
-
|
|
74
|
-
// Render the workflow
|
|
75
|
-
const result = renderWorkflow(template, events);
|
|
76
|
-
console.log(result.text);
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Template Expression Syntax
|
|
80
|
-
|
|
81
|
-
Expressions are enclosed in `{curly braces}` and can include:
|
|
82
|
-
|
|
83
|
-
### Property Access
|
|
84
|
-
```
|
|
85
|
-
{config.nodeTypes}
|
|
86
|
-
{result.violations.total}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Conditionals (Ternary)
|
|
90
|
-
```
|
|
91
|
-
{count > 0 ? 'yes' : 'no'}
|
|
92
|
-
{result.status === 'success' ? '✅ PASSED' : '❌ FAILED'}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Arithmetic
|
|
96
|
-
```
|
|
97
|
-
{duration.ms / 1000}
|
|
98
|
-
{config.nodeTypes + config.edgeTypes}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### String Methods
|
|
102
|
-
```
|
|
103
|
-
{'━'.repeat(50)}
|
|
104
|
-
{'hello'.toUpperCase()}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Comparisons
|
|
108
|
-
```
|
|
109
|
-
{count > 5}
|
|
110
|
-
{result.total >= 10}
|
|
111
|
-
{status === 'complete'}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Scenario Matching
|
|
115
|
-
|
|
116
|
-
Scenarios are evaluated in priority order (lowest number = highest priority). The first matching scenario is selected.
|
|
117
|
-
|
|
118
|
-
### Condition Types
|
|
119
|
-
|
|
120
|
-
**Default Scenario** (always matches):
|
|
121
|
-
```json
|
|
122
|
-
{
|
|
123
|
-
"condition": { "default": true }
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Required Events** (all must be present):
|
|
128
|
-
```json
|
|
129
|
-
{
|
|
130
|
-
"condition": {
|
|
131
|
-
"requires": ["conversion.started", "conversion.complete"]
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**Required Events** (any must be present):
|
|
137
|
-
```json
|
|
138
|
-
{
|
|
139
|
-
"condition": {
|
|
140
|
-
"requires": ["error.*", "*.failed"],
|
|
141
|
-
"any": true
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Excluded Events** (must not be present):
|
|
147
|
-
```json
|
|
148
|
-
{
|
|
149
|
-
"condition": {
|
|
150
|
-
"requires": ["execution.complete"],
|
|
151
|
-
"excludes": ["*.error"]
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Attribute Assertions**:
|
|
157
|
-
```json
|
|
158
|
-
{
|
|
159
|
-
"condition": {
|
|
160
|
-
"assertions": {
|
|
161
|
-
"result.violations.total": { "$gt": 0 },
|
|
162
|
-
"status": { "$eq": "failed" }
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Assertion Operators
|
|
169
|
-
|
|
170
|
-
- `$exists`: Check if value exists (`{ "$exists": true }`)
|
|
171
|
-
- `$eq`: Equals (`{ "$eq": 5 }`)
|
|
172
|
-
- `$ne`: Not equals (`{ "$ne": 0 }`)
|
|
173
|
-
- `$gt`: Greater than (`{ "$gt": 10 }`)
|
|
174
|
-
- `$gte`: Greater than or equal (`{ "$gte": 5 }`)
|
|
175
|
-
- `$lt`: Less than (`{ "$lt": 100 }`)
|
|
176
|
-
- `$lte`: Less than or equal (`{ "$lte": 50 }`)
|
|
177
|
-
- `$in`: In array (`{ "$in": ["success", "warning"] }`)
|
|
178
|
-
- `$nin`: Not in array (`{ "$nin": ["error", "failed"] }`)
|
|
179
|
-
|
|
180
|
-
## Hierarchical Rendering
|
|
181
|
-
|
|
182
|
-
Workflows render spans hierarchically following parent-child relationships:
|
|
183
|
-
|
|
184
|
-
```json
|
|
185
|
-
{
|
|
186
|
-
"template": {
|
|
187
|
-
"introduction": "✅ Execution",
|
|
188
|
-
"span": "→ {span.name}",
|
|
189
|
-
"children": "recurse",
|
|
190
|
-
"summary": "Complete"
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
Output:
|
|
196
|
-
```
|
|
197
|
-
✅ Execution
|
|
198
|
-
→ parent.span
|
|
199
|
-
→ child.span
|
|
200
|
-
→ grandchild.span
|
|
201
|
-
Complete
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Log Integration
|
|
205
|
-
|
|
206
|
-
### Attach Logs to Spans
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
{
|
|
210
|
-
"showLogsPerSpan": true,
|
|
211
|
-
"template": {
|
|
212
|
-
"logs": {
|
|
213
|
-
"error": " ❌ {log.body}",
|
|
214
|
-
"warn": " ⚠️ {log.body}",
|
|
215
|
-
"info": " ℹ️ {log.body}",
|
|
216
|
-
"debug": " 🔍 {log.body}"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
Logs are categorized by severity:
|
|
223
|
-
- `error`: severityNumber >= 17 (ERROR, FATAL)
|
|
224
|
-
- `warn`: severityNumber 13-16 (WARN)
|
|
225
|
-
- `info`: severityNumber 9-12 (INFO)
|
|
226
|
-
- `debug`: severityNumber 5-8 (DEBUG, TRACE)
|
|
227
|
-
|
|
228
|
-
## Examples
|
|
229
|
-
|
|
230
|
-
See the `.workflow.json` files in `.principal-views/` for complete examples:
|
|
231
|
-
- `graph-converter-execution.workflow.json` - Simple conversion flow
|
|
232
|
-
- `rules-engine-execution.workflow.json` - Complex validation with multiple scenarios
|
|
233
|
-
- `graph-converter-test.workflow.json` - Test execution workflow
|
|
234
|
-
|
|
235
|
-
## API Reference
|
|
236
|
-
|
|
237
|
-
### `renderWorkflow(template, events)`
|
|
238
|
-
|
|
239
|
-
Main rendering function.
|
|
240
|
-
|
|
241
|
-
**Parameters:**
|
|
242
|
-
- `template: WorkflowTemplate` - The workflow template configuration
|
|
243
|
-
- `events: OtelEvent[]` - Array of OTEL events to render
|
|
244
|
-
|
|
245
|
-
**Returns:**
|
|
246
|
-
- `WorkflowResult` - Rendered workflow with metadata
|
|
247
|
-
|
|
248
|
-
```typescript
|
|
249
|
-
interface WorkflowResult {
|
|
250
|
-
text: string; // Rendered workflow text
|
|
251
|
-
scenarioId: string; // ID of selected scenario
|
|
252
|
-
isDefault: boolean; // Whether default scenario was used
|
|
253
|
-
metadata: {
|
|
254
|
-
templateName: string;
|
|
255
|
-
eventCount: number;
|
|
256
|
-
spanCount: number;
|
|
257
|
-
logCount: number;
|
|
258
|
-
timeRange?: { start: number; end: number };
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### `parseTemplate(template, context)`
|
|
264
|
-
|
|
265
|
-
Parse and evaluate a template string with expressions.
|
|
266
|
-
|
|
267
|
-
**Parameters:**
|
|
268
|
-
- `template: string` - Template string with `{expressions}`
|
|
269
|
-
- `context: Record<string, unknown>` - Data context for variable lookup
|
|
270
|
-
|
|
271
|
-
**Returns:** `string` - Evaluated template
|
|
272
|
-
|
|
273
|
-
### `selectScenario(template, events, attributes)`
|
|
274
|
-
|
|
275
|
-
Select the first matching scenario from a template.
|
|
276
|
-
|
|
277
|
-
**Parameters:**
|
|
278
|
-
- `template: WorkflowTemplate` - Template with scenarios
|
|
279
|
-
- `events: OtelEvent[]` - OTEL events
|
|
280
|
-
- `attributes: Record<string, unknown>` - Aggregated attributes
|
|
281
|
-
|
|
282
|
-
**Returns:** `ScenarioMatchResult` - Matched scenario and metadata
|
|
283
|
-
|
|
284
|
-
## Implementation Status
|
|
285
|
-
|
|
286
|
-
✅ **Phase 1: Core Infrastructure** (Complete)
|
|
287
|
-
- Type definitions
|
|
288
|
-
- Scenario matcher with assertion operators
|
|
289
|
-
- Template expression parser
|
|
290
|
-
- Template renderer (all modes)
|
|
291
|
-
- Comprehensive test suite (89 tests passing)
|
|
292
|
-
|
|
293
|
-
📋 **Phase 2: Example Templates** (Complete)
|
|
294
|
-
- Graph converter execution workflow
|
|
295
|
-
- Rules engine execution workflow
|
|
296
|
-
- Graph converter test workflow
|
|
297
|
-
|
|
298
|
-
🔮 **Phase 3: UI Integration** (Future)
|
|
299
|
-
- Canvas viewer integration
|
|
300
|
-
- Scenario switcher
|
|
301
|
-
- Live event streaming
|
|
302
|
-
- Interactive template editor
|
|
303
|
-
|
|
304
|
-
## Best Practices
|
|
305
|
-
|
|
306
|
-
### One Trace Per File
|
|
307
|
-
|
|
308
|
-
**Always store one trace per execution file.** This pattern provides:
|
|
309
|
-
|
|
310
|
-
✅ **Clear associations**: One file = one test case = one expected scenario
|
|
311
|
-
✅ **Descriptive naming**: File names document what each test validates
|
|
312
|
-
✅ **Better debugging**: Know exactly which test case failed
|
|
313
|
-
✅ **Easier validation**: CLI can validate each trace independently
|
|
314
|
-
|
|
315
|
-
#### ❌ Anti-pattern: Multiple traces in one file
|
|
316
|
-
|
|
317
|
-
```
|
|
318
|
-
draft-workflow/
|
|
319
|
-
├── draft-promote.workflow.json
|
|
320
|
-
└── draft-management.otel.json # Contains 4 different test cases
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
Problems:
|
|
324
|
-
- Can't tell which test case a file represents
|
|
325
|
-
- Ambiguous trace-to-scenario associations
|
|
326
|
-
- Hard to debug failures
|
|
327
|
-
- Validation warnings are unclear
|
|
328
|
-
|
|
329
|
-
#### ✅ Recommended: One trace per file
|
|
330
|
-
|
|
331
|
-
```
|
|
332
|
-
draft-workflow/
|
|
333
|
-
├── draft-promote.workflow.json
|
|
334
|
-
├── promote-with-commit.otel.json # Happy path with git commit
|
|
335
|
-
├── promote-without-commit.otel.json # Success without committing
|
|
336
|
-
├── promote-not-found.otel.json # Error: draft doesn't exist
|
|
337
|
-
└── promote-invalid-state.otel.json # Error: draft in wrong state
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
Benefits:
|
|
341
|
-
- File name describes the test scenario
|
|
342
|
-
- Clear 1:1 mapping to expected workflow scenario
|
|
343
|
-
- Easy to identify which test is failing
|
|
344
|
-
- CLI validation warns about each file independently
|
|
345
|
-
|
|
346
|
-
**The CLI will warn you** if it detects multiple traces in a single file:
|
|
347
|
-
|
|
348
|
-
```
|
|
349
|
-
⚠ Warning: Execution file contains 4 traces - should contain only one trace per file
|
|
350
|
-
Impact: Cannot establish clear trace-to-scenario association, makes debugging harder
|
|
351
|
-
Suggestion: Split draft-management.otel.json into 4 separate files, one per test case
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
### Co-location with Workflows
|
|
355
|
-
|
|
356
|
-
Store execution files in the same directory as their workflow file:
|
|
357
|
-
|
|
358
|
-
```
|
|
359
|
-
.principal-views/
|
|
360
|
-
└── checkout-flow/
|
|
361
|
-
├── checkout-flow.otel.canvas
|
|
362
|
-
└── complete-checkout/
|
|
363
|
-
├── complete-checkout.workflow.json
|
|
364
|
-
├── success.otel.json # Co-located execution
|
|
365
|
-
├── payment-declined.otel.json # Co-located execution
|
|
366
|
-
└── timeout.otel.json # Co-located execution
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
The CLI automatically discovers co-located execution files for validation.
|
|
370
|
-
|
|
371
|
-
## Testing
|
|
372
|
-
|
|
373
|
-
Run the test suite:
|
|
374
|
-
|
|
375
|
-
```bash
|
|
376
|
-
bun test packages/subsystems-core/src/workflow/__tests__/
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
Test coverage:
|
|
380
|
-
- `scenario-matcher.test.ts`: Event matching, assertions, aggregates
|
|
381
|
-
- `template-parser.test.ts`: Expression evaluation, template parsing
|
|
382
|
-
- `template-renderer.test.ts`: End-to-end workflow rendering
|
|
383
|
-
|
|
384
|
-
## Architecture
|
|
385
|
-
|
|
386
|
-
```
|
|
387
|
-
workflow/
|
|
388
|
-
├── types.ts # TypeScript type definitions
|
|
389
|
-
├── scenario-matcher.ts # Scenario selection and matching logic
|
|
390
|
-
├── template-parser.ts # Template expression parser
|
|
391
|
-
├── template-renderer.ts # Main rendering engine
|
|
392
|
-
├── index.ts # Public API exports
|
|
393
|
-
└── __tests__/ # Comprehensive test suite
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
## Contributing
|
|
397
|
-
|
|
398
|
-
When adding new features:
|
|
399
|
-
|
|
400
|
-
1. Add type definitions to `types.ts`
|
|
401
|
-
2. Implement logic in appropriate module
|
|
402
|
-
3. Add tests covering new functionality
|
|
403
|
-
4. Update this README with examples
|
|
404
|
-
5. Create example `.workflow.json` files
|
|
405
|
-
|
|
406
|
-
## License
|
|
407
|
-
|
|
408
|
-
Part of the Principal View Core Library.
|