@opensip-cli/fitness 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__/baseline-plane.test.d.ts +12 -0
- package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
- package/dist/__tests__/baseline-plane.test.js +63 -0
- package/dist/__tests__/baseline-plane.test.js.map +1 -0
- package/dist/__tests__/check-utils.test.d.ts +10 -0
- package/dist/__tests__/check-utils.test.d.ts.map +1 -0
- package/dist/__tests__/check-utils.test.js +193 -0
- package/dist/__tests__/check-utils.test.js.map +1 -0
- package/dist/__tests__/fingerprint-parity.test.d.ts +14 -0
- package/dist/__tests__/fingerprint-parity.test.d.ts.map +1 -0
- package/dist/__tests__/fingerprint-parity.test.js +59 -0
- package/dist/__tests__/fingerprint-parity.test.js.map +1 -0
- package/dist/__tests__/fit-execute-opts.test.d.ts +15 -0
- package/dist/__tests__/fit-execute-opts.test.d.ts.map +1 -0
- package/dist/__tests__/fit-execute-opts.test.js +124 -0
- package/dist/__tests__/fit-execute-opts.test.js.map +1 -0
- package/dist/__tests__/public-api.test.d.ts +19 -0
- package/dist/__tests__/public-api.test.d.ts.map +1 -0
- package/dist/__tests__/public-api.test.js +85 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/tool.test.d.ts +10 -0
- package/dist/__tests__/tool.test.d.ts.map +1 -0
- package/dist/__tests__/tool.test.js +57 -0
- package/dist/__tests__/tool.test.js.map +1 -0
- package/dist/baseline-strategy.d.ts +21 -0
- package/dist/baseline-strategy.d.ts.map +1 -0
- package/dist/baseline-strategy.js +21 -0
- package/dist/baseline-strategy.js.map +1 -0
- package/dist/check-utils/display.d.ts +52 -0
- package/dist/check-utils/display.d.ts.map +1 -0
- package/dist/check-utils/display.js +66 -0
- package/dist/check-utils/display.js.map +1 -0
- package/dist/check-utils/index.d.ts +17 -0
- package/dist/check-utils/index.d.ts.map +1 -0
- package/dist/check-utils/index.js +13 -0
- package/dist/check-utils/index.js.map +1 -0
- package/dist/check-utils/path-matching.d.ts +40 -0
- package/dist/check-utils/path-matching.d.ts.map +1 -0
- package/dist/check-utils/path-matching.js +38 -0
- package/dist/check-utils/path-matching.js.map +1 -0
- package/dist/check-utils/source-analysis.d.ts +36 -0
- package/dist/check-utils/source-analysis.d.ts.map +1 -0
- package/dist/check-utils/source-analysis.js +44 -0
- package/dist/check-utils/source-analysis.js.map +1 -0
- package/dist/check-utils/test-helpers.d.ts +57 -0
- package/dist/check-utils/test-helpers.d.ts.map +1 -0
- package/dist/check-utils/test-helpers.js +71 -0
- package/dist/check-utils/test-helpers.js.map +1 -0
- package/dist/cli/__tests__/fit-gate-mode.test.d.ts +14 -0
- package/dist/cli/__tests__/fit-gate-mode.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-gate-mode.test.js +110 -0
- package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -0
- package/dist/cli/__tests__/fit-modes-live.test.d.ts +13 -0
- package/dist/cli/__tests__/fit-modes-live.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-modes-live.test.js +182 -0
- package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -0
- package/dist/cli/__tests__/report-data.test.d.ts +12 -0
- package/dist/cli/__tests__/report-data.test.d.ts.map +1 -0
- package/dist/cli/__tests__/report-data.test.js +113 -0
- package/dist/cli/__tests__/report-data.test.js.map +1 -0
- package/dist/cli/fit/__tests__/display-fold.test.d.ts +8 -0
- package/dist/cli/fit/__tests__/display-fold.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/display-fold.test.js +87 -0
- package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts +16 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js +62 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js.map +1 -0
- package/dist/cli/fit/check-loader.d.ts +37 -0
- package/dist/cli/fit/check-loader.d.ts.map +1 -0
- package/dist/cli/fit/check-loader.js +154 -0
- package/dist/cli/fit/check-loader.js.map +1 -0
- package/dist/cli/fit/config-loader.d.ts +55 -0
- package/dist/cli/fit/config-loader.d.ts.map +1 -0
- package/dist/cli/fit/config-loader.js +107 -0
- package/dist/cli/fit/config-loader.js.map +1 -0
- package/dist/cli/fit/display-registry.d.ts +19 -0
- package/dist/cli/fit/display-registry.d.ts.map +1 -0
- package/dist/cli/fit/display-registry.js +33 -0
- package/dist/cli/fit/display-registry.js.map +1 -0
- package/dist/cli/fit/envelope-view.d.ts +49 -0
- package/dist/cli/fit/envelope-view.d.ts.map +1 -0
- package/dist/cli/fit/envelope-view.js +85 -0
- package/dist/cli/fit/envelope-view.js.map +1 -0
- package/dist/cli/fit/fit-aux-command-specs.d.ts +35 -0
- package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -0
- package/dist/cli/fit/fit-aux-command-specs.js +110 -0
- package/dist/cli/fit/fit-aux-command-specs.js.map +1 -0
- package/dist/cli/fit/fit-command-spec.d.ts +24 -0
- package/dist/cli/fit/fit-command-spec.d.ts.map +1 -0
- package/dist/cli/fit/fit-command-spec.js +131 -0
- package/dist/cli/fit/fit-command-spec.js.map +1 -0
- package/dist/cli/fit/gate-compare-render.d.ts +13 -0
- package/dist/cli/fit/gate-compare-render.d.ts.map +1 -0
- package/dist/cli/fit/gate-compare-render.js +87 -0
- package/dist/cli/fit/gate-compare-render.js.map +1 -0
- package/dist/cli/fit/recipe-selector.d.ts +53 -0
- package/dist/cli/fit/recipe-selector.d.ts.map +1 -0
- package/dist/cli/fit/recipe-selector.js +106 -0
- package/dist/cli/fit/recipe-selector.js.map +1 -0
- package/dist/cli/fit/recipe-selector.test.d.ts +2 -0
- package/dist/cli/fit/recipe-selector.test.d.ts.map +1 -0
- package/dist/cli/fit/recipe-selector.test.js +69 -0
- package/dist/cli/fit/recipe-selector.test.js.map +1 -0
- package/dist/cli/fit/resolved-fitness-config.d.ts +48 -0
- package/dist/cli/fit/resolved-fitness-config.d.ts.map +1 -0
- package/dist/cli/fit/resolved-fitness-config.js +46 -0
- package/dist/cli/fit/resolved-fitness-config.js.map +1 -0
- package/dist/cli/fit/result-builders.d.ts +91 -0
- package/dist/cli/fit/result-builders.d.ts.map +1 -0
- package/dist/cli/fit/result-builders.js +206 -0
- package/dist/cli/fit/result-builders.js.map +1 -0
- package/dist/cli/fit-list.d.ts +7 -0
- package/dist/cli/fit-list.d.ts.map +1 -0
- package/dist/cli/fit-list.js +24 -0
- package/dist/cli/fit-list.js.map +1 -0
- package/dist/cli/fit-modes.d.ts +42 -0
- package/dist/cli/fit-modes.d.ts.map +1 -0
- package/dist/cli/fit-modes.js +322 -0
- package/dist/cli/fit-modes.js.map +1 -0
- package/dist/cli/fit-recipes.d.ts +7 -0
- package/dist/cli/fit-recipes.d.ts.map +1 -0
- package/dist/cli/fit-recipes.js +34 -0
- package/dist/cli/fit-recipes.js.map +1 -0
- package/dist/cli/fit-runner-views.d.ts +33 -0
- package/dist/cli/fit-runner-views.d.ts.map +1 -0
- package/dist/cli/fit-runner-views.js +92 -0
- package/dist/cli/fit-runner-views.js.map +1 -0
- package/dist/cli/fit-runner.d.ts +44 -0
- package/dist/cli/fit-runner.d.ts.map +1 -0
- package/dist/cli/fit-runner.js +250 -0
- package/dist/cli/fit-runner.js.map +1 -0
- package/dist/cli/fit-worker.d.ts +26 -0
- package/dist/cli/fit-worker.d.ts.map +1 -0
- package/dist/cli/fit-worker.js +67 -0
- package/dist/cli/fit-worker.js.map +1 -0
- package/dist/cli/fit.d.ts +74 -0
- package/dist/cli/fit.d.ts.map +1 -0
- package/dist/cli/fit.js +149 -0
- package/dist/cli/fit.js.map +1 -0
- package/dist/cli/report-data.d.ts +44 -0
- package/dist/cli/report-data.d.ts.map +1 -0
- package/dist/cli/report-data.js +89 -0
- package/dist/cli/report-data.js.map +1 -0
- package/dist/config/__tests__/fitness-config-schema.test.d.ts +6 -0
- package/dist/config/__tests__/fitness-config-schema.test.d.ts.map +1 -0
- package/dist/config/__tests__/fitness-config-schema.test.js +37 -0
- package/dist/config/__tests__/fitness-config-schema.test.js.map +1 -0
- package/dist/config/fitness-config-schema.d.ts +48 -0
- package/dist/config/fitness-config-schema.d.ts.map +1 -0
- package/dist/config/fitness-config-schema.js +62 -0
- package/dist/config/fitness-config-schema.js.map +1 -0
- package/dist/framework/__tests__/abortable-exec.test.d.ts +9 -0
- package/dist/framework/__tests__/abortable-exec.test.d.ts.map +1 -0
- package/dist/framework/__tests__/abortable-exec.test.js +102 -0
- package/dist/framework/__tests__/abortable-exec.test.js.map +1 -0
- package/dist/framework/__tests__/check-config.test.d.ts +2 -0
- package/dist/framework/__tests__/check-config.test.d.ts.map +1 -0
- package/dist/framework/__tests__/check-config.test.js +56 -0
- package/dist/framework/__tests__/check-config.test.js.map +1 -0
- package/dist/framework/__tests__/check-types.test.d.ts +2 -0
- package/dist/framework/__tests__/check-types.test.d.ts.map +1 -0
- package/dist/framework/__tests__/check-types.test.js +76 -0
- package/dist/framework/__tests__/check-types.test.js.map +1 -0
- package/dist/framework/__tests__/command-executor.test.d.ts +2 -0
- package/dist/framework/__tests__/command-executor.test.d.ts.map +1 -0
- package/dist/framework/__tests__/command-executor.test.js +110 -0
- package/dist/framework/__tests__/command-executor.test.js.map +1 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.d.ts +2 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.d.ts.map +1 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.js +122 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.js.map +1 -0
- package/dist/framework/__tests__/define-check.test.d.ts +2 -0
- package/dist/framework/__tests__/define-check.test.d.ts.map +1 -0
- package/dist/framework/__tests__/define-check.test.js +402 -0
- package/dist/framework/__tests__/define-check.test.js.map +1 -0
- package/dist/framework/__tests__/define-regex-list-check.test.d.ts +15 -0
- package/dist/framework/__tests__/define-regex-list-check.test.d.ts.map +1 -0
- package/dist/framework/__tests__/define-regex-list-check.test.js +299 -0
- package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -0
- package/dist/framework/__tests__/directive-inventory.test.d.ts +2 -0
- package/dist/framework/__tests__/directive-inventory.test.d.ts.map +1 -0
- package/dist/framework/__tests__/directive-inventory.test.js +111 -0
- package/dist/framework/__tests__/directive-inventory.test.js.map +1 -0
- package/dist/framework/__tests__/directive-parsing.test.d.ts +13 -0
- package/dist/framework/__tests__/directive-parsing.test.d.ts.map +1 -0
- package/dist/framework/__tests__/directive-parsing.test.js +86 -0
- package/dist/framework/__tests__/directive-parsing.test.js.map +1 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts +2 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts.map +1 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +56 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -0
- package/dist/framework/__tests__/execution-context.test.d.ts +2 -0
- package/dist/framework/__tests__/execution-context.test.d.ts.map +1 -0
- package/dist/framework/__tests__/execution-context.test.js +140 -0
- package/dist/framework/__tests__/execution-context.test.js.map +1 -0
- package/dist/framework/__tests__/file-accessor.test.d.ts +2 -0
- package/dist/framework/__tests__/file-accessor.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-accessor.test.js +106 -0
- package/dist/framework/__tests__/file-accessor.test.js.map +1 -0
- package/dist/framework/__tests__/file-cache.test.d.ts +2 -0
- package/dist/framework/__tests__/file-cache.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-cache.test.js +122 -0
- package/dist/framework/__tests__/file-cache.test.js.map +1 -0
- package/dist/framework/__tests__/file-type-filter.test.d.ts +9 -0
- package/dist/framework/__tests__/file-type-filter.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-type-filter.test.js +39 -0
- package/dist/framework/__tests__/file-type-filter.test.js.map +1 -0
- package/dist/framework/__tests__/ignore-processing.test.d.ts +11 -0
- package/dist/framework/__tests__/ignore-processing.test.d.ts.map +1 -0
- package/dist/framework/__tests__/ignore-processing.test.js +175 -0
- package/dist/framework/__tests__/ignore-processing.test.js.map +1 -0
- package/dist/framework/__tests__/import-graph.test.d.ts +15 -0
- package/dist/framework/__tests__/import-graph.test.d.ts.map +1 -0
- package/dist/framework/__tests__/import-graph.test.js +164 -0
- package/dist/framework/__tests__/import-graph.test.js.map +1 -0
- package/dist/framework/__tests__/memory-profiler.test.d.ts +9 -0
- package/dist/framework/__tests__/memory-profiler.test.d.ts.map +1 -0
- package/dist/framework/__tests__/memory-profiler.test.js +108 -0
- package/dist/framework/__tests__/memory-profiler.test.js.map +1 -0
- package/dist/framework/__tests__/parse-cache.test.d.ts +9 -0
- package/dist/framework/__tests__/parse-cache.test.d.ts.map +1 -0
- package/dist/framework/__tests__/parse-cache.test.js +51 -0
- package/dist/framework/__tests__/parse-cache.test.js.map +1 -0
- package/dist/framework/__tests__/path-matcher.test.d.ts +2 -0
- package/dist/framework/__tests__/path-matcher.test.d.ts.map +1 -0
- package/dist/framework/__tests__/path-matcher.test.js +113 -0
- package/dist/framework/__tests__/path-matcher.test.js.map +1 -0
- package/dist/framework/__tests__/register-helpers.test.d.ts +2 -0
- package/dist/framework/__tests__/register-helpers.test.d.ts.map +1 -0
- package/dist/framework/__tests__/register-helpers.test.js +51 -0
- package/dist/framework/__tests__/register-helpers.test.js.map +1 -0
- package/dist/framework/__tests__/registry.test.d.ts +2 -0
- package/dist/framework/__tests__/registry.test.d.ts.map +1 -0
- package/dist/framework/__tests__/registry.test.js +211 -0
- package/dist/framework/__tests__/registry.test.js.map +1 -0
- package/dist/framework/__tests__/result-builder.test.d.ts +2 -0
- package/dist/framework/__tests__/result-builder.test.d.ts.map +1 -0
- package/dist/framework/__tests__/result-builder.test.js +153 -0
- package/dist/framework/__tests__/result-builder.test.js.map +1 -0
- package/dist/framework/__tests__/scope-registry.test.d.ts +8 -0
- package/dist/framework/__tests__/scope-registry.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-registry.test.js +156 -0
- package/dist/framework/__tests__/scope-registry.test.js.map +1 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.d.ts +2 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.js +105 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.js.map +1 -0
- package/dist/framework/__tests__/scope-resolver.test.d.ts +2 -0
- package/dist/framework/__tests__/scope-resolver.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-resolver.test.js +150 -0
- package/dist/framework/__tests__/scope-resolver.test.js.map +1 -0
- package/dist/framework/__tests__/severity-mapping.test.d.ts +2 -0
- package/dist/framework/__tests__/severity-mapping.test.d.ts.map +1 -0
- package/dist/framework/__tests__/severity-mapping.test.js +74 -0
- package/dist/framework/__tests__/severity-mapping.test.js.map +1 -0
- package/dist/framework/__tests__/strip-literals.test.d.ts +2 -0
- package/dist/framework/__tests__/strip-literals.test.d.ts.map +1 -0
- package/dist/framework/__tests__/strip-literals.test.js +87 -0
- package/dist/framework/__tests__/strip-literals.test.js.map +1 -0
- package/dist/framework/abortable-exec.d.ts +34 -0
- package/dist/framework/abortable-exec.d.ts.map +1 -0
- package/dist/framework/abortable-exec.js +143 -0
- package/dist/framework/abortable-exec.js.map +1 -0
- package/dist/framework/check-config.d.ts +175 -0
- package/dist/framework/check-config.d.ts.map +1 -0
- package/dist/framework/check-config.js +115 -0
- package/dist/framework/check-config.js.map +1 -0
- package/dist/framework/check-types.d.ts +82 -0
- package/dist/framework/check-types.d.ts.map +1 -0
- package/dist/framework/check-types.js +63 -0
- package/dist/framework/check-types.js.map +1 -0
- package/dist/framework/command-executor.d.ts +25 -0
- package/dist/framework/command-executor.d.ts.map +1 -0
- package/dist/framework/command-executor.js +63 -0
- package/dist/framework/command-executor.js.map +1 -0
- package/dist/framework/comment-openers.d.ts +11 -0
- package/dist/framework/comment-openers.d.ts.map +1 -0
- package/dist/framework/comment-openers.js +11 -0
- package/dist/framework/comment-openers.js.map +1 -0
- package/dist/framework/constants.d.ts +9 -0
- package/dist/framework/constants.d.ts.map +1 -0
- package/dist/framework/constants.js +16 -0
- package/dist/framework/constants.js.map +1 -0
- package/dist/framework/define-check.d.ts +38 -0
- package/dist/framework/define-check.d.ts.map +1 -0
- package/dist/framework/define-check.js +296 -0
- package/dist/framework/define-check.js.map +1 -0
- package/dist/framework/define-regex-list-check.d.ts +160 -0
- package/dist/framework/define-regex-list-check.d.ts.map +1 -0
- package/dist/framework/define-regex-list-check.js +177 -0
- package/dist/framework/define-regex-list-check.js.map +1 -0
- package/dist/framework/directive-inventory.d.ts +37 -0
- package/dist/framework/directive-inventory.d.ts.map +1 -0
- package/dist/framework/directive-inventory.js +82 -0
- package/dist/framework/directive-inventory.js.map +1 -0
- package/dist/framework/directive-parsing.d.ts +23 -0
- package/dist/framework/directive-parsing.d.ts.map +1 -0
- package/dist/framework/directive-parsing.js +39 -0
- package/dist/framework/directive-parsing.js.map +1 -0
- package/dist/framework/execution-context.d.ts +98 -0
- package/dist/framework/execution-context.d.ts.map +1 -0
- package/dist/framework/execution-context.js +145 -0
- package/dist/framework/execution-context.js.map +1 -0
- package/dist/framework/file-accessor.d.ts +20 -0
- package/dist/framework/file-accessor.d.ts.map +1 -0
- package/dist/framework/file-accessor.js +122 -0
- package/dist/framework/file-accessor.js.map +1 -0
- package/dist/framework/file-cache.d.ts +70 -0
- package/dist/framework/file-cache.d.ts.map +1 -0
- package/dist/framework/file-cache.js +199 -0
- package/dist/framework/file-cache.js.map +1 -0
- package/dist/framework/file-type-filter.d.ts +11 -0
- package/dist/framework/file-type-filter.d.ts.map +1 -0
- package/dist/framework/file-type-filter.js +21 -0
- package/dist/framework/file-type-filter.js.map +1 -0
- package/dist/framework/ignore-processing.d.ts +36 -0
- package/dist/framework/ignore-processing.d.ts.map +1 -0
- package/dist/framework/ignore-processing.js +172 -0
- package/dist/framework/ignore-processing.js.map +1 -0
- package/dist/framework/import-graph.d.ts +51 -0
- package/dist/framework/import-graph.d.ts.map +1 -0
- package/dist/framework/import-graph.js +217 -0
- package/dist/framework/import-graph.js.map +1 -0
- package/dist/framework/memory-profiler.d.ts +53 -0
- package/dist/framework/memory-profiler.d.ts.map +1 -0
- package/dist/framework/memory-profiler.js +92 -0
- package/dist/framework/memory-profiler.js.map +1 -0
- package/dist/framework/parse-cache.d.ts +24 -0
- package/dist/framework/parse-cache.d.ts.map +1 -0
- package/dist/framework/parse-cache.js +41 -0
- package/dist/framework/parse-cache.js.map +1 -0
- package/dist/framework/path-matcher.d.ts +86 -0
- package/dist/framework/path-matcher.d.ts.map +1 -0
- package/dist/framework/path-matcher.js +138 -0
- package/dist/framework/path-matcher.js.map +1 -0
- package/dist/framework/register-helpers.d.ts +11 -0
- package/dist/framework/register-helpers.d.ts.map +1 -0
- package/dist/framework/register-helpers.js +19 -0
- package/dist/framework/register-helpers.js.map +1 -0
- package/dist/framework/registry.d.ts +51 -0
- package/dist/framework/registry.d.ts.map +1 -0
- package/dist/framework/registry.js +131 -0
- package/dist/framework/registry.js.map +1 -0
- package/dist/framework/result-builder.d.ts +74 -0
- package/dist/framework/result-builder.d.ts.map +1 -0
- package/dist/framework/result-builder.js +154 -0
- package/dist/framework/result-builder.js.map +1 -0
- package/dist/framework/scope-registry.d.ts +38 -0
- package/dist/framework/scope-registry.d.ts.map +1 -0
- package/dist/framework/scope-registry.js +77 -0
- package/dist/framework/scope-registry.js.map +1 -0
- package/dist/framework/scope-resolver.d.ts +23 -0
- package/dist/framework/scope-resolver.d.ts.map +1 -0
- package/dist/framework/scope-resolver.js +102 -0
- package/dist/framework/scope-resolver.js.map +1 -0
- package/dist/framework/severity-mapping.d.ts +17 -0
- package/dist/framework/severity-mapping.d.ts.map +1 -0
- package/dist/framework/severity-mapping.js +71 -0
- package/dist/framework/severity-mapping.js.map +1 -0
- package/dist/framework/strip-literals.d.ts +73 -0
- package/dist/framework/strip-literals.d.ts.map +1 -0
- package/dist/framework/strip-literals.js +213 -0
- package/dist/framework/strip-literals.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +17 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +17 -0
- package/dist/internal.js.map +1 -0
- package/dist/persistence/session-payload.d.ts +68 -0
- package/dist/persistence/session-payload.d.ts.map +1 -0
- package/dist/persistence/session-payload.js +78 -0
- package/dist/persistence/session-payload.js.map +1 -0
- package/dist/persistence/session-payload.test.d.ts +11 -0
- package/dist/persistence/session-payload.test.d.ts.map +1 -0
- package/dist/persistence/session-payload.test.js +80 -0
- package/dist/persistence/session-payload.test.js.map +1 -0
- package/dist/persistence/session-replay.d.ts +14 -0
- package/dist/persistence/session-replay.d.ts.map +1 -0
- package/dist/persistence/session-replay.js +85 -0
- package/dist/persistence/session-replay.js.map +1 -0
- package/dist/persistence/session-replay.test.d.ts +10 -0
- package/dist/persistence/session-replay.test.d.ts.map +1 -0
- package/dist/persistence/session-replay.test.js +171 -0
- package/dist/persistence/session-replay.test.js.map +1 -0
- package/dist/plugins/__tests__/check-package-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/check-package-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/check-package-discovery.test.js +48 -0
- package/dist/plugins/__tests__/check-package-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/lang-domain.test.d.ts +2 -0
- package/dist/plugins/__tests__/lang-domain.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/lang-domain.test.js +192 -0
- package/dist/plugins/__tests__/lang-domain.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 +271 -0
- package/dist/plugins/__tests__/loader.test.js.map +1 -0
- package/dist/plugins/check-package-discovery.d.ts +19 -0
- package/dist/plugins/check-package-discovery.d.ts.map +1 -0
- package/dist/plugins/check-package-discovery.js +34 -0
- package/dist/plugins/check-package-discovery.js.map +1 -0
- package/dist/plugins/loader.d.ts +32 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +198 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/types.d.ts +29 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +9 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts +2 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js +93 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
- package/dist/recipes/__tests__/check-config.test.d.ts +12 -0
- package/dist/recipes/__tests__/check-config.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/check-config.test.js +90 -0
- package/dist/recipes/__tests__/check-config.test.js.map +1 -0
- package/dist/recipes/__tests__/check-resolution.test.d.ts +2 -0
- package/dist/recipes/__tests__/check-resolution.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/check-resolution.test.js +160 -0
- package/dist/recipes/__tests__/check-resolution.test.js.map +1 -0
- package/dist/recipes/__tests__/execution-branches.test.d.ts +10 -0
- package/dist/recipes/__tests__/execution-branches.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/execution-branches.test.js +612 -0
- package/dist/recipes/__tests__/execution-branches.test.js.map +1 -0
- package/dist/recipes/__tests__/execution-paths.test.d.ts +10 -0
- package/dist/recipes/__tests__/execution-paths.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/execution-paths.test.js +280 -0
- package/dist/recipes/__tests__/execution-paths.test.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 +89 -0
- package/dist/recipes/__tests__/registry.test.js.map +1 -0
- package/dist/recipes/__tests__/retry.test.d.ts +2 -0
- package/dist/recipes/__tests__/retry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/retry.test.js +75 -0
- package/dist/recipes/__tests__/retry.test.js.map +1 -0
- package/dist/recipes/__tests__/run-one-check.test.d.ts +14 -0
- package/dist/recipes/__tests__/run-one-check.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/run-one-check.test.js +182 -0
- package/dist/recipes/__tests__/run-one-check.test.js.map +1 -0
- package/dist/recipes/__tests__/service.test.d.ts +11 -0
- package/dist/recipes/__tests__/service.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/service.test.js +572 -0
- package/dist/recipes/__tests__/service.test.js.map +1 -0
- package/dist/recipes/built-in-recipes.d.ts +14 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -0
- package/dist/recipes/built-in-recipes.js +241 -0
- package/dist/recipes/built-in-recipes.js.map +1 -0
- package/dist/recipes/check-config.d.ts +56 -0
- package/dist/recipes/check-config.d.ts.map +1 -0
- package/dist/recipes/check-config.js +61 -0
- package/dist/recipes/check-config.js.map +1 -0
- package/dist/recipes/check-resolution.d.ts +36 -0
- package/dist/recipes/check-resolution.d.ts.map +1 -0
- package/dist/recipes/check-resolution.js +81 -0
- package/dist/recipes/check-resolution.js.map +1 -0
- package/dist/recipes/check-result-processor.d.ts +51 -0
- package/dist/recipes/check-result-processor.d.ts.map +1 -0
- package/dist/recipes/check-result-processor.js +197 -0
- package/dist/recipes/check-result-processor.js.map +1 -0
- package/dist/recipes/parallel-execution.d.ts +38 -0
- package/dist/recipes/parallel-execution.d.ts.map +1 -0
- package/dist/recipes/parallel-execution.js +61 -0
- package/dist/recipes/parallel-execution.js.map +1 -0
- package/dist/recipes/registry.d.ts +47 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +70 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/retry.d.ts +29 -0
- package/dist/recipes/retry.d.ts.map +1 -0
- package/dist/recipes/retry.js +23 -0
- package/dist/recipes/retry.js.map +1 -0
- package/dist/recipes/run-one-check.d.ts +59 -0
- package/dist/recipes/run-one-check.d.ts.map +1 -0
- package/dist/recipes/run-one-check.js +174 -0
- package/dist/recipes/run-one-check.js.map +1 -0
- package/dist/recipes/sequential-execution.d.ts +12 -0
- package/dist/recipes/sequential-execution.d.ts.map +1 -0
- package/dist/recipes/sequential-execution.js +48 -0
- package/dist/recipes/sequential-execution.js.map +1 -0
- package/dist/recipes/service-types.d.ts +87 -0
- package/dist/recipes/service-types.d.ts.map +1 -0
- package/dist/recipes/service-types.js +8 -0
- package/dist/recipes/service-types.js.map +1 -0
- package/dist/recipes/service.d.ts +73 -0
- package/dist/recipes/service.d.ts.map +1 -0
- package/dist/recipes/service.js +438 -0
- package/dist/recipes/service.js.map +1 -0
- package/dist/recipes/types.d.ts +155 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +56 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/scaffold/config-block.d.ts +17 -0
- package/dist/scaffold/config-block.d.ts.map +1 -0
- package/dist/scaffold/config-block.js +30 -0
- package/dist/scaffold/config-block.js.map +1 -0
- package/dist/scaffold/examples.d.ts +30 -0
- package/dist/scaffold/examples.d.ts.map +1 -0
- package/dist/scaffold/examples.js +129 -0
- package/dist/scaffold/examples.js.map +1 -0
- package/dist/scope-augmentation.d.ts +77 -0
- package/dist/scope-augmentation.d.ts.map +1 -0
- package/dist/scope-augmentation.js +31 -0
- package/dist/scope-augmentation.js.map +1 -0
- package/dist/signalers/__tests__/loader.test.d.ts +2 -0
- package/dist/signalers/__tests__/loader.test.d.ts.map +1 -0
- package/dist/signalers/__tests__/loader.test.js +141 -0
- package/dist/signalers/__tests__/loader.test.js.map +1 -0
- package/dist/signalers/__tests__/violation-to-signal.test.d.ts +2 -0
- package/dist/signalers/__tests__/violation-to-signal.test.d.ts.map +1 -0
- package/dist/signalers/__tests__/violation-to-signal.test.js +59 -0
- package/dist/signalers/__tests__/violation-to-signal.test.js.map +1 -0
- package/dist/signalers/index.d.ts +8 -0
- package/dist/signalers/index.d.ts.map +1 -0
- package/dist/signalers/index.js +9 -0
- package/dist/signalers/index.js.map +1 -0
- package/dist/signalers/loader.d.ts +30 -0
- package/dist/signalers/loader.d.ts.map +1 -0
- package/dist/signalers/loader.js +120 -0
- package/dist/signalers/loader.js.map +1 -0
- package/dist/signalers/schema.d.ts +60 -0
- package/dist/signalers/schema.d.ts.map +1 -0
- package/dist/signalers/schema.js +74 -0
- package/dist/signalers/schema.js.map +1 -0
- package/dist/signalers/types.d.ts +13 -0
- package/dist/signalers/types.d.ts.map +1 -0
- package/dist/signalers/types.js +5 -0
- package/dist/signalers/types.js.map +1 -0
- package/dist/signalers/violation-to-signal.d.ts +38 -0
- package/dist/signalers/violation-to-signal.d.ts.map +1 -0
- package/dist/signalers/violation-to-signal.js +43 -0
- package/dist/signalers/violation-to-signal.js.map +1 -0
- package/dist/targets/__tests__/loader.test.d.ts +2 -0
- package/dist/targets/__tests__/loader.test.d.ts.map +1 -0
- package/dist/targets/__tests__/loader.test.js +190 -0
- package/dist/targets/__tests__/loader.test.js.map +1 -0
- package/dist/targets/__tests__/target-registry.test.d.ts +2 -0
- package/dist/targets/__tests__/target-registry.test.d.ts.map +1 -0
- package/dist/targets/__tests__/target-registry.test.js +182 -0
- package/dist/targets/__tests__/target-registry.test.js.map +1 -0
- package/dist/targets/index.d.ts +18 -0
- package/dist/targets/index.d.ts.map +1 -0
- package/dist/targets/index.js +21 -0
- package/dist/targets/index.js.map +1 -0
- package/dist/targets/loader.d.ts +27 -0
- package/dist/targets/loader.d.ts.map +1 -0
- package/dist/targets/loader.js +178 -0
- package/dist/targets/loader.js.map +1 -0
- package/dist/targets/target-registry.d.ts +41 -0
- package/dist/targets/target-registry.d.ts.map +1 -0
- package/dist/targets/target-registry.js +71 -0
- package/dist/targets/target-registry.js.map +1 -0
- package/dist/targets/types.d.ts +14 -0
- package/dist/targets/types.d.ts.map +1 -0
- package/dist/targets/types.js +14 -0
- package/dist/targets/types.js.map +1 -0
- package/dist/tool.d.ts +61 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +260 -0
- package/dist/tool.js.map +1 -0
- package/dist/types/findings.d.ts +113 -0
- package/dist/types/findings.d.ts.map +1 -0
- package/dist/types/findings.js +89 -0
- package/dist/types/findings.js.map +1 -0
- package/dist/types/severity.d.ts +15 -0
- package/dist/types/severity.d.ts.map +1 -0
- package/dist/types/severity.js +33 -0
- package/dist/types/severity.js.map +1 -0
- package/package.json +137 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fit command — run fitness checks.
|
|
3
|
+
*
|
|
4
|
+
* Thin orchestrator. `executeFit` sequences the five extracted phases:
|
|
5
|
+
* 1. {@link ensureChecksLoaded} — plugin + check-pack discovery
|
|
6
|
+
* 2. {@link loadFitConfig} — opensip-cli.config.yml parse
|
|
7
|
+
* 3. {@link selectRecipe} — recipe-name lookup vs. ad-hoc
|
|
8
|
+
* 4. {@link validateLanguagesAgainstAdapters} — warn on unknown languages
|
|
9
|
+
* 5. {@link runRecipeOrAdHoc} — drive FitnessRecipeService
|
|
10
|
+
*
|
|
11
|
+
* Each phase lives in a sibling module under `./fit/`:
|
|
12
|
+
* - `fit/check-loader.ts` — discovery + lifecycle singletons
|
|
13
|
+
* - `fit/display-registry.ts` — merged check display map
|
|
14
|
+
* - `fit/config-loader.ts` — config parse + language validation
|
|
15
|
+
* - `fit/recipe-selector.ts` — recipe-pick + run
|
|
16
|
+
* - `fit/result-builders.ts` — SignalEnvelope / FitDoneResult / session persist
|
|
17
|
+
*
|
|
18
|
+
* This file re-exports the public surface (`executeFit`,
|
|
19
|
+
* `ensureChecksLoaded`, and the display accessors) so existing consumers
|
|
20
|
+
* (`opensip-cli`, `report-data.ts`, the fitness `index.ts` barrel) keep
|
|
21
|
+
* resolving the same names.
|
|
22
|
+
*/
|
|
23
|
+
import type { FitOptions, SignalEnvelope, FitDoneResult, ErrorResult } from '@opensip-cli/contracts';
|
|
24
|
+
export { ensureChecksLoaded, getEnabledCheckCount, getLoadWarnings, getPluginLoadErrors, } from './fit/check-loader.js';
|
|
25
|
+
export { getDisplayName, getIcon } from './fit/display-registry.js';
|
|
26
|
+
/**
|
|
27
|
+
* Optional dependencies threaded through `executeFit`. Both fields are
|
|
28
|
+
* optional so test harnesses and the JSON/gate paths can call
|
|
29
|
+
* `executeFit(args)` exactly as before.
|
|
30
|
+
*
|
|
31
|
+
* - `onProgress` — wired to `FitnessRecipeService` callbacks; FitView
|
|
32
|
+
* drives the live progress bar from this callback.
|
|
33
|
+
*
|
|
34
|
+
* Persistence is NOT done here (ADR-0028): the engine is worker-safe — it returns
|
|
35
|
+
* the envelope + result and the host persists. The datastore handle cannot cross
|
|
36
|
+
* the worker boundary. The fit modes (json / non-TTY live / gate) RETURN a
|
|
37
|
+
* `ToolSessionContribution` and the host run plane writes the generic session row
|
|
38
|
+
* after the handler resolves (host-owned-run-timing Phase 3); the TTY live runner
|
|
39
|
+
* returns its contribution to the host via `renderLive`.
|
|
40
|
+
*/
|
|
41
|
+
export interface ExecuteFitOptions {
|
|
42
|
+
onProgress?: (completed: number, total: number) => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Run a fitness session end-to-end. Sequences the phase helpers in this
|
|
46
|
+
* package in a fixed order:
|
|
47
|
+
*
|
|
48
|
+
* 1. `ensureChecksLoaded` — loads check packs and fit-domain plugins
|
|
49
|
+
* (must run first; populates the scope's check + recipe registries
|
|
50
|
+
* for downstream phases).
|
|
51
|
+
* 2. `loadFitConfig` — resolves `signalersConfig` + `targetsConfig`
|
|
52
|
+
* from `opensip-cli.config.yml`. Sequenced before `selectRecipe`
|
|
53
|
+
* so a missing/invalid config surfaces before recipe-name
|
|
54
|
+
* validation — the config tells the user what recipes exist, so
|
|
55
|
+
* the config error is the more useful message of the two.
|
|
56
|
+
* 3. `selectRecipe` — looks up the requested recipe in the scope's
|
|
57
|
+
* recipe registry (populated by step 1). Has a hard
|
|
58
|
+
* precondition on `ensureChecksLoaded`; see its JSDoc.
|
|
59
|
+
* 4. `validateLanguagesAgainstAdapters` — warns on unknown languages.
|
|
60
|
+
* 5. Build scope-based file map → run recipe → build outputs.
|
|
61
|
+
*
|
|
62
|
+
* The phase helpers read from per-run scope state set by step 1
|
|
63
|
+
* (`scope.fitness.load`; see the accessors block in
|
|
64
|
+
* `./fit/check-loader.ts`). The ordering here is the contract that lets
|
|
65
|
+
* those reads be safe.
|
|
66
|
+
*/
|
|
67
|
+
export declare function executeFit(args: FitOptions, opts?: ExecuteFitOptions): Promise<{
|
|
68
|
+
result: FitDoneResult;
|
|
69
|
+
envelope: SignalEnvelope;
|
|
70
|
+
} | {
|
|
71
|
+
result: ErrorResult;
|
|
72
|
+
envelope?: undefined;
|
|
73
|
+
}>;
|
|
74
|
+
//# sourceMappingURL=fit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit.d.ts","sourceRoot":"","sources":["../../src/cli/fit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAShC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAMpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CACN;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAChD,CA8FA"}
|
package/dist/cli/fit.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fit command — run fitness checks.
|
|
3
|
+
*
|
|
4
|
+
* Thin orchestrator. `executeFit` sequences the five extracted phases:
|
|
5
|
+
* 1. {@link ensureChecksLoaded} — plugin + check-pack discovery
|
|
6
|
+
* 2. {@link loadFitConfig} — opensip-cli.config.yml parse
|
|
7
|
+
* 3. {@link selectRecipe} — recipe-name lookup vs. ad-hoc
|
|
8
|
+
* 4. {@link validateLanguagesAgainstAdapters} — warn on unknown languages
|
|
9
|
+
* 5. {@link runRecipeOrAdHoc} — drive FitnessRecipeService
|
|
10
|
+
*
|
|
11
|
+
* Each phase lives in a sibling module under `./fit/`:
|
|
12
|
+
* - `fit/check-loader.ts` — discovery + lifecycle singletons
|
|
13
|
+
* - `fit/display-registry.ts` — merged check display map
|
|
14
|
+
* - `fit/config-loader.ts` — config parse + language validation
|
|
15
|
+
* - `fit/recipe-selector.ts` — recipe-pick + run
|
|
16
|
+
* - `fit/result-builders.ts` — SignalEnvelope / FitDoneResult / session persist
|
|
17
|
+
*
|
|
18
|
+
* This file re-exports the public surface (`executeFit`,
|
|
19
|
+
* `ensureChecksLoaded`, and the display accessors) so existing consumers
|
|
20
|
+
* (`opensip-cli`, `report-data.ts`, the fitness `index.ts` barrel) keep
|
|
21
|
+
* resolving the same names.
|
|
22
|
+
*/
|
|
23
|
+
import { logger } from '@opensip-cli/core';
|
|
24
|
+
import { currentCheckRegistry } from '../framework/scope-registry.js';
|
|
25
|
+
import { buildScopeBasedFileMap } from '../framework/scope-resolver.js';
|
|
26
|
+
import { FitnessRecipeService } from '../recipes/service.js';
|
|
27
|
+
import { ensureChecksLoaded, getLoadWarnings } from './fit/check-loader.js';
|
|
28
|
+
import { loadFitConfig, validateLanguagesAgainstAdapters } from './fit/config-loader.js';
|
|
29
|
+
import { runRecipeOrAdHoc, selectRecipe } from './fit/recipe-selector.js';
|
|
30
|
+
import { resolvedFitnessConfig } from './fit/resolved-fitness-config.js';
|
|
31
|
+
import { buildFitEnvelope, buildFitCallbacks, buildFitDoneResult } from './fit/result-builders.js';
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Re-exports — preserve the public surface that external consumers
|
|
34
|
+
// (`opensip-cli`, `report-data.ts`, fitness's barrel) import from
|
|
35
|
+
// this file. Splitting the implementation under `./fit/` is an internal
|
|
36
|
+
// refactor; the import sites stay on `./fit.js`.
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
export { ensureChecksLoaded, getEnabledCheckCount, getLoadWarnings, getPluginLoadErrors, } from './fit/check-loader.js';
|
|
39
|
+
export { getDisplayName, getIcon } from './fit/display-registry.js';
|
|
40
|
+
/**
|
|
41
|
+
* Run a fitness session end-to-end. Sequences the phase helpers in this
|
|
42
|
+
* package in a fixed order:
|
|
43
|
+
*
|
|
44
|
+
* 1. `ensureChecksLoaded` — loads check packs and fit-domain plugins
|
|
45
|
+
* (must run first; populates the scope's check + recipe registries
|
|
46
|
+
* for downstream phases).
|
|
47
|
+
* 2. `loadFitConfig` — resolves `signalersConfig` + `targetsConfig`
|
|
48
|
+
* from `opensip-cli.config.yml`. Sequenced before `selectRecipe`
|
|
49
|
+
* so a missing/invalid config surfaces before recipe-name
|
|
50
|
+
* validation — the config tells the user what recipes exist, so
|
|
51
|
+
* the config error is the more useful message of the two.
|
|
52
|
+
* 3. `selectRecipe` — looks up the requested recipe in the scope's
|
|
53
|
+
* recipe registry (populated by step 1). Has a hard
|
|
54
|
+
* precondition on `ensureChecksLoaded`; see its JSDoc.
|
|
55
|
+
* 4. `validateLanguagesAgainstAdapters` — warns on unknown languages.
|
|
56
|
+
* 5. Build scope-based file map → run recipe → build outputs.
|
|
57
|
+
*
|
|
58
|
+
* The phase helpers read from per-run scope state set by step 1
|
|
59
|
+
* (`scope.fitness.load`; see the accessors block in
|
|
60
|
+
* `./fit/check-loader.ts`). The ordering here is the contract that lets
|
|
61
|
+
* those reads be safe.
|
|
62
|
+
*/
|
|
63
|
+
export async function executeFit(args, opts = {}) {
|
|
64
|
+
logger.info({ evt: 'cli.checks.loading', module: 'cli:fit' });
|
|
65
|
+
await ensureChecksLoaded(args.cwd);
|
|
66
|
+
const checkRegistry = currentCheckRegistry();
|
|
67
|
+
logger.info({
|
|
68
|
+
evt: 'cli.checks.loaded',
|
|
69
|
+
module: 'cli:fit',
|
|
70
|
+
checkCount: checkRegistry.listEnabled().length,
|
|
71
|
+
});
|
|
72
|
+
const configResult = loadFitConfig(args);
|
|
73
|
+
if ('error' in configResult)
|
|
74
|
+
return { result: configResult.error };
|
|
75
|
+
const { signalersConfig, targetsConfig, targetRegistry } = configResult;
|
|
76
|
+
// ADR-0023, Phase 4: the fitness knobs (recipe + disabledChecks) come from the
|
|
77
|
+
// host-RESOLVED config block (`scope.toolConfig.fitness`), which already folds
|
|
78
|
+
// in flag > env > file > defaults. `signalersConfig` is the fallback when no
|
|
79
|
+
// scope/toolConfig is present (config-less project / unit test).
|
|
80
|
+
const fitnessResolved = resolvedFitnessConfig();
|
|
81
|
+
// Tool-scoped recipe resolution (ADR-0022): explicit --recipe > fitness.recipe
|
|
82
|
+
// > built-in default. The fitness.recipe default comes from the resolved scope
|
|
83
|
+
// block when available.
|
|
84
|
+
const recipePick = selectRecipe(args, {
|
|
85
|
+
toolRecipe: fitnessResolved?.recipe ?? signalersConfig.fitness.recipe,
|
|
86
|
+
});
|
|
87
|
+
if ('error' in recipePick)
|
|
88
|
+
return { result: recipePick.error };
|
|
89
|
+
const { recipeName } = recipePick;
|
|
90
|
+
const validationWarnings = await validateLanguagesAgainstAdapters(targetRegistry);
|
|
91
|
+
const allChecks = checkRegistry.listSlugs().map((key) => {
|
|
92
|
+
const check = checkRegistry.getBySlug(key);
|
|
93
|
+
return { slug: check?.config.slug ?? key, scope: check?.config.checkScope };
|
|
94
|
+
});
|
|
95
|
+
const scopeMap = buildScopeBasedFileMap(allChecks, targetRegistry, targetsConfig, args.cwd);
|
|
96
|
+
const checkTargetFiles = scopeMap.size > 0 ? scopeMap : undefined;
|
|
97
|
+
// CLI --exclude (and any config-level per-run exclude) are additive runtime filters for this invocation.
|
|
98
|
+
// They are merged into disabledChecks so the recipe service skips them exactly as permanently-disabled checks.
|
|
99
|
+
// This makes the documented --exclude flag actually affect execution and the gate.
|
|
100
|
+
const runtimeExcludes = [
|
|
101
|
+
...(fitnessResolved?.disabledChecks ?? []),
|
|
102
|
+
...(signalersConfig.fitness.disabledChecks ?? []),
|
|
103
|
+
...(args.exclude ?? []),
|
|
104
|
+
];
|
|
105
|
+
const service = new FitnessRecipeService({
|
|
106
|
+
cwd: args.cwd,
|
|
107
|
+
checkTargetFiles,
|
|
108
|
+
callbacks: buildFitCallbacks(opts.onProgress),
|
|
109
|
+
disabledChecks: runtimeExcludes,
|
|
110
|
+
includeViolations: true,
|
|
111
|
+
globalExcludes: targetsConfig.globalExcludes,
|
|
112
|
+
});
|
|
113
|
+
const fitResultOrError = await runRecipeOrAdHoc(service, args, recipeName);
|
|
114
|
+
if ('error' in fitResultOrError)
|
|
115
|
+
return { result: fitResultOrError.error };
|
|
116
|
+
const fitnessResult = fitResultOrError;
|
|
117
|
+
// ADR-0011: the run's signal envelope is the canonical post-run transform —
|
|
118
|
+
// the universal output currency the composition root renders, emits
|
|
119
|
+
// (`--json`), and delivers (cloud + `--report-to`). Cloud egress no longer
|
|
120
|
+
// happens here: the root's `deliverSignals` owns it (engines dropped their
|
|
121
|
+
// `@opensip-cli/output` dependency in Phase 6).
|
|
122
|
+
const envelope = buildFitEnvelope(fitnessResult, recipeName, signalersConfig);
|
|
123
|
+
// Collect warnings from check loading (ensureChecksLoaded → loadWarnings)
|
|
124
|
+
// and from config validation (validateLanguagesAgainstAdapters). Both flow
|
|
125
|
+
// through the result rather than direct stderr writes so the live renderer
|
|
126
|
+
// can surface them without breaking Ink's frame tracking.
|
|
127
|
+
const warnings = [...getLoadWarnings(), ...validationWarnings];
|
|
128
|
+
const result = buildFitDoneResult({
|
|
129
|
+
args,
|
|
130
|
+
fitnessResult,
|
|
131
|
+
envelope,
|
|
132
|
+
signalersConfig,
|
|
133
|
+
recipeName,
|
|
134
|
+
warnings,
|
|
135
|
+
});
|
|
136
|
+
logger.info({
|
|
137
|
+
evt: 'cli.fit.complete',
|
|
138
|
+
module: 'cli:fit',
|
|
139
|
+
score: envelope.verdict.score,
|
|
140
|
+
passed: fitnessResult.success,
|
|
141
|
+
totalChecks: fitnessResult.summary.totalChecks,
|
|
142
|
+
durationMs: fitnessResult.durationMs,
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
result,
|
|
146
|
+
envelope,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=fit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit.js","sourceRoot":"","sources":["../../src/cli/fit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* report-data contribution — fitness's inputs to the cross-tool HTML
|
|
3
|
+
* report.
|
|
4
|
+
*
|
|
5
|
+
* Audit 2026-05-29 (L2): the CLI is now the report composition root.
|
|
6
|
+
* Fitness no longer loads sessions, the graph catalog, writes the file,
|
|
7
|
+
* or opens the browser. It just returns ITS OWN dashboard inputs (the
|
|
8
|
+
* check + recipe catalogs and the editor protocol) keyed by the field
|
|
9
|
+
* names `generateDashboardHtml` consumes. The CLI walks every tool's
|
|
10
|
+
* `collectReportData` and merges the contributions into one
|
|
11
|
+
* `DashboardInput`. This decouples fitness from graph entirely.
|
|
12
|
+
*/
|
|
13
|
+
import type { ToolScope } from '@opensip-cli/core';
|
|
14
|
+
/** Check catalog entry for dashboard display. */
|
|
15
|
+
export interface CheckCatalogEntry {
|
|
16
|
+
readonly slug: string;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly icon: string;
|
|
19
|
+
readonly description: string;
|
|
20
|
+
readonly longDescription?: string;
|
|
21
|
+
readonly tags: readonly string[];
|
|
22
|
+
readonly confidence: 'high' | 'medium' | 'low';
|
|
23
|
+
readonly source: 'built-in' | 'community';
|
|
24
|
+
}
|
|
25
|
+
/** Recipe catalog entry for dashboard display. */
|
|
26
|
+
export interface RecipeCatalogEntry {
|
|
27
|
+
readonly name: string;
|
|
28
|
+
readonly displayName: string;
|
|
29
|
+
readonly description: string;
|
|
30
|
+
readonly tags: readonly string[];
|
|
31
|
+
readonly selectorType: string;
|
|
32
|
+
readonly mode: string;
|
|
33
|
+
readonly timeout: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Fitness's report-data contribution (audit 2026-05-29, L2). Returns
|
|
37
|
+
* the check catalog, recipe catalog, and editor protocol under the keys
|
|
38
|
+
* `generateDashboardHtml` consumes. Best-effort: a missing signalers
|
|
39
|
+
* config degrades the editor protocol to null; catalog building always
|
|
40
|
+
* succeeds once checks are loaded. The CLI merges this onto the shared
|
|
41
|
+
* `DashboardInput` alongside other tools' contributions.
|
|
42
|
+
*/
|
|
43
|
+
export declare function collectFitnessReportData(scope: ToolScope): Promise<Record<string, unknown>>;
|
|
44
|
+
//# sourceMappingURL=report-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-data.d.ts","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAanD,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;CAC3C;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAwCD;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkCjG"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// @fitness-ignore-file error-handling-quality -- report-data collection is a best-effort UX action: signalers-config load failures degrade gracefully to ungoverned mode (surfaced separately by the fitness run). The CLI composition root owns file-writing and browser launch; this module only contributes fitness's catalog inputs.
|
|
2
|
+
/**
|
|
3
|
+
* report-data contribution — fitness's inputs to the cross-tool HTML
|
|
4
|
+
* report.
|
|
5
|
+
*
|
|
6
|
+
* Audit 2026-05-29 (L2): the CLI is now the report composition root.
|
|
7
|
+
* Fitness no longer loads sessions, the graph catalog, writes the file,
|
|
8
|
+
* or opens the browser. It just returns ITS OWN dashboard inputs (the
|
|
9
|
+
* check + recipe catalogs and the editor protocol) keyed by the field
|
|
10
|
+
* names `generateDashboardHtml` consumes. The CLI walks every tool's
|
|
11
|
+
* `collectReportData` and merges the contributions into one
|
|
12
|
+
* `DashboardInput`. This decouples fitness from graph entirely.
|
|
13
|
+
*/
|
|
14
|
+
import { currentCheckRegistry, currentRecipeRegistry } from '../framework/scope-registry.js';
|
|
15
|
+
import { loadSignalersConfig } from '../signalers/index.js';
|
|
16
|
+
import { ensureChecksLoaded, getDisplayName, getIcon } from './fit.js';
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// collectFitnessReportData
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* "built-in" vs "community" classification for the dashboard catalog.
|
|
22
|
+
* Anything registered under the @opensip-cli/ scope is first-party;
|
|
23
|
+
* anything else (loose plugin file, third-party npm package) is
|
|
24
|
+
* community. We no longer match a single magic package name — the
|
|
25
|
+
* scope rule keeps working when checks-builtin is split into multiple
|
|
26
|
+
* first-party packages (checks-typescript, checks-universal, etc).
|
|
27
|
+
*/
|
|
28
|
+
const FIRST_PARTY_SCOPE = '@opensip-cli/';
|
|
29
|
+
function classifyCheckSource(namespace) {
|
|
30
|
+
return namespace?.startsWith(FIRST_PARTY_SCOPE) ? 'built-in' : 'community';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read the project's `dashboard.editor` value (if any) via the shared
|
|
34
|
+
* signalers loader. The Code Paths panel embeds it as a JS constant so
|
|
35
|
+
* the Function Card can produce vscode://, cursor://, etc. deep links.
|
|
36
|
+
*
|
|
37
|
+
* Returns `null` when no config file exists or the value is unset —
|
|
38
|
+
* the dashboard renders without a deep-link editor protocol in that
|
|
39
|
+
* case (graceful degradation; the panel falls back to plain paths).
|
|
40
|
+
*/
|
|
41
|
+
function loadEditorProtocol(projectDir) {
|
|
42
|
+
try {
|
|
43
|
+
const config = loadSignalersConfig(projectDir ?? process.cwd());
|
|
44
|
+
return config.dashboard?.editor ?? null;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// No config / parse error — dashboard runs ungoverned. The fitness
|
|
48
|
+
// run itself surfaces a config-load failure separately.
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Fitness's report-data contribution (audit 2026-05-29, L2). Returns
|
|
54
|
+
* the check catalog, recipe catalog, and editor protocol under the keys
|
|
55
|
+
* `generateDashboardHtml` consumes. Best-effort: a missing signalers
|
|
56
|
+
* config degrades the editor protocol to null; catalog building always
|
|
57
|
+
* succeeds once checks are loaded. The CLI merges this onto the shared
|
|
58
|
+
* `DashboardInput` alongside other tools' contributions.
|
|
59
|
+
*/
|
|
60
|
+
export async function collectFitnessReportData(scope) {
|
|
61
|
+
const projectDir = scope.projectContext?.projectRoot;
|
|
62
|
+
await ensureChecksLoaded(projectDir);
|
|
63
|
+
const checkRegistry = currentCheckRegistry();
|
|
64
|
+
const checkCatalog = checkRegistry.list().map((check) => {
|
|
65
|
+
const namespace = checkRegistry.getNamespace(check.config.slug);
|
|
66
|
+
return {
|
|
67
|
+
slug: check.config.slug,
|
|
68
|
+
name: getDisplayName(check.config.slug),
|
|
69
|
+
icon: getIcon(check.config.slug),
|
|
70
|
+
description: check.config.description,
|
|
71
|
+
longDescription: check.config.longDescription,
|
|
72
|
+
tags: [...(check.config.tags ?? [])],
|
|
73
|
+
confidence: check.config.confidence ?? 'medium',
|
|
74
|
+
source: classifyCheckSource(namespace),
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
const recipeCatalog = [...currentRecipeRegistry().getAllRecipes()].map((r) => ({
|
|
78
|
+
name: r.name,
|
|
79
|
+
displayName: r.displayName,
|
|
80
|
+
description: r.description,
|
|
81
|
+
tags: [...(r.tags ?? [])],
|
|
82
|
+
selectorType: r.checks.type,
|
|
83
|
+
mode: r.execution.mode,
|
|
84
|
+
timeout: r.execution.timeout ?? 30_000,
|
|
85
|
+
}));
|
|
86
|
+
const editorProtocol = loadEditorProtocol(projectDir);
|
|
87
|
+
return { checkCatalog, recipeCatalog, editorProtocol };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=report-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-data.js","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AAAA,yUAAyU;AACzU;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAsCvE,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,SAAS,mBAAmB,CAAC,SAA6B;IACxD,OAAO,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,UAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,wDAAwD;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAgB;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACrD,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAwB,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3E,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACvB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;YACrC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;YAC7C,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ;YAC/C,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAyB,CAAC,GAAG,qBAAqB,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAC1F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACzB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;QAC3B,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI;QACtB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,MAAM;KACvC,CAAC,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fitness-config-schema.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/fitness-config-schema.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for the fitness namespace config schema.
|
|
3
|
+
* The schema validates the `fitness:` block; the composer adds `.strict()`.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, expect, it } from 'vitest';
|
|
6
|
+
import { FITNESS_CONFIG_DEFAULTS, FitnessNamespaceSchema, fitnessConfigDeclaration, } from '../fitness-config-schema.js';
|
|
7
|
+
describe('FitnessNamespaceSchema', () => {
|
|
8
|
+
it('accepts a well-formed fitness block', () => {
|
|
9
|
+
const parsed = FitnessNamespaceSchema.parse({
|
|
10
|
+
failOnErrors: 1,
|
|
11
|
+
failOnWarnings: 0,
|
|
12
|
+
disabledChecks: ['some-check'],
|
|
13
|
+
recipe: 'backend',
|
|
14
|
+
});
|
|
15
|
+
expect(parsed.failOnErrors).toBe(1);
|
|
16
|
+
expect(parsed.disabledChecks).toEqual(['some-check']);
|
|
17
|
+
expect(parsed.recipe).toBe('backend');
|
|
18
|
+
});
|
|
19
|
+
it('accepts an empty block (all knobs optional)', () => {
|
|
20
|
+
expect(FitnessNamespaceSchema.parse({})).toEqual({});
|
|
21
|
+
});
|
|
22
|
+
it('rejects a negative failOnErrors', () => {
|
|
23
|
+
expect(FitnessNamespaceSchema.safeParse({ failOnErrors: -1 }).success).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
it('rejects a non-string disabledChecks entry', () => {
|
|
26
|
+
expect(FitnessNamespaceSchema.safeParse({ disabledChecks: [3] }).success).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it('rejects an unknown key once strict (composer behaviour)', () => {
|
|
29
|
+
const strict = FitnessNamespaceSchema.strict();
|
|
30
|
+
expect(strict.safeParse({ faliOnErrors: 1 }).success).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('declares namespace fitness with shared defaults', () => {
|
|
33
|
+
expect(fitnessConfigDeclaration.namespace).toBe('fitness');
|
|
34
|
+
expect(fitnessConfigDeclaration.defaults).toEqual(FITNESS_CONFIG_DEFAULTS);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=fitness-config-schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fitness-config-schema.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/fitness-config-schema.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AAErC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC;YAC1C,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC,YAAY,CAAC;YAC9B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fitness-config-schema — the fitness tool's namespaced Zod config schema.
|
|
3
|
+
*
|
|
4
|
+
* Describes the `fitness:` top-level block of `opensip-cli.config.yml` —
|
|
5
|
+
* the knobs fitness owns: gate thresholds (`failOnErrors`/`failOnWarnings`),
|
|
6
|
+
* the `disabledChecks` list, the tool-scoped `recipe` default, and the
|
|
7
|
+
* scheduling/targeting knobs (`defaultTarget`/`maxParallel`/`timeout`).
|
|
8
|
+
*
|
|
9
|
+
* This is the single field definition for the `fitness:` namespace. The host's
|
|
10
|
+
* composed config resolver uses it directly, and the older whole-document
|
|
11
|
+
* `SignalersConfigSchema` reuses it with parser defaults while it still owns
|
|
12
|
+
* shared targeting sections (`targets`/`globalExcludes`/`checkOverrides`).
|
|
13
|
+
*
|
|
14
|
+
* Defaults live on the {@link ToolConfigDeclaration} (`failOnErrors: 1`,
|
|
15
|
+
* `failOnWarnings: 0`, `disabledChecks: []`) — the lowest-precedence source
|
|
16
|
+
* the resolver merges — rather than as Zod `.default(...)` so the composed
|
|
17
|
+
* namespace schema validates a user document without injecting values.
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import type { ToolConfigDeclaration } from '@opensip-cli/config';
|
|
21
|
+
/** Defaults for fitness-owned config keys. */
|
|
22
|
+
export declare const FITNESS_CONFIG_DEFAULTS: {
|
|
23
|
+
readonly failOnErrors: 1;
|
|
24
|
+
readonly failOnWarnings: 0;
|
|
25
|
+
readonly disabledChecks: readonly [];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Zod object for the `fitness:` namespace. Every field optional so a config
|
|
29
|
+
* that omits the block (or any individual knob) is valid; the declaration's
|
|
30
|
+
* `defaults` supply the effective values.
|
|
31
|
+
*/
|
|
32
|
+
export declare const FitnessNamespaceSchema: z.ZodObject<{
|
|
33
|
+
defaultTarget: z.ZodOptional<z.ZodString>;
|
|
34
|
+
maxParallel: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
failOnErrors: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
failOnWarnings: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
disabledChecks: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
recipe: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
/**
|
|
42
|
+
* The fitness tool's contribution to the composed configuration document.
|
|
43
|
+
* `namespace: 'fitness'`; the composer makes it strict (typo-rejecting) and
|
|
44
|
+
* optional. Defaults mirror the historical `SignalersConfigSchema` fitness
|
|
45
|
+
* defaults so the resolved config matches the established behaviour.
|
|
46
|
+
*/
|
|
47
|
+
export declare const fitnessConfigDeclaration: ToolConfigDeclaration;
|
|
48
|
+
//# sourceMappingURL=fitness-config-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fitness-config-schema.d.ts","sourceRoot":"","sources":["../../src/config/fitness-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;iBAejC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAQtC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fitness-config-schema — the fitness tool's namespaced Zod config schema.
|
|
3
|
+
*
|
|
4
|
+
* Describes the `fitness:` top-level block of `opensip-cli.config.yml` —
|
|
5
|
+
* the knobs fitness owns: gate thresholds (`failOnErrors`/`failOnWarnings`),
|
|
6
|
+
* the `disabledChecks` list, the tool-scoped `recipe` default, and the
|
|
7
|
+
* scheduling/targeting knobs (`defaultTarget`/`maxParallel`/`timeout`).
|
|
8
|
+
*
|
|
9
|
+
* This is the single field definition for the `fitness:` namespace. The host's
|
|
10
|
+
* composed config resolver uses it directly, and the older whole-document
|
|
11
|
+
* `SignalersConfigSchema` reuses it with parser defaults while it still owns
|
|
12
|
+
* shared targeting sections (`targets`/`globalExcludes`/`checkOverrides`).
|
|
13
|
+
*
|
|
14
|
+
* Defaults live on the {@link ToolConfigDeclaration} (`failOnErrors: 1`,
|
|
15
|
+
* `failOnWarnings: 0`, `disabledChecks: []`) — the lowest-precedence source
|
|
16
|
+
* the resolver merges — rather than as Zod `.default(...)` so the composed
|
|
17
|
+
* namespace schema validates a user document without injecting values.
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
/** Defaults for fitness-owned config keys. */
|
|
21
|
+
export const FITNESS_CONFIG_DEFAULTS = {
|
|
22
|
+
failOnErrors: 1,
|
|
23
|
+
failOnWarnings: 0,
|
|
24
|
+
disabledChecks: [],
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Zod object for the `fitness:` namespace. Every field optional so a config
|
|
28
|
+
* that omits the block (or any individual knob) is valid; the declaration's
|
|
29
|
+
* `defaults` supply the effective values.
|
|
30
|
+
*/
|
|
31
|
+
export const FitnessNamespaceSchema = z.object({
|
|
32
|
+
/** Named target a bare `fit` run scopes to when no `--target` is given. */
|
|
33
|
+
defaultTarget: z.string().min(1).max(255).optional(),
|
|
34
|
+
/** Max checks evaluated in parallel. */
|
|
35
|
+
maxParallel: z.number().int().min(1).optional(),
|
|
36
|
+
/** Per-check timeout in milliseconds. */
|
|
37
|
+
timeout: z.number().int().min(1000).optional(),
|
|
38
|
+
/** Gate: fail when total errors >= this (0 = never fail on errors). */
|
|
39
|
+
failOnErrors: z.number().int().min(0).optional(),
|
|
40
|
+
/** Gate: fail when total warnings >= this (0 = never fail on warnings). */
|
|
41
|
+
failOnWarnings: z.number().int().min(0).optional(),
|
|
42
|
+
/** Slugs disabled project-wide. */
|
|
43
|
+
disabledChecks: z.array(z.string().min(1).max(255)).optional(),
|
|
44
|
+
/** Tool-scoped default recipe for `fit` runs (ADR-0022). */
|
|
45
|
+
recipe: z.string().min(1).max(128).optional(),
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* The fitness tool's contribution to the composed configuration document.
|
|
49
|
+
* `namespace: 'fitness'`; the composer makes it strict (typo-rejecting) and
|
|
50
|
+
* optional. Defaults mirror the historical `SignalersConfigSchema` fitness
|
|
51
|
+
* defaults so the resolved config matches the established behaviour.
|
|
52
|
+
*/
|
|
53
|
+
export const fitnessConfigDeclaration = {
|
|
54
|
+
namespace: 'fitness',
|
|
55
|
+
schema: FitnessNamespaceSchema,
|
|
56
|
+
defaults: FITNESS_CONFIG_DEFAULTS,
|
|
57
|
+
env: [
|
|
58
|
+
{ envVar: 'OPENSIP_FIT_FAIL_ON_ERRORS', key: 'failOnErrors', type: 'number' },
|
|
59
|
+
{ envVar: 'OPENSIP_FIT_FAIL_ON_WARNINGS', key: 'failOnWarnings', type: 'number' },
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=fitness-config-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fitness-config-schema.js","sourceRoot":"","sources":["../../src/config/fitness-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,EAAE;CACV,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,2EAA2E;IAC3E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpD,wCAAwC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,yCAAyC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC9C,uEAAuE;IACvE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,2EAA2E;IAC3E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,mCAAmC;IACnC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9D,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA0B;IAC7D,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,uBAAuB;IACjC,GAAG,EAAE;QACH,EAAE,MAAM,EAAE,4BAA4B,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7E,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClF;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tests for execAbortable.
|
|
3
|
+
*
|
|
4
|
+
* Covers the array and shell modes, abort signal handling (pre-spawn
|
|
5
|
+
* and during execution), timeout, and error paths (empty array,
|
|
6
|
+
* spawn failure).
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=abortable-exec.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abortable-exec.test.d.ts","sourceRoot":"","sources":["../../../src/framework/__tests__/abortable-exec.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|