@opensip-cli/graph 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 +11 -0
- package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
- package/dist/__tests__/baseline-plane.test.js +60 -0
- package/dist/__tests__/baseline-plane.test.js.map +1 -0
- package/dist/__tests__/cache/engine-version.test.d.ts +12 -0
- package/dist/__tests__/cache/engine-version.test.d.ts.map +1 -0
- package/dist/__tests__/cache/engine-version.test.js +79 -0
- package/dist/__tests__/cache/engine-version.test.js.map +1 -0
- package/dist/__tests__/cache/invalidate.test.d.ts +9 -0
- package/dist/__tests__/cache/invalidate.test.d.ts.map +1 -0
- package/dist/__tests__/cache/invalidate.test.js +228 -0
- package/dist/__tests__/cache/invalidate.test.js.map +1 -0
- package/dist/__tests__/cli/contribution-from-signals.test.d.ts +17 -0
- package/dist/__tests__/cli/contribution-from-signals.test.d.ts.map +1 -0
- package/dist/__tests__/cli/contribution-from-signals.test.js +89 -0
- package/dist/__tests__/cli/contribution-from-signals.test.js.map +1 -0
- package/dist/__tests__/cli/detect.test.d.ts +2 -0
- package/dist/__tests__/cli/detect.test.d.ts.map +1 -0
- package/dist/__tests__/cli/detect.test.js +96 -0
- package/dist/__tests__/cli/detect.test.js.map +1 -0
- package/dist/__tests__/cli/graph-config.test.d.ts +9 -0
- package/dist/__tests__/cli/graph-config.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph-config.test.js +113 -0
- package/dist/__tests__/cli/graph-config.test.js.map +1 -0
- package/dist/__tests__/cli/graph-execute.test.d.ts +9 -0
- package/dist/__tests__/cli/graph-execute.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph-execute.test.js +434 -0
- package/dist/__tests__/cli/graph-execute.test.js.map +1 -0
- package/dist/__tests__/cli/graph.test.d.ts +12 -0
- package/dist/__tests__/cli/graph.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph.test.js +589 -0
- package/dist/__tests__/cli/graph.test.js.map +1 -0
- package/dist/__tests__/cli/heap-preflight.test.d.ts +11 -0
- package/dist/__tests__/cli/heap-preflight.test.d.ts.map +1 -0
- package/dist/__tests__/cli/heap-preflight.test.js +150 -0
- package/dist/__tests__/cli/heap-preflight.test.js.map +1 -0
- package/dist/__tests__/cli/language-mismatch.test.d.ts +10 -0
- package/dist/__tests__/cli/language-mismatch.test.d.ts.map +1 -0
- package/dist/__tests__/cli/language-mismatch.test.js +155 -0
- package/dist/__tests__/cli/language-mismatch.test.js.map +1 -0
- package/dist/__tests__/cli/lookup.test.d.ts +7 -0
- package/dist/__tests__/cli/lookup.test.d.ts.map +1 -0
- package/dist/__tests__/cli/lookup.test.js +104 -0
- package/dist/__tests__/cli/lookup.test.js.map +1 -0
- package/dist/__tests__/cli/orchestrate.test.d.ts +12 -0
- package/dist/__tests__/cli/orchestrate.test.d.ts.map +1 -0
- package/dist/__tests__/cli/orchestrate.test.js +315 -0
- package/dist/__tests__/cli/orchestrate.test.js.map +1 -0
- package/dist/__tests__/cli/positional-paths.test.d.ts +5 -0
- package/dist/__tests__/cli/positional-paths.test.d.ts.map +1 -0
- package/dist/__tests__/cli/positional-paths.test.js +87 -0
- package/dist/__tests__/cli/positional-paths.test.js.map +1 -0
- package/dist/__tests__/cli/pressure-monitor.test.d.ts +11 -0
- package/dist/__tests__/cli/pressure-monitor.test.d.ts.map +1 -0
- package/dist/__tests__/cli/pressure-monitor.test.js +94 -0
- package/dist/__tests__/cli/pressure-monitor.test.js.map +1 -0
- package/dist/__tests__/cli/sarif-export.test.d.ts +8 -0
- package/dist/__tests__/cli/sarif-export.test.d.ts.map +1 -0
- package/dist/__tests__/cli/sarif-export.test.js +94 -0
- package/dist/__tests__/cli/sarif-export.test.js.map +1 -0
- package/dist/__tests__/cli/session-contract.test.d.ts +17 -0
- package/dist/__tests__/cli/session-contract.test.d.ts.map +1 -0
- package/dist/__tests__/cli/session-contract.test.js +225 -0
- package/dist/__tests__/cli/session-contract.test.js.map +1 -0
- package/dist/__tests__/cli/symbol-index.test.d.ts +7 -0
- package/dist/__tests__/cli/symbol-index.test.d.ts.map +1 -0
- package/dist/__tests__/cli/symbol-index.test.js +117 -0
- package/dist/__tests__/cli/symbol-index.test.js.map +1 -0
- package/dist/__tests__/cli/tool-show-mode.test.d.ts +10 -0
- package/dist/__tests__/cli/tool-show-mode.test.d.ts.map +1 -0
- package/dist/__tests__/cli/tool-show-mode.test.js +128 -0
- package/dist/__tests__/cli/tool-show-mode.test.js.map +1 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts +10 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts.map +1 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js +120 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js.map +1 -0
- package/dist/__tests__/graph-catalog-drift.test.d.ts +24 -0
- package/dist/__tests__/graph-catalog-drift.test.d.ts.map +1 -0
- package/dist/__tests__/graph-catalog-drift.test.js +34 -0
- package/dist/__tests__/graph-catalog-drift.test.js.map +1 -0
- package/dist/__tests__/internal-surface.test.d.ts +17 -0
- package/dist/__tests__/internal-surface.test.d.ts.map +1 -0
- package/dist/__tests__/internal-surface.test.js +45 -0
- package/dist/__tests__/internal-surface.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/body-digest.test.d.ts +13 -0
- package/dist/__tests__/lang-adapter/body-digest.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/body-digest.test.js +51 -0
- package/dist/__tests__/lang-adapter/body-digest.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts +12 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.js +147 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/registry.test.d.ts +9 -0
- package/dist/__tests__/lang-adapter/registry.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/registry.test.js +228 -0
- package/dist/__tests__/lang-adapter/registry.test.js.map +1 -0
- package/dist/__tests__/persistence/catalog-repo.test.d.ts +2 -0
- package/dist/__tests__/persistence/catalog-repo.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/catalog-repo.test.js +188 -0
- package/dist/__tests__/persistence/catalog-repo.test.js.map +1 -0
- package/dist/__tests__/persistence/session-payload.test.d.ts +2 -0
- package/dist/__tests__/persistence/session-payload.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/session-payload.test.js +81 -0
- package/dist/__tests__/persistence/session-payload.test.js.map +1 -0
- package/dist/__tests__/persistence/session-replay.test.d.ts +10 -0
- package/dist/__tests__/persistence/session-replay.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/session-replay.test.js +196 -0
- package/dist/__tests__/persistence/session-replay.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 +96 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/render/catalog-json-types.test.d.ts +10 -0
- package/dist/__tests__/render/catalog-json-types.test.d.ts.map +1 -0
- package/dist/__tests__/render/catalog-json-types.test.js +121 -0
- package/dist/__tests__/render/catalog-json-types.test.js.map +1 -0
- package/dist/__tests__/render/catalog-json.test.d.ts +19 -0
- package/dist/__tests__/render/catalog-json.test.d.ts.map +1 -0
- package/dist/__tests__/render/catalog-json.test.js +435 -0
- package/dist/__tests__/render/catalog-json.test.js.map +1 -0
- package/dist/__tests__/render/opensip-id-derivation.test.d.ts +21 -0
- package/dist/__tests__/render/opensip-id-derivation.test.d.ts.map +1 -0
- package/dist/__tests__/render/opensip-id-derivation.test.js +159 -0
- package/dist/__tests__/render/opensip-id-derivation.test.js.map +1 -0
- package/dist/__tests__/render/rule-id-mapping.test.d.ts +13 -0
- package/dist/__tests__/render/rule-id-mapping.test.d.ts.map +1 -0
- package/dist/__tests__/render/rule-id-mapping.test.js +50 -0
- package/dist/__tests__/render/rule-id-mapping.test.js.map +1 -0
- package/dist/__tests__/render/sarif-opensip.test.d.ts +20 -0
- package/dist/__tests__/render/sarif-opensip.test.d.ts.map +1 -0
- package/dist/__tests__/render/sarif-opensip.test.js +235 -0
- package/dist/__tests__/render/sarif-opensip.test.js.map +1 -0
- package/dist/__tests__/resolution-mode.test.d.ts +10 -0
- package/dist/__tests__/resolution-mode.test.d.ts.map +1 -0
- package/dist/__tests__/resolution-mode.test.js +96 -0
- package/dist/__tests__/resolution-mode.test.js.map +1 -0
- package/dist/__tests__/resolve-callee.test.d.ts +2 -0
- package/dist/__tests__/resolve-callee.test.d.ts.map +1 -0
- package/dist/__tests__/resolve-callee.test.js +119 -0
- package/dist/__tests__/resolve-callee.test.js.map +1 -0
- package/dist/__tests__/rules/_entry-points.test.d.ts +8 -0
- package/dist/__tests__/rules/_entry-points.test.d.ts.map +1 -0
- package/dist/__tests__/rules/_entry-points.test.js +74 -0
- package/dist/__tests__/rules/_entry-points.test.js.map +1 -0
- package/dist/__tests__/rules/_helpers.d.ts +18 -0
- package/dist/__tests__/rules/_helpers.d.ts.map +1 -0
- package/dist/__tests__/rules/_helpers.js +72 -0
- package/dist/__tests__/rules/_helpers.js.map +1 -0
- package/dist/__tests__/rules/always-throws-branch.test.d.ts +9 -0
- package/dist/__tests__/rules/always-throws-branch.test.d.ts.map +1 -0
- package/dist/__tests__/rules/always-throws-branch.test.js +113 -0
- package/dist/__tests__/rules/always-throws-branch.test.js.map +1 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.d.ts +13 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.d.ts.map +1 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.js +224 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.js.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts +8 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.js +132 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.js.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts +10 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js +274 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js.map +1 -0
- package/dist/__tests__/rules/feature-column-parity.test.d.ts +11 -0
- package/dist/__tests__/rules/feature-column-parity.test.d.ts.map +1 -0
- package/dist/__tests__/rules/feature-column-parity.test.js +169 -0
- package/dist/__tests__/rules/feature-column-parity.test.js.map +1 -0
- package/dist/__tests__/rules/high-blast-untested.test.d.ts +13 -0
- package/dist/__tests__/rules/high-blast-untested.test.d.ts.map +1 -0
- package/dist/__tests__/rules/high-blast-untested.test.js +108 -0
- package/dist/__tests__/rules/high-blast-untested.test.js.map +1 -0
- package/dist/__tests__/rules/large-function.test.d.ts +11 -0
- package/dist/__tests__/rules/large-function.test.d.ts.map +1 -0
- package/dist/__tests__/rules/large-function.test.js +105 -0
- package/dist/__tests__/rules/large-function.test.js.map +1 -0
- package/dist/__tests__/rules/no-side-effect-path.test.d.ts +10 -0
- package/dist/__tests__/rules/no-side-effect-path.test.d.ts.map +1 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js +301 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js.map +1 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.d.ts +8 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.d.ts.map +1 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.js +176 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.js.map +1 -0
- package/dist/__tests__/rules/registry.test.d.ts +11 -0
- package/dist/__tests__/rules/registry.test.d.ts.map +1 -0
- package/dist/__tests__/rules/registry.test.js +50 -0
- package/dist/__tests__/rules/registry.test.js.map +1 -0
- package/dist/__tests__/rules/severity-override.test.d.ts +11 -0
- package/dist/__tests__/rules/severity-override.test.d.ts.map +1 -0
- package/dist/__tests__/rules/severity-override.test.js +67 -0
- package/dist/__tests__/rules/severity-override.test.js.map +1 -0
- package/dist/__tests__/rules/test-only-reachable.test.d.ts +9 -0
- package/dist/__tests__/rules/test-only-reachable.test.d.ts.map +1 -0
- package/dist/__tests__/rules/test-only-reachable.test.js +142 -0
- package/dist/__tests__/rules/test-only-reachable.test.js.map +1 -0
- package/dist/__tests__/rules/wide-function.test.d.ts +9 -0
- package/dist/__tests__/rules/wide-function.test.d.ts.map +1 -0
- package/dist/__tests__/rules/wide-function.test.js +64 -0
- package/dist/__tests__/rules/wide-function.test.js.map +1 -0
- package/dist/__tests__/test-utils/with-graph-scope.d.ts +14 -0
- package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -0
- package/dist/__tests__/test-utils/with-graph-scope.js +26 -0
- package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -0
- package/dist/__tests__/tool-branches.test.d.ts +18 -0
- package/dist/__tests__/tool-branches.test.d.ts.map +1 -0
- package/dist/__tests__/tool-branches.test.js +262 -0
- package/dist/__tests__/tool-branches.test.js.map +1 -0
- package/dist/__tests__/tool-register.test.d.ts +16 -0
- package/dist/__tests__/tool-register.test.d.ts.map +1 -0
- package/dist/__tests__/tool-register.test.js +419 -0
- package/dist/__tests__/tool-register.test.js.map +1 -0
- package/dist/__tests__/tool.test.d.ts +18 -0
- package/dist/__tests__/tool.test.d.ts.map +1 -0
- package/dist/__tests__/tool.test.js +65 -0
- package/dist/__tests__/tool.test.js.map +1 -0
- package/dist/baseline-strategy.d.ts +28 -0
- package/dist/baseline-strategy.d.ts.map +1 -0
- package/dist/baseline-strategy.js +27 -0
- package/dist/baseline-strategy.js.map +1 -0
- package/dist/cache/engine-version.d.ts +69 -0
- package/dist/cache/engine-version.d.ts.map +1 -0
- package/dist/cache/engine-version.js +60 -0
- package/dist/cache/engine-version.js.map +1 -0
- package/dist/cache/invalidate.d.ts +60 -0
- package/dist/cache/invalidate.d.ts.map +1 -0
- package/dist/cache/invalidate.js +120 -0
- package/dist/cache/invalidate.js.map +1 -0
- package/dist/cli/__tests__/build-envelope.test.d.ts +8 -0
- package/dist/cli/__tests__/build-envelope.test.d.ts.map +1 -0
- package/dist/cli/__tests__/build-envelope.test.js +70 -0
- package/dist/cli/__tests__/build-envelope.test.js.map +1 -0
- package/dist/cli/__tests__/dispatch-envelope.test.d.ts +15 -0
- package/dist/cli/__tests__/dispatch-envelope.test.d.ts.map +1 -0
- package/dist/cli/__tests__/dispatch-envelope.test.js +73 -0
- package/dist/cli/__tests__/dispatch-envelope.test.js.map +1 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts +18 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts.map +1 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.js +91 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.js.map +1 -0
- package/dist/cli/__tests__/graph-config-schema.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-config-schema.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-config-schema.test.js +60 -0
- package/dist/cli/__tests__/graph-config-schema.test.js.map +1 -0
- package/dist/cli/__tests__/graph-gate-mode.test.d.ts +15 -0
- package/dist/cli/__tests__/graph-gate-mode.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-gate-mode.test.js +99 -0
- package/dist/cli/__tests__/graph-gate-mode.test.js.map +1 -0
- package/dist/cli/__tests__/graph-recipes.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-recipes.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-recipes.test.js +24 -0
- package/dist/cli/__tests__/graph-recipes.test.js.map +1 -0
- package/dist/cli/__tests__/graph-report.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-report.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-report.test.js +138 -0
- package/dist/cli/__tests__/graph-report.test.js.map +1 -0
- package/dist/cli/__tests__/graph-tracer.test.d.ts +11 -0
- package/dist/cli/__tests__/graph-tracer.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-tracer.test.js +41 -0
- package/dist/cli/__tests__/graph-tracer.test.js.map +1 -0
- package/dist/cli/__tests__/graph-worker.test.d.ts +13 -0
- package/dist/cli/__tests__/graph-worker.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-worker.test.js +127 -0
- package/dist/cli/__tests__/graph-worker.test.js.map +1 -0
- package/dist/cli/__tests__/list-files.test.d.ts +12 -0
- package/dist/cli/__tests__/list-files.test.d.ts.map +1 -0
- package/dist/cli/__tests__/list-files.test.js +146 -0
- package/dist/cli/__tests__/list-files.test.js.map +1 -0
- package/dist/cli/__tests__/live-suppression-parity.test.d.ts +23 -0
- package/dist/cli/__tests__/live-suppression-parity.test.d.ts.map +1 -0
- package/dist/cli/__tests__/live-suppression-parity.test.js +136 -0
- package/dist/cli/__tests__/live-suppression-parity.test.js.map +1 -0
- package/dist/cli/__tests__/orchestrate-spans.test.d.ts +18 -0
- package/dist/cli/__tests__/orchestrate-spans.test.d.ts.map +1 -0
- package/dist/cli/__tests__/orchestrate-spans.test.js +108 -0
- package/dist/cli/__tests__/orchestrate-spans.test.js.map +1 -0
- package/dist/cli/__tests__/shard-worker.test.d.ts +10 -0
- package/dist/cli/__tests__/shard-worker.test.d.ts.map +1 -0
- package/dist/cli/__tests__/shard-worker.test.js +153 -0
- package/dist/cli/__tests__/shard-worker.test.js.map +1 -0
- package/dist/cli/__tests__/workspace-report.test.d.ts +6 -0
- package/dist/cli/__tests__/workspace-report.test.d.ts.map +1 -0
- package/dist/cli/__tests__/workspace-report.test.js +89 -0
- package/dist/cli/__tests__/workspace-report.test.js.map +1 -0
- package/dist/cli/apply-suppressions.d.ts +86 -0
- package/dist/cli/apply-suppressions.d.ts.map +1 -0
- package/dist/cli/apply-suppressions.js +101 -0
- package/dist/cli/apply-suppressions.js.map +1 -0
- package/dist/cli/apply-suppressions.test.d.ts +12 -0
- package/dist/cli/apply-suppressions.test.d.ts.map +1 -0
- package/dist/cli/apply-suppressions.test.js +85 -0
- package/dist/cli/apply-suppressions.test.js.map +1 -0
- package/dist/cli/build-envelope.d.ts +53 -0
- package/dist/cli/build-envelope.d.ts.map +1 -0
- package/dist/cli/build-envelope.js +88 -0
- package/dist/cli/build-envelope.js.map +1 -0
- package/dist/cli/detect.d.ts +37 -0
- package/dist/cli/detect.d.ts.map +1 -0
- package/dist/cli/detect.js +60 -0
- package/dist/cli/detect.js.map +1 -0
- package/dist/cli/equivalence-check-command.d.ts +45 -0
- package/dist/cli/equivalence-check-command.d.ts.map +1 -0
- package/dist/cli/equivalence-check-command.js +196 -0
- package/dist/cli/equivalence-check-command.js.map +1 -0
- package/dist/cli/graph/graph-aux-command-specs.d.ts +60 -0
- package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -0
- package/dist/cli/graph/graph-aux-command-specs.js +390 -0
- package/dist/cli/graph/graph-aux-command-specs.js.map +1 -0
- package/dist/cli/graph/graph-command-spec.d.ts +43 -0
- package/dist/cli/graph/graph-command-spec.d.ts.map +1 -0
- package/dist/cli/graph/graph-command-spec.js +456 -0
- package/dist/cli/graph/graph-command-spec.js.map +1 -0
- package/dist/cli/graph-config-schema.d.ts +70 -0
- package/dist/cli/graph-config-schema.d.ts.map +1 -0
- package/dist/cli/graph-config-schema.js +68 -0
- package/dist/cli/graph-config-schema.js.map +1 -0
- package/dist/cli/graph-config.d.ts +53 -0
- package/dist/cli/graph-config.d.ts.map +1 -0
- package/dist/cli/graph-config.js +111 -0
- package/dist/cli/graph-config.js.map +1 -0
- package/dist/cli/graph-modes.d.ts +36 -0
- package/dist/cli/graph-modes.d.ts.map +1 -0
- package/dist/cli/graph-modes.js +161 -0
- package/dist/cli/graph-modes.js.map +1 -0
- package/dist/cli/graph-options.d.ts +143 -0
- package/dist/cli/graph-options.d.ts.map +1 -0
- package/dist/cli/graph-options.js +15 -0
- package/dist/cli/graph-options.js.map +1 -0
- package/dist/cli/graph-progress.d.ts +31 -0
- package/dist/cli/graph-progress.d.ts.map +1 -0
- package/dist/cli/graph-progress.js +56 -0
- package/dist/cli/graph-progress.js.map +1 -0
- package/dist/cli/graph-recipes.d.ts +23 -0
- package/dist/cli/graph-recipes.d.ts.map +1 -0
- package/dist/cli/graph-recipes.js +44 -0
- package/dist/cli/graph-recipes.js.map +1 -0
- package/dist/cli/graph-report.d.ts +79 -0
- package/dist/cli/graph-report.d.ts.map +1 -0
- package/dist/cli/graph-report.js +186 -0
- package/dist/cli/graph-report.js.map +1 -0
- package/dist/cli/graph-runner.d.ts +106 -0
- package/dist/cli/graph-runner.d.ts.map +1 -0
- package/dist/cli/graph-runner.js +274 -0
- package/dist/cli/graph-runner.js.map +1 -0
- package/dist/cli/graph-tracer.d.ts +27 -0
- package/dist/cli/graph-tracer.d.ts.map +1 -0
- package/dist/cli/graph-tracer.js +33 -0
- package/dist/cli/graph-tracer.js.map +1 -0
- package/dist/cli/graph-worker.d.ts +29 -0
- package/dist/cli/graph-worker.d.ts.map +1 -0
- package/dist/cli/graph-worker.js +86 -0
- package/dist/cli/graph-worker.js.map +1 -0
- package/dist/cli/graph.d.ts +171 -0
- package/dist/cli/graph.d.ts.map +1 -0
- package/dist/cli/graph.js +1041 -0
- package/dist/cli/graph.js.map +1 -0
- package/dist/cli/heap-preflight.d.ts +62 -0
- package/dist/cli/heap-preflight.d.ts.map +1 -0
- package/dist/cli/heap-preflight.js +176 -0
- package/dist/cli/heap-preflight.js.map +1 -0
- package/dist/cli/list-files.d.ts +37 -0
- package/dist/cli/list-files.d.ts.map +1 -0
- package/dist/cli/list-files.js +166 -0
- package/dist/cli/list-files.js.map +1 -0
- package/dist/cli/lookup.d.ts +19 -0
- package/dist/cli/lookup.d.ts.map +1 -0
- package/dist/cli/lookup.js +87 -0
- package/dist/cli/lookup.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts +47 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js +331 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts +69 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js +181 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js +51 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js +147 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts +12 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js +509 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.d.ts +19 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.js +163 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js +103 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts +10 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js +277 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts +51 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js +183 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts +47 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.js +259 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js +105 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.d.ts +12 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.js +346 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts +16 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js +99 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts +11 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js +271 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts +38 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.js +163 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.js +153 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts +10 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.js +104 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts +21 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js +59 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js +77 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts +13 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js +103 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts +13 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.js +257 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts +6 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.js +38 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.js.map +1 -0
- package/dist/cli/orchestrate/cache-orchestrator.d.ts +42 -0
- package/dist/cli/orchestrate/cache-orchestrator.d.ts.map +1 -0
- package/dist/cli/orchestrate/cache-orchestrator.js +92 -0
- package/dist/cli/orchestrate/cache-orchestrator.js.map +1 -0
- package/dist/cli/orchestrate/canonical-file-set.d.ts +51 -0
- package/dist/cli/orchestrate/canonical-file-set.d.ts.map +1 -0
- package/dist/cli/orchestrate/canonical-file-set.js +58 -0
- package/dist/cli/orchestrate/canonical-file-set.js.map +1 -0
- package/dist/cli/orchestrate/catalog-builder.d.ts +121 -0
- package/dist/cli/orchestrate/catalog-builder.d.ts.map +1 -0
- package/dist/cli/orchestrate/catalog-builder.js +279 -0
- package/dist/cli/orchestrate/catalog-builder.js.map +1 -0
- package/dist/cli/orchestrate/catalog-stats.d.ts +31 -0
- package/dist/cli/orchestrate/catalog-stats.d.ts.map +1 -0
- package/dist/cli/orchestrate/catalog-stats.js +52 -0
- package/dist/cli/orchestrate/catalog-stats.js.map +1 -0
- package/dist/cli/orchestrate/cross-shard-resolve.d.ts +190 -0
- package/dist/cli/orchestrate/cross-shard-resolve.d.ts.map +1 -0
- package/dist/cli/orchestrate/cross-shard-resolve.js +523 -0
- package/dist/cli/orchestrate/cross-shard-resolve.js.map +1 -0
- package/dist/cli/orchestrate/edge-identity.d.ts +48 -0
- package/dist/cli/orchestrate/edge-identity.d.ts.map +1 -0
- package/dist/cli/orchestrate/edge-identity.js +68 -0
- package/dist/cli/orchestrate/edge-identity.js.map +1 -0
- package/dist/cli/orchestrate/equivalence-check.d.ts +227 -0
- package/dist/cli/orchestrate/equivalence-check.d.ts.map +1 -0
- package/dist/cli/orchestrate/equivalence-check.js +264 -0
- package/dist/cli/orchestrate/equivalence-check.js.map +1 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.d.ts +33 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.d.ts.map +1 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.js +62 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.js.map +1 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts +171 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts.map +1 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.js +328 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.js.map +1 -0
- package/dist/cli/orchestrate/incremental-merge.d.ts +46 -0
- package/dist/cli/orchestrate/incremental-merge.d.ts.map +1 -0
- package/dist/cli/orchestrate/incremental-merge.js +236 -0
- package/dist/cli/orchestrate/incremental-merge.js.map +1 -0
- package/dist/cli/orchestrate/partition-chunk.d.ts +36 -0
- package/dist/cli/orchestrate/partition-chunk.d.ts.map +1 -0
- package/dist/cli/orchestrate/partition-chunk.js +37 -0
- package/dist/cli/orchestrate/partition-chunk.js.map +1 -0
- package/dist/cli/orchestrate/partition-files.d.ts +52 -0
- package/dist/cli/orchestrate/partition-files.d.ts.map +1 -0
- package/dist/cli/orchestrate/partition-files.js +94 -0
- package/dist/cli/orchestrate/partition-files.js.map +1 -0
- package/dist/cli/orchestrate/resolution-trace.d.ts +11 -0
- package/dist/cli/orchestrate/resolution-trace.d.ts.map +1 -0
- package/dist/cli/orchestrate/resolution-trace.js +27 -0
- package/dist/cli/orchestrate/resolution-trace.js.map +1 -0
- package/dist/cli/orchestrate/shard-model.d.ts +99 -0
- package/dist/cli/orchestrate/shard-model.d.ts.map +1 -0
- package/dist/cli/orchestrate/shard-model.js +23 -0
- package/dist/cli/orchestrate/shard-model.js.map +1 -0
- package/dist/cli/orchestrate/shard-runner.d.ts +65 -0
- package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -0
- package/dist/cli/orchestrate/shard-runner.js +169 -0
- package/dist/cli/orchestrate/shard-runner.js.map +1 -0
- package/dist/cli/orchestrate/sharded-graph.d.ts +86 -0
- package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -0
- package/dist/cli/orchestrate/sharded-graph.js +227 -0
- package/dist/cli/orchestrate/sharded-graph.js.map +1 -0
- package/dist/cli/orchestrate/types.d.ts +31 -0
- package/dist/cli/orchestrate/types.d.ts.map +1 -0
- package/dist/cli/orchestrate/types.js +24 -0
- package/dist/cli/orchestrate/types.js.map +1 -0
- package/dist/cli/orchestrate/worker-pool.d.ts +16 -0
- package/dist/cli/orchestrate/worker-pool.d.ts.map +1 -0
- package/dist/cli/orchestrate/worker-pool.js +39 -0
- package/dist/cli/orchestrate/worker-pool.js.map +1 -0
- package/dist/cli/orchestrate.d.ts +106 -0
- package/dist/cli/orchestrate.d.ts.map +1 -0
- package/dist/cli/orchestrate.js +228 -0
- package/dist/cli/orchestrate.js.map +1 -0
- package/dist/cli/positional-paths.d.ts +23 -0
- package/dist/cli/positional-paths.d.ts.map +1 -0
- package/dist/cli/positional-paths.js +64 -0
- package/dist/cli/positional-paths.js.map +1 -0
- package/dist/cli/pressure-monitor.d.ts +62 -0
- package/dist/cli/pressure-monitor.d.ts.map +1 -0
- package/dist/cli/pressure-monitor.js +110 -0
- package/dist/cli/pressure-monitor.js.map +1 -0
- package/dist/cli/profile.d.ts +82 -0
- package/dist/cli/profile.d.ts.map +1 -0
- package/dist/cli/profile.js +120 -0
- package/dist/cli/profile.js.map +1 -0
- package/dist/cli/report-data.d.ts +46 -0
- package/dist/cli/report-data.d.ts.map +1 -0
- package/dist/cli/report-data.js +48 -0
- package/dist/cli/report-data.js.map +1 -0
- package/dist/cli/resolve-adapters.d.ts +19 -0
- package/dist/cli/resolve-adapters.d.ts.map +1 -0
- package/dist/cli/resolve-adapters.js +38 -0
- package/dist/cli/resolve-adapters.js.map +1 -0
- package/dist/cli/sarif-export.d.ts +40 -0
- package/dist/cli/sarif-export.d.ts.map +1 -0
- package/dist/cli/sarif-export.js +69 -0
- package/dist/cli/sarif-export.js.map +1 -0
- package/dist/cli/shard-worker.d.ts +25 -0
- package/dist/cli/shard-worker.d.ts.map +1 -0
- package/dist/cli/shard-worker.js +98 -0
- package/dist/cli/shard-worker.js.map +1 -0
- package/dist/cli/symbol-index.d.ts +51 -0
- package/dist/cli/symbol-index.d.ts.map +1 -0
- package/dist/cli/symbol-index.js +120 -0
- package/dist/cli/symbol-index.js.map +1 -0
- package/dist/cli/workspace-report.d.ts +32 -0
- package/dist/cli/workspace-report.d.ts.map +1 -0
- package/dist/cli/workspace-report.js +107 -0
- package/dist/cli/workspace-report.js.map +1 -0
- package/dist/cli/workspace-runner.d.ts +104 -0
- package/dist/cli/workspace-runner.d.ts.map +1 -0
- package/dist/cli/workspace-runner.js +166 -0
- package/dist/cli/workspace-runner.js.map +1 -0
- package/dist/cross-package/export-index.d.ts +118 -0
- package/dist/cross-package/export-index.d.ts.map +1 -0
- package/dist/cross-package/export-index.js +296 -0
- package/dist/cross-package/export-index.js.map +1 -0
- package/dist/cross-package/posix-path.d.ts +16 -0
- package/dist/cross-package/posix-path.d.ts.map +1 -0
- package/dist/cross-package/posix-path.js +18 -0
- package/dist/cross-package/posix-path.js.map +1 -0
- package/dist/cross-package/resolve.d.ts +68 -0
- package/dist/cross-package/resolve.d.ts.map +1 -0
- package/dist/cross-package/resolve.js +83 -0
- package/dist/cross-package/resolve.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +25 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +38 -0
- package/dist/internal.js.map +1 -0
- package/dist/lang-adapter/body-digest.d.ts +46 -0
- package/dist/lang-adapter/body-digest.d.ts.map +1 -0
- package/dist/lang-adapter/body-digest.js +49 -0
- package/dist/lang-adapter/body-digest.js.map +1 -0
- package/dist/lang-adapter/edge-helpers.d.ts +104 -0
- package/dist/lang-adapter/edge-helpers.d.ts.map +1 -0
- package/dist/lang-adapter/edge-helpers.js +120 -0
- package/dist/lang-adapter/edge-helpers.js.map +1 -0
- package/dist/lang-adapter/registry.d.ts +59 -0
- package/dist/lang-adapter/registry.d.ts.map +1 -0
- package/dist/lang-adapter/registry.js +100 -0
- package/dist/lang-adapter/registry.js.map +1 -0
- package/dist/lang-adapter/selector.d.ts +39 -0
- package/dist/lang-adapter/selector.d.ts.map +1 -0
- package/dist/lang-adapter/selector.js +140 -0
- package/dist/lang-adapter/selector.js.map +1 -0
- package/dist/lang-adapter/types.d.ts +217 -0
- package/dist/lang-adapter/types.d.ts.map +1 -0
- package/dist/lang-adapter/types.js +18 -0
- package/dist/lang-adapter/types.js.map +1 -0
- package/dist/owner-key.d.ts +22 -0
- package/dist/owner-key.d.ts.map +1 -0
- package/dist/owner-key.js +25 -0
- package/dist/owner-key.js.map +1 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts +8 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts.map +1 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.js +126 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.js.map +1 -0
- package/dist/persistence/catalog-repo.d.ts +77 -0
- package/dist/persistence/catalog-repo.d.ts.map +1 -0
- package/dist/persistence/catalog-repo.js +229 -0
- package/dist/persistence/catalog-repo.js.map +1 -0
- package/dist/persistence/schema.d.ts +249 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +53 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/persistence/session-payload.d.ts +96 -0
- package/dist/persistence/session-payload.d.ts.map +1 -0
- package/dist/persistence/session-payload.js +116 -0
- package/dist/persistence/session-payload.js.map +1 -0
- package/dist/persistence/session-replay.d.ts +15 -0
- package/dist/persistence/session-replay.d.ts.map +1 -0
- package/dist/persistence/session-replay.js +80 -0
- package/dist/persistence/session-replay.js.map +1 -0
- package/dist/pipeline/__tests__/assign-packages.test.d.ts +2 -0
- package/dist/pipeline/__tests__/assign-packages.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/assign-packages.test.js +88 -0
- package/dist/pipeline/__tests__/assign-packages.test.js.map +1 -0
- package/dist/pipeline/__tests__/constrain-edges.test.d.ts +2 -0
- package/dist/pipeline/__tests__/constrain-edges.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/constrain-edges.test.js +228 -0
- package/dist/pipeline/__tests__/constrain-edges.test.js.map +1 -0
- package/dist/pipeline/__tests__/features.test.d.ts +9 -0
- package/dist/pipeline/__tests__/features.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/features.test.js +458 -0
- package/dist/pipeline/__tests__/features.test.js.map +1 -0
- package/dist/pipeline/__tests__/indexes-imports.test.d.ts +2 -0
- package/dist/pipeline/__tests__/indexes-imports.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/indexes-imports.test.js +114 -0
- package/dist/pipeline/__tests__/indexes-imports.test.js.map +1 -0
- package/dist/pipeline/assign-packages.d.ts +18 -0
- package/dist/pipeline/assign-packages.d.ts.map +1 -0
- package/dist/pipeline/assign-packages.js +86 -0
- package/dist/pipeline/assign-packages.js.map +1 -0
- package/dist/pipeline/constrain-edges.d.ts +34 -0
- package/dist/pipeline/constrain-edges.d.ts.map +1 -0
- package/dist/pipeline/constrain-edges.js +139 -0
- package/dist/pipeline/constrain-edges.js.map +1 -0
- package/dist/pipeline/feature-deps.d.ts +19 -0
- package/dist/pipeline/feature-deps.d.ts.map +1 -0
- package/dist/pipeline/feature-deps.js +28 -0
- package/dist/pipeline/feature-deps.js.map +1 -0
- package/dist/pipeline/features.d.ts +50 -0
- package/dist/pipeline/features.d.ts.map +1 -0
- package/dist/pipeline/features.js +462 -0
- package/dist/pipeline/features.js.map +1 -0
- package/dist/pipeline/indexes.d.ts +27 -0
- package/dist/pipeline/indexes.d.ts.map +1 -0
- package/dist/pipeline/indexes.js +159 -0
- package/dist/pipeline/indexes.js.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts +5 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js +24 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
- package/dist/recipes/__tests__/registry.test.d.ts +7 -0
- package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/registry.test.js +34 -0
- package/dist/recipes/__tests__/registry.test.js.map +1 -0
- package/dist/recipes/__tests__/resolve.test.d.ts +10 -0
- package/dist/recipes/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/resolve.test.js +38 -0
- package/dist/recipes/__tests__/resolve.test.js.map +1 -0
- package/dist/recipes/built-in-recipes.d.ts +26 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -0
- package/dist/recipes/built-in-recipes.js +43 -0
- package/dist/recipes/built-in-recipes.js.map +1 -0
- package/dist/recipes/registry.d.ts +31 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +48 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/resolve.d.ts +31 -0
- package/dist/recipes/resolve.d.ts.map +1 -0
- package/dist/recipes/resolve.js +70 -0
- package/dist/recipes/resolve.js.map +1 -0
- package/dist/recipes/types.d.ts +58 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +39 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/render/__tests__/catalog-json.test.d.ts +9 -0
- package/dist/render/__tests__/catalog-json.test.d.ts.map +1 -0
- package/dist/render/__tests__/catalog-json.test.js +132 -0
- package/dist/render/__tests__/catalog-json.test.js.map +1 -0
- package/dist/render/catalog-json-types.d.ts +114 -0
- package/dist/render/catalog-json-types.d.ts.map +1 -0
- package/dist/render/catalog-json-types.js +23 -0
- package/dist/render/catalog-json-types.js.map +1 -0
- package/dist/render/catalog-json.d.ts +43 -0
- package/dist/render/catalog-json.d.ts.map +1 -0
- package/dist/render/catalog-json.js +303 -0
- package/dist/render/catalog-json.js.map +1 -0
- package/dist/render/opensip-id-derivation.d.ts +73 -0
- package/dist/render/opensip-id-derivation.d.ts.map +1 -0
- package/dist/render/opensip-id-derivation.js +65 -0
- package/dist/render/opensip-id-derivation.js.map +1 -0
- package/dist/render/rule-id-mapping.d.ts +61 -0
- package/dist/render/rule-id-mapping.d.ts.map +1 -0
- package/dist/render/rule-id-mapping.js +82 -0
- package/dist/render/rule-id-mapping.js.map +1 -0
- package/dist/resolve-callee.d.ts +50 -0
- package/dist/resolve-callee.d.ts.map +1 -0
- package/dist/resolve-callee.js +80 -0
- package/dist/resolve-callee.js.map +1 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts +22 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts.map +1 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.js +143 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.js.map +1 -0
- package/dist/rules/__tests__/create-graph-signal.test.d.ts +8 -0
- package/dist/rules/__tests__/create-graph-signal.test.d.ts.map +1 -0
- package/dist/rules/__tests__/create-graph-signal.test.js +55 -0
- package/dist/rules/__tests__/create-graph-signal.test.js.map +1 -0
- package/dist/rules/__tests__/define-rule.test.d.ts +13 -0
- package/dist/rules/__tests__/define-rule.test.d.ts.map +1 -0
- package/dist/rules/__tests__/define-rule.test.js +102 -0
- package/dist/rules/__tests__/define-rule.test.js.map +1 -0
- package/dist/rules/__tests__/fingerprint-golden.test.d.ts +21 -0
- package/dist/rules/__tests__/fingerprint-golden.test.d.ts.map +1 -0
- package/dist/rules/__tests__/fingerprint-golden.test.js +69 -0
- package/dist/rules/__tests__/fingerprint-golden.test.js.map +1 -0
- package/dist/rules/__tests__/registry.test.d.ts +6 -0
- package/dist/rules/__tests__/registry.test.d.ts.map +1 -0
- package/dist/rules/__tests__/registry.test.js +37 -0
- package/dist/rules/__tests__/registry.test.js.map +1 -0
- package/dist/rules/__tests__/rule-behaviors.test.d.ts +9 -0
- package/dist/rules/__tests__/rule-behaviors.test.d.ts.map +1 -0
- package/dist/rules/__tests__/rule-behaviors.test.js +204 -0
- package/dist/rules/__tests__/rule-behaviors.test.js.map +1 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.d.ts +11 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.d.ts.map +1 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.js +55 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.js.map +1 -0
- package/dist/rules/_approximation.d.ts +23 -0
- package/dist/rules/_approximation.d.ts.map +1 -0
- package/dist/rules/_approximation.js +28 -0
- package/dist/rules/_approximation.js.map +1 -0
- package/dist/rules/_entry-points.d.ts +27 -0
- package/dist/rules/_entry-points.d.ts.map +1 -0
- package/dist/rules/_entry-points.js +81 -0
- package/dist/rules/_entry-points.js.map +1 -0
- package/dist/rules/_severity-override.d.ts +32 -0
- package/dist/rules/_severity-override.d.ts.map +1 -0
- package/dist/rules/_severity-override.js +33 -0
- package/dist/rules/_severity-override.js.map +1 -0
- package/dist/rules/always-throws-branch.d.ts +26 -0
- package/dist/rules/always-throws-branch.d.ts.map +1 -0
- package/dist/rules/always-throws-branch.js +66 -0
- package/dist/rules/always-throws-branch.js.map +1 -0
- package/dist/rules/create-graph-signal.d.ts +38 -0
- package/dist/rules/create-graph-signal.d.ts.map +1 -0
- package/dist/rules/create-graph-signal.js +35 -0
- package/dist/rules/create-graph-signal.js.map +1 -0
- package/dist/rules/cycle.d.ts +29 -0
- package/dist/rules/cycle.d.ts.map +1 -0
- package/dist/rules/cycle.js +166 -0
- package/dist/rules/cycle.js.map +1 -0
- package/dist/rules/cycle.memberlocations.test.d.ts +11 -0
- package/dist/rules/cycle.memberlocations.test.d.ts.map +1 -0
- package/dist/rules/cycle.memberlocations.test.js +84 -0
- package/dist/rules/cycle.memberlocations.test.js.map +1 -0
- package/dist/rules/define-rule.d.ts +67 -0
- package/dist/rules/define-rule.d.ts.map +1 -0
- package/dist/rules/define-rule.js +66 -0
- package/dist/rules/define-rule.js.map +1 -0
- package/dist/rules/duplicated-function-body.d.ts +40 -0
- package/dist/rules/duplicated-function-body.d.ts.map +1 -0
- package/dist/rules/duplicated-function-body.js +232 -0
- package/dist/rules/duplicated-function-body.js.map +1 -0
- package/dist/rules/high-blast-untested.d.ts +26 -0
- package/dist/rules/high-blast-untested.d.ts.map +1 -0
- package/dist/rules/high-blast-untested.js +82 -0
- package/dist/rules/high-blast-untested.js.map +1 -0
- package/dist/rules/large-function.d.ts +22 -0
- package/dist/rules/large-function.d.ts.map +1 -0
- package/dist/rules/large-function.js +72 -0
- package/dist/rules/large-function.js.map +1 -0
- package/dist/rules/no-side-effect-path.d.ts +31 -0
- package/dist/rules/no-side-effect-path.d.ts.map +1 -0
- package/dist/rules/no-side-effect-path.js +217 -0
- package/dist/rules/no-side-effect-path.js.map +1 -0
- package/dist/rules/orphan-subtree.d.ts +11 -0
- package/dist/rules/orphan-subtree.d.ts.map +1 -0
- package/dist/rules/orphan-subtree.js +104 -0
- package/dist/rules/orphan-subtree.js.map +1 -0
- package/dist/rules/registry.d.ts +35 -0
- package/dist/rules/registry.d.ts.map +1 -0
- package/dist/rules/registry.js +96 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist/rules/test-only-reachable.d.ts +9 -0
- package/dist/rules/test-only-reachable.d.ts.map +1 -0
- package/dist/rules/test-only-reachable.js +101 -0
- package/dist/rules/test-only-reachable.js.map +1 -0
- package/dist/rules/unexpected-coupling.d.ts +29 -0
- package/dist/rules/unexpected-coupling.d.ts.map +1 -0
- package/dist/rules/unexpected-coupling.js +0 -0
- package/dist/rules/unexpected-coupling.js.map +1 -0
- package/dist/rules/wide-function.d.ts +18 -0
- package/dist/rules/wide-function.d.ts.map +1 -0
- package/dist/rules/wide-function.js +58 -0
- package/dist/rules/wide-function.js.map +1 -0
- package/dist/scope-augmentation.d.ts +58 -0
- package/dist/scope-augmentation.d.ts.map +1 -0
- package/dist/scope-augmentation.js +29 -0
- package/dist/scope-augmentation.js.map +1 -0
- package/dist/tool.d.ts +29 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +241 -0
- package/dist/tool.js.map +1 -0
- package/dist/types.d.ts +642 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +136 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* graph-config — load the `graph:` block of `opensip-cli.config.yml`
|
|
3
|
+
* into a {@link GraphConfig}.
|
|
4
|
+
*
|
|
5
|
+
* The graph rule knobs (`minDuplicateBodyLines`, `minDuplicateBodySize`,
|
|
6
|
+
* `minCrossPackageDuplicatePackages`, `minCrossPackageDuplicateBodySize`,
|
|
7
|
+
* `entryPointHashes`, `severityOverrides`) are owned by the graph tool, so the graph engine
|
|
8
|
+
* reads its own config block — mirroring the way fitness owns its
|
|
9
|
+
* sections and the CLI seam owns the `cli:` block
|
|
10
|
+
* (`@opensip-cli/contracts` `loadCliDefaults`).
|
|
11
|
+
*
|
|
12
|
+
* Launch (ADR-0023, Phase 4): the block is now read through graph's
|
|
13
|
+
* own Zod {@link GraphConfigSchema} (the same schema graph contributes to the
|
|
14
|
+
* host's composed whole-document validation) instead of the old hand-rolled
|
|
15
|
+
* `projectGraphConfig`. The composed dispatch-level validation is the STRICT
|
|
16
|
+
* gate that rejects a typo inside `graph:` before any command runs; this
|
|
17
|
+
* loader stays permissive at its own call sites — a missing config, malformed
|
|
18
|
+
* YAML, an absent `graph:` key, or a block that fails the schema all collapse
|
|
19
|
+
* to `{}` so a rule falls back to its in-rule default and a mid-run read never
|
|
20
|
+
* throws.
|
|
21
|
+
*/
|
|
22
|
+
import { type ResolvedRecipe } from '@opensip-cli/contracts';
|
|
23
|
+
import type { GraphConfig } from '../types.js';
|
|
24
|
+
/**
|
|
25
|
+
* Best-effort load of the `graph:` block of `opensip-cli.config.yml`.
|
|
26
|
+
*
|
|
27
|
+
* ADR-0023, Phase 4: the resolved `graph:` block rides on the per-run scope
|
|
28
|
+
* (`scope.toolConfig.graph`) — the host already strict-validated + precedence-
|
|
29
|
+
* resolved (flag > env > file > defaults) the whole document before dispatch. So
|
|
30
|
+
* when a scope is present (every in-process AND forked-worker run goes through
|
|
31
|
+
* the pre-action hook) this returns the SCOPE value and does NOT re-read YAML.
|
|
32
|
+
* The YAML read below is the fallback for a caller with no scope (a unit test
|
|
33
|
+
* driving `loadGraphConfig` directly) — there it stays best-effort: a missing
|
|
34
|
+
* config, malformed YAML, an absent `graph:` key, or a block that fails the
|
|
35
|
+
* schema all collapse to `{}` so a rule falls back to its in-rule default.
|
|
36
|
+
*
|
|
37
|
+
* @param cwd Project root for config resolution.
|
|
38
|
+
* @param explicitPath Optional `--config <path>` override.
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadGraphConfig(cwd: string, explicitPath?: string): GraphConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve which recipe NAME a `graph` run should use (ADR-0022), applying the
|
|
43
|
+
* tool-scoped precedence: explicit `--recipe` > `graph.recipe` > built-in
|
|
44
|
+
* `default`. Delegates the precedence/tolerance decision to the shared
|
|
45
|
+
* `resolveToolRecipeName`. The caller turns the returned `name` into rules via
|
|
46
|
+
* `resolveRecipeToRules(name, { tolerant })`.
|
|
47
|
+
*
|
|
48
|
+
* @param cwd Project root for config resolution.
|
|
49
|
+
* @param explicit The `--recipe <name>` flag value (undefined when absent).
|
|
50
|
+
* @param explicitPath Optional `--config <path>` override.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveGraphRecipeSelection(cwd: string, explicit: string | undefined, explicitPath?: string): ResolvedRecipe;
|
|
53
|
+
//# sourceMappingURL=graph-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-config.d.ts","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA4C/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAMhB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// @fitness-ignore-file null-safety -- Zod schema builder chains (.strict()/.safeParse()) always return valid objects; `.safeParse` is called on a freshly-built strict schema, never a nullable reference.
|
|
2
|
+
/**
|
|
3
|
+
* graph-config — load the `graph:` block of `opensip-cli.config.yml`
|
|
4
|
+
* into a {@link GraphConfig}.
|
|
5
|
+
*
|
|
6
|
+
* The graph rule knobs (`minDuplicateBodyLines`, `minDuplicateBodySize`,
|
|
7
|
+
* `minCrossPackageDuplicatePackages`, `minCrossPackageDuplicateBodySize`,
|
|
8
|
+
* `entryPointHashes`, `severityOverrides`) are owned by the graph tool, so the graph engine
|
|
9
|
+
* reads its own config block — mirroring the way fitness owns its
|
|
10
|
+
* sections and the CLI seam owns the `cli:` block
|
|
11
|
+
* (`@opensip-cli/contracts` `loadCliDefaults`).
|
|
12
|
+
*
|
|
13
|
+
* Launch (ADR-0023, Phase 4): the block is now read through graph's
|
|
14
|
+
* own Zod {@link GraphConfigSchema} (the same schema graph contributes to the
|
|
15
|
+
* host's composed whole-document validation) instead of the old hand-rolled
|
|
16
|
+
* `projectGraphConfig`. The composed dispatch-level validation is the STRICT
|
|
17
|
+
* gate that rejects a typo inside `graph:` before any command runs; this
|
|
18
|
+
* loader stays permissive at its own call sites — a missing config, malformed
|
|
19
|
+
* YAML, an absent `graph:` key, or a block that fails the schema all collapse
|
|
20
|
+
* to `{}` so a rule falls back to its in-rule default and a mid-run read never
|
|
21
|
+
* throws.
|
|
22
|
+
*/
|
|
23
|
+
import { resolveToolRecipeName } from '@opensip-cli/contracts';
|
|
24
|
+
import { currentScope, logger, readYamlFile, resolveProjectConfigPath } from '@opensip-cli/core';
|
|
25
|
+
import { GraphConfigSchema } from './graph-config-schema.js';
|
|
26
|
+
/** Accept anything that looks like a plain object; everything else → `{}`. */
|
|
27
|
+
function isPlainObject(v) {
|
|
28
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Best-effort load of the `graph:` block of `opensip-cli.config.yml`.
|
|
32
|
+
*
|
|
33
|
+
* ADR-0023, Phase 4: the resolved `graph:` block rides on the per-run scope
|
|
34
|
+
* (`scope.toolConfig.graph`) — the host already strict-validated + precedence-
|
|
35
|
+
* resolved (flag > env > file > defaults) the whole document before dispatch. So
|
|
36
|
+
* when a scope is present (every in-process AND forked-worker run goes through
|
|
37
|
+
* the pre-action hook) this returns the SCOPE value and does NOT re-read YAML.
|
|
38
|
+
* The YAML read below is the fallback for a caller with no scope (a unit test
|
|
39
|
+
* driving `loadGraphConfig` directly) — there it stays best-effort: a missing
|
|
40
|
+
* config, malformed YAML, an absent `graph:` key, or a block that fails the
|
|
41
|
+
* schema all collapse to `{}` so a rule falls back to its in-rule default.
|
|
42
|
+
*
|
|
43
|
+
* @param cwd Project root for config resolution.
|
|
44
|
+
* @param explicitPath Optional `--config <path>` override.
|
|
45
|
+
*/
|
|
46
|
+
export function loadGraphConfig(cwd, explicitPath) {
|
|
47
|
+
// Scope-first: the resolved, strict-validated `graph:` block (with env/flag
|
|
48
|
+
// precedence already folded in). Present on every CLI dispatch path; absent
|
|
49
|
+
// only off-CLI (direct unit-test calls), where we fall back to the YAML read.
|
|
50
|
+
const scoped = currentScope()?.toolConfig?.graph;
|
|
51
|
+
if (isPlainObject(scoped)) {
|
|
52
|
+
// Already validated by the composer (graph's namespaced ToolConfigDeclaration
|
|
53
|
+
// is the same GraphConfigSchema), so this is a pure narrowing read.
|
|
54
|
+
return scoped;
|
|
55
|
+
}
|
|
56
|
+
let filePath;
|
|
57
|
+
try {
|
|
58
|
+
filePath = resolveProjectConfigPath(cwd, explicitPath);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// No config file found — expected; the graph rules use their in-rule
|
|
62
|
+
// defaults. Debug-only so it never adds noise on config-less projects.
|
|
63
|
+
logger.debug({
|
|
64
|
+
evt: 'graph.config.not_found',
|
|
65
|
+
module: 'graph:config',
|
|
66
|
+
err: error instanceof Error ? error.message : String(error),
|
|
67
|
+
});
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
const doc = readYamlFile(filePath);
|
|
71
|
+
if (!isPlainObject(doc))
|
|
72
|
+
return {};
|
|
73
|
+
const graphBlock = doc.graph;
|
|
74
|
+
if (!isPlainObject(graphBlock))
|
|
75
|
+
return {};
|
|
76
|
+
// Parse the block through graph's own Zod schema, made `.strict()` to match
|
|
77
|
+
// the dispatch-level composed validation (an unknown key inside `graph:` is
|
|
78
|
+
// rejected, ADR-0023). A schema failure here is NOT fatal at the loader (the
|
|
79
|
+
// strict dispatch-level gate already surfaced it as a CONFIGURATION_ERROR
|
|
80
|
+
// before the command ran); fall back to `{}` so the call site keeps its
|
|
81
|
+
// historical "absent → in-rule default" semantics.
|
|
82
|
+
const parsed = GraphConfigSchema.strict().safeParse(graphBlock);
|
|
83
|
+
if (!parsed.success) {
|
|
84
|
+
logger.debug({
|
|
85
|
+
evt: 'graph.config.schema_rejected',
|
|
86
|
+
module: 'graph:config',
|
|
87
|
+
err: parsed.error.message,
|
|
88
|
+
});
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
return parsed.data;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolve which recipe NAME a `graph` run should use (ADR-0022), applying the
|
|
95
|
+
* tool-scoped precedence: explicit `--recipe` > `graph.recipe` > built-in
|
|
96
|
+
* `default`. Delegates the precedence/tolerance decision to the shared
|
|
97
|
+
* `resolveToolRecipeName`. The caller turns the returned `name` into rules via
|
|
98
|
+
* `resolveRecipeToRules(name, { tolerant })`.
|
|
99
|
+
*
|
|
100
|
+
* @param cwd Project root for config resolution.
|
|
101
|
+
* @param explicit The `--recipe <name>` flag value (undefined when absent).
|
|
102
|
+
* @param explicitPath Optional `--config <path>` override.
|
|
103
|
+
*/
|
|
104
|
+
export function resolveGraphRecipeSelection(cwd, explicit, explicitPath) {
|
|
105
|
+
const graphConfig = loadGraphConfig(cwd, explicitPath);
|
|
106
|
+
return resolveToolRecipeName({
|
|
107
|
+
explicit,
|
|
108
|
+
toolRecipe: graphConfig.recipe,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=graph-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-config.js","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"AAAA,2MAA2M;AAC3M;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,8EAA8E;AAC9E,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,YAAqB;IAChE,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC;IACjD,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,oEAAoE;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;IAC7B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,mDAAmD;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,8BAA8B;YACnC,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,QAA4B,EAC5B,YAAqB;IAErB,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,OAAO,qBAAqB,CAAC;QAC3B,QAAQ;QACR,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Mode dispatch for `opensip graph`.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `cli/graph.ts` so the orchestrator there stays focused
|
|
5
|
+
* on flag validation, run-scope resolution, and result dispatch. Owns:
|
|
6
|
+
*
|
|
7
|
+
* - `runGateMode` (--gate-save / --gate-compare)
|
|
8
|
+
* - `runCatalogJsonMode` (--catalog-output)
|
|
9
|
+
*
|
|
10
|
+
* `--report-to` (the old `runReportMode`) moved to the composition root in
|
|
11
|
+
* ADR-0011 Phase 5: graph returns its `SignalEnvelope` and the root's
|
|
12
|
+
* `deliverSignals` owns cloud egress + the `--report-to` SARIF upload.
|
|
13
|
+
*/
|
|
14
|
+
import type { GraphCommandOptions } from './graph-options.js';
|
|
15
|
+
import type { Catalog, Indexes } from '../types.js';
|
|
16
|
+
import type { SignalEnvelope } from '@opensip-cli/contracts';
|
|
17
|
+
import type { Signal, ToolCliContext } from '@opensip-cli/core';
|
|
18
|
+
export declare function runGateMode(opts: GraphCommandOptions, envelope: SignalEnvelope, cli: ToolCliContext, resolutionMode?: 'exact' | 'fast'): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Catalog-JSON emission mode (Phase 3 Task 3.4 per opensip DEC-498).
|
|
21
|
+
* Walks the engine's `Catalog` + `Indexes`, derives opensip-compatible
|
|
22
|
+
* symbol/edge IDs, and writes a `CatalogExport` JSON document to the
|
|
23
|
+
* `--catalog-output <path>` file. Phase 6's `EngineSubprocessPort`
|
|
24
|
+
* invokes this mode per commit-sync run.
|
|
25
|
+
*
|
|
26
|
+
* Synchronous file write — catalog payloads are bounded (per-package
|
|
27
|
+
* fan-out limits per-run scope) and we want backpressure if disk is
|
|
28
|
+
* full rather than a deferred-write surprise.
|
|
29
|
+
*/
|
|
30
|
+
export declare function runCatalogJsonMode(opts: GraphCommandOptions, result: {
|
|
31
|
+
readonly catalog: Catalog | null;
|
|
32
|
+
readonly indexes: Indexes | null;
|
|
33
|
+
readonly signals: readonly Signal[];
|
|
34
|
+
readonly cacheHit: boolean;
|
|
35
|
+
}, cli: ToolCliContext, startedAt: string): void;
|
|
36
|
+
//# sourceMappingURL=graph-modes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-modes.d.ts","sourceRoot":"","sources":["../../src/cli/graph-modes.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AAmBH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,cAAc,EACnB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAChC,OAAO,CAAC,IAAI,CAAC,CAiEf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE;IACN,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,EACD,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,GAChB,IAAI,CAgEN"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// @fitness-ignore-file detached-promises -- CLI dispatch: render helpers are synchronous; heuristic flags inside async handlers.
|
|
2
|
+
// @fitness-ignore-file no-non-null-assertions -- narrowing helpers prove the discriminant before access; the assertions encode that proof for the type checker.
|
|
3
|
+
// @fitness-ignore-file throws-documentation -- internal CLI mode helper rethrows for the top-level handleGraphError; not a documented contract surface.
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview Mode dispatch for `opensip graph`.
|
|
6
|
+
*
|
|
7
|
+
* Extracted from `cli/graph.ts` so the orchestrator there stays focused
|
|
8
|
+
* on flag validation, run-scope resolution, and result dispatch. Owns:
|
|
9
|
+
*
|
|
10
|
+
* - `runGateMode` (--gate-save / --gate-compare)
|
|
11
|
+
* - `runCatalogJsonMode` (--catalog-output)
|
|
12
|
+
*
|
|
13
|
+
* `--report-to` (the old `runReportMode`) moved to the composition root in
|
|
14
|
+
* ADR-0011 Phase 5: graph returns its `SignalEnvelope` and the root's
|
|
15
|
+
* `deliverSignals` owns cloud egress + the `--report-to` SARIF upload.
|
|
16
|
+
*/
|
|
17
|
+
import { randomUUID } from 'node:crypto';
|
|
18
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
19
|
+
import { dirname } from 'node:path';
|
|
20
|
+
import { EXIT_CODES } from '@opensip-cli/contracts';
|
|
21
|
+
import { ConfigurationError, isErrorSignal, logger, readPackageVersion, resolveFailOnDegraded, ToolError, } from '@opensip-cli/core';
|
|
22
|
+
import { graphFingerprintStrategy } from '../baseline-strategy.js';
|
|
23
|
+
import { renderCatalogJson } from '../render/catalog-json.js';
|
|
24
|
+
const MODULE_GRAPH_RENDER = 'graph:render';
|
|
25
|
+
const ENGINE_VERSION = readPackageVersion(import.meta.url);
|
|
26
|
+
export async function runGateMode(opts, envelope, cli, resolutionMode) {
|
|
27
|
+
// A fast catalog's edges are approximate (syntactic). Seeding the
|
|
28
|
+
// security ratchet from them — or comparing against an exact baseline —
|
|
29
|
+
// would let false orphans/regressions flip the gate. The gate's value
|
|
30
|
+
// depends on edge fidelity, so fast mode is declined by default; the
|
|
31
|
+
// user must re-run with --resolution exact to gate.
|
|
32
|
+
if (resolutionMode === 'fast') {
|
|
33
|
+
throw new ConfigurationError('Graph gate refuses a fast (--resolution fast) catalog: its syntactic edges ' +
|
|
34
|
+
'are approximate and must not seed or compare against the security gate. ' +
|
|
35
|
+
'Re-run with --resolution exact to gate.');
|
|
36
|
+
}
|
|
37
|
+
// The host owns persistence (BaselineRepo), the diff, AND the exit (ADR-0036 /
|
|
38
|
+
// ADR-0035): graph hands the already-fingerprint-stamped envelope to the seams
|
|
39
|
+
// and feeds its gate verdict to the host's `deliverSignals` runFailed override.
|
|
40
|
+
// No tool `setExitCode` on the gate path — the host derives RUNTIME_ERROR.
|
|
41
|
+
const deliverOpts = { cwd: opts.cwd, reportTo: opts.reportTo, apiKey: opts.apiKey };
|
|
42
|
+
if (opts.gateSave === true) {
|
|
43
|
+
// ADR-0020: gate-save records the baseline AND hard-fails the step when the
|
|
44
|
+
// current (already suppression-filtered, ADR-0014) signal set contains any
|
|
45
|
+
// error-rung finding. The error rung is core's canonical `isErrorSignal`
|
|
46
|
+
// (`critical`/`high`) — the same predicate graph's envelope verdict
|
|
47
|
+
// (`build-envelope.ts`) uses — so `errorCount > 0` equals `!verdict.passed`.
|
|
48
|
+
// ADR-0035: that findings verdict is HOST-owned; graph passes it as the
|
|
49
|
+
// `deliverSignals` runFailed override (the host sets the exit), so the CI step
|
|
50
|
+
// is the honest pass/fail signal without a tool-side setExitCode. The `--sarif`
|
|
51
|
+
// export still runs in the command-spec under `if: always()` semantics.
|
|
52
|
+
await cli.saveBaseline('graph', envelope);
|
|
53
|
+
const errorCount = envelope.signals.filter(isErrorSignal).length;
|
|
54
|
+
const runFailed = errorCount > 0;
|
|
55
|
+
await cli.render({
|
|
56
|
+
type: 'gate-done',
|
|
57
|
+
lines: runFailed
|
|
58
|
+
? [
|
|
59
|
+
`Graph baseline saved (${String(envelope.signals.length)} signals)`,
|
|
60
|
+
`Graph gate FAILED: ${String(errorCount)} error-level finding(s) present.`,
|
|
61
|
+
]
|
|
62
|
+
: [`Graph baseline saved (${String(envelope.signals.length)} signals)`],
|
|
63
|
+
});
|
|
64
|
+
await cli.deliverSignals(envelope, { ...deliverOpts, runFailed });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// gate-compare.
|
|
68
|
+
//
|
|
69
|
+
// ADR-0035 Phase 5 finding — RETAIN (not fold): `degraded` is "net-new findings
|
|
70
|
+
// since the saved baseline", a baseline-DIFF predicate NOT expressible over this
|
|
71
|
+
// run's own findings verdict (a run can have error-level findings yet be
|
|
72
|
+
// `degraded: false` if none are net-new, and vice versa). The ratchet is gated
|
|
73
|
+
// by the reserved `failOnDegraded` key (ADR-0036, default true); the resulting
|
|
74
|
+
// verdict rides the host's `deliverSignals` runFailed override — no tool exit.
|
|
75
|
+
const result = await cli.compareBaseline('graph', envelope);
|
|
76
|
+
const runFailed = result.degraded && resolveFailOnDegraded('graph');
|
|
77
|
+
await cli.render({
|
|
78
|
+
type: 'gate-done',
|
|
79
|
+
lines: result.degraded
|
|
80
|
+
? [
|
|
81
|
+
`Graph gate FAILED: ${String(result.added.length)} new finding(s) since baseline.`,
|
|
82
|
+
...result.added.map((s) => ` + ${graphFingerprintStrategy(s)}`),
|
|
83
|
+
]
|
|
84
|
+
: [
|
|
85
|
+
`Graph gate PASS: no regressions (${String(result.resolved.length)} resolved since baseline).`,
|
|
86
|
+
],
|
|
87
|
+
});
|
|
88
|
+
await cli.deliverSignals(envelope, { ...deliverOpts, runFailed });
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Catalog-JSON emission mode (Phase 3 Task 3.4 per opensip DEC-498).
|
|
92
|
+
* Walks the engine's `Catalog` + `Indexes`, derives opensip-compatible
|
|
93
|
+
* symbol/edge IDs, and writes a `CatalogExport` JSON document to the
|
|
94
|
+
* `--catalog-output <path>` file. Phase 6's `EngineSubprocessPort`
|
|
95
|
+
* invokes this mode per commit-sync run.
|
|
96
|
+
*
|
|
97
|
+
* Synchronous file write — catalog payloads are bounded (per-package
|
|
98
|
+
* fan-out limits per-run scope) and we want backpressure if disk is
|
|
99
|
+
* full rather than a deferred-write surprise.
|
|
100
|
+
*/
|
|
101
|
+
export function runCatalogJsonMode(opts, result, cli, startedAt) {
|
|
102
|
+
if (typeof opts.tenantId !== 'string' || opts.tenantId.length === 0) {
|
|
103
|
+
throw new ConfigurationError('--catalog-output requires --tenant-id <id>.');
|
|
104
|
+
}
|
|
105
|
+
if (typeof opts.repoId !== 'string' || opts.repoId.length === 0) {
|
|
106
|
+
throw new ConfigurationError('--catalog-output requires --repo-id <id>.');
|
|
107
|
+
}
|
|
108
|
+
if (typeof opts.gitSha !== 'string' || opts.gitSha.length === 0) {
|
|
109
|
+
throw new ConfigurationError('--catalog-output requires --git-sha <sha>.');
|
|
110
|
+
}
|
|
111
|
+
if (result.catalog === null || result.indexes === null) {
|
|
112
|
+
throw new ToolError('Cannot emit catalog-json: engine returned null catalog / indexes (no parseable input).', 'GRAPH.CATALOG_JSON.NULL_CATALOG');
|
|
113
|
+
}
|
|
114
|
+
const runId = opts.runId ?? randomUUID();
|
|
115
|
+
const completedAt = new Date().toISOString();
|
|
116
|
+
// Caller (opensip-side EngineSubprocessPort, Phase 6) inspects the
|
|
117
|
+
// file's existence + completeness field; engine never emits 'partial'
|
|
118
|
+
// from this code path (the engine's pressure-monitor / abort-handling
|
|
119
|
+
// bypass this function entirely on failure). A future task may add
|
|
120
|
+
// partial-completion semantics by catching MemoryPressureError in
|
|
121
|
+
// executeGraph and writing a partial CatalogExport here.
|
|
122
|
+
const provenance = {
|
|
123
|
+
runId,
|
|
124
|
+
completeness: 'complete',
|
|
125
|
+
engineVersion: ENGINE_VERSION,
|
|
126
|
+
startedAt,
|
|
127
|
+
completedAt,
|
|
128
|
+
tenantId: opts.tenantId,
|
|
129
|
+
};
|
|
130
|
+
logger.info({
|
|
131
|
+
evt: 'graph.render.catalog_json.start',
|
|
132
|
+
module: MODULE_GRAPH_RENDER,
|
|
133
|
+
runId,
|
|
134
|
+
output: opts.catalogOutput,
|
|
135
|
+
});
|
|
136
|
+
const json = renderCatalogJson({
|
|
137
|
+
catalog: result.catalog,
|
|
138
|
+
indexes: result.indexes,
|
|
139
|
+
provenance,
|
|
140
|
+
repoId: opts.repoId,
|
|
141
|
+
gitSha: opts.gitSha,
|
|
142
|
+
});
|
|
143
|
+
// Defensively create the parent dir before writing — the sibling
|
|
144
|
+
// `runSarifExportMode` does the same. The
|
|
145
|
+
// opensip `EngineSubprocessPort.runCatalogExport` may point
|
|
146
|
+
// `--catalog-output` at a run-scoped temp dir that doesn't exist yet,
|
|
147
|
+
// so a bare writeFileSync would throw ENOENT.
|
|
148
|
+
mkdirSync(dirname(opts.catalogOutput), { recursive: true });
|
|
149
|
+
writeFileSync(opts.catalogOutput, json);
|
|
150
|
+
logger.info({
|
|
151
|
+
evt: 'graph.render.catalog_json.complete',
|
|
152
|
+
module: MODULE_GRAPH_RENDER,
|
|
153
|
+
runId,
|
|
154
|
+
output: opts.catalogOutput,
|
|
155
|
+
bytes: json.length,
|
|
156
|
+
cacheHit: result.cacheHit,
|
|
157
|
+
signalCount: result.signals.length,
|
|
158
|
+
});
|
|
159
|
+
cli.setExitCode(EXIT_CODES.SUCCESS);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=graph-modes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-modes.js","sourceRoot":"","sources":["../../src/cli/graph-modes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Public option shape for `executeGraph`.
|
|
3
|
+
*
|
|
4
|
+
* Extracted so the orchestrator (`graph.ts`) and the mode helpers
|
|
5
|
+
* (`graph-modes.ts`) can share the same interface without one
|
|
6
|
+
* importing from the other.
|
|
7
|
+
*
|
|
8
|
+
* Language-neutral surface per the graph-cli-language-neutral-scoping
|
|
9
|
+
* spec — positional `[paths...]`, `--workspace`, `--language <name>`
|
|
10
|
+
* replace the prior TypeScript-flavored `--package` / `--packages`
|
|
11
|
+
* flags (which were never publicly released — D11 hard-removes them).
|
|
12
|
+
*/
|
|
13
|
+
import type { ResolutionMode } from '../types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Public option shape for `executeGraph` — the language-neutral surface shared
|
|
16
|
+
* by the orchestrator (`graph.ts`) and the mode helpers (`graph-modes.ts`).
|
|
17
|
+
* Programmatic callers and tests construct this directly; the CLI builds it
|
|
18
|
+
* from parsed Commander flags.
|
|
19
|
+
*/
|
|
20
|
+
export interface GraphCommandOptions {
|
|
21
|
+
readonly cwd: string;
|
|
22
|
+
readonly json?: boolean;
|
|
23
|
+
readonly noCache?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* `--resolution <mode>`: edge resolution tier. `'exact'` (default) is
|
|
26
|
+
* the semantic, type-checker-backed path; `'fast'` is the syntactic
|
|
27
|
+
* (name + import-graph) path that skips the checker for a large
|
|
28
|
+
* cold-build speedup, at the cost of approximate edges. Optional here
|
|
29
|
+
* because programmatic callers and tests may omit it; the orchestrator
|
|
30
|
+
* normalizes a missing value to `'exact'`.
|
|
31
|
+
*/
|
|
32
|
+
readonly resolution?: ResolutionMode;
|
|
33
|
+
/**
|
|
34
|
+
* `--recipe <name>`: select a named subset of graph rules to evaluate.
|
|
35
|
+
* Absent ⇒ the built-in `default` recipe (all rules, registration order
|
|
36
|
+
* — identical to the historical behavior). Resolved to a `readonly Rule[]`
|
|
37
|
+
* in the CLI layer and threaded into every run path as `RunGraphInput.rules`;
|
|
38
|
+
* an unknown name raises a `ConfigurationError`.
|
|
39
|
+
*/
|
|
40
|
+
readonly recipe?: string;
|
|
41
|
+
readonly gateSave?: boolean;
|
|
42
|
+
readonly gateCompare?: boolean;
|
|
43
|
+
readonly reportTo?: string;
|
|
44
|
+
readonly apiKey?: string;
|
|
45
|
+
/**
|
|
46
|
+
* `--profile <path>`: write a stage-timing JSON artifact for this run.
|
|
47
|
+
* Intended for cold-start diagnostics; relative paths resolve against
|
|
48
|
+
* `cwd`.
|
|
49
|
+
*/
|
|
50
|
+
readonly profileOutput?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Positional `[paths...]`. Empty/undefined means whole-project scope.
|
|
53
|
+
* Each path must be an existing directory (absolute or relative to
|
|
54
|
+
* `cwd`). Multiple paths run sequentially in-process and aggregate
|
|
55
|
+
* into one session (D12).
|
|
56
|
+
*/
|
|
57
|
+
readonly paths?: readonly string[];
|
|
58
|
+
/**
|
|
59
|
+
* `--workspace`: fan the run across every workspace unit returned by
|
|
60
|
+
* each detected adapter's `discoverWorkspaceUnits`. Polyglot per
|
|
61
|
+
* spec D8b: in a multi-language repo all adapters' units are
|
|
62
|
+
* aggregated into one combined fan-out.
|
|
63
|
+
*/
|
|
64
|
+
readonly workspace?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* `--exact`: opt OUT of the default parallel SHARDED build engine and use
|
|
67
|
+
* the single-program EXACT engine instead. Determinism (ADR-0032, superseding
|
|
68
|
+
* ADR-0031): the build engine is chosen by THIS explicit flag (plus the
|
|
69
|
+
* project's shardability) — never by `process.stdout.isTTY` or on-disk
|
|
70
|
+
* discovery state. A bare `graph` uses the SHARDED engine (the default;
|
|
71
|
+
* both engines resolve through one shared model — exact = the 1-shard case —
|
|
72
|
+
* held equivalent by the directional soundness invariant + completeness floor,
|
|
73
|
+
* ADR-0033); `--exact` forces the single-program engine.
|
|
74
|
+
*
|
|
75
|
+
* The sharded engine is faster on large multi-package repos and — with
|
|
76
|
+
* equivalence held by the guardrails — is the authoritative default.
|
|
77
|
+
* `--exact` is the escape hatch for small/single-package repos (where exact
|
|
78
|
+
* is the natural path anyway) and the oracle used to verify equivalence.
|
|
79
|
+
* Sharding is always skipped for the whole-`--workspace` fan-out (which
|
|
80
|
+
* already runs one isolated child process per unit) and for positional-path /
|
|
81
|
+
* multi-path runs (those always use the exact engine).
|
|
82
|
+
*/
|
|
83
|
+
readonly exact?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* `--language <name>`: force a single language adapter. Suppresses
|
|
86
|
+
* marker-based detection. Errors if the name is not registered.
|
|
87
|
+
* Also drives the D14 mixed mismatch policy at the end of the run.
|
|
88
|
+
*/
|
|
89
|
+
readonly language?: string;
|
|
90
|
+
/**
|
|
91
|
+
* `-v, --verbose`: when true, the renderer includes the detailed
|
|
92
|
+
* catalog / findings-by-rule / entry-points sections in addition to
|
|
93
|
+
* the one-line summary. Default (false) shows the summary + footer
|
|
94
|
+
* hint only, matching fit's surface.
|
|
95
|
+
*/
|
|
96
|
+
readonly verbose?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Optional concurrency cap for `--workspace`. Defaults to
|
|
99
|
+
* `os.cpus().length - 1`. Exposed primarily for tests.
|
|
100
|
+
*/
|
|
101
|
+
readonly concurrency?: number;
|
|
102
|
+
/**
|
|
103
|
+
* Path to the CLI entry script. `--workspace` children invoke
|
|
104
|
+
* `node <cliScript> graph <rootDir> --json`. Tools wiring
|
|
105
|
+
* `executeGraph` should pass `process.argv[1]`.
|
|
106
|
+
*/
|
|
107
|
+
readonly cliScript?: string;
|
|
108
|
+
/**
|
|
109
|
+
* --catalog-output <path>. When set, runs in catalog-JSON emission
|
|
110
|
+
* mode: walks the engine's `Catalog` + edges, derives opensip-
|
|
111
|
+
* compatible symbol/edge IDs, and writes a `CatalogExport` JSON
|
|
112
|
+
* document to the path. File output (not stdout) because catalog
|
|
113
|
+
* JSON for 100k-file repos exceeds practical stdout buffer sizes.
|
|
114
|
+
*
|
|
115
|
+
* Required companion opts when set: `tenantId`, `repoId`, `gitSha`.
|
|
116
|
+
* `runId` is auto-generated if not provided.
|
|
117
|
+
*
|
|
118
|
+
* Phase 3 Task 3.4 per opensip DEC-498. Phase 6's
|
|
119
|
+
* EngineSubprocessPort invokes this mode per commit-sync run.
|
|
120
|
+
*/
|
|
121
|
+
readonly catalogOutput?: string;
|
|
122
|
+
/** Tenant scope for catalog-output provenance. */
|
|
123
|
+
readonly tenantId?: string;
|
|
124
|
+
/** Repository scope — applied to every row in catalog-output. */
|
|
125
|
+
readonly repoId?: string;
|
|
126
|
+
/** Commit SHA the catalog was extracted at — provenance for every row. */
|
|
127
|
+
readonly gitSha?: string;
|
|
128
|
+
/** Optional UUID for the catalog-output run. Auto-generated if absent. */
|
|
129
|
+
readonly runId?: string;
|
|
130
|
+
/**
|
|
131
|
+
* `--list-files`: discovery-only mode. Resolve and print the source-file
|
|
132
|
+
* set the run would analyze for the given scope (whole project, positional
|
|
133
|
+
* subtrees, or `--workspace` fan-out) WITHOUT building the catalog, then
|
|
134
|
+
* exit. The list is faithful to a real run — it reuses the adapter's
|
|
135
|
+
* stage-0 `discoverFiles` (so `.d.ts` is excluded, TypeScript
|
|
136
|
+
* extension-priority collisions are collapsed, and per-tsconfig
|
|
137
|
+
* include/exclude is honored) — which makes it the canonical way to diff
|
|
138
|
+
* graph's view of a repo against e.g. `git ls-files`. Composes with
|
|
139
|
+
* `--json` for machine-readable output.
|
|
140
|
+
*/
|
|
141
|
+
readonly listFiles?: boolean;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=graph-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-options.d.ts","sourceRoot":"","sources":["../../src/cli/graph-options.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// @fitness-ignore-file no-markdown-references -- docs/plans/* pointers in JSDoc are stable internal references.
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Public option shape for `executeGraph`.
|
|
4
|
+
*
|
|
5
|
+
* Extracted so the orchestrator (`graph.ts`) and the mode helpers
|
|
6
|
+
* (`graph-modes.ts`) can share the same interface without one
|
|
7
|
+
* importing from the other.
|
|
8
|
+
*
|
|
9
|
+
* Language-neutral surface per the graph-cli-language-neutral-scoping
|
|
10
|
+
* spec — positional `[paths...]`, `--workspace`, `--language <name>`
|
|
11
|
+
* replace the prior TypeScript-flavored `--package` / `--packages`
|
|
12
|
+
* flags (which were never publicly released — D11 hard-removes them).
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=graph-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-options.js","sourceRoot":"","sources":["../../src/cli/graph-options.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* graph-progress — graph's pipeline-stage → universal progress-currency mapping
|
|
3
|
+
* (ADR-0016), extracted to a React-free module so both the live runner
|
|
4
|
+
* (`graph-runner.tsx`) and the off-process worker (`graph-worker.ts`) share one
|
|
5
|
+
* source of stage labels + the event translation.
|
|
6
|
+
*/
|
|
7
|
+
import type { GraphProgressEvent, GraphStage } from './orchestrate.js';
|
|
8
|
+
import type { ProgressEvent } from '@opensip-cli/cli-ui';
|
|
9
|
+
/**
|
|
10
|
+
* Human label per graph pipeline stage (the checklist row text) for the
|
|
11
|
+
* single-program (exact) engine.
|
|
12
|
+
*/
|
|
13
|
+
export declare const STAGE_LABELS: Readonly<Record<GraphStage, string>>;
|
|
14
|
+
/**
|
|
15
|
+
* Sharded-engine checklist labels. The sharded pipeline runs per-shard
|
|
16
|
+
* parse/walk/resolve INSIDE parallel subprocesses — that is the `parse` stage
|
|
17
|
+
* (the shard build, where the bulk of resolution happens) — then the main thread
|
|
18
|
+
* merges fragments (`walk`) and links cross-package calls (`resolve`). These
|
|
19
|
+
* labels name what each stage actually does in sharded mode, so the checklist
|
|
20
|
+
* doesn't mislabel the shard build as "Parse project" or show a near-empty
|
|
21
|
+
* "Resolve call sites". discover/index/features/rules are identical to the exact
|
|
22
|
+
* engine (same main-thread work).
|
|
23
|
+
*/
|
|
24
|
+
export declare const SHARDED_STAGE_LABELS: Readonly<Record<GraphStage, string>>;
|
|
25
|
+
/**
|
|
26
|
+
* Map graph's pipeline event onto the universal progress currency. `sharded`
|
|
27
|
+
* selects the engine-appropriate checklist labels (the two engines run genuinely
|
|
28
|
+
* different stages; `isTTY`/transport never affects this — only the engine does).
|
|
29
|
+
*/
|
|
30
|
+
export declare function toProgressEvent(event: GraphProgressEvent, sharded?: boolean): ProgressEvent;
|
|
31
|
+
//# sourceMappingURL=graph-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-progress.d.ts","sourceRoot":"","sources":["../../src/cli/graph-progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAQ7D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAKrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,UAAQ,GAAG,aAAa,CAczF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* graph-progress — graph's pipeline-stage → universal progress-currency mapping
|
|
3
|
+
* (ADR-0016), extracted to a React-free module so both the live runner
|
|
4
|
+
* (`graph-runner.tsx`) and the off-process worker (`graph-worker.ts`) share one
|
|
5
|
+
* source of stage labels + the event translation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Human label per graph pipeline stage (the checklist row text) for the
|
|
9
|
+
* single-program (exact) engine.
|
|
10
|
+
*/
|
|
11
|
+
export const STAGE_LABELS = {
|
|
12
|
+
discover: 'Discover files',
|
|
13
|
+
parse: 'Parse project',
|
|
14
|
+
walk: 'Walk catalog',
|
|
15
|
+
resolve: 'Resolve call sites',
|
|
16
|
+
index: 'Build indexes',
|
|
17
|
+
features: 'Derive features',
|
|
18
|
+
rules: 'Evaluate rules',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Sharded-engine checklist labels. The sharded pipeline runs per-shard
|
|
22
|
+
* parse/walk/resolve INSIDE parallel subprocesses — that is the `parse` stage
|
|
23
|
+
* (the shard build, where the bulk of resolution happens) — then the main thread
|
|
24
|
+
* merges fragments (`walk`) and links cross-package calls (`resolve`). These
|
|
25
|
+
* labels name what each stage actually does in sharded mode, so the checklist
|
|
26
|
+
* doesn't mislabel the shard build as "Parse project" or show a near-empty
|
|
27
|
+
* "Resolve call sites". discover/index/features/rules are identical to the exact
|
|
28
|
+
* engine (same main-thread work).
|
|
29
|
+
*/
|
|
30
|
+
export const SHARDED_STAGE_LABELS = {
|
|
31
|
+
...STAGE_LABELS,
|
|
32
|
+
parse: 'Build shards',
|
|
33
|
+
walk: 'Merge catalog',
|
|
34
|
+
resolve: 'Link cross-package',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Map graph's pipeline event onto the universal progress currency. `sharded`
|
|
38
|
+
* selects the engine-appropriate checklist labels (the two engines run genuinely
|
|
39
|
+
* different stages; `isTTY`/transport never affects this — only the engine does).
|
|
40
|
+
*/
|
|
41
|
+
export function toProgressEvent(event, sharded = false) {
|
|
42
|
+
const labels = sharded ? SHARDED_STAGE_LABELS : STAGE_LABELS;
|
|
43
|
+
if (event.type === 'stage-start') {
|
|
44
|
+
return { type: 'stage-start', stage: event.stage, label: labels[event.stage] };
|
|
45
|
+
}
|
|
46
|
+
if (event.type === 'stage-done') {
|
|
47
|
+
return {
|
|
48
|
+
type: 'stage-done',
|
|
49
|
+
stage: event.stage,
|
|
50
|
+
durationMs: event.durationMs ?? 0,
|
|
51
|
+
detail: event.detail,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return { type: 'stage-cached', stage: event.stage };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=graph-progress.js.map
|