@opensip-cli/core 0.1.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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +31 -0
- package/dist/__tests__/config-resolution.test.d.ts +2 -0
- package/dist/__tests__/config-resolution.test.d.ts.map +1 -0
- package/dist/__tests__/config-resolution.test.js +94 -0
- package/dist/__tests__/config-resolution.test.js.map +1 -0
- package/dist/__tests__/public-api.test.d.ts +16 -0
- package/dist/__tests__/public-api.test.d.ts.map +1 -0
- package/dist/__tests__/public-api.test.js +209 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/signal-batch.test.d.ts +2 -0
- package/dist/__tests__/signal-batch.test.d.ts.map +1 -0
- package/dist/__tests__/signal-batch.test.js +39 -0
- package/dist/__tests__/signal-batch.test.js.map +1 -0
- package/dist/__tests__/signal-sink.test.d.ts +2 -0
- package/dist/__tests__/signal-sink.test.d.ts.map +1 -0
- package/dist/__tests__/signal-sink.test.js +25 -0
- package/dist/__tests__/signal-sink.test.js.map +1 -0
- package/dist/__tests__/strip-utils.test.d.ts +2 -0
- package/dist/__tests__/strip-utils.test.d.ts.map +1 -0
- package/dist/__tests__/strip-utils.test.js +397 -0
- package/dist/__tests__/strip-utils.test.js.map +1 -0
- package/dist/__tests__/text-tree.test.d.ts +2 -0
- package/dist/__tests__/text-tree.test.d.ts.map +1 -0
- package/dist/__tests__/text-tree.test.js +31 -0
- package/dist/__tests__/text-tree.test.js.map +1 -0
- package/dist/baseline/__tests__/fingerprint-strategy.test.d.ts +2 -0
- package/dist/baseline/__tests__/fingerprint-strategy.test.d.ts.map +1 -0
- package/dist/baseline/__tests__/fingerprint-strategy.test.js +69 -0
- package/dist/baseline/__tests__/fingerprint-strategy.test.js.map +1 -0
- package/dist/baseline/fingerprint-strategy.d.ts +70 -0
- package/dist/baseline/fingerprint-strategy.d.ts.map +1 -0
- package/dist/baseline/fingerprint-strategy.js +90 -0
- package/dist/baseline/fingerprint-strategy.js.map +1 -0
- package/dist/config-resolution.d.ts +27 -0
- package/dist/config-resolution.d.ts.map +1 -0
- package/dist/config-resolution.js +92 -0
- package/dist/config-resolution.js.map +1 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +165 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/__tests__/content-filter-dispatch.test.d.ts +2 -0
- package/dist/languages/__tests__/content-filter-dispatch.test.d.ts.map +1 -0
- package/dist/languages/__tests__/content-filter-dispatch.test.js +87 -0
- package/dist/languages/__tests__/content-filter-dispatch.test.js.map +1 -0
- package/dist/languages/__tests__/non-code-formats.test.d.ts +2 -0
- package/dist/languages/__tests__/non-code-formats.test.d.ts.map +1 -0
- package/dist/languages/__tests__/non-code-formats.test.js +31 -0
- package/dist/languages/__tests__/non-code-formats.test.js.map +1 -0
- package/dist/languages/__tests__/parse-cache.test.d.ts +2 -0
- package/dist/languages/__tests__/parse-cache.test.d.ts.map +1 -0
- package/dist/languages/__tests__/parse-cache.test.js +228 -0
- package/dist/languages/__tests__/parse-cache.test.js.map +1 -0
- package/dist/languages/__tests__/registry.test.d.ts +2 -0
- package/dist/languages/__tests__/registry.test.d.ts.map +1 -0
- package/dist/languages/__tests__/registry.test.js +193 -0
- package/dist/languages/__tests__/registry.test.js.map +1 -0
- package/dist/languages/__tests__/workspace-unit-contract.test.d.ts +2 -0
- package/dist/languages/__tests__/workspace-unit-contract.test.d.ts.map +1 -0
- package/dist/languages/__tests__/workspace-unit-contract.test.js +66 -0
- package/dist/languages/__tests__/workspace-unit-contract.test.js.map +1 -0
- package/dist/languages/adapter.d.ts +66 -0
- package/dist/languages/adapter.d.ts.map +1 -0
- package/dist/languages/adapter.js +2 -0
- package/dist/languages/adapter.js.map +1 -0
- package/dist/languages/content-filter-dispatch.d.ts +36 -0
- package/dist/languages/content-filter-dispatch.d.ts.map +1 -0
- package/dist/languages/content-filter-dispatch.js +75 -0
- package/dist/languages/content-filter-dispatch.js.map +1 -0
- package/dist/languages/generic-types.d.ts +22 -0
- package/dist/languages/generic-types.d.ts.map +1 -0
- package/dist/languages/generic-types.js +3 -0
- package/dist/languages/generic-types.js.map +1 -0
- package/dist/languages/index.d.ts +12 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +7 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/non-code-formats.d.ts +37 -0
- package/dist/languages/non-code-formats.d.ts.map +1 -0
- package/dist/languages/non-code-formats.js +45 -0
- package/dist/languages/non-code-formats.js.map +1 -0
- package/dist/languages/parse-cache-class.d.ts +69 -0
- package/dist/languages/parse-cache-class.d.ts.map +1 -0
- package/dist/languages/parse-cache-class.js +135 -0
- package/dist/languages/parse-cache-class.js.map +1 -0
- package/dist/languages/parse-cache.d.ts +54 -0
- package/dist/languages/parse-cache.d.ts.map +1 -0
- package/dist/languages/parse-cache.js +88 -0
- package/dist/languages/parse-cache.js.map +1 -0
- package/dist/languages/registry.d.ts +35 -0
- package/dist/languages/registry.d.ts.map +1 -0
- package/dist/languages/registry.js +123 -0
- package/dist/languages/registry.js.map +1 -0
- package/dist/languages/strip-scanners.d.ts +170 -0
- package/dist/languages/strip-scanners.d.ts.map +1 -0
- package/dist/languages/strip-scanners.js +233 -0
- package/dist/languages/strip-scanners.js.map +1 -0
- package/dist/languages/strip-utils.d.ts +66 -0
- package/dist/languages/strip-utils.d.ts.map +1 -0
- package/dist/languages/strip-utils.js +88 -0
- package/dist/languages/strip-utils.js.map +1 -0
- package/dist/languages/text-tree.d.ts +44 -0
- package/dist/languages/text-tree.d.ts.map +1 -0
- package/dist/languages/text-tree.js +34 -0
- package/dist/languages/text-tree.js.map +1 -0
- package/dist/languages/workspace-unit.d.ts +18 -0
- package/dist/languages/workspace-unit.d.ts.map +1 -0
- package/dist/languages/workspace-unit.js +2 -0
- package/dist/languages/workspace-unit.js.map +1 -0
- package/dist/lib/__tests__/config-version.test.d.ts +12 -0
- package/dist/lib/__tests__/config-version.test.d.ts.map +1 -0
- package/dist/lib/__tests__/config-version.test.js +92 -0
- package/dist/lib/__tests__/config-version.test.js.map +1 -0
- package/dist/lib/__tests__/diagnostics-bus.test.d.ts +7 -0
- package/dist/lib/__tests__/diagnostics-bus.test.d.ts.map +1 -0
- package/dist/lib/__tests__/diagnostics-bus.test.js +44 -0
- package/dist/lib/__tests__/diagnostics-bus.test.js.map +1 -0
- package/dist/lib/__tests__/env-registry.test.d.ts +7 -0
- package/dist/lib/__tests__/env-registry.test.d.ts.map +1 -0
- package/dist/lib/__tests__/env-registry.test.js +82 -0
- package/dist/lib/__tests__/env-registry.test.js.map +1 -0
- package/dist/lib/__tests__/errors.test.d.ts +2 -0
- package/dist/lib/__tests__/errors.test.d.ts.map +1 -0
- package/dist/lib/__tests__/errors.test.js +218 -0
- package/dist/lib/__tests__/errors.test.js.map +1 -0
- package/dist/lib/__tests__/format.test.d.ts +2 -0
- package/dist/lib/__tests__/format.test.d.ts.map +1 -0
- package/dist/lib/__tests__/format.test.js +23 -0
- package/dist/lib/__tests__/format.test.js.map +1 -0
- package/dist/lib/__tests__/ids.test.d.ts +2 -0
- package/dist/lib/__tests__/ids.test.d.ts.map +1 -0
- package/dist/lib/__tests__/ids.test.js +80 -0
- package/dist/lib/__tests__/ids.test.js.map +1 -0
- package/dist/lib/__tests__/logger.test.d.ts +2 -0
- package/dist/lib/__tests__/logger.test.d.ts.map +1 -0
- package/dist/lib/__tests__/logger.test.js +284 -0
- package/dist/lib/__tests__/logger.test.js.map +1 -0
- package/dist/lib/__tests__/package-version.test.d.ts +2 -0
- package/dist/lib/__tests__/package-version.test.d.ts.map +1 -0
- package/dist/lib/__tests__/package-version.test.js +47 -0
- package/dist/lib/__tests__/package-version.test.js.map +1 -0
- package/dist/lib/__tests__/paths.test.d.ts +5 -0
- package/dist/lib/__tests__/paths.test.d.ts.map +1 -0
- package/dist/lib/__tests__/paths.test.js +59 -0
- package/dist/lib/__tests__/paths.test.js.map +1 -0
- package/dist/lib/__tests__/payload-version.test.d.ts +2 -0
- package/dist/lib/__tests__/payload-version.test.d.ts.map +1 -0
- package/dist/lib/__tests__/payload-version.test.js +35 -0
- package/dist/lib/__tests__/payload-version.test.js.map +1 -0
- package/dist/lib/__tests__/phantom-detect.test.d.ts +10 -0
- package/dist/lib/__tests__/phantom-detect.test.d.ts.map +1 -0
- package/dist/lib/__tests__/phantom-detect.test.js +84 -0
- package/dist/lib/__tests__/phantom-detect.test.js.map +1 -0
- package/dist/lib/__tests__/project-context.test.d.ts +10 -0
- package/dist/lib/__tests__/project-context.test.d.ts.map +1 -0
- package/dist/lib/__tests__/project-context.test.js +240 -0
- package/dist/lib/__tests__/project-context.test.js.map +1 -0
- package/dist/lib/__tests__/registry.test.d.ts +2 -0
- package/dist/lib/__tests__/registry.test.d.ts.map +1 -0
- package/dist/lib/__tests__/registry.test.js +333 -0
- package/dist/lib/__tests__/registry.test.js.map +1 -0
- package/dist/lib/__tests__/retry.test.d.ts +2 -0
- package/dist/lib/__tests__/retry.test.d.ts.map +1 -0
- package/dist/lib/__tests__/retry.test.js +71 -0
- package/dist/lib/__tests__/retry.test.js.map +1 -0
- package/dist/lib/__tests__/run-diagnostics.test.d.ts +9 -0
- package/dist/lib/__tests__/run-diagnostics.test.d.ts.map +1 -0
- package/dist/lib/__tests__/run-diagnostics.test.js +61 -0
- package/dist/lib/__tests__/run-diagnostics.test.js.map +1 -0
- package/dist/lib/__tests__/run-scope.test.d.ts +2 -0
- package/dist/lib/__tests__/run-scope.test.d.ts.map +1 -0
- package/dist/lib/__tests__/run-scope.test.js +202 -0
- package/dist/lib/__tests__/run-scope.test.js.map +1 -0
- package/dist/lib/__tests__/run-timer.test.d.ts +2 -0
- package/dist/lib/__tests__/run-timer.test.d.ts.map +1 -0
- package/dist/lib/__tests__/run-timer.test.js +152 -0
- package/dist/lib/__tests__/run-timer.test.js.map +1 -0
- package/dist/lib/__tests__/severity-policy.test.d.ts +6 -0
- package/dist/lib/__tests__/severity-policy.test.d.ts.map +1 -0
- package/dist/lib/__tests__/severity-policy.test.js +47 -0
- package/dist/lib/__tests__/severity-policy.test.js.map +1 -0
- package/dist/lib/__tests__/telemetry.test.d.ts +2 -0
- package/dist/lib/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/lib/__tests__/telemetry.test.js +212 -0
- package/dist/lib/__tests__/telemetry.test.js.map +1 -0
- package/dist/lib/__tests__/verdict-policy.test.d.ts +7 -0
- package/dist/lib/__tests__/verdict-policy.test.d.ts.map +1 -0
- package/dist/lib/__tests__/verdict-policy.test.js +91 -0
- package/dist/lib/__tests__/verdict-policy.test.js.map +1 -0
- package/dist/lib/__tests__/yaml.test.d.ts +6 -0
- package/dist/lib/__tests__/yaml.test.d.ts.map +1 -0
- package/dist/lib/__tests__/yaml.test.js +79 -0
- package/dist/lib/__tests__/yaml.test.js.map +1 -0
- package/dist/lib/config-version.d.ts +49 -0
- package/dist/lib/config-version.d.ts.map +1 -0
- package/dist/lib/config-version.js +56 -0
- package/dist/lib/config-version.js.map +1 -0
- package/dist/lib/diagnostics-bus.d.ts +48 -0
- package/dist/lib/diagnostics-bus.d.ts.map +1 -0
- package/dist/lib/diagnostics-bus.js +74 -0
- package/dist/lib/diagnostics-bus.js.map +1 -0
- package/dist/lib/env-registry.d.ts +108 -0
- package/dist/lib/env-registry.d.ts.map +1 -0
- package/dist/lib/env-registry.js +92 -0
- package/dist/lib/env-registry.js.map +1 -0
- package/dist/lib/errors.d.ts +132 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +160 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/execution/__tests__/execution.test.d.ts +7 -0
- package/dist/lib/execution/__tests__/execution.test.d.ts.map +1 -0
- package/dist/lib/execution/__tests__/execution.test.js +254 -0
- package/dist/lib/execution/__tests__/execution.test.js.map +1 -0
- package/dist/lib/execution/index.d.ts +15 -0
- package/dist/lib/execution/index.d.ts.map +1 -0
- package/dist/lib/execution/index.js +10 -0
- package/dist/lib/execution/index.js.map +1 -0
- package/dist/lib/execution/options.d.ts +32 -0
- package/dist/lib/execution/options.d.ts.map +1 -0
- package/dist/lib/execution/options.js +15 -0
- package/dist/lib/execution/options.js.map +1 -0
- package/dist/lib/execution/pipeline.d.ts +36 -0
- package/dist/lib/execution/pipeline.d.ts.map +1 -0
- package/dist/lib/execution/pipeline.js +38 -0
- package/dist/lib/execution/pipeline.js.map +1 -0
- package/dist/lib/execution/retry.d.ts +38 -0
- package/dist/lib/execution/retry.d.ts.map +1 -0
- package/dist/lib/execution/retry.js +56 -0
- package/dist/lib/execution/retry.js.map +1 -0
- package/dist/lib/execution/run-with-timeout.d.ts +46 -0
- package/dist/lib/execution/run-with-timeout.d.ts.map +1 -0
- package/dist/lib/execution/run-with-timeout.js +86 -0
- package/dist/lib/execution/run-with-timeout.js.map +1 -0
- package/dist/lib/execution/schedule.d.ts +62 -0
- package/dist/lib/execution/schedule.d.ts.map +1 -0
- package/dist/lib/execution/schedule.js +130 -0
- package/dist/lib/execution/schedule.js.map +1 -0
- package/dist/lib/format.d.ts +17 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +26 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/ids.d.ts +13 -0
- package/dist/lib/ids.d.ts.map +1 -0
- package/dist/lib/ids.js +48 -0
- package/dist/lib/ids.js.map +1 -0
- package/dist/lib/logger.d.ts +166 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +283 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/package-version.d.ts +17 -0
- package/dist/lib/package-version.d.ts.map +1 -0
- package/dist/lib/package-version.js +52 -0
- package/dist/lib/package-version.js.map +1 -0
- package/dist/lib/paths.d.ts +139 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +105 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/payload-version.d.ts +15 -0
- package/dist/lib/payload-version.d.ts.map +1 -0
- package/dist/lib/payload-version.js +24 -0
- package/dist/lib/payload-version.js.map +1 -0
- package/dist/lib/phantom-detect.d.ts +21 -0
- package/dist/lib/phantom-detect.d.ts.map +1 -0
- package/dist/lib/phantom-detect.js +76 -0
- package/dist/lib/phantom-detect.js.map +1 -0
- package/dist/lib/project-context.d.ts +66 -0
- package/dist/lib/project-context.d.ts.map +1 -0
- package/dist/lib/project-context.js +112 -0
- package/dist/lib/project-context.js.map +1 -0
- package/dist/lib/recipe-id.d.ts +13 -0
- package/dist/lib/recipe-id.d.ts.map +1 -0
- package/dist/lib/recipe-id.js +15 -0
- package/dist/lib/recipe-id.js.map +1 -0
- package/dist/lib/registry.d.ts +98 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +152 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/retry.d.ts +26 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +48 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/run-diagnostics.d.ts +64 -0
- package/dist/lib/run-diagnostics.d.ts.map +1 -0
- package/dist/lib/run-diagnostics.js +25 -0
- package/dist/lib/run-diagnostics.js.map +1 -0
- package/dist/lib/run-scope.d.ts +167 -0
- package/dist/lib/run-scope.d.ts.map +1 -0
- package/dist/lib/run-scope.js +176 -0
- package/dist/lib/run-scope.js.map +1 -0
- package/dist/lib/run-timer.d.ts +82 -0
- package/dist/lib/run-timer.d.ts.map +1 -0
- package/dist/lib/run-timer.js +79 -0
- package/dist/lib/run-timer.js.map +1 -0
- package/dist/lib/scope-types.d.ts +172 -0
- package/dist/lib/scope-types.d.ts.map +1 -0
- package/dist/lib/scope-types.js +27 -0
- package/dist/lib/scope-types.js.map +1 -0
- package/dist/lib/severity-policy.d.ts +38 -0
- package/dist/lib/severity-policy.d.ts.map +1 -0
- package/dist/lib/severity-policy.js +44 -0
- package/dist/lib/severity-policy.js.map +1 -0
- package/dist/lib/telemetry.d.ts +93 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +144 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/lib/ui-context.d.ts +34 -0
- package/dist/lib/ui-context.d.ts.map +1 -0
- package/dist/lib/ui-context.js +16 -0
- package/dist/lib/ui-context.js.map +1 -0
- package/dist/lib/verdict-policy.d.ts +71 -0
- package/dist/lib/verdict-policy.d.ts.map +1 -0
- package/dist/lib/verdict-policy.js +82 -0
- package/dist/lib/verdict-policy.js.map +1 -0
- package/dist/lib/yaml.d.ts +74 -0
- package/dist/lib/yaml.d.ts.map +1 -0
- package/dist/lib/yaml.js +118 -0
- package/dist/lib/yaml.js.map +1 -0
- package/dist/plugins/__tests__/as-if-external.test.d.ts +18 -0
- package/dist/plugins/__tests__/as-if-external.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/as-if-external.test.js +159 -0
- package/dist/plugins/__tests__/as-if-external.test.js.map +1 -0
- package/dist/plugins/__tests__/authored-tool-discovery.test.d.ts +8 -0
- package/dist/plugins/__tests__/authored-tool-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/authored-tool-discovery.test.js +97 -0
- package/dist/plugins/__tests__/authored-tool-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/capability-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/capability-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/capability-discovery.test.js +349 -0
- package/dist/plugins/__tests__/capability-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/capability-from-manifest.test.d.ts +2 -0
- package/dist/plugins/__tests__/capability-from-manifest.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/capability-from-manifest.test.js +172 -0
- package/dist/plugins/__tests__/capability-from-manifest.test.js.map +1 -0
- package/dist/plugins/__tests__/capability-loader.test.d.ts +2 -0
- package/dist/plugins/__tests__/capability-loader.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/capability-loader.test.js +122 -0
- package/dist/plugins/__tests__/capability-loader.test.js.map +1 -0
- package/dist/plugins/__tests__/capability-registry.test.d.ts +2 -0
- package/dist/plugins/__tests__/capability-registry.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/capability-registry.test.js +185 -0
- package/dist/plugins/__tests__/capability-registry.test.js.map +1 -0
- package/dist/plugins/__tests__/discover.test.d.ts +2 -0
- package/dist/plugins/__tests__/discover.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/discover.test.js +311 -0
- package/dist/plugins/__tests__/discover.test.js.map +1 -0
- package/dist/plugins/__tests__/loader.test.d.ts +2 -0
- package/dist/plugins/__tests__/loader.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/loader.test.js +191 -0
- package/dist/plugins/__tests__/loader.test.js.map +1 -0
- package/dist/plugins/__tests__/manifest-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/manifest-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/manifest-discovery.test.js +132 -0
- package/dist/plugins/__tests__/manifest-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/manifest-loader.test.d.ts +2 -0
- package/dist/plugins/__tests__/manifest-loader.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/manifest-loader.test.js +434 -0
- package/dist/plugins/__tests__/manifest-loader.test.js.map +1 -0
- package/dist/plugins/__tests__/marker-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/marker-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/marker-discovery.test.js +164 -0
- package/dist/plugins/__tests__/marker-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/node-modules-walk.test.d.ts +2 -0
- package/dist/plugins/__tests__/node-modules-walk.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/node-modules-walk.test.js +76 -0
- package/dist/plugins/__tests__/node-modules-walk.test.js.map +1 -0
- package/dist/plugins/__tests__/package-entry.test.d.ts +9 -0
- package/dist/plugins/__tests__/package-entry.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/package-entry.test.js +117 -0
- package/dist/plugins/__tests__/package-entry.test.js.map +1 -0
- package/dist/plugins/__tests__/recipe-loader.test.d.ts +2 -0
- package/dist/plugins/__tests__/recipe-loader.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/recipe-loader.test.js +130 -0
- package/dist/plugins/__tests__/recipe-loader.test.js.map +1 -0
- package/dist/plugins/__tests__/scope-validation.test.d.ts +2 -0
- package/dist/plugins/__tests__/scope-validation.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/scope-validation.test.js +68 -0
- package/dist/plugins/__tests__/scope-validation.test.js.map +1 -0
- package/dist/plugins/__tests__/single-core-guard.test.d.ts +10 -0
- package/dist/plugins/__tests__/single-core-guard.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/single-core-guard.test.js +89 -0
- package/dist/plugins/__tests__/single-core-guard.test.js.map +1 -0
- package/dist/plugins/__tests__/tool-package-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/tool-package-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/tool-package-discovery.test.js +215 -0
- package/dist/plugins/__tests__/tool-package-discovery.test.js.map +1 -0
- package/dist/plugins/authored-tool-discovery.d.ts +45 -0
- package/dist/plugins/authored-tool-discovery.d.ts.map +1 -0
- package/dist/plugins/authored-tool-discovery.js +61 -0
- package/dist/plugins/authored-tool-discovery.js.map +1 -0
- package/dist/plugins/capability-discovery.d.ts +80 -0
- package/dist/plugins/capability-discovery.d.ts.map +1 -0
- package/dist/plugins/capability-discovery.js +278 -0
- package/dist/plugins/capability-discovery.js.map +1 -0
- package/dist/plugins/capability-loader.d.ts +50 -0
- package/dist/plugins/capability-loader.d.ts.map +1 -0
- package/dist/plugins/capability-loader.js +85 -0
- package/dist/plugins/capability-loader.js.map +1 -0
- package/dist/plugins/capability-registry.d.ts +169 -0
- package/dist/plugins/capability-registry.d.ts.map +1 -0
- package/dist/plugins/capability-registry.js +319 -0
- package/dist/plugins/capability-registry.js.map +1 -0
- package/dist/plugins/discover.d.ts +64 -0
- package/dist/plugins/discover.d.ts.map +1 -0
- package/dist/plugins/discover.js +303 -0
- package/dist/plugins/discover.js.map +1 -0
- package/dist/plugins/index.d.ts +37 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +40 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/json-guards.d.ts +11 -0
- package/dist/plugins/json-guards.d.ts.map +1 -0
- package/dist/plugins/json-guards.js +15 -0
- package/dist/plugins/json-guards.js.map +1 -0
- package/dist/plugins/loader.d.ts +67 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +137 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manifest-discovery.d.ts +28 -0
- package/dist/plugins/manifest-discovery.d.ts.map +1 -0
- package/dist/plugins/manifest-discovery.js +103 -0
- package/dist/plugins/manifest-discovery.js.map +1 -0
- package/dist/plugins/manifest-loader.d.ts +120 -0
- package/dist/plugins/manifest-loader.d.ts.map +1 -0
- package/dist/plugins/manifest-loader.js +410 -0
- package/dist/plugins/manifest-loader.js.map +1 -0
- package/dist/plugins/marker-discovery.d.ts +115 -0
- package/dist/plugins/marker-discovery.d.ts.map +1 -0
- package/dist/plugins/marker-discovery.js +172 -0
- package/dist/plugins/marker-discovery.js.map +1 -0
- package/dist/plugins/node-modules-walk.d.ts +61 -0
- package/dist/plugins/node-modules-walk.d.ts.map +1 -0
- package/dist/plugins/node-modules-walk.js +99 -0
- package/dist/plugins/node-modules-walk.js.map +1 -0
- package/dist/plugins/package-entry.d.ts +38 -0
- package/dist/plugins/package-entry.d.ts.map +1 -0
- package/dist/plugins/package-entry.js +86 -0
- package/dist/plugins/package-entry.js.map +1 -0
- package/dist/plugins/recipe-loader.d.ts +63 -0
- package/dist/plugins/recipe-loader.d.ts.map +1 -0
- package/dist/plugins/recipe-loader.js +67 -0
- package/dist/plugins/recipe-loader.js.map +1 -0
- package/dist/plugins/scope-validation.d.ts +35 -0
- package/dist/plugins/scope-validation.d.ts.map +1 -0
- package/dist/plugins/scope-validation.js +55 -0
- package/dist/plugins/scope-validation.js.map +1 -0
- package/dist/plugins/single-core-guard.d.ts +28 -0
- package/dist/plugins/single-core-guard.d.ts.map +1 -0
- package/dist/plugins/single-core-guard.js +69 -0
- package/dist/plugins/single-core-guard.js.map +1 -0
- package/dist/plugins/tool-package-discovery.d.ts +93 -0
- package/dist/plugins/tool-package-discovery.d.ts.map +1 -0
- package/dist/plugins/tool-package-discovery.js +118 -0
- package/dist/plugins/tool-package-discovery.js.map +1 -0
- package/dist/plugins/types.d.ts +78 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +15 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/recipes/__tests__/registry.test.d.ts +2 -0
- package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/registry.test.js +170 -0
- package/dist/recipes/__tests__/registry.test.js.map +1 -0
- package/dist/recipes/__tests__/selector.test.d.ts +20 -0
- package/dist/recipes/__tests__/selector.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/selector.test.js +173 -0
- package/dist/recipes/__tests__/selector.test.js.map +1 -0
- package/dist/recipes/__tests__/unit-config.test.d.ts +7 -0
- package/dist/recipes/__tests__/unit-config.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/unit-config.test.js +52 -0
- package/dist/recipes/__tests__/unit-config.test.js.map +1 -0
- package/dist/recipes/registry.d.ts +105 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +141 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/selector.d.ts +112 -0
- package/dist/recipes/selector.d.ts.map +1 -0
- package/dist/recipes/selector.js +134 -0
- package/dist/recipes/selector.js.map +1 -0
- package/dist/recipes/unit-config.d.ts +63 -0
- package/dist/recipes/unit-config.d.ts.map +1 -0
- package/dist/recipes/unit-config.js +68 -0
- package/dist/recipes/unit-config.js.map +1 -0
- package/dist/runtime/__tests__/in-process-transport.test.d.ts +6 -0
- package/dist/runtime/__tests__/in-process-transport.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/in-process-transport.test.js +73 -0
- package/dist/runtime/__tests__/in-process-transport.test.js.map +1 -0
- package/dist/runtime/__tests__/subprocess-transport.test.d.ts +11 -0
- package/dist/runtime/__tests__/subprocess-transport.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/subprocess-transport.test.js +118 -0
- package/dist/runtime/__tests__/subprocess-transport.test.js.map +1 -0
- package/dist/runtime/in-process-transport.d.ts +20 -0
- package/dist/runtime/in-process-transport.d.ts.map +1 -0
- package/dist/runtime/in-process-transport.js +49 -0
- package/dist/runtime/in-process-transport.js.map +1 -0
- package/dist/runtime/progress-transport.d.ts +73 -0
- package/dist/runtime/progress-transport.d.ts.map +1 -0
- package/dist/runtime/progress-transport.js +17 -0
- package/dist/runtime/progress-transport.js.map +1 -0
- package/dist/runtime/subprocess-transport.d.ts +43 -0
- package/dist/runtime/subprocess-transport.d.ts.map +1 -0
- package/dist/runtime/subprocess-transport.js +134 -0
- package/dist/runtime/subprocess-transport.js.map +1 -0
- package/dist/signals/comment-openers.d.ts +29 -0
- package/dist/signals/comment-openers.d.ts.map +1 -0
- package/dist/signals/comment-openers.js +41 -0
- package/dist/signals/comment-openers.js.map +1 -0
- package/dist/signals/comment-openers.test.d.ts +7 -0
- package/dist/signals/comment-openers.test.d.ts.map +1 -0
- package/dist/signals/comment-openers.test.js +41 -0
- package/dist/signals/comment-openers.test.js.map +1 -0
- package/dist/signals/create-signal-from-violation.d.ts +29 -0
- package/dist/signals/create-signal-from-violation.d.ts.map +1 -0
- package/dist/signals/create-signal-from-violation.js +29 -0
- package/dist/signals/create-signal-from-violation.js.map +1 -0
- package/dist/signals/signal-sink.d.ts +49 -0
- package/dist/signals/signal-sink.d.ts.map +1 -0
- package/dist/signals/signal-sink.js +6 -0
- package/dist/signals/signal-sink.js.map +1 -0
- package/dist/signals/suppress.d.ts +102 -0
- package/dist/signals/suppress.d.ts.map +1 -0
- package/dist/signals/suppress.js +325 -0
- package/dist/signals/suppress.js.map +1 -0
- package/dist/signals/suppress.test.d.ts +2 -0
- package/dist/signals/suppress.test.d.ts.map +1 -0
- package/dist/signals/suppress.test.js +213 -0
- package/dist/signals/suppress.test.js.map +1 -0
- package/dist/tools/__tests__/command-spec.test.d.ts +2 -0
- package/dist/tools/__tests__/command-spec.test.d.ts.map +1 -0
- package/dist/tools/__tests__/command-spec.test.js +191 -0
- package/dist/tools/__tests__/command-spec.test.js.map +1 -0
- package/dist/tools/__tests__/compatibility.test.d.ts +5 -0
- package/dist/tools/__tests__/compatibility.test.d.ts.map +1 -0
- package/dist/tools/__tests__/compatibility.test.js +41 -0
- package/dist/tools/__tests__/compatibility.test.js.map +1 -0
- package/dist/tools/__tests__/ids.test.d.ts +5 -0
- package/dist/tools/__tests__/ids.test.d.ts.map +1 -0
- package/dist/tools/__tests__/ids.test.js +56 -0
- package/dist/tools/__tests__/ids.test.js.map +1 -0
- package/dist/tools/__tests__/manifest-assert.test.d.ts +5 -0
- package/dist/tools/__tests__/manifest-assert.test.d.ts.map +1 -0
- package/dist/tools/__tests__/manifest-assert.test.js +66 -0
- package/dist/tools/__tests__/manifest-assert.test.js.map +1 -0
- package/dist/tools/__tests__/registry.test.d.ts +2 -0
- package/dist/tools/__tests__/registry.test.d.ts.map +1 -0
- package/dist/tools/__tests__/registry.test.js +93 -0
- package/dist/tools/__tests__/registry.test.js.map +1 -0
- package/dist/tools/__tests__/types.test.d.ts +2 -0
- package/dist/tools/__tests__/types.test.d.ts.map +1 -0
- package/dist/tools/__tests__/types.test.js +51 -0
- package/dist/tools/__tests__/types.test.js.map +1 -0
- package/dist/tools/capability.d.ts +257 -0
- package/dist/tools/capability.d.ts.map +1 -0
- package/dist/tools/capability.js +46 -0
- package/dist/tools/capability.js.map +1 -0
- package/dist/tools/command-spec.d.ts +211 -0
- package/dist/tools/command-spec.d.ts.map +1 -0
- package/dist/tools/command-spec.js +110 -0
- package/dist/tools/command-spec.js.map +1 -0
- package/dist/tools/compatibility.d.ts +45 -0
- package/dist/tools/compatibility.d.ts.map +1 -0
- package/dist/tools/compatibility.js +49 -0
- package/dist/tools/compatibility.js.map +1 -0
- package/dist/tools/ids.d.ts +61 -0
- package/dist/tools/ids.d.ts.map +1 -0
- package/dist/tools/ids.js +61 -0
- package/dist/tools/ids.js.map +1 -0
- package/dist/tools/index.d.ts +22 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +28 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manifest-assert.d.ts +35 -0
- package/dist/tools/manifest-assert.d.ts.map +1 -0
- package/dist/tools/manifest-assert.js +67 -0
- package/dist/tools/manifest-assert.js.map +1 -0
- package/dist/tools/manifest.d.ts +178 -0
- package/dist/tools/manifest.d.ts.map +1 -0
- package/dist/tools/manifest.js +35 -0
- package/dist/tools/manifest.js.map +1 -0
- package/dist/tools/registry.d.ts +37 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +49 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +1021 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +77 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types/__tests__/signal.test.d.ts +2 -0
- package/dist/types/__tests__/signal.test.d.ts.map +1 -0
- package/dist/types/__tests__/signal.test.js +111 -0
- package/dist/types/__tests__/signal.test.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/signal-batch.d.ts +56 -0
- package/dist/types/signal-batch.d.ts.map +1 -0
- package/dist/types/signal-batch.js +54 -0
- package/dist/types/signal-batch.js.map +1 -0
- package/dist/types/signal.d.ts +77 -0
- package/dist/types/signal.d.ts.map +1 -0
- package/dist/types/signal.js +42 -0
- package/dist/types/signal.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DiagnosticsBus — the scope-owned collector that gathers {@link DiagnosticEvent}s
|
|
3
|
+
* across the uniform tool lifecycle and snapshots them as {@link RunDiagnostics}
|
|
4
|
+
* to ride on a `CommandOutcome` (north-star §5.10, launch).
|
|
5
|
+
*
|
|
6
|
+
* Per-invocation state, held on {@link RunScope} (the no-module-singleton rule):
|
|
7
|
+
* library code deep in the call tree emits via `currentScope()?.diagnostics`, and
|
|
8
|
+
* the host assembler attaches `scope.diagnostics.snapshot()` to every outcome.
|
|
9
|
+
* Additive — the logger, runId, and graph OTEL spans stay; this is the
|
|
10
|
+
* structured, JSON-emittable layer on top.
|
|
11
|
+
*
|
|
12
|
+
* The bus is a runtime collector (like the logger), so it stamps wall-clock time
|
|
13
|
+
* (`new Date().toISOString()`) — the `Date.now()`-free contract applies to the
|
|
14
|
+
* pure formatters (`buildSignalEnvelope`), not to this collector. The OTEL trace
|
|
15
|
+
* bridge is best-effort: `snapshot().trace` carries the active span's
|
|
16
|
+
* trace/span ids when telemetry is on, parsed from the W3C `traceparent` the
|
|
17
|
+
* kernel already exposes — so bundled and external tools are observable
|
|
18
|
+
* identically, with no SDK dependency in the kernel.
|
|
19
|
+
*/
|
|
20
|
+
import { currentTraceparent } from './telemetry.js';
|
|
21
|
+
/**
|
|
22
|
+
* Parse the `traceId` / `spanId` out of a W3C `traceparent`
|
|
23
|
+
* (`version-traceid-spanid-flags`). Returns `undefined` when telemetry is off
|
|
24
|
+
* (no active recording span → no traceparent) or the string is malformed.
|
|
25
|
+
*/
|
|
26
|
+
function parseTrace() {
|
|
27
|
+
const traceparent = currentTraceparent();
|
|
28
|
+
if (traceparent === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
const parts = traceparent.split('-');
|
|
31
|
+
if (parts.length < 4)
|
|
32
|
+
return undefined;
|
|
33
|
+
return { traceId: parts[1], spanId: parts[2] };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The per-invocation diagnostics collector. Construct one per {@link RunScope}.
|
|
37
|
+
*/
|
|
38
|
+
export class DiagnosticsBus {
|
|
39
|
+
runId;
|
|
40
|
+
events = [];
|
|
41
|
+
metrics = new Map();
|
|
42
|
+
constructor(runId) {
|
|
43
|
+
this.runId = runId;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Append a lifecycle event. The bus stamps `at` (ISO-8601) when the caller did
|
|
47
|
+
* not supply one. Cheap and allocation-light; safe to call from any phase.
|
|
48
|
+
*/
|
|
49
|
+
emit(event) {
|
|
50
|
+
this.events.push({ ...event, at: event.at ?? new Date().toISOString() });
|
|
51
|
+
}
|
|
52
|
+
/** Convenience: emit at a given phase/level with an optional data bag. */
|
|
53
|
+
event(phase, level, message, data) {
|
|
54
|
+
this.emit(data === undefined ? { phase, level, message } : { phase, level, message, data });
|
|
55
|
+
}
|
|
56
|
+
/** Increment a named counter (e.g. `'plugins.loaded'`). Defaults to +1. */
|
|
57
|
+
counter(name, delta = 1) {
|
|
58
|
+
this.metrics.set(name, (this.metrics.get(name) ?? 0) + delta);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Materialize the JSON-emittable snapshot carried on a `CommandOutcome`. Pure
|
|
62
|
+
* read: copies the event stream + metrics and bridges the active OTEL trace.
|
|
63
|
+
*/
|
|
64
|
+
snapshot() {
|
|
65
|
+
const trace = parseTrace();
|
|
66
|
+
return {
|
|
67
|
+
runId: this.runId,
|
|
68
|
+
events: [...this.events],
|
|
69
|
+
...(this.metrics.size > 0 ? { metrics: Object.fromEntries(this.metrics) } : {}),
|
|
70
|
+
...(trace ? { trace } : {}),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=diagnostics-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics-bus.js","sourceRoot":"","sources":["../../src/lib/diagnostics-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAYpD;;;;GAIG;AACH,SAAS,UAAU;IACjB,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IAII;IAHZ,MAAM,GAAsB,EAAE,CAAC;IAC/B,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C;;;OAGG;IACH,IAAI,CAAC,KAA2B;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,0EAA0E;IAC1E,KAAK,CACH,KAAsB,EACtB,KAAsB,EACtB,OAAe,EACf,IAAwC;QAExC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,2EAA2E;IAC3E,OAAO,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EnvRegistry — a governed registry of environment variables (north-star §5.12,
|
|
3
|
+
* launch).
|
|
4
|
+
*
|
|
5
|
+
* Environment variables are a user-facing configuration surface, but today they
|
|
6
|
+
* are read inline (`process.env.X`) across ~half a dozen packages with no
|
|
7
|
+
* canonical name, no alias policy, no coercion, no documentation, and no
|
|
8
|
+
* deprecation path. `EnvRegistry` is the single seam every env read flows through:
|
|
9
|
+
* a tool/host declares an {@link EnvVarSpec} (canonical name, aliases, coercion,
|
|
10
|
+
* default, docs, deprecation), and all reads go through {@link EnvRegistry.get}.
|
|
11
|
+
* The `env-via-registry` guardrail (launch) then fails CI on any raw `process.env`
|
|
12
|
+
* access outside this module.
|
|
13
|
+
*
|
|
14
|
+
* Layering / state: this is a KERNEL observability primitive, beside `logger` and
|
|
15
|
+
* `ids`. Reading `process.env` HERE is the one sanctioned site — the registry IS
|
|
16
|
+
* the seam the guardrail points everything else at. The DEFINITION table a caller
|
|
17
|
+
* passes in is an immutable constant; that does not violate the no-module-
|
|
18
|
+
* singleton rule (which targets mutable per-run state), and it is exactly why the
|
|
19
|
+
* registry can serve the pre-scope readers (terminal theme, graph heap-preflight)
|
|
20
|
+
* that run before `RunScope` exists — they read through a static instance over the
|
|
21
|
+
* immutable table, not a scope-bound one.
|
|
22
|
+
*
|
|
23
|
+
* Pure read model: `get` resolves canonical → aliases in declaration order,
|
|
24
|
+
* coerces, and applies the default; it never mutates `process.env`. Deprecation is
|
|
25
|
+
* surfaced (not logged here — core stays log-light) so the composing host can emit
|
|
26
|
+
* a structured `cli.env.read_deprecated` event when a deprecated alias is hit.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* A deprecation note on an env var or one of its aliases. `since` is the release
|
|
30
|
+
* the deprecation began; `use` names the canonical replacement to migrate to.
|
|
31
|
+
*/
|
|
32
|
+
export interface EnvDeprecation {
|
|
33
|
+
readonly since: string;
|
|
34
|
+
readonly use?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Declarative description of one environment variable.
|
|
38
|
+
*
|
|
39
|
+
* @typeParam T - the coerced value type (defaults to `string` — the raw value).
|
|
40
|
+
*/
|
|
41
|
+
export interface EnvVarSpec<T = string> {
|
|
42
|
+
/** Canonical, documented name (e.g. `OPENSIP_NO_UPDATE`). */
|
|
43
|
+
readonly canonical: string;
|
|
44
|
+
/**
|
|
45
|
+
* Accepted aliases, in resolution order AFTER the canonical name (e.g. the npm
|
|
46
|
+
* convention `NO_UPDATE_NOTIFIER`). A hit on an alias marked via
|
|
47
|
+
* {@link EnvVarSpec.deprecated} is reported by {@link EnvRegistry.get} so the
|
|
48
|
+
* caller can warn.
|
|
49
|
+
*/
|
|
50
|
+
readonly aliases?: readonly string[];
|
|
51
|
+
/**
|
|
52
|
+
* Pure coercion from the raw string to `T` (e.g. `(raw) => raw === '1'`).
|
|
53
|
+
* Omitted ⇒ identity (the value type is `string`). Never reads other env.
|
|
54
|
+
*/
|
|
55
|
+
readonly coerce?: (raw: string) => T;
|
|
56
|
+
/** Value when neither canonical nor any alias is set. */
|
|
57
|
+
readonly default?: T;
|
|
58
|
+
/** One-line documentation surfaced in the generated env-surface reference. */
|
|
59
|
+
readonly docs: string;
|
|
60
|
+
/** Deprecation policy for the canonical name (alias-level handled at read). */
|
|
61
|
+
readonly deprecated?: EnvDeprecation;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Result of an {@link EnvRegistry.get} read. `value` is the coerced value (or the
|
|
65
|
+
* spec default, or `undefined`); `source` names which key supplied it; and
|
|
66
|
+
* `deprecated` carries the note when the resolved key (canonical or alias) is
|
|
67
|
+
* deprecated, so the caller can emit a structured warning.
|
|
68
|
+
*/
|
|
69
|
+
export interface EnvReadResult<T> {
|
|
70
|
+
readonly value: T | undefined;
|
|
71
|
+
readonly source: 'canonical' | 'alias' | 'default' | 'unset';
|
|
72
|
+
readonly deprecated?: EnvDeprecation;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The composed registry. Construct once (host) over the full {@link EnvVarSpec}
|
|
76
|
+
* set; read via {@link EnvRegistry.get} (coerced value only) or
|
|
77
|
+
* {@link EnvRegistry.read} (value + source + deprecation). The pre-scope static
|
|
78
|
+
* accessor (terminal theme, heap-preflight) constructs its own instance over the
|
|
79
|
+
* shared immutable host table.
|
|
80
|
+
*/
|
|
81
|
+
export declare class EnvRegistry {
|
|
82
|
+
private readonly byCanonical;
|
|
83
|
+
constructor(specs: readonly EnvVarSpec<unknown>[]);
|
|
84
|
+
/** True when this canonical name is registered. */
|
|
85
|
+
has(canonical: string): boolean;
|
|
86
|
+
/** Every registered spec, for the generated env-surface reference doc. */
|
|
87
|
+
describe(): readonly EnvVarSpec<unknown>[];
|
|
88
|
+
/**
|
|
89
|
+
* Resolve a variable to its coerced value: canonical first, then aliases in
|
|
90
|
+
* order, else the spec default, else `undefined`. The convenience form of
|
|
91
|
+
* {@link EnvRegistry.read} when the caller does not need source/deprecation.
|
|
92
|
+
*/
|
|
93
|
+
get<T = string>(canonical: string): T | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Resolve a variable to its value PLUS provenance. Reads `process.env` for the
|
|
96
|
+
* canonical name, then each alias in declaration order; the first set key wins.
|
|
97
|
+
* A deprecation note is attached when the resolved key is deprecated (the
|
|
98
|
+
* canonical's own `deprecated`, or — for an alias hit — the canonical
|
|
99
|
+
* `deprecated` if present, since an alias existing at all is the migration
|
|
100
|
+
* signal). Unknown canonical names throw: a typo in a host spec is a bug, not a
|
|
101
|
+
* silent `undefined`.
|
|
102
|
+
*
|
|
103
|
+
* @throws {Error} When `canonical` is not a registered {@link EnvVarSpec} — a
|
|
104
|
+
* host-spec typo surfaces loudly here rather than as a silent `undefined`.
|
|
105
|
+
*/
|
|
106
|
+
read<T = string>(canonical: string): EnvReadResult<T>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=env-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-registry.d.ts","sourceRoot":"","sources":["../../src/lib/env-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,MAAM;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC;IACrC,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;CACtC;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;gBAE1D,KAAK,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE;IAMjD,mDAAmD;IACnD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/B,0EAA0E;IAC1E,QAAQ,IAAI,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE;IAI1C;;;;OAIG;IACH,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIjD;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;CA4BtD"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EnvRegistry — a governed registry of environment variables (north-star §5.12,
|
|
3
|
+
* launch).
|
|
4
|
+
*
|
|
5
|
+
* Environment variables are a user-facing configuration surface, but today they
|
|
6
|
+
* are read inline (`process.env.X`) across ~half a dozen packages with no
|
|
7
|
+
* canonical name, no alias policy, no coercion, no documentation, and no
|
|
8
|
+
* deprecation path. `EnvRegistry` is the single seam every env read flows through:
|
|
9
|
+
* a tool/host declares an {@link EnvVarSpec} (canonical name, aliases, coercion,
|
|
10
|
+
* default, docs, deprecation), and all reads go through {@link EnvRegistry.get}.
|
|
11
|
+
* The `env-via-registry` guardrail (launch) then fails CI on any raw `process.env`
|
|
12
|
+
* access outside this module.
|
|
13
|
+
*
|
|
14
|
+
* Layering / state: this is a KERNEL observability primitive, beside `logger` and
|
|
15
|
+
* `ids`. Reading `process.env` HERE is the one sanctioned site — the registry IS
|
|
16
|
+
* the seam the guardrail points everything else at. The DEFINITION table a caller
|
|
17
|
+
* passes in is an immutable constant; that does not violate the no-module-
|
|
18
|
+
* singleton rule (which targets mutable per-run state), and it is exactly why the
|
|
19
|
+
* registry can serve the pre-scope readers (terminal theme, graph heap-preflight)
|
|
20
|
+
* that run before `RunScope` exists — they read through a static instance over the
|
|
21
|
+
* immutable table, not a scope-bound one.
|
|
22
|
+
*
|
|
23
|
+
* Pure read model: `get` resolves canonical → aliases in declaration order,
|
|
24
|
+
* coerces, and applies the default; it never mutates `process.env`. Deprecation is
|
|
25
|
+
* surfaced (not logged here — core stays log-light) so the composing host can emit
|
|
26
|
+
* a structured `cli.env.read_deprecated` event when a deprecated alias is hit.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* The composed registry. Construct once (host) over the full {@link EnvVarSpec}
|
|
30
|
+
* set; read via {@link EnvRegistry.get} (coerced value only) or
|
|
31
|
+
* {@link EnvRegistry.read} (value + source + deprecation). The pre-scope static
|
|
32
|
+
* accessor (terminal theme, heap-preflight) constructs its own instance over the
|
|
33
|
+
* shared immutable host table.
|
|
34
|
+
*/
|
|
35
|
+
export class EnvRegistry {
|
|
36
|
+
byCanonical = new Map();
|
|
37
|
+
constructor(specs) {
|
|
38
|
+
for (const spec of specs) {
|
|
39
|
+
this.byCanonical.set(spec.canonical, spec);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** True when this canonical name is registered. */
|
|
43
|
+
has(canonical) {
|
|
44
|
+
return this.byCanonical.has(canonical);
|
|
45
|
+
}
|
|
46
|
+
/** Every registered spec, for the generated env-surface reference doc. */
|
|
47
|
+
describe() {
|
|
48
|
+
return [...this.byCanonical.values()];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a variable to its coerced value: canonical first, then aliases in
|
|
52
|
+
* order, else the spec default, else `undefined`. The convenience form of
|
|
53
|
+
* {@link EnvRegistry.read} when the caller does not need source/deprecation.
|
|
54
|
+
*/
|
|
55
|
+
get(canonical) {
|
|
56
|
+
return this.read(canonical).value;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve a variable to its value PLUS provenance. Reads `process.env` for the
|
|
60
|
+
* canonical name, then each alias in declaration order; the first set key wins.
|
|
61
|
+
* A deprecation note is attached when the resolved key is deprecated (the
|
|
62
|
+
* canonical's own `deprecated`, or — for an alias hit — the canonical
|
|
63
|
+
* `deprecated` if present, since an alias existing at all is the migration
|
|
64
|
+
* signal). Unknown canonical names throw: a typo in a host spec is a bug, not a
|
|
65
|
+
* silent `undefined`.
|
|
66
|
+
*
|
|
67
|
+
* @throws {Error} When `canonical` is not a registered {@link EnvVarSpec} — a
|
|
68
|
+
* host-spec typo surfaces loudly here rather than as a silent `undefined`.
|
|
69
|
+
*/
|
|
70
|
+
read(canonical) {
|
|
71
|
+
const spec = this.byCanonical.get(canonical);
|
|
72
|
+
if (spec === undefined) {
|
|
73
|
+
throw new Error(`EnvRegistry: unknown variable '${canonical}' — declare an EnvVarSpec before reading it.`);
|
|
74
|
+
}
|
|
75
|
+
const coerce = (raw) => (spec.coerce ? spec.coerce(raw) : raw);
|
|
76
|
+
const canonicalRaw = process.env[spec.canonical];
|
|
77
|
+
if (canonicalRaw !== undefined) {
|
|
78
|
+
return { value: coerce(canonicalRaw), source: 'canonical', deprecated: spec.deprecated };
|
|
79
|
+
}
|
|
80
|
+
for (const alias of spec.aliases ?? []) {
|
|
81
|
+
const aliasRaw = process.env[alias];
|
|
82
|
+
if (aliasRaw !== undefined) {
|
|
83
|
+
return { value: coerce(aliasRaw), source: 'alias', deprecated: spec.deprecated };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (spec.default !== undefined) {
|
|
87
|
+
return { value: spec.default, source: 'default' };
|
|
88
|
+
}
|
|
89
|
+
return { value: undefined, source: 'unset' };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=env-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-registry.js","sourceRoot":"","sources":["../../src/lib/env-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAmDH;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACL,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEtE,YAAY,KAAqC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,0EAA0E;IAC1E,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAa,SAAiB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAI,SAAS,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,CAAa,SAAiB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAA8B,CAAC;QAC1E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,kCAAkC,SAAS,8CAA8C,CAC1F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAW,EAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAoB,CAAC,CAAC;QAE5F,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3F,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACnF,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACpD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed error classes and Result pattern for opensip-cli.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Closed union of canonical error codes carried by `ToolError` and its
|
|
6
|
+
* subclasses. Open by intent at the consumer layer — callers may pass
|
|
7
|
+
* any string in `ToolErrorOptions.code` (subclass-specific subcodes
|
|
8
|
+
* like `'VALIDATION.RECIPE.DUPLICATE'` are common) — but the base
|
|
9
|
+
* default for each subclass is one of these literals, which means an
|
|
10
|
+
* `instanceof` check pairs naturally with an exhaustive switch on
|
|
11
|
+
* `code` for the no-override case.
|
|
12
|
+
*/
|
|
13
|
+
export type ToolErrorCode = 'VALIDATION_ERROR' | 'NOT_FOUND' | 'SYSTEM_ERROR' | 'TIMEOUT' | 'NETWORK_ERROR' | 'CONFIGURATION_ERROR' | 'PLUGIN_INCOMPATIBLE' | 'UNKNOWN_LIVE_VIEW';
|
|
14
|
+
/** Constructor options for {@link ToolError}: `code` plus arbitrary diagnostic metadata. */
|
|
15
|
+
export interface ToolErrorOptions extends ErrorOptions {
|
|
16
|
+
code?: string;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
/** Base class for all opensip-cli errors; carries a `code` for programmatic dispatch. */
|
|
20
|
+
export declare class ToolError extends Error {
|
|
21
|
+
/**
|
|
22
|
+
* Error code. Typed as a `string` super-set of `ToolErrorCode` because
|
|
23
|
+
* subclass call sites may opt into a more specific subcode via
|
|
24
|
+
* `ToolErrorOptions.code` (e.g. `'VALIDATION.RECIPE.DUPLICATE'`). For
|
|
25
|
+
* exhaustive-switch use cases, narrow with the `ToolErrorCode` union
|
|
26
|
+
* after an `instanceof` check.
|
|
27
|
+
*/
|
|
28
|
+
readonly code: string;
|
|
29
|
+
constructor(message: string, code: string, options?: ToolErrorOptions);
|
|
30
|
+
}
|
|
31
|
+
/** Thrown when user-supplied input (config, CLI flags, recipes) fails schema or domain validation. */
|
|
32
|
+
export declare class ValidationError extends ToolError {
|
|
33
|
+
constructor(message: string, options?: ToolErrorOptions);
|
|
34
|
+
}
|
|
35
|
+
/** Thrown when a named resource (check, recipe, file, session) cannot be located. */
|
|
36
|
+
export declare class NotFoundError extends ToolError {
|
|
37
|
+
constructor(message: string, options?: ToolErrorOptions);
|
|
38
|
+
}
|
|
39
|
+
/** Thrown for internal invariant violations or unexpected runtime failures. */
|
|
40
|
+
export declare class SystemError extends ToolError {
|
|
41
|
+
constructor(message: string, options?: ToolErrorOptions);
|
|
42
|
+
}
|
|
43
|
+
/** Thrown when an operation exceeds its allotted time budget. */
|
|
44
|
+
export declare class TimeoutError extends ToolError {
|
|
45
|
+
readonly timeoutMs?: number;
|
|
46
|
+
constructor(message: string, timeoutOrOptions?: number | ToolErrorOptions);
|
|
47
|
+
}
|
|
48
|
+
/** Thrown for HTTP or socket-level failures during outbound requests. */
|
|
49
|
+
export declare class NetworkError extends ToolError {
|
|
50
|
+
readonly statusCode?: number;
|
|
51
|
+
constructor(message: string, options?: ToolErrorOptions & {
|
|
52
|
+
statusCode?: number;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Thrown when project or tool configuration is missing, malformed, or contradictory. */
|
|
56
|
+
export declare class ConfigurationError extends ToolError {
|
|
57
|
+
constructor(message: string, options?: ToolErrorOptions);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Thrown when a tool plugin is rejected by the compatibility/trust gate
|
|
61
|
+
* (launch) and the rejection must fail the run rather than skip
|
|
62
|
+
* silently — i.e. the tool was explicitly requested but is incompatible,
|
|
63
|
+
* or a project-local executable tool was not allowlisted (deny-by-default).
|
|
64
|
+
*
|
|
65
|
+
* Mapped to `EXIT_CODES.PLUGIN_INCOMPATIBLE` (exit 5) by
|
|
66
|
+
* `mapToolErrorToExitCode` so an incompatible/untrusted plugin is
|
|
67
|
+
* diagnosable from the exit code alone. Carries the structured
|
|
68
|
+
* `diagnostic` the admission gate produced (compatibility reason or the
|
|
69
|
+
* trust-policy message) for surfacing through the CLI error boundary.
|
|
70
|
+
*/
|
|
71
|
+
export declare class PluginIncompatibleError extends ToolError {
|
|
72
|
+
/** The admission diagnostic (compatibility reason or trust-policy message). */
|
|
73
|
+
readonly diagnostic?: string;
|
|
74
|
+
constructor(message: string, options?: ToolErrorOptions & {
|
|
75
|
+
diagnostic?: string;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Thrown when a contribution is routed to a capability domain that no tool
|
|
80
|
+
* has declared (launch, §5.3). A subclass of {@link NotFoundError}
|
|
81
|
+
* (so existing not-found handling still catches it) that additionally
|
|
82
|
+
* carries the structured diagnostic the capability registry produced: the
|
|
83
|
+
* unknown `domainId` and the set of `knownDomains`. Code defaults to
|
|
84
|
+
* `'CAPABILITY.DOMAIN.UNKNOWN'`.
|
|
85
|
+
*/
|
|
86
|
+
export declare class UnknownCapabilityDomainError extends NotFoundError {
|
|
87
|
+
/** The domain id that was routed to but not declared. */
|
|
88
|
+
readonly domainId: string;
|
|
89
|
+
/** The domain ids that ARE declared on the registry (for diagnostics). */
|
|
90
|
+
readonly knownDomains: readonly string[];
|
|
91
|
+
constructor(message: string, options: ToolErrorOptions & {
|
|
92
|
+
domainId: string;
|
|
93
|
+
knownDomains: readonly string[];
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Thrown when a contribution fails the schema check of the capability
|
|
98
|
+
* domain it targets (launch, §5.3). A subclass of
|
|
99
|
+
* {@link ValidationError} that carries the structured diagnostic: the
|
|
100
|
+
* `domainId`, the owning tool's `ownerToolId`, and a human-readable
|
|
101
|
+
* `diagnostic` reason. Code defaults to
|
|
102
|
+
* `'CAPABILITY.CONTRIBUTION.SCHEMA_MISMATCH'`.
|
|
103
|
+
*/
|
|
104
|
+
export declare class CapabilitySchemaMismatchError extends ValidationError {
|
|
105
|
+
/** The domain id whose schema the contribution failed. */
|
|
106
|
+
readonly domainId: string;
|
|
107
|
+
/** The tool that owns the targeted domain. */
|
|
108
|
+
readonly ownerToolId: string;
|
|
109
|
+
/** Human-readable reason the contribution failed the schema. */
|
|
110
|
+
readonly diagnostic: string;
|
|
111
|
+
constructor(message: string, options: ToolErrorOptions & {
|
|
112
|
+
domainId: string;
|
|
113
|
+
ownerToolId: string;
|
|
114
|
+
diagnostic: string;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
export type Result<T, E = ToolError> = {
|
|
118
|
+
readonly ok: true;
|
|
119
|
+
readonly value: T;
|
|
120
|
+
} | {
|
|
121
|
+
readonly ok: false;
|
|
122
|
+
readonly error: E;
|
|
123
|
+
};
|
|
124
|
+
/** Constructs a success {@link Result} carrying `value`. */
|
|
125
|
+
export declare function ok<T>(value: T): Result<T, never>;
|
|
126
|
+
/** Constructs a failure {@link Result} carrying `error`. */
|
|
127
|
+
export declare function err<E>(error: E): Result<never, E>;
|
|
128
|
+
/** Wraps an async function in a try/catch, returning a Result instead of throwing. */
|
|
129
|
+
export declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;
|
|
130
|
+
/** Wraps a sync function in a try/catch, returning a Result instead of throwing. */
|
|
131
|
+
export declare function tryCatch<T>(fn: () => T): Result<T, Error>;
|
|
132
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed error classes and Result pattern for opensip-cli.
|
|
3
|
+
*/
|
|
4
|
+
/** Base class for all opensip-cli errors; carries a `code` for programmatic dispatch. */
|
|
5
|
+
export class ToolError extends Error {
|
|
6
|
+
/**
|
|
7
|
+
* Error code. Typed as a `string` super-set of `ToolErrorCode` because
|
|
8
|
+
* subclass call sites may opt into a more specific subcode via
|
|
9
|
+
* `ToolErrorOptions.code` (e.g. `'VALIDATION.RECIPE.DUPLICATE'`). For
|
|
10
|
+
* exhaustive-switch use cases, narrow with the `ToolErrorCode` union
|
|
11
|
+
* after an `instanceof` check.
|
|
12
|
+
*/
|
|
13
|
+
code;
|
|
14
|
+
constructor(message, code, options) {
|
|
15
|
+
super(message, options);
|
|
16
|
+
this.name = 'ToolError';
|
|
17
|
+
this.code = code;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Thrown when user-supplied input (config, CLI flags, recipes) fails schema or domain validation. */
|
|
21
|
+
export class ValidationError extends ToolError {
|
|
22
|
+
constructor(message, options) {
|
|
23
|
+
super(message, options?.code ?? 'VALIDATION_ERROR', options);
|
|
24
|
+
this.name = 'ValidationError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Thrown when a named resource (check, recipe, file, session) cannot be located. */
|
|
28
|
+
export class NotFoundError extends ToolError {
|
|
29
|
+
constructor(message, options) {
|
|
30
|
+
super(message, options?.code ?? 'NOT_FOUND', options);
|
|
31
|
+
this.name = 'NotFoundError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Thrown for internal invariant violations or unexpected runtime failures. */
|
|
35
|
+
export class SystemError extends ToolError {
|
|
36
|
+
constructor(message, options) {
|
|
37
|
+
super(message, options?.code ?? 'SYSTEM_ERROR', options);
|
|
38
|
+
this.name = 'SystemError';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Thrown when an operation exceeds its allotted time budget. */
|
|
42
|
+
export class TimeoutError extends ToolError {
|
|
43
|
+
timeoutMs;
|
|
44
|
+
constructor(message, timeoutOrOptions) {
|
|
45
|
+
const options = typeof timeoutOrOptions === 'number' ? undefined : timeoutOrOptions;
|
|
46
|
+
super(message, options?.code ?? 'TIMEOUT', options);
|
|
47
|
+
this.name = 'TimeoutError';
|
|
48
|
+
this.timeoutMs = typeof timeoutOrOptions === 'number' ? timeoutOrOptions : undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Thrown for HTTP or socket-level failures during outbound requests. */
|
|
52
|
+
export class NetworkError extends ToolError {
|
|
53
|
+
statusCode;
|
|
54
|
+
constructor(message, options) {
|
|
55
|
+
super(message, options?.code ?? 'NETWORK_ERROR', options);
|
|
56
|
+
this.name = 'NetworkError';
|
|
57
|
+
this.statusCode = options?.statusCode;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Thrown when project or tool configuration is missing, malformed, or contradictory. */
|
|
61
|
+
export class ConfigurationError extends ToolError {
|
|
62
|
+
constructor(message, options) {
|
|
63
|
+
super(message, options?.code ?? 'CONFIGURATION_ERROR', options);
|
|
64
|
+
this.name = 'ConfigurationError';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Thrown when a tool plugin is rejected by the compatibility/trust gate
|
|
69
|
+
* (launch) and the rejection must fail the run rather than skip
|
|
70
|
+
* silently — i.e. the tool was explicitly requested but is incompatible,
|
|
71
|
+
* or a project-local executable tool was not allowlisted (deny-by-default).
|
|
72
|
+
*
|
|
73
|
+
* Mapped to `EXIT_CODES.PLUGIN_INCOMPATIBLE` (exit 5) by
|
|
74
|
+
* `mapToolErrorToExitCode` so an incompatible/untrusted plugin is
|
|
75
|
+
* diagnosable from the exit code alone. Carries the structured
|
|
76
|
+
* `diagnostic` the admission gate produced (compatibility reason or the
|
|
77
|
+
* trust-policy message) for surfacing through the CLI error boundary.
|
|
78
|
+
*/
|
|
79
|
+
export class PluginIncompatibleError extends ToolError {
|
|
80
|
+
/** The admission diagnostic (compatibility reason or trust-policy message). */
|
|
81
|
+
diagnostic;
|
|
82
|
+
constructor(message, options) {
|
|
83
|
+
super(message, options?.code ?? 'PLUGIN_INCOMPATIBLE', options);
|
|
84
|
+
this.name = 'PluginIncompatibleError';
|
|
85
|
+
this.diagnostic = options?.diagnostic;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Thrown when a contribution is routed to a capability domain that no tool
|
|
90
|
+
* has declared (launch, §5.3). A subclass of {@link NotFoundError}
|
|
91
|
+
* (so existing not-found handling still catches it) that additionally
|
|
92
|
+
* carries the structured diagnostic the capability registry produced: the
|
|
93
|
+
* unknown `domainId` and the set of `knownDomains`. Code defaults to
|
|
94
|
+
* `'CAPABILITY.DOMAIN.UNKNOWN'`.
|
|
95
|
+
*/
|
|
96
|
+
export class UnknownCapabilityDomainError extends NotFoundError {
|
|
97
|
+
/** The domain id that was routed to but not declared. */
|
|
98
|
+
domainId;
|
|
99
|
+
/** The domain ids that ARE declared on the registry (for diagnostics). */
|
|
100
|
+
knownDomains;
|
|
101
|
+
constructor(message, options) {
|
|
102
|
+
super(message, { ...options, code: options.code ?? 'CAPABILITY.DOMAIN.UNKNOWN' });
|
|
103
|
+
this.name = 'UnknownCapabilityDomainError';
|
|
104
|
+
this.domainId = options.domainId;
|
|
105
|
+
this.knownDomains = options.knownDomains;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Thrown when a contribution fails the schema check of the capability
|
|
110
|
+
* domain it targets (launch, §5.3). A subclass of
|
|
111
|
+
* {@link ValidationError} that carries the structured diagnostic: the
|
|
112
|
+
* `domainId`, the owning tool's `ownerToolId`, and a human-readable
|
|
113
|
+
* `diagnostic` reason. Code defaults to
|
|
114
|
+
* `'CAPABILITY.CONTRIBUTION.SCHEMA_MISMATCH'`.
|
|
115
|
+
*/
|
|
116
|
+
export class CapabilitySchemaMismatchError extends ValidationError {
|
|
117
|
+
/** The domain id whose schema the contribution failed. */
|
|
118
|
+
domainId;
|
|
119
|
+
/** The tool that owns the targeted domain. */
|
|
120
|
+
ownerToolId;
|
|
121
|
+
/** Human-readable reason the contribution failed the schema. */
|
|
122
|
+
diagnostic;
|
|
123
|
+
constructor(message, options) {
|
|
124
|
+
super(message, {
|
|
125
|
+
...options,
|
|
126
|
+
code: options.code ?? 'CAPABILITY.CONTRIBUTION.SCHEMA_MISMATCH',
|
|
127
|
+
});
|
|
128
|
+
this.name = 'CapabilitySchemaMismatchError';
|
|
129
|
+
this.domainId = options.domainId;
|
|
130
|
+
this.ownerToolId = options.ownerToolId;
|
|
131
|
+
this.diagnostic = options.diagnostic;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/** Constructs a success {@link Result} carrying `value`. */
|
|
135
|
+
export function ok(value) {
|
|
136
|
+
return { ok: true, value };
|
|
137
|
+
}
|
|
138
|
+
/** Constructs a failure {@link Result} carrying `error`. */
|
|
139
|
+
export function err(error) {
|
|
140
|
+
return { ok: false, error };
|
|
141
|
+
}
|
|
142
|
+
/** Wraps an async function in a try/catch, returning a Result instead of throwing. */
|
|
143
|
+
export async function tryCatchAsync(fn) {
|
|
144
|
+
try {
|
|
145
|
+
return ok(await fn());
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** Wraps a sync function in a try/catch, returning a Result instead of throwing. */
|
|
152
|
+
export function tryCatch(fn) {
|
|
153
|
+
try {
|
|
154
|
+
return ok(fn());
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution substrate — scheduleUnits (loop/concurrency/stop), runWithTimeout
|
|
3
|
+
* (the §4.3 timeout fix), runWithRetry (the fitness-hoisted retry), executePipeline
|
|
4
|
+
* (the combinator), and deriveRecipeId.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=execution.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/execution/__tests__/execution.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|