@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,274 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* graph-runner — owns the live-view state machine for `opensip graph`.
|
|
4
|
+
*
|
|
5
|
+
* Layer 5 Phase 3 lifted the graph live view out of `opensip-cli`.
|
|
6
|
+
* The state machine (loading → running → done | error), `runGraph`
|
|
7
|
+
* orchestration, `buildUnifiedReportLines` post-call, and the Ink/React
|
|
8
|
+
* render tree live here, in the package that owns the graph command
|
|
9
|
+
* surface. Adding a fourth tool with a live view requires zero CLI
|
|
10
|
+
* edits — each tool ships its own renderer and registers it via
|
|
11
|
+
* `cli.registerLiveView(key, renderer)`.
|
|
12
|
+
*
|
|
13
|
+
* Progress rendering is the shared `<LiveProgress>` from
|
|
14
|
+
* `@opensip-cli/cli-ui` (ADR-0016), driven in `phases` mode: graph's
|
|
15
|
+
* 7 fixed pipeline stages map onto the universal `ProgressEvent` stream.
|
|
16
|
+
* The former graph-local StageChecklist/StageLine/RunningStageLine are
|
|
17
|
+
* gone. The build runs OFF the main process (ADR-0028): the runner forks
|
|
18
|
+
* the CLI to `graph-run-worker` via `runOffThreadOrInProcess`, which
|
|
19
|
+
* re-bootstraps the scope, runs the heavy build, and streams stage progress
|
|
20
|
+
* + the slim {@link LiveGraphOutput} back over IPC — so this process stays
|
|
21
|
+
* free to animate the spinner + 80ms clock instead of freezing under the
|
|
22
|
+
* type-check. It falls back to the in-process closure when forking is
|
|
23
|
+
* disabled (`OPENSIP_CLI_NO_WORKER`) or the fork fails; both paths reduce
|
|
24
|
+
* to the same `{ signals, reportLines }` payload.
|
|
25
|
+
*
|
|
26
|
+
* Single exit-code write path: error outcomes route through the
|
|
27
|
+
* supplied `setExitCode` callback (`ToolCliContext.setExitCode`) so the
|
|
28
|
+
* CLI keeps its only `process.exitCode` mutator.
|
|
29
|
+
*/
|
|
30
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
31
|
+
import { tmpdir } from 'node:os';
|
|
32
|
+
import { join } from 'node:path';
|
|
33
|
+
import { Banner, ClockProvider, ErrorMessage, LiveProgress, normalizeBannerSize, ProjectHeader, renderToInk, RunFooterHints, RunHeader, RunSummary, RunTimingProvider, ThemeProvider, UpdateHint, VERBOSE_DETAIL_HINT, viewVerboseLines, } from '@opensip-cli/cli-ui';
|
|
34
|
+
import { runOffThreadOrInProcess, currentScope, } from '@opensip-cli/core';
|
|
35
|
+
import { Box, Text, useApp, render } from 'ink';
|
|
36
|
+
import { useEffect, useState } from 'react';
|
|
37
|
+
import { assertFinalizedAcrossBoundary } from './apply-suppressions.js';
|
|
38
|
+
import { buildGraphEnvelope } from './build-envelope.js';
|
|
39
|
+
import { SHARDED_STAGE_LABELS, STAGE_LABELS, toProgressEvent } from './graph-progress.js';
|
|
40
|
+
import { buildLiveGraphOutput, contributionFromSignals, evaluatedRuleSlugs, runShardedLiveBuild, } from './graph.js';
|
|
41
|
+
import { GRAPH_STAGES, runGraph } from './orchestrate.js';
|
|
42
|
+
const GRAPH_TOOL_TITLE = 'Code Graph';
|
|
43
|
+
const GRAPH_TOOL_DESCRIPTION = 'Building call-graph from source';
|
|
44
|
+
const STAGE_RUNNING_DETAIL = {
|
|
45
|
+
discover: 'Scanning source tree...',
|
|
46
|
+
parse: 'Building program AST...',
|
|
47
|
+
walk: 'Walking files for occurrences...',
|
|
48
|
+
resolve: 'Binding symbols to edges...',
|
|
49
|
+
index: 'Computing reverse indexes...',
|
|
50
|
+
features: 'Computing feature columns...',
|
|
51
|
+
rules: 'Evaluating rule set...',
|
|
52
|
+
};
|
|
53
|
+
// Sharded-engine running sub-labels — mirror SHARDED_STAGE_LABELS: the parallel
|
|
54
|
+
// shard build (parse), the fragment merge (walk), the cross-package link (resolve).
|
|
55
|
+
const SHARDED_STAGE_RUNNING_DETAIL = {
|
|
56
|
+
...STAGE_RUNNING_DETAIL,
|
|
57
|
+
parse: 'Building shards in parallel...',
|
|
58
|
+
walk: 'Merging shard fragments...',
|
|
59
|
+
resolve: 'Linking cross-package calls...',
|
|
60
|
+
};
|
|
61
|
+
// The phases surface the shared renderer consumes: graph's fixed, ordered stages,
|
|
62
|
+
// each carrying its checklist label + running sub-label. Engine-aware: the sharded
|
|
63
|
+
// pipeline names its stages for what they actually do (Build shards / Merge catalog
|
|
64
|
+
// / Link cross-package) so the checklist reflects the real parallel build, not the
|
|
65
|
+
// single-program "Parse / Walk / Resolve" shape.
|
|
66
|
+
function graphSurface(sharded) {
|
|
67
|
+
const labels = sharded ? SHARDED_STAGE_LABELS : STAGE_LABELS;
|
|
68
|
+
const runningDetail = sharded ? SHARDED_STAGE_RUNNING_DETAIL : STAGE_RUNNING_DETAIL;
|
|
69
|
+
return {
|
|
70
|
+
shape: 'phases',
|
|
71
|
+
stages: GRAPH_STAGES.map((id) => ({
|
|
72
|
+
id,
|
|
73
|
+
label: labels[id],
|
|
74
|
+
runningDetail: runningDetail[id],
|
|
75
|
+
})),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** Run the pipeline through the in-process transport, mapping graph events to the
|
|
79
|
+
* shared progress currency and reducing the result to the slim, serializable
|
|
80
|
+
* {@link LiveGraphOutput} the done handler consumes — IDENTICAL to what the
|
|
81
|
+
* off-process worker streams back, so both paths converge on one payload shape.
|
|
82
|
+
* Hoisted to module scope so the emit translation isn't a deeply-nested function
|
|
83
|
+
* inside the runner's effect. */
|
|
84
|
+
async function runGraphWithProgress(args, datastore, emit) {
|
|
85
|
+
const result = await runGraph({
|
|
86
|
+
cwd: args.cwd,
|
|
87
|
+
noCache: args.noCache,
|
|
88
|
+
resolution: args.resolution,
|
|
89
|
+
config: args.config,
|
|
90
|
+
rules: args.rules,
|
|
91
|
+
datastore,
|
|
92
|
+
onProgress: (event) => emit(toProgressEvent(event)),
|
|
93
|
+
});
|
|
94
|
+
// The interactive live view is whole-project against cwd, so cwd is the build
|
|
95
|
+
// root the signals' code.file paths resolve against — pass it as the
|
|
96
|
+
// suppression base so the in-process leg waives `@graph-ignore` identically to
|
|
97
|
+
// the static path (and to the off-process worker, which uses args.cwd too).
|
|
98
|
+
return buildLiveGraphOutput(result, args.cwd);
|
|
99
|
+
}
|
|
100
|
+
function GraphRunner({ args, datastore, setExitCode, onSession, liveContext, }) {
|
|
101
|
+
const { exit } = useApp();
|
|
102
|
+
const [state, setState] = useState({ phase: 'loading' });
|
|
103
|
+
// Engine policy (ADR-0032): sharded is the default, `--exact` opts out. The
|
|
104
|
+
// engine is selected upstream and handed to us as `args.shards` (length > 1 ⇒
|
|
105
|
+
// sharded). Drives BOTH the run transport (in-process vs off-process worker)
|
|
106
|
+
// and the engine-aware checklist labels below. `isTTY` never affects it.
|
|
107
|
+
const sharded = (args.shards?.length ?? 0) > 1;
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
let cancelled = false;
|
|
110
|
+
// Local clock removed for session timing (host RunTimer via liveContext.runSession).
|
|
111
|
+
// Graph keeps its internal stage/partition clocks for profile if needed.
|
|
112
|
+
// Engine policy (ADR-0032): the SHARDED engine is the default; `--exact`
|
|
113
|
+
// opts out. The engine is selected upstream on the dispatch seam (which holds
|
|
114
|
+
// the `cli` context) and handed to us as `args.shards` — `length > 1` ⇒
|
|
115
|
+
// sharded. `isTTY` NEVER affects this decision; we are only choosing the
|
|
116
|
+
// RENDERER's transport here, not the engine.
|
|
117
|
+
//
|
|
118
|
+
// - SHARDED (default): run IN-PROCESS. Its shards are already subprocesses,
|
|
119
|
+
// so the heavy parse/walk/resolve is off the render thread and the main
|
|
120
|
+
// thread stays free to animate the checklist + 80ms clock while it awaits
|
|
121
|
+
// the (I/O-bound) shard pool. No `graph-run-worker` fork needed.
|
|
122
|
+
// - EXACT (`--exact` / not-shardable fallback): run the single-program build
|
|
123
|
+
// OFF the main process (ADR-0028) — fork the CLI to `graph-run-worker`,
|
|
124
|
+
// which streams stage progress + the slim LiveGraphOutput over IPC, so the
|
|
125
|
+
// heavy in-process type-check never freezes the spinner. Falls back to the
|
|
126
|
+
// in-process closure (OPENSIP_CLI_NO_WORKER / fork failure), which
|
|
127
|
+
// reduces to the SAME LiveGraphOutput.
|
|
128
|
+
//
|
|
129
|
+
// Both transports converge on one `LiveGraphOutput` — already crossed the
|
|
130
|
+
// single suppression chokepoint (`buildLiveGraphOutput` → `finalizeGraphSignals`).
|
|
131
|
+
const specDir = mkdtempSync(join(tmpdir(), 'graph-worker-'));
|
|
132
|
+
const specPath = join(specDir, 'spec.json');
|
|
133
|
+
writeFileSync(specPath, JSON.stringify({
|
|
134
|
+
cwd: args.cwd,
|
|
135
|
+
noCache: args.noCache,
|
|
136
|
+
resolution: args.resolution,
|
|
137
|
+
...(args.recipe === undefined ? {} : { recipe: args.recipe }),
|
|
138
|
+
}), 'utf8');
|
|
139
|
+
const run = runOffThreadOrInProcess({
|
|
140
|
+
// Sharded runs in-process (shards are already subprocesses); exact forks the
|
|
141
|
+
// off-process worker. `preferWorker:false` forces the in-process arm for the
|
|
142
|
+
// sharded path — the descriptor is unused there but still required by the API.
|
|
143
|
+
preferWorker: !sharded,
|
|
144
|
+
descriptor: { command: process.argv[1] ?? '', argv: ['graph-run-worker', specPath] },
|
|
145
|
+
inProcess: (emit) => sharded
|
|
146
|
+
? runShardedLiveBuild({
|
|
147
|
+
cwd: args.cwd,
|
|
148
|
+
noCache: args.noCache,
|
|
149
|
+
resolution: args.resolution,
|
|
150
|
+
exact: args.exact,
|
|
151
|
+
config: args.config,
|
|
152
|
+
rules: args.rules,
|
|
153
|
+
cliScript: process.argv[1],
|
|
154
|
+
}, args.shards ?? [], datastore, (event) => emit(toProgressEvent(event, true)))
|
|
155
|
+
: runGraphWithProgress(args, datastore, emit),
|
|
156
|
+
});
|
|
157
|
+
setState({ phase: 'running', subscribe: run.onProgress });
|
|
158
|
+
void (async () => {
|
|
159
|
+
try {
|
|
160
|
+
let result;
|
|
161
|
+
try {
|
|
162
|
+
result = await run.result;
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
rmSync(specDir, { recursive: true, force: true });
|
|
166
|
+
}
|
|
167
|
+
if (cancelled)
|
|
168
|
+
return;
|
|
169
|
+
// `result` already crossed the single suppression chokepoint inside the
|
|
170
|
+
// producer (`buildLiveGraphOutput` → `finalizeGraphSignals`), but the
|
|
171
|
+
// IPC structured-clone dropped the FinalizedSignals brand. Re-stamp it
|
|
172
|
+
// here — an assertion of the prior finalize, NOT a second suppression —
|
|
173
|
+
// so the host record (and the verdict) consume the branded, already-waived signals.
|
|
174
|
+
const finalized = assertFinalizedAcrossBoundary(result.signals, result.suppressedCount);
|
|
175
|
+
// Host-owned persistence (host-owned-run-timing Phase 2): surface the
|
|
176
|
+
// contribution built from the finalized (branded, already-waived)
|
|
177
|
+
// signals; the host persists after the live view exits. Timing is
|
|
178
|
+
// host-stamped from the lifecycle.
|
|
179
|
+
//
|
|
180
|
+
// Use the SHARED contribution builder (the same one the static
|
|
181
|
+
// `executeGraph` dispatch uses) and feed it the run's evaluated rule set
|
|
182
|
+
// (`args.rules`, falling back to the scope registry — exactly what
|
|
183
|
+
// `runGraph` ran). This is what makes a CLEAN interactive run record a
|
|
184
|
+
// PASS row per rule, so the report's graph session detail shows the full
|
|
185
|
+
// rule list instead of an empty "no results" panel — parity with fit.
|
|
186
|
+
onSession?.(contributionFromSignals({ cwd: args.cwd, recipe: args.recipe }, finalized.signals, evaluatedRuleSlugs(args.rules)));
|
|
187
|
+
// Compute the summary for TTY (duration omitted; provider supplies host value).
|
|
188
|
+
const envelope = buildGraphEnvelope({
|
|
189
|
+
signals: finalized.signals,
|
|
190
|
+
runId: currentScope()?.runId ?? '',
|
|
191
|
+
createdAt: new Date().toISOString(),
|
|
192
|
+
});
|
|
193
|
+
const { verdict } = envelope;
|
|
194
|
+
const summary = {
|
|
195
|
+
passed: verdict.passed,
|
|
196
|
+
errors: verdict.summary.errors,
|
|
197
|
+
warnings: verdict.summary.warnings,
|
|
198
|
+
// durationMs omitted for host provider path
|
|
199
|
+
};
|
|
200
|
+
// The worker (or the in-process fallback) already assembled the report
|
|
201
|
+
// lines with includeSummary: false — RunSummary renders the verdict
|
|
202
|
+
// footer in place of the text "== Summary ==" block.
|
|
203
|
+
const reportLines = result.reportLines;
|
|
204
|
+
setState((prev) => ({
|
|
205
|
+
phase: 'done',
|
|
206
|
+
subscribe: prev.phase === 'running' ? prev.subscribe : run.onProgress,
|
|
207
|
+
reportLines,
|
|
208
|
+
summary,
|
|
209
|
+
}));
|
|
210
|
+
setTimeout(() => exit(), 50);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
if (cancelled)
|
|
214
|
+
return;
|
|
215
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
216
|
+
setState({ phase: 'error', message });
|
|
217
|
+
setExitCode?.(1);
|
|
218
|
+
setTimeout(() => exit(), 50);
|
|
219
|
+
}
|
|
220
|
+
})();
|
|
221
|
+
return () => {
|
|
222
|
+
cancelled = true;
|
|
223
|
+
};
|
|
224
|
+
}, []);
|
|
225
|
+
// Presentation settings resolved once in the pre-action hook; the live view
|
|
226
|
+
// runs inside that scope. `mini` carries the project path in its box, so the
|
|
227
|
+
// separate ProjectHeader line is dropped for it (matches App.tsx); walkedUp
|
|
228
|
+
// flows in so mini keeps the "(found N levels up)" hint.
|
|
229
|
+
const scope = currentScope();
|
|
230
|
+
const ui = scope?.ui;
|
|
231
|
+
const walkedUp = scope?.projectContext?.walkedUp;
|
|
232
|
+
const bannerSize = normalizeBannerSize(ui?.bannerSize);
|
|
233
|
+
// --quiet suppresses the banner/header chrome (parity with fit/sim).
|
|
234
|
+
const header = args.quiet === true ? null : (_jsxs(_Fragment, { children: [_jsx(Banner, { size: bannerSize, version: ui?.version, projectPath: args.cwd, walkedUp: walkedUp, update: ui?.update }), bannerSize === 'mini' && ui?.update !== undefined && _jsx(UpdateHint, {}), bannerSize !== 'mini' && _jsx(ProjectHeader, { root: args.cwd, walkedUp: walkedUp }), _jsx(RunHeader, { tool: GRAPH_TOOL_TITLE, description: GRAPH_TOOL_DESCRIPTION })] }));
|
|
235
|
+
if (state.phase === 'error') {
|
|
236
|
+
return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(ErrorMessage, { message: state.message })] }));
|
|
237
|
+
}
|
|
238
|
+
if (state.phase === 'loading') {
|
|
239
|
+
return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Initializing pipeline..." }) })] }));
|
|
240
|
+
}
|
|
241
|
+
// running | done — the same <LiveProgress> stays mounted across both so its
|
|
242
|
+
// reduced stage state (the ✓ checklist) persists; the done phase adds the
|
|
243
|
+
// summary + footer below it.
|
|
244
|
+
return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(LiveProgress, { surface: graphSurface(sharded), subscribe: state.subscribe }), state.phase === 'done' && (_jsxs(_Fragment, { children: [args.verbose === true && (_jsx(Box, { flexDirection: "column", paddingTop: 1, children: renderToInk(viewVerboseLines(state.reportLines)) })), (() => {
|
|
245
|
+
const el = (_jsx(RunSummary, { passed: state.summary.passed, errors: state.summary.errors, warnings: state.summary.warnings }));
|
|
246
|
+
return liveContext?.runSession ? (_jsx(RunTimingProvider, { timer: liveContext.runSession.timing, children: el })) : (el);
|
|
247
|
+
})(), args.verbose !== true && (_jsx(RunFooterHints, { hints: [
|
|
248
|
+
VERBOSE_DETAIL_HINT,
|
|
249
|
+
{
|
|
250
|
+
text: 'opensip report for HTML report',
|
|
251
|
+
bold: ['opensip report'],
|
|
252
|
+
},
|
|
253
|
+
] }))] }))] }));
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Render the live `graph` view. Resolves once the underlying Ink app exits with
|
|
257
|
+
* a {@link ToolRunCompletion} carrying the run's `session` contribution (the
|
|
258
|
+
* HOST persists it after this resolves — host-owned-run-timing Phase 2; the
|
|
259
|
+
* component no longer writes the session itself). Graph's cloud egress lives on
|
|
260
|
+
* the static gate path, so the live wrapper returns no envelope.
|
|
261
|
+
*
|
|
262
|
+
* `setExitCode` is the single mutator path on `process.exitCode`; the runner
|
|
263
|
+
* calls it for error outcomes so the CLI's exit-code seam stays the only writer.
|
|
264
|
+
*/
|
|
265
|
+
export async function renderGraphLive(args, datastore, options, liveContext) {
|
|
266
|
+
let session;
|
|
267
|
+
const app = render(_jsx(ThemeProvider, { children: _jsx(ClockProvider, { children: _jsx(GraphRunner, { args: args, datastore: datastore, setExitCode: options?.setExitCode, onSession: (c) => {
|
|
268
|
+
session = c;
|
|
269
|
+
}, liveContext: liveContext }) }) }));
|
|
270
|
+
await app.waitUntilExit();
|
|
271
|
+
process.stdout.write('\n');
|
|
272
|
+
return { session };
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=graph-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-runner.js","sourceRoot":"","sources":["../../src/cli/graph-runner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared graph tracing constants and the span-emitting {@link RunStage} used by
|
|
3
|
+
* the sharded build's worker processes.
|
|
4
|
+
*
|
|
5
|
+
* The sequential orchestrator ({@link file://./orchestrate.ts}) defines its own
|
|
6
|
+
* `runStage` that also drives the live-view progress callback + pressure
|
|
7
|
+
* monitor; it reuses {@link GRAPH_TRACER} from here so both paths emit spans
|
|
8
|
+
* under the same instrumentation scope and `opensip_cli.graph.*` span names.
|
|
9
|
+
*
|
|
10
|
+
* Shard workers have no live view (they run headless in a subprocess), so they
|
|
11
|
+
* use {@link spanRunStage} — span emission without the progress/monitor plumbing.
|
|
12
|
+
* Before this existed the workers used a pass-through that silently dropped span
|
|
13
|
+
* coverage, so multi-package (sharded) builds emitted no per-stage spans at all.
|
|
14
|
+
*/
|
|
15
|
+
import { type Attributes } from '@opensip-cli/core';
|
|
16
|
+
import type { RunStage } from './orchestrate/catalog-builder.js';
|
|
17
|
+
/** Instrumentation scope for every graph stage span (sequential and sharded). */
|
|
18
|
+
export declare const GRAPH_TRACER = "opensip-cli-graph";
|
|
19
|
+
/**
|
|
20
|
+
* A {@link RunStage} that emits one span per stage (named
|
|
21
|
+
* `opensip_cli.graph.<stage>`) but does no progress/monitor work — for
|
|
22
|
+
* headless contexts like the shard worker. `baseAttrs` are merged onto every
|
|
23
|
+
* stage span (e.g. the shard id) so spans from parallel workers are
|
|
24
|
+
* distinguishable when they nest under the parent build trace.
|
|
25
|
+
*/
|
|
26
|
+
export declare function spanRunStage(baseAttrs?: Attributes): RunStage;
|
|
27
|
+
//# sourceMappingURL=graph-tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-tracer.d.ts","sourceRoot":"","sources":["../../src/cli/graph-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEjE,iFAAiF;AACjF,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,UAAe,GAAG,QAAQ,CAYjE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared graph tracing constants and the span-emitting {@link RunStage} used by
|
|
3
|
+
* the sharded build's worker processes.
|
|
4
|
+
*
|
|
5
|
+
* The sequential orchestrator ({@link file://./orchestrate.ts}) defines its own
|
|
6
|
+
* `runStage` that also drives the live-view progress callback + pressure
|
|
7
|
+
* monitor; it reuses {@link GRAPH_TRACER} from here so both paths emit spans
|
|
8
|
+
* under the same instrumentation scope and `opensip_cli.graph.*` span names.
|
|
9
|
+
*
|
|
10
|
+
* Shard workers have no live view (they run headless in a subprocess), so they
|
|
11
|
+
* use {@link spanRunStage} — span emission without the progress/monitor plumbing.
|
|
12
|
+
* Before this existed the workers used a pass-through that silently dropped span
|
|
13
|
+
* coverage, so multi-package (sharded) builds emitted no per-stage spans at all.
|
|
14
|
+
*/
|
|
15
|
+
import { withSpanAsync } from '@opensip-cli/core';
|
|
16
|
+
/** Instrumentation scope for every graph stage span (sequential and sharded). */
|
|
17
|
+
export const GRAPH_TRACER = 'opensip-cli-graph';
|
|
18
|
+
/**
|
|
19
|
+
* A {@link RunStage} that emits one span per stage (named
|
|
20
|
+
* `opensip_cli.graph.<stage>`) but does no progress/monitor work — for
|
|
21
|
+
* headless contexts like the shard worker. `baseAttrs` are merged onto every
|
|
22
|
+
* stage span (e.g. the shard id) so spans from parallel workers are
|
|
23
|
+
* distinguishable when they nest under the parent build trace.
|
|
24
|
+
*/
|
|
25
|
+
export function spanRunStage(baseAttrs = {}) {
|
|
26
|
+
return ({ stage, fn, attrsFn }) => withSpanAsync(GRAPH_TRACER, `opensip_cli.graph.${stage}`, async (span) => {
|
|
27
|
+
const out = await fn();
|
|
28
|
+
if (attrsFn)
|
|
29
|
+
span.setAttributes(attrsFn(out));
|
|
30
|
+
return out;
|
|
31
|
+
}, { 'opensip_cli.graph.stage': stage, ...baseAttrs });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=graph-tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-tracer.js","sourceRoot":"","sources":["../../src/cli/graph-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAInE,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,YAAwB,EAAE;IACrD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAChC,aAAa,CACX,YAAY,EACZ,qBAAqB,KAAK,EAAE,EAC5B,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,IAAI,OAAO;YAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,yBAAyB,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CACnD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `graph-run-worker <specPath>` — the headless graph build forked by the live
|
|
3
|
+
* view (ADR-0028). The live runner forks `node <cliScript> graph-run-worker
|
|
4
|
+
* <spec>`; because it runs through the full CLI bootstrap, the language-adapter
|
|
5
|
+
* registry, project, and config are populated in scope exactly as a normal
|
|
6
|
+
* `graph` run — so the build (the heavy TS type-check / parse / walk / resolve)
|
|
7
|
+
* runs OFF the parent's render thread while the parent stays free to animate the
|
|
8
|
+
* stage checklist + 80ms clock.
|
|
9
|
+
*
|
|
10
|
+
* The spec carries only serializable inputs (cwd, resolution, noCache, recipe
|
|
11
|
+
* NAME); the worker re-loads the graph config and re-resolves the recipe → rules
|
|
12
|
+
* itself (rules are functions — they can't cross the boundary), mirroring
|
|
13
|
+
* `executeGraph`'s setup. It streams stage progress over IPC and posts the final
|
|
14
|
+
* {@link LiveGraphOutput} — the slim, serializable `{ signals, reportLines }`
|
|
15
|
+
* payload (a raw `RunGraphResult` can't cross the fork boundary: it carries
|
|
16
|
+
* class-method accumulators + Maps). The parent persists the signals + renders
|
|
17
|
+
* the report lines; the worker does all the heavy build + report assembly.
|
|
18
|
+
* Internal command — the live runner is its only caller.
|
|
19
|
+
*/
|
|
20
|
+
import { type CommandSpec, type ToolCliContext } from '@opensip-cli/core';
|
|
21
|
+
/**
|
|
22
|
+
* Read the build spec, re-derive config + rules, run `runGraph` headless, and
|
|
23
|
+
* stream stage progress + the final result over IPC. Never throws to the caller —
|
|
24
|
+
* a failure is sent as a `{ kind: 'error' }` message so the parent rejects cleanly.
|
|
25
|
+
*/
|
|
26
|
+
export declare function executeGraphWorker(specPath: string, cli: ToolCliContext): Promise<void>;
|
|
27
|
+
/** `graph-run-worker` — [internal] headless graph build, IPC progress/result. */
|
|
28
|
+
export declare const graphRunWorkerCommandSpec: CommandSpec<unknown, ToolCliContext>;
|
|
29
|
+
//# sourceMappingURL=graph-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-worker.d.ts","sourceRoot":"","sources":["../../src/cli/graph-worker.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAuB3B;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC7F;AAED,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAgBzE,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// @fitness-ignore-file detached-promises -- this worker's `send()` helper is synchronous (it calls process.send, which returns immediately); the name-based heuristic mistakes the floating send(...) IPC posts for promise-returning calls. The one genuine async call (runGraph) is awaited.
|
|
2
|
+
/**
|
|
3
|
+
* `graph-run-worker <specPath>` — the headless graph build forked by the live
|
|
4
|
+
* view (ADR-0028). The live runner forks `node <cliScript> graph-run-worker
|
|
5
|
+
* <spec>`; because it runs through the full CLI bootstrap, the language-adapter
|
|
6
|
+
* registry, project, and config are populated in scope exactly as a normal
|
|
7
|
+
* `graph` run — so the build (the heavy TS type-check / parse / walk / resolve)
|
|
8
|
+
* runs OFF the parent's render thread while the parent stays free to animate the
|
|
9
|
+
* stage checklist + 80ms clock.
|
|
10
|
+
*
|
|
11
|
+
* The spec carries only serializable inputs (cwd, resolution, noCache, recipe
|
|
12
|
+
* NAME); the worker re-loads the graph config and re-resolves the recipe → rules
|
|
13
|
+
* itself (rules are functions — they can't cross the boundary), mirroring
|
|
14
|
+
* `executeGraph`'s setup. It streams stage progress over IPC and posts the final
|
|
15
|
+
* {@link LiveGraphOutput} — the slim, serializable `{ signals, reportLines }`
|
|
16
|
+
* payload (a raw `RunGraphResult` can't cross the fork boundary: it carries
|
|
17
|
+
* class-method accumulators + Maps). The parent persists the signals + renders
|
|
18
|
+
* the report lines; the worker does all the heavy build + report assembly.
|
|
19
|
+
* Internal command — the live runner is its only caller.
|
|
20
|
+
*/
|
|
21
|
+
import { readFileSync } from 'node:fs';
|
|
22
|
+
import { defineCommand, } from '@opensip-cli/core';
|
|
23
|
+
import { resolveRecipeToRules } from '../recipes/resolve.js';
|
|
24
|
+
import { toProgressEvent } from './graph-progress.js';
|
|
25
|
+
import { buildLiveGraphOutput } from './graph.js';
|
|
26
|
+
import { loadGraphConfig, resolveGraphRecipeSelection, runGraph } from './orchestrate.js';
|
|
27
|
+
/** Post one IPC message to the parent (no-op when not forked). */
|
|
28
|
+
function send(msg) {
|
|
29
|
+
process.send?.(msg);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Read the build spec, re-derive config + rules, run `runGraph` headless, and
|
|
33
|
+
* stream stage progress + the final result over IPC. Never throws to the caller —
|
|
34
|
+
* a failure is sent as a `{ kind: 'error' }` message so the parent rejects cleanly.
|
|
35
|
+
*/
|
|
36
|
+
export async function executeGraphWorker(specPath, cli) {
|
|
37
|
+
try {
|
|
38
|
+
const args = JSON.parse(readFileSync(specPath, 'utf8'));
|
|
39
|
+
const config = loadGraphConfig(args.cwd);
|
|
40
|
+
const recipeSelection = resolveGraphRecipeSelection(args.cwd, args.recipe);
|
|
41
|
+
const rules = resolveRecipeToRules(recipeSelection.name, {
|
|
42
|
+
tolerant: recipeSelection.tolerant,
|
|
43
|
+
});
|
|
44
|
+
const result = await runGraph({
|
|
45
|
+
cwd: args.cwd,
|
|
46
|
+
noCache: args.noCache,
|
|
47
|
+
resolution: args.resolution,
|
|
48
|
+
config,
|
|
49
|
+
rules,
|
|
50
|
+
datastore: cli.scope.datastore(),
|
|
51
|
+
onProgress: (event) => send({ kind: 'progress', event: toProgressEvent(event) }),
|
|
52
|
+
});
|
|
53
|
+
// Send only the serializable slim payload — a RunGraphResult can't cross the
|
|
54
|
+
// fork boundary (class-method accumulators + Maps). The parent persists the
|
|
55
|
+
// signals + renders from reportLines (ADR-0028).
|
|
56
|
+
//
|
|
57
|
+
// Suppression runs HERE, inside the worker (ADR-0014): buildLiveGraphOutput
|
|
58
|
+
// is the single chokepoint, and the worker holds the build root (args.cwd)
|
|
59
|
+
// plus disk access to read the `@graph-ignore`-directive files. The parent
|
|
60
|
+
// receives an already-waived LiveGraphOutput — it re-stamps the FinalizedSignals
|
|
61
|
+
// brand the IPC structured-clone drops, but performs NO second suppression.
|
|
62
|
+
send({ kind: 'result', value: await buildLiveGraphOutput(result, args.cwd) });
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
send({
|
|
66
|
+
kind: 'error',
|
|
67
|
+
message: error instanceof Error ? error.message : String(error),
|
|
68
|
+
...(error instanceof Error && error.stack !== undefined ? { stack: error.stack } : {}),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** `graph-run-worker` — [internal] headless graph build, IPC progress/result. */
|
|
73
|
+
export const graphRunWorkerCommandSpec = defineCommand({
|
|
74
|
+
name: 'graph-run-worker',
|
|
75
|
+
description: '[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)',
|
|
76
|
+
commonFlags: [],
|
|
77
|
+
args: [{ name: 'specPath', description: 'Path to a JSON graph build-spec file' }],
|
|
78
|
+
scope: 'project',
|
|
79
|
+
output: 'raw-stream',
|
|
80
|
+
rawStreamReason: 'worker-ipc',
|
|
81
|
+
handler: async (rawOpts, cli) => {
|
|
82
|
+
const specPath = rawOpts._args?.[0] ?? '';
|
|
83
|
+
await executeGraphWorker(specPath, cli);
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=graph-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-worker.js","sourceRoot":"","sources":["../../src/cli/graph-worker.ts"],"names":[],"mappings":"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"}
|