@principal-ai/subsystems-core 0.29.0 → 0.30.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 +7 -62
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +11 -146
- 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/package.json +7 -24
- package/src/index.ts +7 -580
- package/src/node.ts +21 -262
- package/src/types/index.ts +3 -456
- 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,158 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scope Events Validator
|
|
3
|
-
*
|
|
4
|
-
* Validates that each instrumentation scope documented in architecture.scopes.canvas
|
|
5
|
-
* has a corresponding {scope-name}.events.canvas file documenting its event vocabulary.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { FileSystemAdapter } from '@principal-ai/repository-abstraction';
|
|
9
|
-
import type { ExtendedCanvas, OtelScopeNode } from '../types/canvas';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Scope events validation context
|
|
13
|
-
*/
|
|
14
|
-
export interface ScopeEventsValidationContext {
|
|
15
|
-
/** The scopes canvas (if found) */
|
|
16
|
-
scopesCanvas?: ExtendedCanvas;
|
|
17
|
-
|
|
18
|
-
/** Path to the scopes canvas file */
|
|
19
|
-
scopesCanvasPath?: string;
|
|
20
|
-
|
|
21
|
-
/** Base path for resolving relative paths */
|
|
22
|
-
basePath: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Scope events validation violation
|
|
27
|
-
*/
|
|
28
|
-
export interface ScopeEventsViolation {
|
|
29
|
-
/** Rule ID that detected this violation */
|
|
30
|
-
ruleId: string;
|
|
31
|
-
|
|
32
|
-
/** Severity level */
|
|
33
|
-
severity: 'error' | 'warn';
|
|
34
|
-
|
|
35
|
-
/** Scope name */
|
|
36
|
-
scope: string;
|
|
37
|
-
|
|
38
|
-
/** Expected file path */
|
|
39
|
-
expectedPath: string;
|
|
40
|
-
|
|
41
|
-
/** Human-readable description of what's wrong */
|
|
42
|
-
message: string;
|
|
43
|
-
|
|
44
|
-
/** Why this matters */
|
|
45
|
-
impact: string;
|
|
46
|
-
|
|
47
|
-
/** How to fix it */
|
|
48
|
-
suggestion: string;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Scope events validation result
|
|
53
|
-
*/
|
|
54
|
-
export interface ScopeEventsValidationResult {
|
|
55
|
-
/** Whether validation passed (no errors) */
|
|
56
|
-
valid: boolean;
|
|
57
|
-
|
|
58
|
-
/** List of violations found */
|
|
59
|
-
violations: ScopeEventsViolation[];
|
|
60
|
-
|
|
61
|
-
/** Summary of events canvas coverage */
|
|
62
|
-
coverage: {
|
|
63
|
-
/** Total owned scopes from library.yaml */
|
|
64
|
-
totalScopes: number;
|
|
65
|
-
/** Scopes with events canvas files */
|
|
66
|
-
scopesWithEvents: string[];
|
|
67
|
-
/** Scopes missing events canvas */
|
|
68
|
-
scopesMissingEvents: string[];
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Convert scope name to events canvas filename
|
|
74
|
-
* e.g., "backlog.md.cli" -> "backlog-md-cli.events.canvas"
|
|
75
|
-
*/
|
|
76
|
-
function scopeToEventsCanvasFilename(scope: string): string {
|
|
77
|
-
return `${scope.replace(/\./g, '-')}.events.canvas`;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Validates that scopes have corresponding events canvas files
|
|
82
|
-
*/
|
|
83
|
-
export class ScopeEventsValidator {
|
|
84
|
-
constructor(private fsAdapter: FileSystemAdapter) {}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Validate that each scope documented in scopes canvas has an events canvas
|
|
88
|
-
*/
|
|
89
|
-
async validate(context: ScopeEventsValidationContext): Promise<ScopeEventsValidationResult> {
|
|
90
|
-
const violations: ScopeEventsViolation[] = [];
|
|
91
|
-
const { scopesCanvas, scopesCanvasPath, basePath } = context;
|
|
92
|
-
|
|
93
|
-
const scopesWithEvents: string[] = [];
|
|
94
|
-
const scopesMissingEvents: string[] = [];
|
|
95
|
-
|
|
96
|
-
// If no scopes canvas, nothing to validate
|
|
97
|
-
if (!scopesCanvas) {
|
|
98
|
-
return {
|
|
99
|
-
valid: true,
|
|
100
|
-
violations: [],
|
|
101
|
-
coverage: {
|
|
102
|
-
totalScopes: 0,
|
|
103
|
-
scopesWithEvents: [],
|
|
104
|
-
scopesMissingEvents: [],
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Extract scope nodes from the canvas
|
|
110
|
-
const scopeNodes = (scopesCanvas.nodes || []).filter(
|
|
111
|
-
(node): node is OtelScopeNode => node.type === 'otel-scope'
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
// Check each scope for corresponding events canvas
|
|
115
|
-
for (const scopeNode of scopeNodes) {
|
|
116
|
-
const scope = scopeNode.otel?.scope;
|
|
117
|
-
if (!scope) continue;
|
|
118
|
-
|
|
119
|
-
const eventsCanvasFilename = scopeToEventsCanvasFilename(scope);
|
|
120
|
-
const eventsCanvasPath = this.fsAdapter.join(basePath, '.principal-views', eventsCanvasFilename);
|
|
121
|
-
const relativePath = `.principal-views/${eventsCanvasFilename}`;
|
|
122
|
-
|
|
123
|
-
if (await this.fsAdapter.exists(eventsCanvasPath)) {
|
|
124
|
-
scopesWithEvents.push(scope);
|
|
125
|
-
} else {
|
|
126
|
-
scopesMissingEvents.push(scope);
|
|
127
|
-
violations.push({
|
|
128
|
-
ruleId: 'scope-events-canvas-required',
|
|
129
|
-
severity: 'warn',
|
|
130
|
-
scope,
|
|
131
|
-
expectedPath: relativePath,
|
|
132
|
-
message: `Scope "${scope}" is missing an events canvas`,
|
|
133
|
-
impact: `Event vocabulary for scope "${scope}" is not documented. This makes it impossible to:
|
|
134
|
-
- Understand what events the scope emits
|
|
135
|
-
- Validate event flows match actual code
|
|
136
|
-
- Track event schema changes over time
|
|
137
|
-
- Generate documentation for implementers`,
|
|
138
|
-
suggestion: `Create ${relativePath} that documents:
|
|
139
|
-
- Event namespaces (groups of related events like "validation", "file", etc.)
|
|
140
|
-
- Events within each namespace with their attributes
|
|
141
|
-
- Adjacency relationships (which event namespaces connect in workflows)
|
|
142
|
-
|
|
143
|
-
See architecture.events.md for conventions.`,
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return {
|
|
149
|
-
valid: violations.filter(v => v.severity === 'error').length === 0,
|
|
150
|
-
violations,
|
|
151
|
-
coverage: {
|
|
152
|
-
totalScopes: scopeNodes.length,
|
|
153
|
-
scopesWithEvents,
|
|
154
|
-
scopesMissingEvents,
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
}
|
package/src/events/index.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export { EventsCanvasValidator } from './EventsCanvasValidator';
|
|
2
|
-
export type {
|
|
3
|
-
EventNamespaceNode,
|
|
4
|
-
EventsCanvasValidationContext,
|
|
5
|
-
EventsCanvasViolation,
|
|
6
|
-
EventsCanvasValidationResult,
|
|
7
|
-
} from './EventsCanvasValidator';
|
|
8
|
-
|
|
9
|
-
export { ScopeEventsValidator } from './ScopeEventsValidator';
|
|
10
|
-
export type {
|
|
11
|
-
ScopeEventsValidationContext,
|
|
12
|
-
ScopeEventsViolation,
|
|
13
|
-
ScopeEventsValidationResult,
|
|
14
|
-
} from './ScopeEventsValidator';
|
|
15
|
-
|
|
16
|
-
export { NamespacePathIndex } from './NamespacePathIndex';
|
|
17
|
-
export type { NamespacePathEntry, NamespacePathMatch } from './NamespacePathIndex';
|
|
18
|
-
|
|
19
|
-
export { OtelEventPathsValidator } from './OtelEventPathsValidator';
|
|
20
|
-
export type {
|
|
21
|
-
OtelEventPathsValidationContext,
|
|
22
|
-
OtelEventPathsValidationResult,
|
|
23
|
-
OtelEventPathsViolation,
|
|
24
|
-
OtelEventPathsRuleId,
|
|
25
|
-
EventsCanvasInput,
|
|
26
|
-
OtelCanvasInput,
|
|
27
|
-
} from './OtelEventPathsValidator';
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path helpers shared across events-canvas validators.
|
|
3
|
-
*
|
|
4
|
-
* Paths declared in canvases (namespace `paths`, `otel.files`, etc.) are
|
|
5
|
-
* always repo-relative. These helpers give a consistent notion of
|
|
6
|
-
* canonicalization and prefix-based containment so that separate validators
|
|
7
|
-
* don't drift.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Canonicalize a declared path for comparison.
|
|
12
|
-
* Strips leading `./`, trailing slashes, and collapses duplicate slashes.
|
|
13
|
-
*/
|
|
14
|
-
export function normalizePath(p: string): string {
|
|
15
|
-
return p
|
|
16
|
-
.replace(/^\.\//, '')
|
|
17
|
-
.replace(/\/+$/, '')
|
|
18
|
-
.replace(/\/+/g, '/');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* True when `child` is strictly nested under `parent` (not equal).
|
|
23
|
-
* Both inputs should already be normalized.
|
|
24
|
-
*/
|
|
25
|
-
export function isPathDescendant(child: string, parent: string): boolean {
|
|
26
|
-
return child.startsWith(parent + '/');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* True when `filepath` is covered by `declaredPath` — either equal to it
|
|
31
|
-
* (file match) or nested under it (folder match). Inputs are normalized
|
|
32
|
-
* internally so callers can pass raw canvas values.
|
|
33
|
-
*/
|
|
34
|
-
export function pathCovers(declaredPath: string, filepath: string): boolean {
|
|
35
|
-
const d = normalizePath(declaredPath);
|
|
36
|
-
const f = normalizePath(filepath);
|
|
37
|
-
return d === f || isPathDescendant(f, d);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Classify the relationship between two declared paths.
|
|
42
|
-
* - 'none': disjoint — no overlap
|
|
43
|
-
* - 'partition': one is strictly a parent of the other — valid nested-namespace case
|
|
44
|
-
* (longest-prefix wins at runtime, parent/child partition the tree)
|
|
45
|
-
* - 'conflict': identical, or overlap that isn't a clean parent-child partition
|
|
46
|
-
*/
|
|
47
|
-
export function pathsOverlap(a: string, b: string): 'none' | 'partition' | 'conflict' {
|
|
48
|
-
const na = normalizePath(a);
|
|
49
|
-
const nb = normalizePath(b);
|
|
50
|
-
if (na === nb) return 'conflict';
|
|
51
|
-
if (isPathDescendant(na, nb) || isPathDescendant(nb, na)) return 'partition';
|
|
52
|
-
return 'none';
|
|
53
|
-
}
|
|
@@ -1,378 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from 'bun:test';
|
|
2
|
-
import { ExecutionLoader, createExecutionLoader } from './ExecutionLoader';
|
|
3
|
-
import type { FileSystemAdapter } from '@principal-ai/repository-abstraction';
|
|
4
|
-
import type { OtlpData } from './ExecutionValidator';
|
|
5
|
-
|
|
6
|
-
// Mock file system adapter
|
|
7
|
-
class MockFileSystemAdapter implements FileSystemAdapter {
|
|
8
|
-
private files: Map<string, string> = new Map();
|
|
9
|
-
private dirs: Set<string> = new Set();
|
|
10
|
-
|
|
11
|
-
constructor() {
|
|
12
|
-
// Set up directory structure
|
|
13
|
-
this.dirs.add('/project');
|
|
14
|
-
this.dirs.add('/project/__executions__');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
addFile(path: string, content: string) {
|
|
18
|
-
this.files.set(path, content);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
addDirectory(path: string) {
|
|
22
|
-
this.dirs.add(path);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
exists(path: string): boolean {
|
|
26
|
-
return this.files.has(path) || this.dirs.has(path);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
isDirectory(path: string): boolean {
|
|
30
|
-
return this.dirs.has(path);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
readFile(path: string): string {
|
|
34
|
-
const content = this.files.get(path);
|
|
35
|
-
if (!content) {
|
|
36
|
-
throw new Error(`File not found: ${path}`);
|
|
37
|
-
}
|
|
38
|
-
return content;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
readDir(path: string): string[] {
|
|
42
|
-
if (!this.dirs.has(path)) {
|
|
43
|
-
throw new Error(`Directory not found: ${path}`);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const prefix = path.endsWith('/') ? path : `${path}/`;
|
|
47
|
-
const items: Set<string> = new Set();
|
|
48
|
-
|
|
49
|
-
// Add files
|
|
50
|
-
for (const filePath of this.files.keys()) {
|
|
51
|
-
if (filePath.startsWith(prefix)) {
|
|
52
|
-
const relativePath = filePath.substring(prefix.length);
|
|
53
|
-
if (!relativePath.includes('/')) {
|
|
54
|
-
items.add(relativePath);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Add directories
|
|
60
|
-
for (const dirPath of this.dirs) {
|
|
61
|
-
if (dirPath.startsWith(prefix) && dirPath !== path) {
|
|
62
|
-
const relativePath = dirPath.substring(prefix.length);
|
|
63
|
-
const firstSegment = relativePath.split('/')[0];
|
|
64
|
-
if (firstSegment) {
|
|
65
|
-
items.add(firstSegment);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return Array.from(items);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
join(...paths: string[]): string {
|
|
74
|
-
return paths
|
|
75
|
-
.join('/')
|
|
76
|
-
.replace(/\/+/g, '/')
|
|
77
|
-
.replace(/\/\./g, '')
|
|
78
|
-
.replace(/\/[^/]+\/\.\./g, '');
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
resolve(...paths: string[]): string {
|
|
82
|
-
return this.join(...paths);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
dirname(path: string): string {
|
|
86
|
-
return path.split('/').slice(0, -1).join('/');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
basename(path: string): string {
|
|
90
|
-
return path.split('/').pop() || '';
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
writeFile(_path: string, _content: string): void {
|
|
94
|
-
// Not implemented
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
copyFile(_src: string, _dest: string): void {
|
|
98
|
-
// Not implemented
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
mkdirSync(_path: string): void {
|
|
102
|
-
// Not implemented
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
describe('ExecutionLoader', () => {
|
|
107
|
-
test('hasExecutionDirectory returns true when __executions__/ exists', async () => {
|
|
108
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
109
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
110
|
-
|
|
111
|
-
expect(await loader.hasExecutionDirectory('/project')).toBe(true);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
test('hasExecutionDirectory returns false when __executions__/ does not exist', async () => {
|
|
115
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
116
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
117
|
-
|
|
118
|
-
expect(await loader.hasExecutionDirectory('/other')).toBe(false);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
test('listExecutions returns execution names', async () => {
|
|
122
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
123
|
-
fsAdapter.addFile(
|
|
124
|
-
'/project/__executions__/test-run.otel.json',
|
|
125
|
-
JSON.stringify({ spans: [] })
|
|
126
|
-
);
|
|
127
|
-
fsAdapter.addFile(
|
|
128
|
-
'/project/__executions__/feature-test.otel.json',
|
|
129
|
-
JSON.stringify({ spans: [] })
|
|
130
|
-
);
|
|
131
|
-
|
|
132
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
133
|
-
const executions = await loader.listExecutions('/project');
|
|
134
|
-
|
|
135
|
-
expect(executions).toEqual(['feature-test', 'test-run']);
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
test('listExecutions ignores non-.otel.json files', async () => {
|
|
139
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
140
|
-
fsAdapter.addFile(
|
|
141
|
-
'/project/__executions__/test-run.otel.json',
|
|
142
|
-
JSON.stringify({ spans: [] })
|
|
143
|
-
);
|
|
144
|
-
fsAdapter.addFile('/project/__executions__/README.md', '# README');
|
|
145
|
-
|
|
146
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
147
|
-
const executions = await loader.listExecutions('/project');
|
|
148
|
-
|
|
149
|
-
expect(executions).toEqual(['test-run']);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
test('loadByName loads valid execution with flattened format', async () => {
|
|
153
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
154
|
-
const executionData = {
|
|
155
|
-
metadata: {
|
|
156
|
-
serviceName: 'test-service',
|
|
157
|
-
exportedAt: '2024-01-01T00:00:00Z',
|
|
158
|
-
},
|
|
159
|
-
spans: [
|
|
160
|
-
{
|
|
161
|
-
id: 'span-1',
|
|
162
|
-
name: 'test-span',
|
|
163
|
-
startTime: 1000,
|
|
164
|
-
endTime: 2000,
|
|
165
|
-
duration: 1000,
|
|
166
|
-
status: 'OK',
|
|
167
|
-
attributes: {},
|
|
168
|
-
events: [],
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
fsAdapter.addFile(
|
|
174
|
-
'/project/__executions__/test-run.otel.json',
|
|
175
|
-
JSON.stringify(executionData)
|
|
176
|
-
);
|
|
177
|
-
|
|
178
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
179
|
-
const result = await loader.loadByName('test-run', '/project');
|
|
180
|
-
|
|
181
|
-
expect(result).not.toBeNull();
|
|
182
|
-
expect(result?.name).toBe('test-run');
|
|
183
|
-
expect(result?.data.spans).toHaveLength(1);
|
|
184
|
-
expect(result?.data.spans[0].name).toBe('test-span');
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
test('loadByName loads and converts OTLP format', async () => {
|
|
188
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
189
|
-
const otlpData: OtlpData = {
|
|
190
|
-
resourceSpans: [
|
|
191
|
-
{
|
|
192
|
-
resource: {
|
|
193
|
-
attributes: [
|
|
194
|
-
{
|
|
195
|
-
key: 'service.name',
|
|
196
|
-
value: { stringValue: 'test-service' },
|
|
197
|
-
},
|
|
198
|
-
],
|
|
199
|
-
droppedAttributesCount: 0,
|
|
200
|
-
},
|
|
201
|
-
scopeSpans: [
|
|
202
|
-
{
|
|
203
|
-
scope: {
|
|
204
|
-
name: 'test-tracer',
|
|
205
|
-
version: '1.0.0',
|
|
206
|
-
},
|
|
207
|
-
spans: [
|
|
208
|
-
{
|
|
209
|
-
traceId: '4bf92f3577b34da6a3ce929d0e0e4736',
|
|
210
|
-
spanId: '00f067aa0ba902b7',
|
|
211
|
-
name: 'test.operation',
|
|
212
|
-
kind: 1,
|
|
213
|
-
startTimeUnixNano: '1000000000',
|
|
214
|
-
endTimeUnixNano: '2000000000',
|
|
215
|
-
attributes: [],
|
|
216
|
-
events: [],
|
|
217
|
-
status: { code: 1 },
|
|
218
|
-
droppedAttributesCount: 0,
|
|
219
|
-
droppedEventsCount: 0,
|
|
220
|
-
droppedLinksCount: 0,
|
|
221
|
-
links: [],
|
|
222
|
-
},
|
|
223
|
-
],
|
|
224
|
-
},
|
|
225
|
-
],
|
|
226
|
-
},
|
|
227
|
-
],
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
fsAdapter.addFile(
|
|
231
|
-
'/project/__executions__/otlp-test.otel.json',
|
|
232
|
-
JSON.stringify(otlpData)
|
|
233
|
-
);
|
|
234
|
-
|
|
235
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
236
|
-
const result = await loader.loadByName('otlp-test', '/project');
|
|
237
|
-
|
|
238
|
-
expect(result).not.toBeNull();
|
|
239
|
-
expect(result?.name).toBe('otlp-test');
|
|
240
|
-
expect(result?.data.spans).toHaveLength(1);
|
|
241
|
-
expect(result?.data.spans[0].name).toBe('test.operation');
|
|
242
|
-
expect(result?.data.spans[0].id).toBe('00f067aa0ba902b7');
|
|
243
|
-
expect(result?.data.metadata?.serviceName).toBe('test-service');
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
test('loadByName returns null for non-existent execution', async () => {
|
|
247
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
248
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
249
|
-
|
|
250
|
-
const result = await loader.loadByName('non-existent', '/project');
|
|
251
|
-
|
|
252
|
-
expect(result).toBeNull();
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
test('loadByName returns null for invalid JSON', async () => {
|
|
256
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
257
|
-
fsAdapter.addFile(
|
|
258
|
-
'/project/__executions__/invalid.otel.json',
|
|
259
|
-
'invalid json{'
|
|
260
|
-
);
|
|
261
|
-
|
|
262
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
263
|
-
const result = await loader.loadByName('invalid', '/project');
|
|
264
|
-
|
|
265
|
-
expect(result).toBeNull();
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
test('loadAll loads all valid executions', async () => {
|
|
269
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
270
|
-
fsAdapter.addFile(
|
|
271
|
-
'/project/__executions__/test-1.otel.json',
|
|
272
|
-
JSON.stringify({ spans: [{ id: '1', name: 'span1', events: [] }] })
|
|
273
|
-
);
|
|
274
|
-
fsAdapter.addFile(
|
|
275
|
-
'/project/__executions__/test-2.otel.json',
|
|
276
|
-
JSON.stringify({ spans: [{ id: '2', name: 'span2', events: [] }] })
|
|
277
|
-
);
|
|
278
|
-
|
|
279
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
280
|
-
const result = await loader.loadAll('/project');
|
|
281
|
-
|
|
282
|
-
expect(result.executions).toHaveLength(2);
|
|
283
|
-
expect(result.errors).toHaveLength(0);
|
|
284
|
-
expect(result.executions[0].name).toBe('test-1');
|
|
285
|
-
expect(result.executions[1].name).toBe('test-2');
|
|
286
|
-
});
|
|
287
|
-
|
|
288
|
-
test('loadAll reports errors for invalid files', async () => {
|
|
289
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
290
|
-
fsAdapter.addFile(
|
|
291
|
-
'/project/__executions__/valid.otel.json',
|
|
292
|
-
JSON.stringify({ spans: [{ id: '1', name: 'span1', events: [] }] })
|
|
293
|
-
);
|
|
294
|
-
fsAdapter.addFile(
|
|
295
|
-
'/project/__executions__/invalid.otel.json',
|
|
296
|
-
'invalid json{'
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
300
|
-
const result = await loader.loadAll('/project');
|
|
301
|
-
|
|
302
|
-
expect(result.executions).toHaveLength(1);
|
|
303
|
-
expect(result.errors).toHaveLength(1);
|
|
304
|
-
expect(result.errors[0].file).toBe('invalid.otel.json');
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
test('loadAll returns error when __executions__/ does not exist', async () => {
|
|
308
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
309
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
310
|
-
|
|
311
|
-
const result = await loader.loadAll('/non-existent');
|
|
312
|
-
|
|
313
|
-
expect(result.executions).toHaveLength(0);
|
|
314
|
-
expect(result.errors).toHaveLength(1);
|
|
315
|
-
expect(result.errors[0].file).toBe('__executions__');
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
test('getExecutionDirectoryPath returns correct path', async () => {
|
|
319
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
320
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
321
|
-
|
|
322
|
-
const path = loader.getExecutionDirectoryPath('/project');
|
|
323
|
-
|
|
324
|
-
expect(path).toBe('/project/__executions__');
|
|
325
|
-
});
|
|
326
|
-
|
|
327
|
-
test('findExecutionDirectories finds nested __executions__/ folders', async () => {
|
|
328
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
329
|
-
fsAdapter.addDirectory('/project/packages');
|
|
330
|
-
fsAdapter.addDirectory('/project/packages/subsystems-core');
|
|
331
|
-
fsAdapter.addDirectory('/project/packages/subsystems-core/__executions__');
|
|
332
|
-
fsAdapter.addDirectory('/project/packages/principal-studio-cli');
|
|
333
|
-
fsAdapter.addDirectory('/project/packages/principal-studio-cli/__executions__');
|
|
334
|
-
|
|
335
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
336
|
-
const dirs = await loader.findExecutionDirectories('/project');
|
|
337
|
-
|
|
338
|
-
expect(dirs).toHaveLength(3); // root + core + cli
|
|
339
|
-
expect(dirs).toContain('/project/__executions__');
|
|
340
|
-
expect(dirs).toContain('/project/packages/subsystems-core/__executions__');
|
|
341
|
-
expect(dirs).toContain('/project/packages/principal-studio-cli/__executions__');
|
|
342
|
-
});
|
|
343
|
-
|
|
344
|
-
test('loadAllRecursive loads executions from multiple directories', async () => {
|
|
345
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
346
|
-
|
|
347
|
-
// Root executions
|
|
348
|
-
fsAdapter.addFile(
|
|
349
|
-
'/project/__executions__/root-test.otel.json',
|
|
350
|
-
JSON.stringify({ spans: [{ id: '1', name: 'root', events: [] }] })
|
|
351
|
-
);
|
|
352
|
-
|
|
353
|
-
// Package executions
|
|
354
|
-
fsAdapter.addDirectory('/project/packages');
|
|
355
|
-
fsAdapter.addDirectory('/project/packages/subsystems-core');
|
|
356
|
-
fsAdapter.addDirectory('/project/packages/subsystems-core/__executions__');
|
|
357
|
-
fsAdapter.addFile(
|
|
358
|
-
'/project/packages/subsystems-core/__executions__/core-test.otel.json',
|
|
359
|
-
JSON.stringify({ spans: [{ id: '2', name: 'core', events: [] }] })
|
|
360
|
-
);
|
|
361
|
-
|
|
362
|
-
const loader = new ExecutionLoader(fsAdapter);
|
|
363
|
-
const result = await loader.loadAllRecursive('/project');
|
|
364
|
-
|
|
365
|
-
expect(result.executions).toHaveLength(2);
|
|
366
|
-
expect(result.executions.map((e) => e.name)).toContain('root-test');
|
|
367
|
-
expect(result.executions.map((e) => e.name)).toContain('core-test');
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
|
|
371
|
-
describe('createExecutionLoader', () => {
|
|
372
|
-
test('creates ExecutionLoader instance', async () => {
|
|
373
|
-
const fsAdapter = new MockFileSystemAdapter();
|
|
374
|
-
const loader = createExecutionLoader(fsAdapter);
|
|
375
|
-
|
|
376
|
-
expect(loader).toBeInstanceOf(ExecutionLoader);
|
|
377
|
-
});
|
|
378
|
-
});
|