@monoes/monograph 1.5.8 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -5
- package/dist/src/analysis/benchmark.d.ts.map +1 -1
- package/dist/src/analysis/benchmark.js +16 -9
- package/dist/src/analysis/benchmark.js.map +1 -1
- package/dist/src/analysis/changed-files.d.ts.map +1 -1
- package/dist/src/analysis/changed-files.js +3 -3
- package/dist/src/analysis/changed-files.js.map +1 -1
- package/dist/src/analysis/changed-workspaces.d.ts.map +1 -1
- package/dist/src/analysis/changed-workspaces.js +18 -13
- package/dist/src/analysis/changed-workspaces.js.map +1 -1
- package/dist/src/analysis/churn-cache.d.ts.map +1 -1
- package/dist/src/analysis/churn-cache.js +45 -11
- package/dist/src/analysis/churn-cache.js.map +1 -1
- package/dist/src/analysis/churn-trend.d.ts.map +1 -1
- package/dist/src/analysis/churn-trend.js +5 -1
- package/dist/src/analysis/churn-trend.js.map +1 -1
- package/dist/src/analysis/churn.d.ts.map +1 -1
- package/dist/src/analysis/churn.js +12 -9
- package/dist/src/analysis/churn.js.map +1 -1
- package/dist/src/analysis/cluster-quality.d.ts.map +1 -1
- package/dist/src/analysis/cluster-quality.js +6 -8
- package/dist/src/analysis/cluster-quality.js.map +1 -1
- package/dist/src/analysis/combined.d.ts +1 -1
- package/dist/src/analysis/combined.d.ts.map +1 -1
- package/dist/src/analysis/combined.js +1 -1
- package/dist/src/analysis/combined.js.map +1 -1
- package/dist/src/analysis/corpus-health.js.map +1 -1
- package/dist/src/analysis/coverage-gaps.d.ts.map +1 -1
- package/dist/src/analysis/coverage-gaps.js +21 -17
- package/dist/src/analysis/coverage-gaps.js.map +1 -1
- package/dist/src/analysis/dep-classification.d.ts.map +1 -1
- package/dist/src/analysis/dep-classification.js +21 -10
- package/dist/src/analysis/dep-classification.js.map +1 -1
- package/dist/src/analysis/dependency-health.d.ts.map +1 -1
- package/dist/src/analysis/dependency-health.js +6 -8
- package/dist/src/analysis/dependency-health.js.map +1 -1
- package/dist/src/analysis/duplicate-exports.d.ts.map +1 -1
- package/dist/src/analysis/duplicate-exports.js +10 -3
- package/dist/src/analysis/duplicate-exports.js.map +1 -1
- package/dist/src/analysis/fallow-suppression.js +1 -1
- package/dist/src/analysis/fallow-suppression.js.map +1 -1
- package/dist/src/analysis/feature-flags-config.js +1 -1
- package/dist/src/analysis/feature-flags-config.js.map +1 -1
- package/dist/src/analysis/feature-flags.d.ts.map +1 -1
- package/dist/src/analysis/feature-flags.js +38 -21
- package/dist/src/analysis/feature-flags.js.map +1 -1
- package/dist/src/analysis/file-classifier.d.ts.map +1 -1
- package/dist/src/analysis/file-classifier.js +74 -20
- package/dist/src/analysis/file-classifier.js.map +1 -1
- package/dist/src/analysis/git-changed-files.js +5 -5
- package/dist/src/analysis/git-changed-files.js.map +1 -1
- package/dist/src/analysis/health-baseline.d.ts.map +1 -1
- package/dist/src/analysis/health-baseline.js +20 -16
- package/dist/src/analysis/health-baseline.js.map +1 -1
- package/dist/src/analysis/issue-filters.d.ts.map +1 -1
- package/dist/src/analysis/issue-filters.js +30 -9
- package/dist/src/analysis/issue-filters.js.map +1 -1
- package/dist/src/analysis/list.d.ts.map +1 -1
- package/dist/src/analysis/list.js +4 -2
- package/dist/src/analysis/list.js.map +1 -1
- package/dist/src/analysis/node-similarity.d.ts.map +1 -1
- package/dist/src/analysis/node-similarity.js +2 -2
- package/dist/src/analysis/node-similarity.js.map +1 -1
- package/dist/src/analysis/private-type-leaks.d.ts.map +1 -1
- package/dist/src/analysis/private-type-leaks.js +5 -5
- package/dist/src/analysis/private-type-leaks.js.map +1 -1
- package/dist/src/analysis/progress.js.map +1 -1
- package/dist/src/analysis/project-state.js +5 -5
- package/dist/src/analysis/project-state.js.map +1 -1
- package/dist/src/analysis/regression-config.d.ts.map +1 -1
- package/dist/src/analysis/regression-config.js +6 -3
- package/dist/src/analysis/regression-config.js.map +1 -1
- package/dist/src/analysis/rule-overrides.d.ts.map +1 -1
- package/dist/src/analysis/rule-overrides.js +4 -6
- package/dist/src/analysis/rule-overrides.js.map +1 -1
- package/dist/src/analysis/scripts.d.ts.map +1 -1
- package/dist/src/analysis/scripts.js +6 -3
- package/dist/src/analysis/scripts.js.map +1 -1
- package/dist/src/analysis/shape-extractor.d.ts.map +1 -1
- package/dist/src/analysis/shape-extractor.js.map +1 -1
- package/dist/src/analysis/suppression-context.d.ts.map +1 -1
- package/dist/src/analysis/suppression-context.js +31 -9
- package/dist/src/analysis/suppression-context.js.map +1 -1
- package/dist/src/analysis/surprise-scorer.d.ts.map +1 -1
- package/dist/src/analysis/surprise-scorer.js +5 -7
- package/dist/src/analysis/surprise-scorer.js.map +1 -1
- package/dist/src/analysis/targets.d.ts.map +1 -1
- package/dist/src/analysis/targets.js +9 -13
- package/dist/src/analysis/targets.js.map +1 -1
- package/dist/src/analysis/unused-class-members.d.ts.map +1 -1
- package/dist/src/analysis/unused-class-members.js +10 -6
- package/dist/src/analysis/unused-class-members.js.map +1 -1
- package/dist/src/analysis/workspace-filter.d.ts.map +1 -1
- package/dist/src/analysis/workspace-filter.js +4 -4
- package/dist/src/analysis/workspace-filter.js.map +1 -1
- package/dist/src/analyze/boundary-analysis.d.ts.map +1 -1
- package/dist/src/analyze/boundary-analysis.js +2 -3
- package/dist/src/analyze/boundary-analysis.js.map +1 -1
- package/dist/src/analyze/predicates/file.js +60 -60
- package/dist/src/analyze/predicates/import.js +72 -72
- package/dist/src/analyze/predicates/lifecycle.js +38 -38
- package/dist/src/analyze/unused-deps.d.ts +1 -1
- package/dist/src/analyze/unused-deps.d.ts.map +1 -1
- package/dist/src/analyze/unused-deps.js +4 -4
- package/dist/src/analyze/unused-deps.js.map +1 -1
- package/dist/src/analyze/unused-exports.d.ts.map +1 -1
- package/dist/src/analyze/unused-exports.js +6 -8
- package/dist/src/analyze/unused-exports.js.map +1 -1
- package/dist/src/analyze/unused-files.js +2 -2
- package/dist/src/analyze/unused-files.js.map +1 -1
- package/dist/src/api/production-override.d.ts.map +1 -1
- package/dist/src/api/production-override.js +3 -1
- package/dist/src/api/production-override.js.map +1 -1
- package/dist/src/api/programmatic.d.ts.map +1 -1
- package/dist/src/api/programmatic.js +36 -6
- package/dist/src/api/programmatic.js.map +1 -1
- package/dist/src/audit.d.ts.map +1 -1
- package/dist/src/audit.js +32 -16
- package/dist/src/audit.js.map +1 -1
- package/dist/src/cache/extraction-cache.d.ts +1 -1
- package/dist/src/cache/extraction-cache.d.ts.map +1 -1
- package/dist/src/cache/extraction-cache.js +37 -11
- package/dist/src/cache/extraction-cache.js.map +1 -1
- package/dist/src/check/filtering.d.ts +1 -1
- package/dist/src/check/filtering.d.ts.map +1 -1
- package/dist/src/check/filtering.js +7 -7
- package/dist/src/check/filtering.js.map +1 -1
- package/dist/src/check/index.d.ts +2 -2
- package/dist/src/check/index.d.ts.map +1 -1
- package/dist/src/check/index.js +3 -3
- package/dist/src/check/index.js.map +1 -1
- package/dist/src/check/output.d.ts.map +1 -1
- package/dist/src/check/output.js +8 -6
- package/dist/src/check/output.js.map +1 -1
- package/dist/src/check/rules.js +3 -3
- package/dist/src/check/rules.js.map +1 -1
- package/dist/src/ci-template.d.ts.map +1 -1
- package/dist/src/ci-template.js.map +1 -1
- package/dist/src/claude-cli.d.ts.map +1 -1
- package/dist/src/claude-cli.js +32 -9
- package/dist/src/claude-cli.js.map +1 -1
- package/dist/src/cli/ai-context.js +4 -4
- package/dist/src/cli/ai-context.js.map +1 -1
- package/dist/src/cli/augment.d.ts +3 -4
- package/dist/src/cli/augment.d.ts.map +1 -1
- package/dist/src/cli/augment.js +7 -12
- package/dist/src/cli/augment.js.map +1 -1
- package/dist/src/cli/check-update.d.ts.map +1 -1
- package/dist/src/cli/check-update.js.map +1 -1
- package/dist/src/cli/doctor.d.ts.map +1 -1
- package/dist/src/cli/doctor.js +9 -5
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/eval-server.d.ts +3 -3
- package/dist/src/cli/eval-server.d.ts.map +1 -1
- package/dist/src/cli/eval-server.js +4 -6
- package/dist/src/cli/eval-server.js.map +1 -1
- package/dist/src/cli/hooks-install.d.ts.map +1 -1
- package/dist/src/cli/hooks-install.js +14 -12
- package/dist/src/cli/hooks-install.js.map +1 -1
- package/dist/src/cli/setup.d.ts.map +1 -1
- package/dist/src/cli/setup.js +4 -4
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/skill-gen.js +27 -21
- package/dist/src/cli/skill-gen.js.map +1 -1
- package/dist/src/commands/flags.d.ts.map +1 -1
- package/dist/src/commands/flags.js.map +1 -1
- package/dist/src/config/boundary-config.d.ts.map +1 -1
- package/dist/src/config/boundary-config.js +53 -15
- package/dist/src/config/boundary-config.js.map +1 -1
- package/dist/src/config/cli-schema.d.ts.map +1 -1
- package/dist/src/config/cli-schema.js +65 -11
- package/dist/src/config/cli-schema.js.map +1 -1
- package/dist/src/config/config-parsing.d.ts.map +1 -1
- package/dist/src/config/config-parsing.js +3 -3
- package/dist/src/config/config-parsing.js.map +1 -1
- package/dist/src/config/external-plugin.d.ts.map +1 -1
- package/dist/src/config/external-plugin.js +9 -7
- package/dist/src/config/external-plugin.js.map +1 -1
- package/dist/src/config/health-config.d.ts.map +1 -1
- package/dist/src/config/health-config.js +6 -1
- package/dist/src/config/health-config.js.map +1 -1
- package/dist/src/config/ignore-exports-used-in-file.d.ts.map +1 -1
- package/dist/src/config/ignore-exports-used-in-file.js +2 -2
- package/dist/src/config/ignore-exports-used-in-file.js.map +1 -1
- package/dist/src/config/migration-types.d.ts.map +1 -1
- package/dist/src/config/migration-types.js +27 -9
- package/dist/src/config/migration-types.js.map +1 -1
- package/dist/src/config/output-format.d.ts.map +1 -1
- package/dist/src/config/output-format.js +7 -1
- package/dist/src/config/output-format.js.map +1 -1
- package/dist/src/config/plugins/builtin.d.ts +1 -1
- package/dist/src/config/plugins/builtin.d.ts.map +1 -1
- package/dist/src/config/plugins/builtin.js +10 -16
- package/dist/src/config/plugins/builtin.js.map +1 -1
- package/dist/src/config/plugins/registry.d.ts +1 -1
- package/dist/src/config/plugins/registry.d.ts.map +1 -1
- package/dist/src/config/plugins/registry.js +1 -1
- package/dist/src/config/plugins/registry.js.map +1 -1
- package/dist/src/config/resolution.d.ts.map +1 -1
- package/dist/src/config/resolution.js +6 -3
- package/dist/src/config/resolution.js.map +1 -1
- package/dist/src/config/rules.d.ts.map +1 -1
- package/dist/src/config/rules.js +19 -6
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema-gen.d.ts +3 -3
- package/dist/src/config/schema-gen.d.ts.map +1 -1
- package/dist/src/config/schema-gen.js +34 -16
- package/dist/src/config/schema-gen.js.map +1 -1
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/config/types.js.map +1 -1
- package/dist/src/config/used-class-members.d.ts.map +1 -1
- package/dist/src/config/used-class-members.js +5 -4
- package/dist/src/config/used-class-members.js.map +1 -1
- package/dist/src/config/validate.d.ts.map +1 -1
- package/dist/src/config/validate.js +48 -22
- package/dist/src/config/validate.js.map +1 -1
- package/dist/src/config/workspace.d.ts.map +1 -1
- package/dist/src/config/workspace.js +23 -15
- package/dist/src/config/workspace.js.map +1 -1
- package/dist/src/discover/entry-points.d.ts +1 -1
- package/dist/src/discover/entry-points.d.ts.map +1 -1
- package/dist/src/discover/entry-points.js +15 -6
- package/dist/src/discover/entry-points.js.map +1 -1
- package/dist/src/discover/infrastructure-entries.d.ts.map +1 -1
- package/dist/src/discover/infrastructure-entries.js +6 -2
- package/dist/src/discover/infrastructure-entries.js.map +1 -1
- package/dist/src/duplicates/detect/extraction.d.ts.map +1 -1
- package/dist/src/duplicates/detect/extraction.js +1 -1
- package/dist/src/duplicates/detect/extraction.js.map +1 -1
- package/dist/src/duplicates/detect/suffix-array.js +1 -1
- package/dist/src/duplicates/detect/suffix-array.js.map +1 -1
- package/dist/src/duplicates/families.js +1 -1
- package/dist/src/duplicates/families.js.map +1 -1
- package/dist/src/duplicates/normalize.d.ts.map +1 -1
- package/dist/src/duplicates/normalize.js.map +1 -1
- package/dist/src/duplicates/token-types.d.ts.map +1 -1
- package/dist/src/duplicates/token-types.js.map +1 -1
- package/dist/src/duplicates/tokenize/index.d.ts.map +1 -1
- package/dist/src/duplicates/tokenize/index.js +62 -10
- package/dist/src/duplicates/tokenize/index.js.map +1 -1
- package/dist/src/error/fallow-error.d.ts.map +1 -1
- package/dist/src/error/fallow-error.js +12 -6
- package/dist/src/error/fallow-error.js.map +1 -1
- package/dist/src/error.js +2 -2
- package/dist/src/error.js.map +1 -1
- package/dist/src/export/adjacency-matrix.d.ts +1 -1
- package/dist/src/export/adjacency-matrix.d.ts.map +1 -1
- package/dist/src/export/adjacency-matrix.js +6 -8
- package/dist/src/export/adjacency-matrix.js.map +1 -1
- package/dist/src/export/badge.d.ts.map +1 -1
- package/dist/src/export/badge.js +12 -6
- package/dist/src/export/badge.js.map +1 -1
- package/dist/src/export/canvas.d.ts +1 -1
- package/dist/src/export/canvas.js +1 -1
- package/dist/src/export/canvas.js.map +1 -1
- package/dist/src/export/codeclimate.d.ts.map +1 -1
- package/dist/src/export/codeclimate.js +15 -9
- package/dist/src/export/codeclimate.js.map +1 -1
- package/dist/src/export/compact-health.d.ts.map +1 -1
- package/dist/src/export/compact-health.js +6 -3
- package/dist/src/export/compact-health.js.map +1 -1
- package/dist/src/export/compact.d.ts.map +1 -1
- package/dist/src/export/compact.js +17 -9
- package/dist/src/export/compact.js.map +1 -1
- package/dist/src/export/csv.d.ts +1 -1
- package/dist/src/export/csv.d.ts.map +1 -1
- package/dist/src/export/csv.js +8 -5
- package/dist/src/export/csv.js.map +1 -1
- package/dist/src/export/cypher.d.ts +1 -1
- package/dist/src/export/dot.d.ts +1 -1
- package/dist/src/export/dot.js +2 -2
- package/dist/src/export/dot.js.map +1 -1
- package/dist/src/export/gexf.d.ts +1 -1
- package/dist/src/export/gexf.d.ts.map +1 -1
- package/dist/src/export/gexf.js +2 -2
- package/dist/src/export/gexf.js.map +1 -1
- package/dist/src/export/graphml.d.ts +1 -1
- package/dist/src/export/graphml.js +2 -2
- package/dist/src/export/graphml.js.map +1 -1
- package/dist/src/export/html.d.ts +1 -1
- package/dist/src/export/html.d.ts.map +1 -1
- package/dist/src/export/html.js +70 -34
- package/dist/src/export/html.js.map +1 -1
- package/dist/src/export/index.d.ts +18 -8
- package/dist/src/export/index.d.ts.map +1 -1
- package/dist/src/export/index.js +18 -8
- package/dist/src/export/index.js.map +1 -1
- package/dist/src/export/json.d.ts +1 -1
- package/dist/src/export/json.js +3 -3
- package/dist/src/export/json.js.map +1 -1
- package/dist/src/export/markdown.d.ts.map +1 -1
- package/dist/src/export/markdown.js +27 -15
- package/dist/src/export/markdown.js.map +1 -1
- package/dist/src/export/mermaid.d.ts +1 -1
- package/dist/src/export/mermaid.d.ts.map +1 -1
- package/dist/src/export/mermaid.js +2 -4
- package/dist/src/export/mermaid.js.map +1 -1
- package/dist/src/export/obsidian.d.ts +1 -1
- package/dist/src/export/obsidian.d.ts.map +1 -1
- package/dist/src/export/obsidian.js +5 -5
- package/dist/src/export/obsidian.js.map +1 -1
- package/dist/src/export/sarif.d.ts.map +1 -1
- package/dist/src/export/sarif.js +68 -24
- package/dist/src/export/sarif.js.map +1 -1
- package/dist/src/export/svg.d.ts +1 -1
- package/dist/src/export/svg.d.ts.map +1 -1
- package/dist/src/export/svg.js +13 -5
- package/dist/src/export/svg.js.map +1 -1
- package/dist/src/graph/analyzer.d.ts.map +1 -1
- package/dist/src/graph/analyzer.js +1 -1
- package/dist/src/graph/analyzer.js.map +1 -1
- package/dist/src/graph/author-analytics.d.ts.map +1 -1
- package/dist/src/graph/author-analytics.js +13 -8
- package/dist/src/graph/author-analytics.js.map +1 -1
- package/dist/src/graph/baseline.d.ts +1 -1
- package/dist/src/graph/baseline.d.ts.map +1 -1
- package/dist/src/graph/baseline.js +45 -31
- package/dist/src/graph/baseline.js.map +1 -1
- package/dist/src/graph/clone-families.d.ts.map +1 -1
- package/dist/src/graph/clone-families.js +5 -3
- package/dist/src/graph/clone-families.js.map +1 -1
- package/dist/src/graph/codeowners-extended.d.ts.map +1 -1
- package/dist/src/graph/codeowners-extended.js.map +1 -1
- package/dist/src/graph/codeowners-gitlab.d.ts.map +1 -1
- package/dist/src/graph/codeowners-gitlab.js +11 -6
- package/dist/src/graph/codeowners-gitlab.js.map +1 -1
- package/dist/src/graph/codeowners.d.ts.map +1 -1
- package/dist/src/graph/codeowners.js +4 -4
- package/dist/src/graph/codeowners.js.map +1 -1
- package/dist/src/graph/complexity.d.ts.map +1 -1
- package/dist/src/graph/complexity.js +29 -24
- package/dist/src/graph/complexity.js.map +1 -1
- package/dist/src/graph/cross-reference-findings.d.ts.map +1 -1
- package/dist/src/graph/cross-reference-findings.js +18 -6
- package/dist/src/graph/cross-reference-findings.js.map +1 -1
- package/dist/src/graph/cross-reference.d.ts.map +1 -1
- package/dist/src/graph/cross-reference.js +17 -11
- package/dist/src/graph/cross-reference.js.map +1 -1
- package/dist/src/graph/cycle-detection.d.ts.map +1 -1
- package/dist/src/graph/cycle-detection.js +5 -4
- package/dist/src/graph/cycle-detection.js.map +1 -1
- package/dist/src/graph/cycles.d.ts.map +1 -1
- package/dist/src/graph/cycles.js +5 -8
- package/dist/src/graph/cycles.js.map +1 -1
- package/dist/src/graph/dead-code.js +2 -2
- package/dist/src/graph/dead-code.js.map +1 -1
- package/dist/src/graph/dependency-closure.d.ts.map +1 -1
- package/dist/src/graph/dependency-closure.js +11 -9
- package/dist/src/graph/dependency-closure.js.map +1 -1
- package/dist/src/graph/dfs.d.ts.map +1 -1
- package/dist/src/graph/dfs.js.map +1 -1
- package/dist/src/graph/diff.d.ts +1 -1
- package/dist/src/graph/diff.d.ts.map +1 -1
- package/dist/src/graph/diff.js +19 -15
- package/dist/src/graph/diff.js.map +1 -1
- package/dist/src/graph/duplication-stats.d.ts.map +1 -1
- package/dist/src/graph/duplication-stats.js +1 -3
- package/dist/src/graph/duplication-stats.js.map +1 -1
- package/dist/src/graph/edge-filter.d.ts +1 -1
- package/dist/src/graph/edge-filter.d.ts.map +1 -1
- package/dist/src/graph/edge-filter.js +4 -6
- package/dist/src/graph/edge-filter.js.map +1 -1
- package/dist/src/graph/explain.d.ts.map +1 -1
- package/dist/src/graph/explain.js +56 -12
- package/dist/src/graph/explain.js.map +1 -1
- package/dist/src/graph/external-style-usage.d.ts.map +1 -1
- package/dist/src/graph/external-style-usage.js +1 -1
- package/dist/src/graph/external-style-usage.js.map +1 -1
- package/dist/src/graph/health-score.d.ts.map +1 -1
- package/dist/src/graph/health-score.js +36 -24
- package/dist/src/graph/health-score.js.map +1 -1
- package/dist/src/graph/hotspots.d.ts.map +1 -1
- package/dist/src/graph/hotspots.js +18 -17
- package/dist/src/graph/hotspots.js.map +1 -1
- package/dist/src/graph/import-chain.d.ts.map +1 -1
- package/dist/src/graph/import-chain.js +1 -1
- package/dist/src/graph/import-chain.js.map +1 -1
- package/dist/src/graph/loader.d.ts.map +1 -1
- package/dist/src/graph/loader.js +17 -7
- package/dist/src/graph/loader.js.map +1 -1
- package/dist/src/graph/maintainability.d.ts.map +1 -1
- package/dist/src/graph/maintainability.js +12 -10
- package/dist/src/graph/maintainability.js.map +1 -1
- package/dist/src/graph/merge.d.ts +1 -1
- package/dist/src/graph/merge.d.ts.map +1 -1
- package/dist/src/graph/merge.js +2 -2
- package/dist/src/graph/merge.js.map +1 -1
- package/dist/src/graph/mirrored-dirs.d.ts +1 -1
- package/dist/src/graph/mirrored-dirs.d.ts.map +1 -1
- package/dist/src/graph/mirrored-dirs.js +10 -8
- package/dist/src/graph/mirrored-dirs.js.map +1 -1
- package/dist/src/graph/narrowing.d.ts.map +1 -1
- package/dist/src/graph/narrowing.js +1 -1
- package/dist/src/graph/narrowing.js.map +1 -1
- package/dist/src/graph/node-search.d.ts +1 -1
- package/dist/src/graph/node-search.d.ts.map +1 -1
- package/dist/src/graph/node-search.js +8 -8
- package/dist/src/graph/node-search.js.map +1 -1
- package/dist/src/graph/normalize-id.d.ts.map +1 -1
- package/dist/src/graph/normalize-id.js.map +1 -1
- package/dist/src/graph/pagerank.js +1 -1
- package/dist/src/graph/pagerank.js.map +1 -1
- package/dist/src/graph/prune.d.ts.map +1 -1
- package/dist/src/graph/prune.js +11 -5
- package/dist/src/graph/prune.js.map +1 -1
- package/dist/src/graph/re-exports/propagate.d.ts +1 -1
- package/dist/src/graph/re-exports/propagate.d.ts.map +1 -1
- package/dist/src/graph/re-exports/propagate.js +6 -6
- package/dist/src/graph/re-exports/propagate.js.map +1 -1
- package/dist/src/graph/reachability.d.ts +1 -1
- package/dist/src/graph/reachability.d.ts.map +1 -1
- package/dist/src/graph/reachability.js +2 -4
- package/dist/src/graph/reachability.js.map +1 -1
- package/dist/src/graph/regex-search.d.ts +1 -1
- package/dist/src/graph/regex-search.d.ts.map +1 -1
- package/dist/src/graph/regex-search.js +35 -19
- package/dist/src/graph/regex-search.js.map +1 -1
- package/dist/src/graph/regression.d.ts.map +1 -1
- package/dist/src/graph/regression.js +10 -7
- package/dist/src/graph/regression.js.map +1 -1
- package/dist/src/graph/resolve/discover-types.d.ts.map +1 -1
- package/dist/src/graph/resolve/discover-types.js +22 -11
- package/dist/src/graph/resolve/discover-types.js.map +1 -1
- package/dist/src/graph/resolve/dynamic-imports.d.ts.map +1 -1
- package/dist/src/graph/resolve/dynamic-imports.js +29 -7
- package/dist/src/graph/resolve/dynamic-imports.js.map +1 -1
- package/dist/src/graph/resolve/fallbacks.d.ts +1 -1
- package/dist/src/graph/resolve/fallbacks.d.ts.map +1 -1
- package/dist/src/graph/resolve/fallbacks.js +1 -1
- package/dist/src/graph/resolve/fallbacks.js.map +1 -1
- package/dist/src/graph/resolve/index.d.ts +6 -6
- package/dist/src/graph/resolve/index.d.ts.map +1 -1
- package/dist/src/graph/resolve/index.js +12 -12
- package/dist/src/graph/resolve/index.js.map +1 -1
- package/dist/src/graph/resolve/re-exports.d.ts +1 -1
- package/dist/src/graph/resolve/re-exports.d.ts.map +1 -1
- package/dist/src/graph/resolve/re-exports.js +2 -2
- package/dist/src/graph/resolve/re-exports.js.map +1 -1
- package/dist/src/graph/resolve/react-native.js +1 -1
- package/dist/src/graph/resolve/react-native.js.map +1 -1
- package/dist/src/graph/resolve/require-imports.d.ts.map +1 -1
- package/dist/src/graph/resolve/require-imports.js +1 -1
- package/dist/src/graph/resolve/require-imports.js.map +1 -1
- package/dist/src/graph/resolve/specifier.d.ts.map +1 -1
- package/dist/src/graph/resolve/specifier.js +4 -4
- package/dist/src/graph/resolve/specifier.js.map +1 -1
- package/dist/src/graph/resolve/static-imports.d.ts +1 -1
- package/dist/src/graph/resolve/static-imports.d.ts.map +1 -1
- package/dist/src/graph/resolve/static-imports.js +2 -2
- package/dist/src/graph/resolve/static-imports.js.map +1 -1
- package/dist/src/graph/resolve/types.d.ts.map +1 -1
- package/dist/src/graph/resolve/types.js +11 -4
- package/dist/src/graph/resolve/types.js.map +1 -1
- package/dist/src/graph/ripple-impact.d.ts.map +1 -1
- package/dist/src/graph/ripple-impact.js +5 -3
- package/dist/src/graph/ripple-impact.js.map +1 -1
- package/dist/src/graph/risk-profile.d.ts.map +1 -1
- package/dist/src/graph/risk-profile.js +6 -4
- package/dist/src/graph/risk-profile.js.map +1 -1
- package/dist/src/graph/statistics.d.ts.map +1 -1
- package/dist/src/graph/statistics.js +4 -4
- package/dist/src/graph/statistics.js.map +1 -1
- package/dist/src/graph/stats.d.ts.map +1 -1
- package/dist/src/graph/stats.js +9 -15
- package/dist/src/graph/stats.js.map +1 -1
- package/dist/src/graph/subgraph.d.ts +1 -1
- package/dist/src/graph/subgraph.d.ts.map +1 -1
- package/dist/src/graph/subgraph.js +5 -5
- package/dist/src/graph/subgraph.js.map +1 -1
- package/dist/src/graph/topo-sort.d.ts.map +1 -1
- package/dist/src/graph/topo-sort.js +7 -7
- package/dist/src/graph/topo-sort.js.map +1 -1
- package/dist/src/graph/wcc.d.ts.map +1 -1
- package/dist/src/graph/wcc.js +16 -8
- package/dist/src/graph/wcc.js.map +1 -1
- package/dist/src/groups/contract-bridge.d.ts.map +1 -1
- package/dist/src/groups/contract-bridge.js +2 -2
- package/dist/src/groups/contract-bridge.js.map +1 -1
- package/dist/src/groups/contract-registry.js +2 -2
- package/dist/src/groups/contract-registry.js.map +1 -1
- package/dist/src/groups/group-config.d.ts.map +1 -1
- package/dist/src/groups/group-config.js +3 -3
- package/dist/src/groups/group-config.js.map +1 -1
- package/dist/src/groups/group-search.js +2 -2
- package/dist/src/groups/group-search.js.map +1 -1
- package/dist/src/groups/group-sync.d.ts.map +1 -1
- package/dist/src/groups/group-sync.js +3 -3
- package/dist/src/groups/group-sync.js.map +1 -1
- package/dist/src/groups/service-boundary.d.ts.map +1 -1
- package/dist/src/groups/service-boundary.js +7 -4
- package/dist/src/groups/service-boundary.js.map +1 -1
- package/dist/src/groups/topic-extractor.d.ts.map +1 -1
- package/dist/src/groups/topic-extractor.js +1 -1
- package/dist/src/groups/topic-extractor.js.map +1 -1
- package/dist/src/health/analysis-counts-snapshot.d.ts.map +1 -1
- package/dist/src/health/analysis-counts-snapshot.js.map +1 -1
- package/dist/src/health/analysis-counts.js +1 -1
- package/dist/src/health/analysis-counts.js.map +1 -1
- package/dist/src/health/complexity-findings.d.ts.map +1 -1
- package/dist/src/health/complexity-findings.js +1 -1
- package/dist/src/health/complexity-findings.js.map +1 -1
- package/dist/src/health/distribution-thresholds.d.ts.map +1 -1
- package/dist/src/health/distribution-thresholds.js +3 -3
- package/dist/src/health/distribution-thresholds.js.map +1 -1
- package/dist/src/health/grouping.d.ts +1 -1
- package/dist/src/health/grouping.d.ts.map +1 -1
- package/dist/src/health/grouping.js.map +1 -1
- package/dist/src/health/health-grouping.d.ts.map +1 -1
- package/dist/src/health/health-grouping.js +2 -2
- package/dist/src/health/health-grouping.js.map +1 -1
- package/dist/src/health/health-report-types.d.ts.map +1 -1
- package/dist/src/health/health-report-types.js +10 -1
- package/dist/src/health/health-report-types.js.map +1 -1
- package/dist/src/health/health-report.d.ts.map +1 -1
- package/dist/src/health/health-report.js +9 -4
- package/dist/src/health/health-report.js.map +1 -1
- package/dist/src/health/health-score.d.ts +1 -1
- package/dist/src/health/health-score.d.ts.map +1 -1
- package/dist/src/health/health-score.js +7 -7
- package/dist/src/health/health-score.js.map +1 -1
- package/dist/src/health/hotspot-utils.d.ts.map +1 -1
- package/dist/src/health/hotspot-utils.js +4 -8
- package/dist/src/health/hotspot-utils.js.map +1 -1
- package/dist/src/health/hotspots.d.ts.map +1 -1
- package/dist/src/health/large-functions.d.ts.map +1 -1
- package/dist/src/health/large-functions.js.map +1 -1
- package/dist/src/health/ownership-metrics.js +1 -1
- package/dist/src/health/ownership-metrics.js.map +1 -1
- package/dist/src/health/ownership-risk.d.ts.map +1 -1
- package/dist/src/health/ownership-risk.js +3 -3
- package/dist/src/health/ownership-risk.js.map +1 -1
- package/dist/src/health/ownership.d.ts +1 -1
- package/dist/src/health/ownership.d.ts.map +1 -1
- package/dist/src/health/ownership.js +2 -2
- package/dist/src/health/ownership.js.map +1 -1
- package/dist/src/health/risk-profile.d.ts.map +1 -1
- package/dist/src/health/risk-profile.js +1 -1
- package/dist/src/health/risk-profile.js.map +1 -1
- package/dist/src/health/runtime-coverage-report.d.ts.map +1 -1
- package/dist/src/health/runtime-coverage-report.js.map +1 -1
- package/dist/src/health/runtime-coverage.d.ts.map +1 -1
- package/dist/src/health/runtime-coverage.js.map +1 -1
- package/dist/src/health/scores.d.ts.map +1 -1
- package/dist/src/health/scores.js +13 -3
- package/dist/src/health/scores.js.map +1 -1
- package/dist/src/health/target-thresholds.d.ts.map +1 -1
- package/dist/src/health/target-thresholds.js +35 -10
- package/dist/src/health/target-thresholds.js.map +1 -1
- package/dist/src/health/targets.d.ts +1 -1
- package/dist/src/health/targets.d.ts.map +1 -1
- package/dist/src/health/targets.js +12 -12
- package/dist/src/health/targets.js.map +1 -1
- package/dist/src/health/timings.d.ts.map +1 -1
- package/dist/src/health/timings.js +21 -6
- package/dist/src/health/timings.js.map +1 -1
- package/dist/src/health/trend-types.js +2 -2
- package/dist/src/health/trend-types.js.map +1 -1
- package/dist/src/health/vital-signs-compute.js +2 -2
- package/dist/src/health/vital-signs-compute.js.map +1 -1
- package/dist/src/health/vital-signs-snapshot.js +2 -2
- package/dist/src/health/vital-signs-snapshot.js.map +1 -1
- package/dist/src/health/vital-signs.d.ts.map +1 -1
- package/dist/src/health/vital-signs.js +7 -2
- package/dist/src/health/vital-signs.js.map +1 -1
- package/dist/src/index.d.ts +96 -95
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +98 -97
- package/dist/src/index.js.map +1 -1
- package/dist/src/ingest/git-clone.js +7 -7
- package/dist/src/ingest/git-clone.js.map +1 -1
- package/dist/src/ingest/query-memory.d.ts.map +1 -1
- package/dist/src/ingest/query-memory.js +4 -11
- package/dist/src/ingest/query-memory.js.map +1 -1
- package/dist/src/ingest/transcribe.d.ts.map +1 -1
- package/dist/src/ingest/transcribe.js +27 -19
- package/dist/src/ingest/transcribe.js.map +1 -1
- package/dist/src/ingest/url-ingest.js +2 -2
- package/dist/src/ingest/url-ingest.js.map +1 -1
- package/dist/src/init/agent-hooks.d.ts.map +1 -1
- package/dist/src/init/agent-hooks.js +8 -3
- package/dist/src/init/agent-hooks.js.map +1 -1
- package/dist/src/init/git-hooks.d.ts.map +1 -1
- package/dist/src/init/git-hooks.js +9 -6
- package/dist/src/init/git-hooks.js.map +1 -1
- package/dist/src/init/project-detection.d.ts.map +1 -1
- package/dist/src/init/project-detection.js +12 -10
- package/dist/src/init/project-detection.js.map +1 -1
- package/dist/src/license/manager.d.ts.map +1 -1
- package/dist/src/license/manager.js +8 -3
- package/dist/src/license/manager.js.map +1 -1
- package/dist/src/lsp/code-actions.d.ts.map +1 -1
- package/dist/src/lsp/code-actions.js +7 -5
- package/dist/src/lsp/code-actions.js.map +1 -1
- package/dist/src/lsp/code-lens.d.ts.map +1 -1
- package/dist/src/lsp/code-lens.js +1 -1
- package/dist/src/lsp/code-lens.js.map +1 -1
- package/dist/src/lsp/diagnostics-ext.js.map +1 -1
- package/dist/src/lsp/diagnostics-push.d.ts.map +1 -1
- package/dist/src/lsp/diagnostics-push.js +4 -2
- package/dist/src/lsp/diagnostics-push.js.map +1 -1
- package/dist/src/lsp/diagnostics.js +2 -2
- package/dist/src/lsp/diagnostics.js.map +1 -1
- package/dist/src/lsp/hover.d.ts +1 -1
- package/dist/src/lsp/hover.d.ts.map +1 -1
- package/dist/src/lsp/hover.js +1 -1
- package/dist/src/lsp/hover.js.map +1 -1
- package/dist/src/lsp/server.d.ts.map +1 -1
- package/dist/src/lsp/server.js.map +1 -1
- package/dist/src/mcp/params.d.ts.map +1 -1
- package/dist/src/mcp/resources.d.ts.map +1 -1
- package/dist/src/mcp/resources.js +25 -10
- package/dist/src/mcp/resources.js.map +1 -1
- package/dist/src/mcp/tool-builders.d.ts +1 -1
- package/dist/src/mcp/tool-builders.d.ts.map +1 -1
- package/dist/src/mcp/tool-builders.js +15 -15
- package/dist/src/mcp/tool-builders.js.map +1 -1
- package/dist/src/mcp-resources/graph-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/graph-resource.js.map +1 -1
- package/dist/src/mcp-resources/index.d.ts +3 -3
- package/dist/src/mcp-resources/index.d.ts.map +1 -1
- package/dist/src/mcp-resources/index.js +3 -3
- package/dist/src/mcp-resources/index.js.map +1 -1
- package/dist/src/mcp-resources/named-cluster-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/named-cluster-resource.js +2 -4
- package/dist/src/mcp-resources/named-cluster-resource.js.map +1 -1
- package/dist/src/mcp-resources/named-process-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/named-process-resource.js +1 -1
- package/dist/src/mcp-resources/named-process-resource.js.map +1 -1
- package/dist/src/mcp-resources/processes-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/processes-resource.js.map +1 -1
- package/dist/src/mcp-resources/repo-context-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/repo-context-resource.js +18 -6
- package/dist/src/mcp-resources/repo-context-resource.js.map +1 -1
- package/dist/src/mcp-resources/schema-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/schema-resource.js.map +1 -1
- package/dist/src/mcp-resources/wiki-resource.d.ts.map +1 -1
- package/dist/src/mcp-resources/wiki-resource.js +2 -2
- package/dist/src/mcp-resources/wiki-resource.js.map +1 -1
- package/dist/src/mcp-tools/api-impact.d.ts.map +1 -1
- package/dist/src/mcp-tools/api-impact.js +2 -2
- package/dist/src/mcp-tools/api-impact.js.map +1 -1
- package/dist/src/mcp-tools/context.d.ts.map +1 -1
- package/dist/src/mcp-tools/context.js.map +1 -1
- package/dist/src/mcp-tools/cypher.d.ts +1 -1
- package/dist/src/mcp-tools/cypher.d.ts.map +1 -1
- package/dist/src/mcp-tools/cypher.js.map +1 -1
- package/dist/src/mcp-tools/detect-changes.d.ts.map +1 -1
- package/dist/src/mcp-tools/detect-changes.js +12 -7
- package/dist/src/mcp-tools/detect-changes.js.map +1 -1
- package/dist/src/mcp-tools/explain.d.ts.map +1 -1
- package/dist/src/mcp-tools/explain.js.map +1 -1
- package/dist/src/mcp-tools/graph-query.d.ts.map +1 -1
- package/dist/src/mcp-tools/graph-query.js +2 -2
- package/dist/src/mcp-tools/graph-query.js.map +1 -1
- package/dist/src/mcp-tools/group-list.d.ts.map +1 -1
- package/dist/src/mcp-tools/group-list.js +3 -5
- package/dist/src/mcp-tools/group-list.js.map +1 -1
- package/dist/src/mcp-tools/group-query.d.ts.map +1 -1
- package/dist/src/mcp-tools/group-query.js +1 -1
- package/dist/src/mcp-tools/group-query.js.map +1 -1
- package/dist/src/mcp-tools/group-sync.d.ts.map +1 -1
- package/dist/src/mcp-tools/group-sync.js +2 -2
- package/dist/src/mcp-tools/group-sync.js.map +1 -1
- package/dist/src/mcp-tools/impact.d.ts.map +1 -1
- package/dist/src/mcp-tools/impact.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +15 -15
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +15 -15
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/list-repos.js +2 -2
- package/dist/src/mcp-tools/list-repos.js.map +1 -1
- package/dist/src/mcp-tools/neighbors.d.ts.map +1 -1
- package/dist/src/mcp-tools/neighbors.js +3 -3
- package/dist/src/mcp-tools/neighbors.js.map +1 -1
- package/dist/src/mcp-tools/query.d.ts.map +1 -1
- package/dist/src/mcp-tools/query.js +2 -2
- package/dist/src/mcp-tools/query.js.map +1 -1
- package/dist/src/mcp-tools/rename.d.ts.map +1 -1
- package/dist/src/mcp-tools/rename.js +1 -1
- package/dist/src/mcp-tools/rename.js.map +1 -1
- package/dist/src/mcp-tools/route-map.js +3 -3
- package/dist/src/mcp-tools/route-map.js.map +1 -1
- package/dist/src/mcp-tools/serve.d.ts.map +1 -1
- package/dist/src/mcp-tools/serve.js +2 -2
- package/dist/src/mcp-tools/serve.js.map +1 -1
- package/dist/src/mcp-tools/shape-check.js +4 -4
- package/dist/src/mcp-tools/shape-check.js.map +1 -1
- package/dist/src/mcp-tools/staleness.d.ts.map +1 -1
- package/dist/src/mcp-tools/staleness.js +2 -2
- package/dist/src/mcp-tools/staleness.js.map +1 -1
- package/dist/src/mcp-tools/tool-map.d.ts.map +1 -1
- package/dist/src/mcp-tools/tool-map.js +1 -1
- package/dist/src/mcp-tools/tool-map.js.map +1 -1
- package/dist/src/mcp-tools/wiki-build.d.ts.map +1 -1
- package/dist/src/migrate/jscpd.d.ts.map +1 -1
- package/dist/src/migrate/jscpd.js +7 -7
- package/dist/src/migrate/jscpd.js.map +1 -1
- package/dist/src/migrate/jsonc-gen.d.ts.map +1 -1
- package/dist/src/migrate/jsonc-gen.js +9 -2
- package/dist/src/migrate/jsonc-gen.js.map +1 -1
- package/dist/src/migrate/knip.d.ts.map +1 -1
- package/dist/src/migrate/knip.js +2 -2
- package/dist/src/migrate/knip.js.map +1 -1
- package/dist/src/migrate/toml-gen.d.ts.map +1 -1
- package/dist/src/migrate/toml-gen.js +13 -7
- package/dist/src/migrate/toml-gen.js.map +1 -1
- package/dist/src/parsers/c.d.ts.map +1 -1
- package/dist/src/parsers/c.js +15 -6
- package/dist/src/parsers/c.js.map +1 -1
- package/dist/src/parsers/cpp.d.ts.map +1 -1
- package/dist/src/parsers/cpp.js +13 -5
- package/dist/src/parsers/cpp.js.map +1 -1
- package/dist/src/parsers/csharp.d.ts.map +1 -1
- package/dist/src/parsers/csharp.js +1 -18
- package/dist/src/parsers/csharp.js.map +1 -1
- package/dist/src/parsers/dart.d.ts.map +1 -1
- package/dist/src/parsers/dart.js +18 -5
- package/dist/src/parsers/dart.js.map +1 -1
- package/dist/src/parsers/extractor.d.ts +1 -1
- package/dist/src/parsers/extractor.d.ts.map +1 -1
- package/dist/src/parsers/extractor.js +59 -23
- package/dist/src/parsers/extractor.js.map +1 -1
- package/dist/src/parsers/go.d.ts.map +1 -1
- package/dist/src/parsers/go.js +1 -3
- package/dist/src/parsers/go.js.map +1 -1
- package/dist/src/parsers/java.d.ts.map +1 -1
- package/dist/src/parsers/java.js +5 -4
- package/dist/src/parsers/java.js.map +1 -1
- package/dist/src/parsers/kotlin.d.ts +1 -1
- package/dist/src/parsers/kotlin.d.ts.map +1 -1
- package/dist/src/parsers/kotlin.js +5 -6
- package/dist/src/parsers/kotlin.js.map +1 -1
- package/dist/src/parsers/language-config.d.ts +24 -10
- package/dist/src/parsers/language-config.d.ts.map +1 -1
- package/dist/src/parsers/language-config.js +14 -1
- package/dist/src/parsers/language-config.js.map +1 -1
- package/dist/src/parsers/language-parsers.d.ts +1 -1
- package/dist/src/parsers/language-parsers.d.ts.map +1 -1
- package/dist/src/parsers/language-parsers.js +34 -0
- package/dist/src/parsers/language-parsers.js.map +1 -1
- package/dist/src/parsers/loader.d.ts +8 -1
- package/dist/src/parsers/loader.d.ts.map +1 -1
- package/dist/src/parsers/loader.js +91 -32
- package/dist/src/parsers/loader.js.map +1 -1
- package/dist/src/parsers/named-bindings.d.ts.map +1 -1
- package/dist/src/parsers/named-bindings.js.map +1 -1
- package/dist/src/parsers/php.d.ts.map +1 -1
- package/dist/src/parsers/php.js +2 -7
- package/dist/src/parsers/php.js.map +1 -1
- package/dist/src/parsers/python.d.ts.map +1 -1
- package/dist/src/parsers/python.js +1 -3
- package/dist/src/parsers/python.js.map +1 -1
- package/dist/src/parsers/ruby.d.ts +1 -1
- package/dist/src/parsers/ruby.d.ts.map +1 -1
- package/dist/src/parsers/ruby.js +5 -3
- package/dist/src/parsers/ruby.js.map +1 -1
- package/dist/src/parsers/rust.d.ts.map +1 -1
- package/dist/src/parsers/rust.js +5 -4
- package/dist/src/parsers/rust.js.map +1 -1
- package/dist/src/parsers/swift.d.ts.map +1 -1
- package/dist/src/parsers/swift.js +1 -3
- package/dist/src/parsers/swift.js.map +1 -1
- package/dist/src/parsers/typescript.d.ts +3 -0
- package/dist/src/parsers/typescript.d.ts.map +1 -1
- package/dist/src/parsers/typescript.js +44 -37
- package/dist/src/parsers/typescript.js.map +1 -1
- package/dist/src/parsers/vue.d.ts +14 -0
- package/dist/src/parsers/vue.d.ts.map +1 -1
- package/dist/src/parsers/vue.js +17 -27
- package/dist/src/parsers/vue.js.map +1 -1
- package/dist/src/pipeline/cluster-only.js +1 -1
- package/dist/src/pipeline/cluster-only.js.map +1 -1
- package/dist/src/pipeline/orchestrator.d.ts +1 -1
- package/dist/src/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/src/pipeline/orchestrator.js +97 -56
- package/dist/src/pipeline/orchestrator.js.map +1 -1
- package/dist/src/pipeline/phases/boundary.d.ts.map +1 -1
- package/dist/src/pipeline/phases/boundary.js +10 -7
- package/dist/src/pipeline/phases/boundary.js.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/electron-ipc.d.ts.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/electron-ipc.js +2 -2
- package/dist/src/pipeline/phases/bridge-adapters/electron-ipc.js.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/registry.d.ts.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/registry.js +2 -2
- package/dist/src/pipeline/phases/bridge-adapters/registry.js.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/tauri.d.ts.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/tauri.js +2 -2
- package/dist/src/pipeline/phases/bridge-adapters/tauri.js.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/wails.d.ts.map +1 -1
- package/dist/src/pipeline/phases/bridge-adapters/wails.js.map +1 -1
- package/dist/src/pipeline/phases/bridge-resolver.d.ts.map +1 -1
- package/dist/src/pipeline/phases/bridge-resolver.js +9 -3
- package/dist/src/pipeline/phases/bridge-resolver.js.map +1 -1
- package/dist/src/pipeline/phases/call-site-extractors.d.ts.map +1 -1
- package/dist/src/pipeline/phases/call-site-extractors.js +241 -29
- package/dist/src/pipeline/phases/call-site-extractors.js.map +1 -1
- package/dist/src/pipeline/phases/communities.d.ts.map +1 -1
- package/dist/src/pipeline/phases/communities.js +3 -5
- package/dist/src/pipeline/phases/communities.js.map +1 -1
- package/dist/src/pipeline/phases/contextual-proximity.d.ts.map +1 -1
- package/dist/src/pipeline/phases/contextual-proximity.js +5 -2
- package/dist/src/pipeline/phases/contextual-proximity.js.map +1 -1
- package/dist/src/pipeline/phases/cross-file.d.ts +1 -1
- package/dist/src/pipeline/phases/cross-file.d.ts.map +1 -1
- package/dist/src/pipeline/phases/cross-file.js +4 -4
- package/dist/src/pipeline/phases/cross-file.js.map +1 -1
- package/dist/src/pipeline/phases/docs-parse.d.ts +1 -1
- package/dist/src/pipeline/phases/docs-parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/docs-parse.js +77 -31
- package/dist/src/pipeline/phases/docs-parse.js.map +1 -1
- package/dist/src/pipeline/phases/evidence.d.ts.map +1 -1
- package/dist/src/pipeline/phases/evidence.js.map +1 -1
- package/dist/src/pipeline/phases/field-access.d.ts +1 -1
- package/dist/src/pipeline/phases/field-access.d.ts.map +1 -1
- package/dist/src/pipeline/phases/field-access.js +1 -1
- package/dist/src/pipeline/phases/field-access.js.map +1 -1
- package/dist/src/pipeline/phases/framework-detect.d.ts.map +1 -1
- package/dist/src/pipeline/phases/framework-detect.js +22 -13
- package/dist/src/pipeline/phases/framework-detect.js.map +1 -1
- package/dist/src/pipeline/phases/god-nodes.d.ts +1 -1
- package/dist/src/pipeline/phases/god-nodes.d.ts.map +1 -1
- package/dist/src/pipeline/phases/god-nodes.js +6 -5
- package/dist/src/pipeline/phases/god-nodes.js.map +1 -1
- package/dist/src/pipeline/phases/import-resolver.d.ts.map +1 -1
- package/dist/src/pipeline/phases/import-resolver.js +8 -6
- package/dist/src/pipeline/phases/import-resolver.js.map +1 -1
- package/dist/src/pipeline/phases/leiden.d.ts.map +1 -1
- package/dist/src/pipeline/phases/leiden.js.map +1 -1
- package/dist/src/pipeline/phases/llm-extract.d.ts.map +1 -1
- package/dist/src/pipeline/phases/llm-extract.js +39 -14
- package/dist/src/pipeline/phases/llm-extract.js.map +1 -1
- package/dist/src/pipeline/phases/markdown.d.ts +1 -1
- package/dist/src/pipeline/phases/markdown.d.ts.map +1 -1
- package/dist/src/pipeline/phases/markdown.js +5 -5
- package/dist/src/pipeline/phases/markdown.js.map +1 -1
- package/dist/src/pipeline/phases/middleware-extractor.js +1 -1
- package/dist/src/pipeline/phases/middleware-extractor.js.map +1 -1
- package/dist/src/pipeline/phases/module-resolution.d.ts.map +1 -1
- package/dist/src/pipeline/phases/module-resolution.js +60 -28
- package/dist/src/pipeline/phases/module-resolution.js.map +1 -1
- package/dist/src/pipeline/phases/mro.d.ts +1 -1
- package/dist/src/pipeline/phases/mro.d.ts.map +1 -1
- package/dist/src/pipeline/phases/mro.js +9 -6
- package/dist/src/pipeline/phases/mro.js.map +1 -1
- package/dist/src/pipeline/phases/orm.d.ts.map +1 -1
- package/dist/src/pipeline/phases/orm.js +6 -6
- package/dist/src/pipeline/phases/orm.js.map +1 -1
- package/dist/src/pipeline/phases/parse.d.ts +1 -1
- package/dist/src/pipeline/phases/parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/parse.js +33 -21
- package/dist/src/pipeline/phases/parse.js.map +1 -1
- package/dist/src/pipeline/phases/pdf-parse.d.ts +1 -1
- package/dist/src/pipeline/phases/pdf-parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/pdf-parse.js +38 -17
- package/dist/src/pipeline/phases/pdf-parse.js.map +1 -1
- package/dist/src/pipeline/phases/processes.d.ts.map +1 -1
- package/dist/src/pipeline/phases/processes.js +3 -3
- package/dist/src/pipeline/phases/processes.js.map +1 -1
- package/dist/src/pipeline/phases/re-export-propagation.d.ts +1 -1
- package/dist/src/pipeline/phases/re-export-propagation.d.ts.map +1 -1
- package/dist/src/pipeline/phases/re-export-propagation.js +21 -11
- package/dist/src/pipeline/phases/re-export-propagation.js.map +1 -1
- package/dist/src/pipeline/phases/reachability.d.ts.map +1 -1
- package/dist/src/pipeline/phases/reachability.js +23 -11
- package/dist/src/pipeline/phases/reachability.js.map +1 -1
- package/dist/src/pipeline/phases/routes.d.ts.map +1 -1
- package/dist/src/pipeline/phases/routes.js +27 -11
- package/dist/src/pipeline/phases/routes.js.map +1 -1
- package/dist/src/pipeline/phases/scan.d.ts.map +1 -1
- package/dist/src/pipeline/phases/scan.js +48 -12
- package/dist/src/pipeline/phases/scan.js.map +1 -1
- package/dist/src/pipeline/phases/scope-resolution.d.ts +2 -2
- package/dist/src/pipeline/phases/scope-resolution.d.ts.map +1 -1
- package/dist/src/pipeline/phases/scope-resolution.js +37 -17
- package/dist/src/pipeline/phases/scope-resolution.js.map +1 -1
- package/dist/src/pipeline/phases/structure.d.ts +1 -1
- package/dist/src/pipeline/phases/structure.d.ts.map +1 -1
- package/dist/src/pipeline/phases/structure.js +24 -12
- package/dist/src/pipeline/phases/structure.js.map +1 -1
- package/dist/src/pipeline/phases/suggest.d.ts +1 -1
- package/dist/src/pipeline/phases/suggest.d.ts.map +1 -1
- package/dist/src/pipeline/phases/suggest.js +39 -9
- package/dist/src/pipeline/phases/suggest.js.map +1 -1
- package/dist/src/pipeline/phases/surprises.d.ts +1 -1
- package/dist/src/pipeline/phases/surprises.d.ts.map +1 -1
- package/dist/src/pipeline/phases/surprises.js +11 -9
- package/dist/src/pipeline/phases/surprises.js.map +1 -1
- package/dist/src/pipeline/phases/tools.d.ts.map +1 -1
- package/dist/src/pipeline/phases/tools.js +6 -6
- package/dist/src/pipeline/phases/tools.js.map +1 -1
- package/dist/src/pipeline/phases/variables-phase.d.ts.map +1 -1
- package/dist/src/pipeline/phases/variables-phase.js.map +1 -1
- package/dist/src/pipeline/phases/variables.js +5 -5
- package/dist/src/pipeline/phases/variables.js.map +1 -1
- package/dist/src/pipeline/phases/wildcard-phase.d.ts.map +1 -1
- package/dist/src/pipeline/phases/wildcard-phase.js.map +1 -1
- package/dist/src/pipeline/phases/wildcard-synthesis.d.ts +1 -1
- package/dist/src/pipeline/phases/wildcard-synthesis.d.ts.map +1 -1
- package/dist/src/pipeline/phases/wildcard-synthesis.js +13 -9
- package/dist/src/pipeline/phases/wildcard-synthesis.js.map +1 -1
- package/dist/src/pipeline/progress.d.ts.map +1 -1
- package/dist/src/pipeline/progress.js +4 -2
- package/dist/src/pipeline/progress.js.map +1 -1
- package/dist/src/pipeline/runner.d.ts +1 -2
- package/dist/src/pipeline/runner.d.ts.map +1 -1
- package/dist/src/pipeline/runner.js +7 -9
- package/dist/src/pipeline/runner.js.map +1 -1
- package/dist/src/pipeline/types.d.ts +1 -1
- package/dist/src/pipeline/types.d.ts.map +1 -1
- package/dist/src/query/cypher-parser.d.ts.map +1 -1
- package/dist/src/query/cypher-parser.js +4 -1
- package/dist/src/query/cypher-parser.js.map +1 -1
- package/dist/src/registry/repo-registry.js +4 -4
- package/dist/src/registry/repo-registry.js.map +1 -1
- package/dist/src/regression/baseline-deltas.d.ts.map +1 -1
- package/dist/src/regression/baseline-deltas.js +40 -22
- package/dist/src/regression/baseline-deltas.js.map +1 -1
- package/dist/src/regression/baseline.d.ts.map +1 -1
- package/dist/src/regression/baseline.js +2 -2
- package/dist/src/regression/baseline.js.map +1 -1
- package/dist/src/regression/counts.d.ts.map +1 -1
- package/dist/src/regression/counts.js +17 -6
- package/dist/src/regression/counts.js.map +1 -1
- package/dist/src/regression/outcome.js +1 -1
- package/dist/src/regression/outcome.js.map +1 -1
- package/dist/src/regression/tolerance.d.ts.map +1 -1
- package/dist/src/regression/tolerance.js +3 -3
- package/dist/src/regression/tolerance.js.map +1 -1
- package/dist/src/report/attributed-duplication.d.ts.map +1 -1
- package/dist/src/report/attributed-duplication.js +2 -2
- package/dist/src/report/attributed-duplication.js.map +1 -1
- package/dist/src/report/badge-svg.d.ts.map +1 -1
- package/dist/src/report/badge-svg.js +107 -18
- package/dist/src/report/badge-svg.js.map +1 -1
- package/dist/src/report/cross-ref-human.d.ts.map +1 -1
- package/dist/src/report/cross-ref-human.js +5 -7
- package/dist/src/report/cross-ref-human.js.map +1 -1
- package/dist/src/report/duplication-grouping.d.ts.map +1 -1
- package/dist/src/report/duplication-grouping.js +3 -1
- package/dist/src/report/duplication-grouping.js.map +1 -1
- package/dist/src/report/grouping.d.ts.map +1 -1
- package/dist/src/report/grouping.js +6 -6
- package/dist/src/report/grouping.js.map +1 -1
- package/dist/src/report/human-check.d.ts +1 -1
- package/dist/src/report/human-check.d.ts.map +1 -1
- package/dist/src/report/human-check.js +17 -13
- package/dist/src/report/human-check.js.map +1 -1
- package/dist/src/report/human-dupes.d.ts +2 -2
- package/dist/src/report/human-dupes.d.ts.map +1 -1
- package/dist/src/report/human-dupes.js +13 -11
- package/dist/src/report/human-dupes.js.map +1 -1
- package/dist/src/report/human-health.d.ts +1 -1
- package/dist/src/report/human-health.d.ts.map +1 -1
- package/dist/src/report/human-health.js +6 -2
- package/dist/src/report/human-health.js.map +1 -1
- package/dist/src/report/human.d.ts.map +1 -1
- package/dist/src/report/human.js +8 -2
- package/dist/src/report/human.js.map +1 -1
- package/dist/src/report/json-builders.d.ts.map +1 -1
- package/dist/src/report/json-builders.js +13 -4
- package/dist/src/report/json-builders.js.map +1 -1
- package/dist/src/report/json-schema.d.ts.map +1 -1
- package/dist/src/report/json-schema.js +2 -2
- package/dist/src/report/json-schema.js.map +1 -1
- package/dist/src/report/number-format.d.ts +1 -1
- package/dist/src/report/number-format.d.ts.map +1 -1
- package/dist/src/report/number-format.js +5 -9
- package/dist/src/report/number-format.js.map +1 -1
- package/dist/src/report/output-grouped.d.ts +1 -1
- package/dist/src/report/output-grouped.d.ts.map +1 -1
- package/dist/src/report/output-grouped.js +6 -8
- package/dist/src/report/output-grouped.js.map +1 -1
- package/dist/src/report/pipeline-perf.d.ts.map +1 -1
- package/dist/src/report/pipeline-perf.js +16 -4
- package/dist/src/report/pipeline-perf.js.map +1 -1
- package/dist/src/report/trace-human.d.ts.map +1 -1
- package/dist/src/report/trace-human.js +8 -2
- package/dist/src/report/trace-human.js.map +1 -1
- package/dist/src/reporting/graph-report.d.ts.map +1 -1
- package/dist/src/reporting/graph-report.js +40 -22
- package/dist/src/reporting/graph-report.js.map +1 -1
- package/dist/src/results/fallow-results.d.ts.map +1 -1
- package/dist/src/results/fallow-results.js +1 -1
- package/dist/src/results/fallow-results.js.map +1 -1
- package/dist/src/results/types.d.ts.map +1 -1
- package/dist/src/results/types.js +10 -10
- package/dist/src/results/types.js.map +1 -1
- package/dist/src/search/ast-chunker.d.ts.map +1 -1
- package/dist/src/search/ast-chunker.js +2 -2
- package/dist/src/search/ast-chunker.js.map +1 -1
- package/dist/src/search/hybrid-query.d.ts +17 -6
- package/dist/src/search/hybrid-query.d.ts.map +1 -1
- package/dist/src/search/hybrid-query.js +10 -3
- package/dist/src/search/hybrid-query.js.map +1 -1
- package/dist/src/search/rrf.d.ts.map +1 -1
- package/dist/src/search/rrf.js.map +1 -1
- package/dist/src/security/safe-fetch.js +1 -1
- package/dist/src/security/safe-fetch.js.map +1 -1
- package/dist/src/security/sensitive-files.js +2 -2
- package/dist/src/security/sensitive-files.js.map +1 -1
- package/dist/src/skills/platform-skills.d.ts.map +1 -1
- package/dist/src/skills/platform-skills.js +5 -7
- package/dist/src/skills/platform-skills.js.map +1 -1
- package/dist/src/staleness/git-staleness.d.ts.map +1 -1
- package/dist/src/staleness/git-staleness.js +45 -7
- package/dist/src/staleness/git-staleness.js.map +1 -1
- package/dist/src/storage/db.d.ts.map +1 -1
- package/dist/src/storage/db.js +13 -7
- package/dist/src/storage/db.js.map +1 -1
- package/dist/src/storage/file-cache.d.ts.map +1 -1
- package/dist/src/storage/file-cache.js +9 -5
- package/dist/src/storage/file-cache.js.map +1 -1
- package/dist/src/storage/fts-store.d.ts.map +1 -1
- package/dist/src/storage/fts-store.js +141 -25
- package/dist/src/storage/fts-store.js.map +1 -1
- package/dist/src/storage/node-store.js +1 -1
- package/dist/src/storage/node-store.js.map +1 -1
- package/dist/src/storage/suppressions.d.ts.map +1 -1
- package/dist/src/storage/suppressions.js +8 -7
- package/dist/src/storage/suppressions.js.map +1 -1
- package/dist/src/storage/unlinked-refs.d.ts.map +1 -1
- package/dist/src/storage/unlinked-refs.js +12 -8
- package/dist/src/storage/unlinked-refs.js.map +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +24 -8
- package/dist/src/types.js.map +1 -1
- package/dist/src/validation/extraction-validator.d.ts +1 -1
- package/dist/src/validation/extraction-validator.d.ts.map +1 -1
- package/dist/src/validation/extraction-validator.js +34 -7
- package/dist/src/validation/extraction-validator.js.map +1 -1
- package/dist/src/watch/watcher.d.ts +1 -1
- package/dist/src/watch/watcher.d.ts.map +1 -1
- package/dist/src/watch/watcher.js +24 -9
- package/dist/src/watch/watcher.js.map +1 -1
- package/dist/src/web/analyze-api.d.ts +1 -1
- package/dist/src/web/analyze-api.d.ts.map +1 -1
- package/dist/src/web/analyze-api.js +6 -6
- package/dist/src/web/analyze-api.js.map +1 -1
- package/dist/src/web/api.d.ts +1 -1
- package/dist/src/web/api.d.ts.map +1 -1
- package/dist/src/web/api.js +107 -67
- package/dist/src/web/api.js.map +1 -1
- package/dist/src/web/async-jobs.d.ts.map +1 -1
- package/dist/src/web/async-jobs.js +6 -5
- package/dist/src/web/async-jobs.js.map +1 -1
- package/dist/src/web/mcp-http.js +4 -4
- package/dist/src/web/mcp-http.js.map +1 -1
- package/dist/src/web/server.d.ts.map +1 -1
- package/dist/src/web/server.js +2 -2
- package/dist/src/web/server.js.map +1 -1
- package/dist/src/wiki/gist-publisher.js +2 -2
- package/dist/src/wiki/gist-publisher.js.map +1 -1
- package/dist/src/wiki/prompt-builder.js +1 -1
- package/dist/src/wiki/prompt-builder.js.map +1 -1
- package/dist/src/wiki/providers.js +7 -7
- package/dist/src/wiki/providers.js.map +1 -1
- package/dist/src/wiki/wiki-generator.d.ts +3 -4
- package/dist/src/wiki/wiki-generator.d.ts.map +1 -1
- package/dist/src/wiki/wiki-generator.js +23 -12
- package/dist/src/wiki/wiki-generator.js.map +1 -1
- package/dist/src/wiki/wiki-store.d.ts.map +1 -1
- package/dist/src/wiki/wiki-store.js +5 -3
- package/dist/src/wiki/wiki-store.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wasm/manifest.json +58 -0
- package/dist/wasm/tree-sitter-c.wasm +0 -0
- package/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/wasm/tree-sitter-cpp.wasm +0 -0
- package/dist/wasm/tree-sitter-dart.wasm +0 -0
- package/dist/wasm/tree-sitter-go.wasm +0 -0
- package/dist/wasm/tree-sitter-java.wasm +0 -0
- package/dist/wasm/tree-sitter-kotlin.wasm +0 -0
- package/dist/wasm/tree-sitter-php.wasm +0 -0
- package/dist/wasm/tree-sitter-python.wasm +0 -0
- package/dist/wasm/tree-sitter-ruby.wasm +0 -0
- package/dist/wasm/tree-sitter-rust.wasm +0 -0
- package/dist/wasm/tree-sitter-swift.wasm +0 -0
- package/dist/wasm/tree-sitter-tsx.wasm +0 -0
- package/dist/wasm/tree-sitter-typescript.wasm +0 -0
- package/package.json +22 -13
package/dist/src/graph/stats.js
CHANGED
|
@@ -44,7 +44,7 @@ function buildRiskProfile(values) {
|
|
|
44
44
|
else
|
|
45
45
|
critical++;
|
|
46
46
|
}
|
|
47
|
-
const pct = (n) => total > 0 ? Math.round((n / total) * 100) : 0;
|
|
47
|
+
const pct = (n) => (total > 0 ? Math.round((n / total) * 100) : 0);
|
|
48
48
|
return {
|
|
49
49
|
low,
|
|
50
50
|
medium,
|
|
@@ -60,20 +60,15 @@ function buildRiskProfile(values) {
|
|
|
60
60
|
* Compute full coupling profile from SQLite.
|
|
61
61
|
*/
|
|
62
62
|
export function computeCouplingProfile(db) {
|
|
63
|
-
const fanInRows = stmt(db, 'SELECT target_id, COUNT(*) as c FROM edges GROUP BY target_id')
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
.get().n;
|
|
69
|
-
const fanInValues = fanInRows.map(r => r.c).sort((a, b) => a - b);
|
|
70
|
-
const fanOutValues = fanOutRows.map(r => r.c).sort((a, b) => a - b);
|
|
63
|
+
const fanInRows = stmt(db, 'SELECT target_id, COUNT(*) as c FROM edges GROUP BY target_id').all();
|
|
64
|
+
const fanOutRows = stmt(db, 'SELECT source_id, COUNT(*) as c FROM edges GROUP BY source_id').all();
|
|
65
|
+
const totalFiles = stmt(db, "SELECT COUNT(*) as n FROM nodes WHERE label = 'File'").get().n;
|
|
66
|
+
const fanInValues = fanInRows.map((r) => r.c).sort((a, b) => a - b);
|
|
67
|
+
const fanOutValues = fanOutRows.map((r) => r.c).sort((a, b) => a - b);
|
|
71
68
|
const p95FanIn = percentile(fanInValues, 95);
|
|
72
69
|
// Use binary search instead of O(N) filter to count elements above p95 threshold
|
|
73
70
|
const couplingHighCount = fanInValues.length - upperBound(fanInValues, p95FanIn);
|
|
74
|
-
const couplingHighPct = fanInValues.length > 0
|
|
75
|
-
? Math.round((couplingHighCount / fanInValues.length) * 100)
|
|
76
|
-
: 0;
|
|
71
|
+
const couplingHighPct = fanInValues.length > 0 ? Math.round((couplingHighCount / fanInValues.length) * 100) : 0;
|
|
77
72
|
return {
|
|
78
73
|
p50FanIn: percentile(fanInValues, 50),
|
|
79
74
|
p75FanIn: percentile(fanInValues, 75),
|
|
@@ -91,9 +86,8 @@ export function computeCouplingProfile(db) {
|
|
|
91
86
|
export function computeGraphStats(db) {
|
|
92
87
|
const nodeCount = stmt(db, 'SELECT COUNT(*) as n FROM nodes').get().n;
|
|
93
88
|
const edgeCount = stmt(db, 'SELECT COUNT(*) as n FROM edges').get().n;
|
|
94
|
-
const communityCount = stmt(db,
|
|
95
|
-
const fileCount = stmt(db, "SELECT COUNT(*) as n FROM nodes WHERE label = 'File'")
|
|
96
|
-
.get().n;
|
|
89
|
+
const communityCount = stmt(db, 'SELECT COUNT(DISTINCT community_id) as n FROM nodes WHERE community_id IS NOT NULL').get().n;
|
|
90
|
+
const fileCount = stmt(db, "SELECT COUNT(*) as n FROM nodes WHERE label = 'File'").get().n;
|
|
97
91
|
const couplingProfile = computeCouplingProfile(db);
|
|
98
92
|
return {
|
|
99
93
|
nodeCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/graph/stats.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsD,CAAC;AAEpF,SAAS,IAAI,CAAC,EAAqB,EAAE,GAAW;IAC9C,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/graph/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { MonographNode, MonographEdge } from '../types.js';
|
|
2
1
|
import type { MonographDb } from '../storage/db.js';
|
|
2
|
+
import type { MonographEdge, MonographNode } from '../types.js';
|
|
3
3
|
export interface InducedSubgraph {
|
|
4
4
|
nodes: MonographNode[];
|
|
5
5
|
edges: MonographEdge[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../../src/graph/subgraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../../src/graph/subgraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAwED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAuE1F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAkCjE"}
|
|
@@ -54,14 +54,14 @@ export function extractInducedSubgraph(db, nodeIds) {
|
|
|
54
54
|
}
|
|
55
55
|
return results;
|
|
56
56
|
}
|
|
57
|
-
const rawNodes = queryChunked(nodeIds, SQLITE_VAR_LIMIT, stmts.nodes, ph => `SELECT id, label, name, file_path, start_line, end_line, community_id, is_exported, language, properties FROM nodes WHERE id IN (${ph})`);
|
|
57
|
+
const rawNodes = queryChunked(nodeIds, SQLITE_VAR_LIMIT, stmts.nodes, (ph) => `SELECT id, label, name, file_path, start_line, end_line, community_id, is_exported, language, properties FROM nodes WHERE id IN (${ph})`);
|
|
58
58
|
// For edges: query by source_id chunks (1 bind per row), then filter target in-memory.
|
|
59
59
|
const nodeSet = new Set(nodeIds);
|
|
60
60
|
const allSourceEdges = queryChunked(nodeIds, SQLITE_VAR_LIMIT, stmts.edges,
|
|
61
61
|
// Drop unused 'evidence' column to reduce row data transfer
|
|
62
|
-
ph => `SELECT id, source_id, target_id, relation, confidence, confidence_score, reason FROM edges WHERE source_id IN (${ph})`);
|
|
63
|
-
const rawEdges = allSourceEdges.filter(e => nodeSet.has(e.target_id));
|
|
64
|
-
const nodes = rawNodes.map(n => ({
|
|
62
|
+
(ph) => `SELECT id, source_id, target_id, relation, confidence, confidence_score, reason FROM edges WHERE source_id IN (${ph})`);
|
|
63
|
+
const rawEdges = allSourceEdges.filter((e) => nodeSet.has(e.target_id));
|
|
64
|
+
const nodes = rawNodes.map((n) => ({
|
|
65
65
|
id: n.id,
|
|
66
66
|
label: n.label,
|
|
67
67
|
name: n.name,
|
|
@@ -74,7 +74,7 @@ export function extractInducedSubgraph(db, nodeIds) {
|
|
|
74
74
|
language: n.language ?? undefined,
|
|
75
75
|
properties: n.properties ? JSON.parse(n.properties) : undefined,
|
|
76
76
|
}));
|
|
77
|
-
const edges = rawEdges.map(e => ({
|
|
77
|
+
const edges = rawEdges.map((e) => ({
|
|
78
78
|
id: e.id,
|
|
79
79
|
sourceId: e.source_id,
|
|
80
80
|
targetId: e.target_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/graph/subgraph.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,iFAAiF;AACjF,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACnD,SAAS,YAAY,CAAC,CAAS;IAC7B,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/graph/subgraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topo-sort.d.ts","sourceRoot":"","sources":["../../../src/graph/topo-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B;;kFAE8E;IAC9E,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,cAAc,CAyEpE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"topo-sort.d.ts","sourceRoot":"","sources":["../../../src/graph/topo-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B;;kFAE8E;IAC9E,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,cAAc,CAyEpE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAsDR"}
|
|
@@ -15,7 +15,7 @@ export function topologicalLevelSort(db) {
|
|
|
15
15
|
const nodeRows = db.prepare('SELECT id FROM nodes').all();
|
|
16
16
|
if (nodeRows.length === 0)
|
|
17
17
|
return { levels: [], cycleCount: 0 };
|
|
18
|
-
const nodes = nodeRows.map(r => r.id);
|
|
18
|
+
const nodes = nodeRows.map((r) => r.id);
|
|
19
19
|
// Compute in-degree (on the reverse graph) via SQL aggregation.
|
|
20
20
|
// In the original graph each edge src→tgt means "src imports tgt".
|
|
21
21
|
// In the reverse graph the edge becomes tgt→src, so src gains in-degree +1.
|
|
@@ -44,7 +44,7 @@ export function topologicalLevelSort(db) {
|
|
|
44
44
|
for (const { source_id: src, target_id: tgt } of edgeRows) {
|
|
45
45
|
if (!reverseAdj.has(tgt) || !reverseAdj.has(src))
|
|
46
46
|
continue;
|
|
47
|
-
reverseAdj.get(tgt)
|
|
47
|
+
reverseAdj.get(tgt)?.push(src);
|
|
48
48
|
}
|
|
49
49
|
// Kahn's BFS on the reverse graph
|
|
50
50
|
const queue = [];
|
|
@@ -71,7 +71,7 @@ export function topologicalLevelSort(db) {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
// Remaining unvisited nodes are in cycles
|
|
74
|
-
const cycleNodes = nodes.filter(n => !visited.has(n));
|
|
74
|
+
const cycleNodes = nodes.filter((n) => !visited.has(n));
|
|
75
75
|
let cycleCount = 0;
|
|
76
76
|
if (cycleNodes.length > 0) {
|
|
77
77
|
cycleCount = cycleNodes.length;
|
|
@@ -111,13 +111,13 @@ export function formatTopoSort(db, result, maxLevels) {
|
|
|
111
111
|
nodeInfo.set(row.id, { name: row.name ?? row.id, filePath: row.file_path });
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
const isCycleLevelIdx = result.cycleCount > 0 && result.levels.length > 0
|
|
115
|
-
? result.levels.length - 1
|
|
116
|
-
: -1;
|
|
114
|
+
const isCycleLevelIdx = result.cycleCount > 0 && result.levels.length > 0 ? result.levels.length - 1 : -1;
|
|
117
115
|
const displayLevels = maxLevels !== undefined ? result.levels.slice(0, maxLevels) : result.levels;
|
|
118
116
|
const lines = [
|
|
119
117
|
`Topological sort: ${result.levels.length - (result.cycleCount > 0 ? 1 : 0)} level${result.levels.length === 1 ? '' : 's'}` +
|
|
120
|
-
(result.cycleCount > 0
|
|
118
|
+
(result.cycleCount > 0
|
|
119
|
+
? `, ${result.cycleCount} node${result.cycleCount === 1 ? '' : 's'} in cycles`
|
|
120
|
+
: ''),
|
|
121
121
|
'',
|
|
122
122
|
];
|
|
123
123
|
for (let li = 0; li < displayLevels.length; li++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topo-sort.js","sourceRoot":"","sources":["../../../src/graph/topo-sort.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAe;IAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAsB,CAAC;IAC9E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"topo-sort.js","sourceRoot":"","sources":["../../../src/graph/topo-sort.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wcc.d.ts","sourceRoot":"","sources":["../../../src/graph/wcc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,EAAE,EAAE,CAmBrE;AAMD,MAAM,WAAW,QAAQ;IACvB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"wcc.d.ts","sourceRoot":"","sources":["../../../src/graph/wcc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,EAAE,EAAE,CAmBrE;AAMD,MAAM,WAAW,QAAQ;IACvB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,CAqBlD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,SAAI,GAAG,MAAM,CAoDnF"}
|
package/dist/src/graph/wcc.js
CHANGED
|
@@ -13,7 +13,7 @@ export function weaklyConnectedComponents(db) {
|
|
|
13
13
|
const edgeRows = db.prepare('SELECT source_id, target_id FROM edges').all();
|
|
14
14
|
if (nodeRows.length === 0)
|
|
15
15
|
return [];
|
|
16
|
-
const nodes = nodeRows.map(r => r.id);
|
|
16
|
+
const nodes = nodeRows.map((r) => r.id);
|
|
17
17
|
const { parent, rank } = buildUnionFind(nodes);
|
|
18
18
|
for (const { source_id: src, target_id: tgt } of edgeRows) {
|
|
19
19
|
if (src === tgt)
|
|
@@ -31,16 +31,22 @@ export function weaklyConnectedComponents(db) {
|
|
|
31
31
|
export function wccStats(db) {
|
|
32
32
|
const components = weaklyConnectedComponents(db);
|
|
33
33
|
if (components.length === 0) {
|
|
34
|
-
return {
|
|
34
|
+
return {
|
|
35
|
+
componentCount: 0,
|
|
36
|
+
largestSize: 0,
|
|
37
|
+
smallestSize: 0,
|
|
38
|
+
meanSize: 0,
|
|
39
|
+
isolatedNodeCount: 0,
|
|
40
|
+
};
|
|
35
41
|
}
|
|
36
|
-
const sizes = components.map(c => c.length);
|
|
42
|
+
const sizes = components.map((c) => c.length);
|
|
37
43
|
const total = sizes.reduce((a, b) => a + b, 0);
|
|
38
44
|
return {
|
|
39
45
|
componentCount: sizes.length,
|
|
40
46
|
largestSize: sizes[0], // already sorted descending
|
|
41
47
|
smallestSize: sizes[sizes.length - 1],
|
|
42
48
|
meanSize: Math.round((total / sizes.length) * 100) / 100,
|
|
43
|
-
isolatedNodeCount: sizes.filter(s => s === 1).length,
|
|
49
|
+
isolatedNodeCount: sizes.filter((s) => s === 1).length,
|
|
44
50
|
};
|
|
45
51
|
}
|
|
46
52
|
// ---------------------------------------------------------------------------
|
|
@@ -61,8 +67,8 @@ export function formatWcc(db, components, topN = 5) {
|
|
|
61
67
|
if (components.length === 0) {
|
|
62
68
|
return 'Weakly connected components: no nodes found.';
|
|
63
69
|
}
|
|
64
|
-
const isolatedCount = components.filter(c => c.length === 1).length;
|
|
65
|
-
const nonTrivial = components.filter(c => c.length > 1);
|
|
70
|
+
const isolatedCount = components.filter((c) => c.length === 1).length;
|
|
71
|
+
const nonTrivial = components.filter((c) => c.length > 1);
|
|
66
72
|
const display = nonTrivial.slice(0, topN);
|
|
67
73
|
// Batch-resolve all node IDs in the displayed components
|
|
68
74
|
const allIds = display.flat();
|
|
@@ -79,7 +85,9 @@ export function formatWcc(db, components, topN = 5) {
|
|
|
79
85
|
}
|
|
80
86
|
const lines = [
|
|
81
87
|
`Weakly connected components: ${components.length} total` +
|
|
82
|
-
(isolatedCount > 0
|
|
88
|
+
(isolatedCount > 0
|
|
89
|
+
? ` (${isolatedCount} isolated node${isolatedCount === 1 ? '' : 's'})`
|
|
90
|
+
: ''),
|
|
83
91
|
'',
|
|
84
92
|
];
|
|
85
93
|
for (let ci = 0; ci < display.length; ci++) {
|
|
@@ -149,7 +157,7 @@ function groupByRoot(nodes, parent) {
|
|
|
149
157
|
const root = ufFind(parent, n);
|
|
150
158
|
if (!components.has(root))
|
|
151
159
|
components.set(root, []);
|
|
152
|
-
components.get(root)
|
|
160
|
+
components.get(root)?.push(n);
|
|
153
161
|
}
|
|
154
162
|
return [...components.values()].sort((a, b) => b.length - a.length);
|
|
155
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wcc.js","sourceRoot":"","sources":["../../../src/graph/wcc.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAe;IACvD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAsB,CAAC;IAC9E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAGtE,CAAC;IAEJ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wcc.js","sourceRoot":"","sources":["../../../src/graph/wcc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-bridge.d.ts","sourceRoot":"","sources":["../../../src/groups/contract-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAmCD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"contract-bridge.d.ts","sourceRoot":"","sources":["../../../src/groups/contract-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAmCD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAuC/F"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Finds shared type definitions (Interface, Type, Class) that appear across
|
|
5
5
|
* multiple repos in a group — these are potential contract bridges.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
9
|
import Database from 'better-sqlite3';
|
|
10
10
|
function getRepoDbPath(repoPath) {
|
|
11
11
|
return join(repoPath, '.monomind', 'monograph.db');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-bridge.js","sourceRoot":"","sources":["../../../src/groups/contract-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contract-bridge.js","sourceRoot":"","sources":["../../../src/groups/contract-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* identifies cross-repo links (same method + path in 2+ repos), and
|
|
6
6
|
* persists/loads the registry in a SQLite database.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import { dirname } from 'path';
|
|
8
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
9
|
+
import { dirname } from 'node:path';
|
|
10
10
|
import Database from 'better-sqlite3';
|
|
11
11
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-registry.js","sourceRoot":"","sources":["../../../src/groups/contract-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contract-registry.js","sourceRoot":"","sources":["../../../src/groups/contract-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-config.d.ts","sourceRoot":"","sources":["../../../src/groups/group-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAkDD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"group-config.d.ts","sourceRoot":"","sources":["../../../src/groups/group-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAkDD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CA8BhE"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* backend: /path/to/backend
|
|
10
10
|
* frontend: /path/to/frontend
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
13
13
|
/**
|
|
14
14
|
* Simple YAML key-value parser for the group.yaml format.
|
|
15
15
|
* Handles top-level scalar keys and one level of indented key: value pairs.
|
|
@@ -69,8 +69,8 @@ export function parseGroupConfig(configPath) {
|
|
|
69
69
|
}
|
|
70
70
|
const content = readFileSync(configPath, 'utf8');
|
|
71
71
|
const raw = parseSimpleYaml(content);
|
|
72
|
-
const name = raw
|
|
73
|
-
const reposRaw = raw
|
|
72
|
+
const name = raw.name ?? 'unnamed-group';
|
|
73
|
+
const reposRaw = raw.repos;
|
|
74
74
|
const repos = [];
|
|
75
75
|
if (reposRaw && typeof reposRaw === 'object' && !Array.isArray(reposRaw)) {
|
|
76
76
|
for (const [repoName, repoPath] of Object.entries(reposRaw)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-config.js","sourceRoot":"","sources":["../../../src/groups/group-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"group-config.js","sourceRoot":"","sources":["../../../src/groups/group-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Merged BM25 search across multiple repos using Reciprocal Rank Fusion (RRF).
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
8
|
import Database from 'better-sqlite3';
|
|
9
9
|
import { ftsSearch } from '../storage/fts-store.js';
|
|
10
10
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-search.js","sourceRoot":"","sources":["../../../src/groups/group-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"group-search.js","sourceRoot":"","sources":["../../../src/groups/group-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-sync.d.ts","sourceRoot":"","sources":["../../../src/groups/group-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"group-sync.d.ts","sourceRoot":"","sources":["../../../src/groups/group-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuC5E"}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Rebuilds the Contract Registry for a group by scanning each repo's
|
|
5
5
|
* monograph database for Route nodes and finding cross-repo HTTP contracts.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { existsSync } from 'node:fs';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
9
|
import Database from 'better-sqlite3';
|
|
10
|
+
import { buildContractLinks, extractHttpContracts, saveContractRegistry, } from './contract-registry.js';
|
|
10
11
|
import { parseGroupConfig } from './group-config.js';
|
|
11
|
-
import { extractHttpContracts, buildContractLinks, saveContractRegistry } from './contract-registry.js';
|
|
12
12
|
// ── Implementation ────────────────────────────────────────────────────────────
|
|
13
13
|
/**
|
|
14
14
|
* Rebuild the contract registry for a group defined by a group.yaml file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-sync.js","sourceRoot":"","sources":["../../../src/groups/group-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"group-sync.js","sourceRoot":"","sources":["../../../src/groups/group-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAYrD,iFAAiF;AAEjF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,IAAI,sBAAsB,MAAM,EAAE,CAAC,CAAC;YACrF,SAAS;QACX,CAAC;QAED,IAAI,EAAE,GAA6B,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YAChC,YAAY,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACT,EAAE,EAAE,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;IAElG,oBAAoB,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAExD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,IAAI;QAClB,YAAY;QACZ,cAAc,EAAE,YAAY,CAAC,MAAM;QACnC,cAAc,EAAE,KAAK,CAAC,MAAM;QAC5B,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-boundary.d.ts","sourceRoot":"","sources":["../../../src/groups/service-boundary.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"service-boundary.d.ts","sourceRoot":"","sources":["../../../src/groups/service-boundary.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAuD1E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,GAAG,SAAS,CAiB7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { readdirSync, statSync
|
|
2
|
-
import { join, relative } from 'path';
|
|
1
|
+
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
2
|
+
import { join, relative } from 'node:path';
|
|
3
3
|
/** Weighted service markers. Higher weight = stronger signal. */
|
|
4
4
|
const SERVICE_MARKERS = {
|
|
5
5
|
'package.json': 1.0,
|
|
@@ -9,7 +9,7 @@ const SERVICE_MARKERS = {
|
|
|
9
9
|
'setup.py': 0.8,
|
|
10
10
|
'pom.xml': 1.0,
|
|
11
11
|
'build.gradle': 0.9,
|
|
12
|
-
|
|
12
|
+
Dockerfile: 0.8,
|
|
13
13
|
'docker-compose.yml': 0.7,
|
|
14
14
|
'docker-compose.yaml': 0.7,
|
|
15
15
|
'.gitmodules': 0.5,
|
|
@@ -47,7 +47,10 @@ export function detectServiceBoundaries(rootDir) {
|
|
|
47
47
|
if (!stat.isDirectory())
|
|
48
48
|
continue;
|
|
49
49
|
// Skip hidden dirs and common non-service dirs
|
|
50
|
-
if (entry.startsWith('.') ||
|
|
50
|
+
if (entry.startsWith('.') ||
|
|
51
|
+
entry === 'node_modules' ||
|
|
52
|
+
entry === 'dist' ||
|
|
53
|
+
entry === 'build') {
|
|
51
54
|
continue;
|
|
52
55
|
}
|
|
53
56
|
const foundMarkers = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-boundary.js","sourceRoot":"","sources":["../../../src/groups/service-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"service-boundary.js","sourceRoot":"","sources":["../../../src/groups/service-boundary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-extractor.d.ts","sourceRoot":"","sources":["../../../src/groups/topic-extractor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"topic-extractor.d.ts","sourceRoot":"","sources":["../../../src/groups/topic-extractor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CA0DvF"}
|
|
@@ -65,7 +65,7 @@ export function extractTopicContracts(source, filePath) {
|
|
|
65
65
|
}
|
|
66
66
|
// Deduplicate by topicName+role
|
|
67
67
|
const seen = new Set();
|
|
68
|
-
return results.filter(r => {
|
|
68
|
+
return results.filter((r) => {
|
|
69
69
|
const key = `${r.role}:${r.topicName}`;
|
|
70
70
|
if (seen.has(key))
|
|
71
71
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-extractor.js","sourceRoot":"","sources":["../../../src/groups/topic-extractor.ts"],"names":[],"mappings":"AAUA,iBAAiB;AACjB,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"topic-extractor.js","sourceRoot":"","sources":["../../../src/groups/topic-extractor.ts"],"names":[],"mappings":"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"}
|