@monoes/monograph 1.2.0 → 1.2.2
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/.monomind/loops/mastermind-review-1782162423447.json +16 -0
- package/__tests__/mcp-tools/cypher.test.ts +10 -6
- package/__tests__/mcp-tools/detect-changes.test.ts +14 -11
- package/__tests__/pipeline/phases/wildcard-synthesis.test.ts +4 -4
- package/__tests__/search/embed-batch-config.test.ts +7 -7
- package/__tests__/search/hybrid-query.test.ts +3 -1
- package/__tests__/web/api.test.ts +1 -1
- package/dist/src/analysis/churn-cache.d.ts.map +1 -1
- package/dist/src/analysis/churn-cache.js +19 -6
- 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 +50 -6
- package/dist/src/analysis/churn-trend.js.map +1 -1
- package/dist/src/analysis/cluster-quality.d.ts +3 -0
- package/dist/src/analysis/cluster-quality.d.ts.map +1 -1
- package/dist/src/analysis/cluster-quality.js +18 -12
- package/dist/src/analysis/cluster-quality.js.map +1 -1
- package/dist/src/analysis/coverage-gaps.d.ts +3 -0
- package/dist/src/analysis/coverage-gaps.d.ts.map +1 -1
- package/dist/src/analysis/coverage-gaps.js +40 -1
- package/dist/src/analysis/coverage-gaps.js.map +1 -1
- package/dist/src/analysis/dep-classification.d.ts +2 -0
- package/dist/src/analysis/dep-classification.d.ts.map +1 -1
- package/dist/src/analysis/dep-classification.js +30 -0
- package/dist/src/analysis/dep-classification.js.map +1 -1
- package/dist/src/analysis/dependency-health.d.ts +4 -0
- package/dist/src/analysis/dependency-health.d.ts.map +1 -1
- package/dist/src/analysis/dependency-health.js +28 -0
- package/dist/src/analysis/dependency-health.js.map +1 -1
- package/dist/src/analysis/duplicate-exports.d.ts +9 -5
- package/dist/src/analysis/duplicate-exports.d.ts.map +1 -1
- package/dist/src/analysis/duplicate-exports.js +26 -2
- package/dist/src/analysis/duplicate-exports.js.map +1 -1
- package/dist/src/analysis/feature-flags.d.ts.map +1 -1
- package/dist/src/analysis/feature-flags.js +36 -17
- package/dist/src/analysis/feature-flags.js.map +1 -1
- package/dist/src/analysis/node-similarity.d.ts +19 -0
- package/dist/src/analysis/node-similarity.d.ts.map +1 -1
- package/dist/src/analysis/node-similarity.js +34 -3
- package/dist/src/analysis/node-similarity.js.map +1 -1
- package/dist/src/analysis/private-type-leaks.d.ts +4 -0
- package/dist/src/analysis/private-type-leaks.d.ts.map +1 -1
- package/dist/src/analysis/private-type-leaks.js +43 -2
- package/dist/src/analysis/private-type-leaks.js.map +1 -1
- package/dist/src/analysis/project-state.d.ts +2 -0
- package/dist/src/analysis/project-state.d.ts.map +1 -1
- package/dist/src/analysis/project-state.js +18 -7
- package/dist/src/analysis/project-state.js.map +1 -1
- package/dist/src/analysis/suppressions.d.ts.map +1 -1
- package/dist/src/analysis/suppressions.js +3 -1
- package/dist/src/analysis/suppressions.js.map +1 -1
- package/dist/src/analysis/trace.d.ts +5 -3
- package/dist/src/analysis/trace.d.ts.map +1 -1
- package/dist/src/analysis/trace.js +59 -53
- package/dist/src/analysis/trace.js.map +1 -1
- package/dist/src/analysis/unused-class-members.d.ts.map +1 -1
- package/dist/src/analysis/unused-class-members.js +7 -1
- package/dist/src/analysis/unused-class-members.js.map +1 -1
- package/dist/src/analysis/worker-pool.d.ts +3 -0
- package/dist/src/analysis/worker-pool.d.ts.map +1 -1
- package/dist/src/analysis/worker-pool.js +30 -8
- package/dist/src/analysis/worker-pool.js.map +1 -1
- package/dist/src/cli/augment.d.ts.map +1 -1
- package/dist/src/cli/augment.js +10 -3
- package/dist/src/cli/augment.js.map +1 -1
- package/dist/src/cli/skill-gen.js +3 -0
- package/dist/src/cli/skill-gen.js.map +1 -1
- package/dist/src/export/sarif.js +5 -5
- package/dist/src/export/sarif.js.map +1 -1
- package/dist/src/graph/analyzer.d.ts.map +1 -1
- package/dist/src/graph/analyzer.js +17 -2
- package/dist/src/graph/analyzer.js.map +1 -1
- package/dist/src/graph/author-analytics.d.ts +2 -0
- package/dist/src/graph/author-analytics.d.ts.map +1 -1
- package/dist/src/graph/author-analytics.js +39 -5
- package/dist/src/graph/author-analytics.js.map +1 -1
- package/dist/src/graph/baseline.d.ts +5 -0
- package/dist/src/graph/baseline.d.ts.map +1 -1
- package/dist/src/graph/baseline.js +65 -18
- package/dist/src/graph/baseline.js.map +1 -1
- package/dist/src/graph/clone-detector.d.ts.map +1 -1
- package/dist/src/graph/clone-detector.js +19 -33
- package/dist/src/graph/clone-detector.js.map +1 -1
- package/dist/src/graph/clone-families.d.ts +2 -0
- package/dist/src/graph/clone-families.d.ts.map +1 -1
- package/dist/src/graph/clone-families.js +38 -10
- package/dist/src/graph/clone-families.js.map +1 -1
- package/dist/src/graph/codeowners-extended.d.ts +17 -0
- package/dist/src/graph/codeowners-extended.d.ts.map +1 -1
- package/dist/src/graph/codeowners-extended.js +42 -0
- package/dist/src/graph/codeowners-extended.js.map +1 -1
- package/dist/src/graph/codeowners-gitlab.d.ts +21 -0
- package/dist/src/graph/codeowners-gitlab.d.ts.map +1 -1
- package/dist/src/graph/codeowners-gitlab.js +37 -0
- package/dist/src/graph/codeowners-gitlab.js.map +1 -1
- package/dist/src/graph/codeowners.d.ts +10 -0
- package/dist/src/graph/codeowners.d.ts.map +1 -1
- package/dist/src/graph/codeowners.js +24 -2
- package/dist/src/graph/codeowners.js.map +1 -1
- package/dist/src/graph/complexity.d.ts +10 -0
- package/dist/src/graph/complexity.d.ts.map +1 -1
- package/dist/src/graph/complexity.js +93 -43
- 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 +19 -2
- package/dist/src/graph/cross-reference-findings.js.map +1 -1
- package/dist/src/graph/cross-reference.d.ts +4 -0
- package/dist/src/graph/cross-reference.d.ts.map +1 -1
- package/dist/src/graph/cross-reference.js +23 -0
- package/dist/src/graph/cross-reference.js.map +1 -1
- package/dist/src/graph/cycle-detection.d.ts +2 -0
- package/dist/src/graph/cycle-detection.d.ts.map +1 -1
- package/dist/src/graph/cycle-detection.js +26 -3
- package/dist/src/graph/cycle-detection.js.map +1 -1
- package/dist/src/graph/cycles.d.ts +11 -3
- package/dist/src/graph/cycles.d.ts.map +1 -1
- package/dist/src/graph/cycles.js +121 -83
- package/dist/src/graph/cycles.js.map +1 -1
- package/dist/src/graph/dead-code.d.ts +23 -0
- package/dist/src/graph/dead-code.d.ts.map +1 -1
- package/dist/src/graph/dead-code.js +53 -13
- 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 +20 -4
- package/dist/src/graph/dependency-closure.js.map +1 -1
- package/dist/src/graph/dfs.d.ts +14 -0
- package/dist/src/graph/dfs.d.ts.map +1 -1
- package/dist/src/graph/dfs.js +61 -0
- package/dist/src/graph/dfs.js.map +1 -1
- package/dist/src/graph/duplication-stats.d.ts.map +1 -1
- package/dist/src/graph/duplication-stats.js +19 -3
- package/dist/src/graph/duplication-stats.js.map +1 -1
- package/dist/src/graph/edge-filter.d.ts +2 -0
- package/dist/src/graph/edge-filter.d.ts.map +1 -1
- package/dist/src/graph/edge-filter.js +26 -12
- package/dist/src/graph/edge-filter.js.map +1 -1
- package/dist/src/graph/health-score.d.ts +8 -0
- package/dist/src/graph/health-score.d.ts.map +1 -1
- package/dist/src/graph/health-score.js +48 -17
- package/dist/src/graph/health-score.js.map +1 -1
- package/dist/src/graph/hotspots.d.ts +7 -0
- package/dist/src/graph/hotspots.d.ts.map +1 -1
- package/dist/src/graph/hotspots.js +50 -5
- package/dist/src/graph/hotspots.js.map +1 -1
- package/dist/src/graph/import-chain.d.ts +17 -1
- package/dist/src/graph/import-chain.d.ts.map +1 -1
- package/dist/src/graph/import-chain.js +68 -19
- 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 +9 -10
- package/dist/src/graph/loader.js.map +1 -1
- package/dist/src/graph/maintainability.d.ts +8 -0
- package/dist/src/graph/maintainability.d.ts.map +1 -1
- package/dist/src/graph/maintainability.js +65 -10
- package/dist/src/graph/maintainability.js.map +1 -1
- package/dist/src/graph/mirrored-dirs.d.ts +4 -0
- package/dist/src/graph/mirrored-dirs.d.ts.map +1 -1
- package/dist/src/graph/mirrored-dirs.js +48 -13
- package/dist/src/graph/mirrored-dirs.js.map +1 -1
- package/dist/src/graph/narrowing.d.ts +15 -0
- package/dist/src/graph/narrowing.d.ts.map +1 -1
- package/dist/src/graph/narrowing.js +33 -0
- package/dist/src/graph/narrowing.js.map +1 -1
- package/dist/src/graph/node-search.d.ts +3 -0
- package/dist/src/graph/node-search.d.ts.map +1 -1
- package/dist/src/graph/node-search.js +37 -4
- package/dist/src/graph/node-search.js.map +1 -1
- package/dist/src/graph/normalize-id.d.ts +4 -0
- package/dist/src/graph/normalize-id.d.ts.map +1 -1
- package/dist/src/graph/normalize-id.js +25 -2
- package/dist/src/graph/normalize-id.js.map +1 -1
- package/dist/src/graph/pagerank.d.ts +7 -0
- package/dist/src/graph/pagerank.d.ts.map +1 -1
- package/dist/src/graph/pagerank.js +49 -2
- package/dist/src/graph/pagerank.js.map +1 -1
- package/dist/src/graph/prune.d.ts +31 -0
- package/dist/src/graph/prune.d.ts.map +1 -1
- package/dist/src/graph/prune.js +65 -0
- package/dist/src/graph/prune.js.map +1 -1
- package/dist/src/graph/regex-search.d.ts +10 -2
- package/dist/src/graph/regex-search.d.ts.map +1 -1
- package/dist/src/graph/regex-search.js +33 -4
- package/dist/src/graph/regex-search.js.map +1 -1
- package/dist/src/graph/regression.d.ts +5 -0
- package/dist/src/graph/regression.d.ts.map +1 -1
- package/dist/src/graph/regression.js +45 -23
- package/dist/src/graph/regression.js.map +1 -1
- package/dist/src/graph/ripple-impact.d.ts +27 -0
- package/dist/src/graph/ripple-impact.d.ts.map +1 -1
- package/dist/src/graph/ripple-impact.js +55 -7
- package/dist/src/graph/ripple-impact.js.map +1 -1
- package/dist/src/graph/risk-profile.d.ts +7 -0
- package/dist/src/graph/risk-profile.d.ts.map +1 -1
- package/dist/src/graph/risk-profile.js +82 -48
- package/dist/src/graph/risk-profile.js.map +1 -1
- package/dist/src/graph/shingle-filter.d.ts.map +1 -1
- package/dist/src/graph/shingle-filter.js +25 -26
- package/dist/src/graph/shingle-filter.js.map +1 -1
- package/dist/src/graph/statistics.d.ts +19 -0
- package/dist/src/graph/statistics.d.ts.map +1 -1
- package/dist/src/graph/statistics.js +53 -40
- package/dist/src/graph/statistics.js.map +1 -1
- package/dist/src/graph/stats.d.ts +2 -0
- package/dist/src/graph/stats.d.ts.map +1 -1
- package/dist/src/graph/stats.js +54 -8
- package/dist/src/graph/stats.js.map +1 -1
- package/dist/src/graph/subgraph.d.ts +5 -0
- package/dist/src/graph/subgraph.d.ts.map +1 -1
- package/dist/src/graph/subgraph.js +73 -9
- package/dist/src/graph/subgraph.js.map +1 -1
- package/dist/src/graph/topo-sort.d.ts +15 -0
- package/dist/src/graph/topo-sort.d.ts.map +1 -1
- package/dist/src/graph/topo-sort.js +83 -10
- package/dist/src/graph/topo-sort.js.map +1 -1
- package/dist/src/graph/wcc.d.ts +29 -0
- package/dist/src/graph/wcc.d.ts.map +1 -1
- package/dist/src/graph/wcc.js +122 -39
- package/dist/src/graph/wcc.js.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp-tools/api-impact.d.ts.map +1 -1
- package/dist/src/mcp-tools/api-impact.js +13 -6
- 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 +19 -29
- package/dist/src/mcp-tools/context.js.map +1 -1
- package/dist/src/mcp-tools/cypher.d.ts +11 -0
- package/dist/src/mcp-tools/cypher.d.ts.map +1 -1
- package/dist/src/mcp-tools/cypher.js +13 -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 +35 -20
- 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 +4 -1
- package/dist/src/mcp-tools/explain.js.map +1 -1
- package/dist/src/mcp-tools/graph-query.d.ts +2 -0
- package/dist/src/mcp-tools/graph-query.d.ts.map +1 -1
- package/dist/src/mcp-tools/graph-query.js +20 -3
- package/dist/src/mcp-tools/graph-query.js.map +1 -1
- package/dist/src/mcp-tools/group-list.d.ts +1 -0
- package/dist/src/mcp-tools/group-list.d.ts.map +1 -1
- package/dist/src/mcp-tools/group-list.js +7 -9
- package/dist/src/mcp-tools/group-list.js.map +1 -1
- package/dist/src/mcp-tools/impact.d.ts.map +1 -1
- package/dist/src/mcp-tools/impact.js +20 -59
- package/dist/src/mcp-tools/impact.js.map +1 -1
- package/dist/src/mcp-tools/neighbors.d.ts.map +1 -1
- package/dist/src/mcp-tools/neighbors.js +24 -33
- package/dist/src/mcp-tools/neighbors.js.map +1 -1
- package/dist/src/mcp-tools/query.d.ts +2 -0
- package/dist/src/mcp-tools/query.d.ts.map +1 -1
- package/dist/src/mcp-tools/query.js +1 -0
- 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 +12 -7
- package/dist/src/mcp-tools/rename.js.map +1 -1
- package/dist/src/mcp-tools/route-map.d.ts.map +1 -1
- package/dist/src/mcp-tools/route-map.js +19 -23
- package/dist/src/mcp-tools/route-map.js.map +1 -1
- package/dist/src/mcp-tools/shape-check.d.ts.map +1 -1
- package/dist/src/mcp-tools/shape-check.js +17 -13
- package/dist/src/mcp-tools/shape-check.js.map +1 -1
- package/dist/src/parsers/loader.js +6 -5
- package/dist/src/parsers/loader.js.map +1 -1
- package/dist/src/pipeline/cluster-only.d.ts.map +1 -1
- package/dist/src/pipeline/cluster-only.js +8 -4
- package/dist/src/pipeline/cluster-only.js.map +1 -1
- package/dist/src/pipeline/orchestrator.d.ts +2 -0
- package/dist/src/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/src/pipeline/orchestrator.js +19 -0
- package/dist/src/pipeline/orchestrator.js.map +1 -1
- package/dist/src/pipeline/phases/boundary.d.ts +2 -0
- package/dist/src/pipeline/phases/boundary.d.ts.map +1 -1
- package/dist/src/pipeline/phases/boundary.js +31 -2
- package/dist/src/pipeline/phases/boundary.js.map +1 -1
- package/dist/src/pipeline/phases/communities.d.ts +14 -0
- package/dist/src/pipeline/phases/communities.d.ts.map +1 -1
- package/dist/src/pipeline/phases/communities.js +58 -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 +21 -14
- package/dist/src/pipeline/phases/contextual-proximity.js.map +1 -1
- package/dist/src/pipeline/phases/cross-file.d.ts.map +1 -1
- package/dist/src/pipeline/phases/cross-file.js +35 -14
- package/dist/src/pipeline/phases/cross-file.js.map +1 -1
- package/dist/src/pipeline/phases/field-access.d.ts.map +1 -1
- package/dist/src/pipeline/phases/field-access.js +9 -4
- package/dist/src/pipeline/phases/field-access.js.map +1 -1
- package/dist/src/pipeline/phases/god-nodes.d.ts +4 -0
- package/dist/src/pipeline/phases/god-nodes.d.ts.map +1 -1
- package/dist/src/pipeline/phases/god-nodes.js +43 -9
- package/dist/src/pipeline/phases/god-nodes.js.map +1 -1
- package/dist/src/pipeline/phases/import-resolver.d.ts +11 -0
- package/dist/src/pipeline/phases/import-resolver.d.ts.map +1 -1
- package/dist/src/pipeline/phases/import-resolver.js +34 -7
- 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 +27 -19
- package/dist/src/pipeline/phases/leiden.js.map +1 -1
- package/dist/src/pipeline/phases/markdown.d.ts.map +1 -1
- package/dist/src/pipeline/phases/markdown.js +10 -5
- package/dist/src/pipeline/phases/markdown.js.map +1 -1
- package/dist/src/pipeline/phases/pdf-parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/pdf-parse.js +18 -3
- 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 +26 -9
- package/dist/src/pipeline/phases/processes.js.map +1 -1
- package/dist/src/pipeline/phases/re-export-propagation.d.ts.map +1 -1
- package/dist/src/pipeline/phases/re-export-propagation.js +33 -14
- 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 +42 -26
- 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 +30 -21
- package/dist/src/pipeline/phases/routes.js.map +1 -1
- package/dist/src/pipeline/phases/scope-resolution.d.ts.map +1 -1
- package/dist/src/pipeline/phases/scope-resolution.js +93 -63
- package/dist/src/pipeline/phases/scope-resolution.js.map +1 -1
- package/dist/src/pipeline/runner.d.ts +4 -0
- package/dist/src/pipeline/runner.d.ts.map +1 -1
- package/dist/src/pipeline/runner.js +30 -11
- package/dist/src/pipeline/runner.js.map +1 -1
- package/dist/src/query/cypher-parser.d.ts +20 -0
- package/dist/src/query/cypher-parser.d.ts.map +1 -1
- package/dist/src/query/cypher-parser.js +73 -0
- package/dist/src/query/cypher-parser.js.map +1 -1
- package/dist/src/search/embed-batch.d.ts.map +1 -1
- package/dist/src/search/embed-batch.js +4 -1
- package/dist/src/search/embed-batch.js.map +1 -1
- package/dist/src/search/hybrid-query.d.ts +4 -0
- package/dist/src/search/hybrid-query.d.ts.map +1 -1
- package/dist/src/search/hybrid-query.js +5 -1
- package/dist/src/search/hybrid-query.js.map +1 -1
- package/dist/src/staleness/git-staleness.js +3 -3
- 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 +12 -0
- package/dist/src/storage/db.js.map +1 -1
- package/dist/src/storage/edge-store.d.ts +2 -0
- package/dist/src/storage/edge-store.d.ts.map +1 -1
- package/dist/src/storage/edge-store.js +26 -1
- package/dist/src/storage/edge-store.js.map +1 -1
- package/dist/src/storage/embedding-store.d.ts +16 -0
- package/dist/src/storage/embedding-store.d.ts.map +1 -1
- package/dist/src/storage/embedding-store.js +26 -2
- package/dist/src/storage/embedding-store.js.map +1 -1
- package/dist/src/storage/file-cache.d.ts +5 -0
- package/dist/src/storage/file-cache.d.ts.map +1 -1
- package/dist/src/storage/file-cache.js +35 -9
- package/dist/src/storage/file-cache.js.map +1 -1
- package/dist/src/storage/fts-store.d.ts +4 -0
- package/dist/src/storage/fts-store.d.ts.map +1 -1
- package/dist/src/storage/fts-store.js +8 -3
- package/dist/src/storage/fts-store.js.map +1 -1
- package/dist/src/storage/node-store.d.ts +2 -0
- package/dist/src/storage/node-store.d.ts.map +1 -1
- package/dist/src/storage/node-store.js +28 -1
- package/dist/src/storage/node-store.js.map +1 -1
- package/dist/src/wiki/wiki-generator.d.ts.map +1 -1
- package/dist/src/wiki/wiki-generator.js +5 -1
- package/dist/src/wiki/wiki-generator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/__tests__/pipeline/runner.parallel.test.ts +2 -2
- package/src/analysis/churn-cache.ts +18 -7
- package/src/analysis/churn-trend.ts +35 -6
- package/src/analysis/cluster-quality.ts +20 -11
- package/src/analysis/coverage-gaps.ts +44 -1
- package/src/analysis/dep-classification.ts +34 -0
- package/src/analysis/dependency-health.ts +25 -0
- package/src/analysis/duplicate-exports.ts +40 -4
- package/src/analysis/feature-flags.ts +37 -17
- package/src/analysis/node-similarity.ts +45 -4
- package/src/analysis/private-type-leaks.ts +49 -2
- package/src/analysis/project-state.ts +19 -9
- package/src/analysis/suppressions.ts +4 -1
- package/src/analysis/trace.ts +73 -54
- package/src/analysis/unused-class-members.ts +8 -1
- package/src/analysis/worker-pool.ts +40 -8
- package/src/cli/augment.ts +10 -3
- package/src/cli/skill-gen.ts +3 -0
- package/src/export/sarif.ts +5 -5
- package/src/graph/analyzer.ts +26 -2
- package/src/graph/author-analytics.ts +45 -5
- package/src/graph/baseline.ts +78 -24
- package/src/graph/clone-detector.ts +22 -36
- package/src/graph/clone-families.ts +34 -10
- package/src/graph/codeowners-extended.ts +54 -0
- package/src/graph/codeowners-gitlab.ts +46 -0
- package/src/graph/codeowners.ts +33 -2
- package/src/graph/complexity.ts +102 -47
- package/src/graph/cross-reference-findings.ts +23 -2
- package/src/graph/cross-reference.ts +26 -0
- package/src/graph/cycle-detection.ts +22 -3
- package/src/graph/cycles.ts +155 -96
- package/src/graph/dead-code.ts +76 -17
- package/src/graph/dependency-closure.ts +24 -7
- package/src/graph/dfs.ts +78 -0
- package/src/graph/duplication-stats.ts +17 -6
- package/src/graph/edge-filter.ts +26 -12
- package/src/graph/health-score.ts +47 -17
- package/src/graph/hotspots.ts +57 -8
- package/src/graph/import-chain.ts +89 -19
- package/src/graph/loader.ts +10 -7
- package/src/graph/maintainability.ts +72 -22
- package/src/graph/mirrored-dirs.ts +45 -14
- package/src/graph/narrowing.ts +44 -0
- package/src/graph/node-search.ts +50 -4
- package/src/graph/normalize-id.ts +26 -2
- package/src/graph/pagerank.ts +70 -2
- package/src/graph/prune.ts +76 -0
- package/src/graph/regex-search.ts +38 -4
- package/src/graph/regression.ts +48 -23
- package/src/graph/ripple-impact.ts +71 -11
- package/src/graph/risk-profile.ts +98 -53
- package/src/graph/shingle-filter.ts +33 -27
- package/src/graph/statistics.ts +73 -45
- package/src/graph/stats.ts +50 -16
- package/src/graph/subgraph.ts +97 -25
- package/src/graph/topo-sort.ts +101 -16
- package/src/graph/wcc.ts +146 -37
- package/src/index.ts +1 -1
- package/src/mcp-tools/api-impact.ts +13 -6
- package/src/mcp-tools/context.ts +31 -40
- package/src/mcp-tools/cypher.ts +14 -1
- package/src/mcp-tools/detect-changes.ts +38 -23
- package/src/mcp-tools/explain.ts +4 -1
- package/src/mcp-tools/graph-query.ts +24 -3
- package/src/mcp-tools/group-list.ts +9 -11
- package/src/mcp-tools/impact.ts +26 -66
- package/src/mcp-tools/neighbors.ts +34 -39
- package/src/mcp-tools/query.ts +3 -0
- package/src/mcp-tools/rename.ts +9 -8
- package/src/mcp-tools/route-map.ts +21 -23
- package/src/mcp-tools/shape-check.ts +18 -14
- package/src/parsers/loader.ts +5 -5
- package/src/pipeline/cluster-only.ts +8 -4
- package/src/pipeline/orchestrator.ts +22 -0
- package/src/pipeline/phases/boundary.ts +40 -2
- package/src/pipeline/phases/communities.ts +66 -5
- package/src/pipeline/phases/contextual-proximity.ts +15 -14
- package/src/pipeline/phases/cross-file.ts +35 -14
- package/src/pipeline/phases/field-access.ts +11 -4
- package/src/pipeline/phases/god-nodes.ts +47 -10
- package/src/pipeline/phases/import-resolver.ts +37 -5
- package/src/pipeline/phases/leiden.ts +25 -18
- package/src/pipeline/phases/markdown.ts +12 -7
- package/src/pipeline/phases/pdf-parse.ts +19 -2
- package/src/pipeline/phases/processes.ts +27 -15
- package/src/pipeline/phases/re-export-propagation.ts +40 -18
- package/src/pipeline/phases/reachability.ts +39 -24
- package/src/pipeline/phases/routes.ts +32 -21
- package/src/pipeline/phases/scope-resolution.ts +110 -71
- package/src/pipeline/runner.ts +28 -11
- package/src/query/cypher-parser.ts +83 -0
- package/src/search/embed-batch.ts +4 -1
- package/src/search/hybrid-query.ts +11 -1
- package/src/staleness/git-staleness.ts +3 -3
- package/src/storage/db.ts +11 -0
- package/src/storage/edge-store.ts +34 -1
- package/src/storage/embedding-store.ts +38 -6
- package/src/storage/file-cache.ts +35 -21
- package/src/storage/fts-store.ts +12 -3
- package/src/storage/node-store.ts +39 -1
- package/src/wiki/wiki-generator.ts +5 -1
- package/src/coverage/runtime.ts +0 -249
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextual-proximity.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/contextual-proximity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO1D,MAAM,CAAC,MAAM,wBAAwB,GAA6C;IAChF,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;IAEjC,KAAK,CAAC,OAAO,CAAC,GAAoB;QAChC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAEzE,yDAAyD;QACzD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;aAChB,OAAO,CAAC,qEAAqE,CAAC;aAC9E,GAAG,EAAgD,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAEtE
|
|
1
|
+
{"version":3,"file":"contextual-proximity.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/contextual-proximity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-file.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/cross-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAMnE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"cross-file.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/cross-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAMnE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,eAAe,CAsFzD,CAAC"}
|
|
@@ -6,25 +6,47 @@ export const crossFilePhase = {
|
|
|
6
6
|
async execute(_ctx, deps) {
|
|
7
7
|
const { allEdges, symbolNodes } = deps.get('parse');
|
|
8
8
|
const { fileNodes } = deps.get('structure');
|
|
9
|
-
|
|
9
|
+
/** Extract the last path segment of a '/'-separated string (faster than split+pop). */
|
|
10
|
+
function lastSegment(s) {
|
|
11
|
+
const idx = s.lastIndexOf('/');
|
|
12
|
+
return idx === -1 ? s : s.slice(idx + 1);
|
|
13
|
+
}
|
|
14
|
+
/** Strip leading `import_` prefix, then return the last path segment. */
|
|
15
|
+
function targetBasename(rawId) {
|
|
16
|
+
const stripped = rawId.startsWith('import_') ? rawId.slice(7) : rawId;
|
|
17
|
+
return lastSegment(stripped);
|
|
18
|
+
}
|
|
19
|
+
// Symbol name → symbol node ID.
|
|
20
|
+
// Pre-key lowercase variants so IMPORTS resolution is a single Map.get() instead of two.
|
|
10
21
|
const nameIndex = new Map();
|
|
11
22
|
for (const node of symbolNodes) {
|
|
12
23
|
nameIndex.set(node.name, node.id);
|
|
13
|
-
|
|
24
|
+
const lower = node.name.toLowerCase();
|
|
25
|
+
if (lower !== node.name)
|
|
26
|
+
nameIndex.set(lower, node.id);
|
|
27
|
+
if (node.normLabel) {
|
|
14
28
|
nameIndex.set(node.normLabel, node.id);
|
|
29
|
+
const normLower = node.normLabel.toLowerCase();
|
|
30
|
+
if (normLower !== node.normLabel)
|
|
31
|
+
nameIndex.set(normLower, node.id);
|
|
32
|
+
}
|
|
15
33
|
}
|
|
16
|
-
// Basename (without extension) → File node ID, for resolving RE_EXPORTS
|
|
34
|
+
// Basename (without extension) → File node ID, for resolving RE_EXPORTS.
|
|
35
|
+
// Use lastIndexOf to avoid allocating a full split array per file path.
|
|
17
36
|
const fileBasenameIndex = new Map();
|
|
18
37
|
for (const fileNode of fileNodes) {
|
|
19
|
-
const basename = (fileNode.filePath ?? '').
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
fileBasenameIndex.set(basename
|
|
38
|
+
const basename = lastSegment(fileNode.filePath ?? '').toLowerCase();
|
|
39
|
+
const dotIdx = basename.lastIndexOf('.');
|
|
40
|
+
const noExt = dotIdx === -1 ? basename : basename.slice(0, dotIdx);
|
|
41
|
+
fileBasenameIndex.set(basename, fileNode.id);
|
|
42
|
+
if (noExt !== basename)
|
|
43
|
+
fileBasenameIndex.set(noExt, fileNode.id);
|
|
23
44
|
}
|
|
24
45
|
const resolvedEdges = [];
|
|
25
46
|
for (const edge of allEdges) {
|
|
26
47
|
if (edge.relation === 'IMPORTS') {
|
|
27
|
-
const targetName = edge.targetId
|
|
48
|
+
const targetName = targetBasename(edge.targetId);
|
|
49
|
+
// Single lookup — lowercase variants are pre-keyed in nameIndex
|
|
28
50
|
const resolvedId = nameIndex.get(targetName) ?? nameIndex.get(targetName.toLowerCase());
|
|
29
51
|
if (resolvedId && resolvedId !== edge.targetId) {
|
|
30
52
|
resolvedEdges.push({
|
|
@@ -37,12 +59,11 @@ export const crossFilePhase = {
|
|
|
37
59
|
}
|
|
38
60
|
}
|
|
39
61
|
else if (edge.relation === 'RE_EXPORTS') {
|
|
40
|
-
// Resolve to a File node ID
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const noExt = basename.
|
|
44
|
-
const resolvedId = fileBasenameIndex.get(basename.
|
|
45
|
-
?? fileBasenameIndex.get(noExt.toLowerCase());
|
|
62
|
+
// Resolve to a File node ID using the pre-built basename index
|
|
63
|
+
const basename = targetBasename(edge.targetId).toLowerCase();
|
|
64
|
+
const dotIdx = basename.lastIndexOf('.');
|
|
65
|
+
const noExt = dotIdx === -1 ? basename : basename.slice(0, dotIdx);
|
|
66
|
+
const resolvedId = fileBasenameIndex.get(basename) ?? fileBasenameIndex.get(noExt);
|
|
46
67
|
if (resolvedId && resolvedId !== edge.targetId) {
|
|
47
68
|
resolvedEdges.push({
|
|
48
69
|
...edge,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-file.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/cross-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAQ1D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;QACtB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAgB,CAAC;QACnE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAoB,CAAC;QAE/D
|
|
1
|
+
{"version":3,"file":"cross-file.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/cross-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/field-access.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"field-access.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/field-access.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAmCrG"}
|
|
@@ -5,12 +5,17 @@ export function extractFieldAccesses(source, varName, filePath) {
|
|
|
5
5
|
const results = [];
|
|
6
6
|
const lines = source.split('\n');
|
|
7
7
|
const escapedName = escapeRegexChars(varName);
|
|
8
|
+
// Hoist regex construction outside the loop — both patterns are fixed for the
|
|
9
|
+
// entire call, so creating them once avoids O(lines) RegExp allocations.
|
|
10
|
+
// Write: varName.field = or varName.field +=/-=/*=
|
|
11
|
+
const writeRe = new RegExp(`\\b${escapedName}\\.(\\w+)\\s*(?:\\+|-|\\*|\\/|%)?=(?!=)`, 'g');
|
|
12
|
+
// Read: varName.field NOT followed by assignment operator
|
|
13
|
+
const readRe = new RegExp(`\\b${escapedName}\\.(\\w+)`, 'g');
|
|
8
14
|
for (let i = 0; i < lines.length; i++) {
|
|
9
15
|
const line = lines[i];
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const readRe = new RegExp(`\\b${escapedName}\\.(\\w+)`, 'g');
|
|
16
|
+
// Reset stateful lastIndex before each line (required for reused /g regexes).
|
|
17
|
+
writeRe.lastIndex = 0;
|
|
18
|
+
readRe.lastIndex = 0;
|
|
14
19
|
const writeFields = new Set();
|
|
15
20
|
let m;
|
|
16
21
|
while ((m = writeRe.exec(line)) !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/field-access.ts"],"names":[],"mappings":"AASA,SAAS,gBAAgB,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAe,EAAE,QAAgB;IACpF,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"field-access.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/field-access.ts"],"names":[],"mappings":"AASA,SAAS,gBAAgB,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAe,EAAE,QAAgB;IACpF,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,8EAA8E;IAC9E,yEAAyE;IACzE,mDAAmD;IACnD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,yCAAyC,EAAE,GAAG,CAAC,CAAC;IAC5F,0DAA0D;IAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,WAAW,EAAE,GAAG,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,8EAA8E;QAC9E,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAErB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,IAAI,CAAyB,CAAC;QAE9B,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -21,4 +21,8 @@ export interface GodNodesOutput {
|
|
|
21
21
|
thresholds: GodNodesThresholds;
|
|
22
22
|
}
|
|
23
23
|
export declare const godNodesPhase: PipelinePhase<GodNodesOutput>;
|
|
24
|
+
/**
|
|
25
|
+
* Format god-node results as structured text with file:line hints for LLM navigation.
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatGodNodes(output: GodNodesOutput): string;
|
|
24
28
|
//# sourceMappingURL=god-nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"god-nodes.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAM7D,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC,EAAE,CAAC;IACjG,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAQD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"god-nodes.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAM7D,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC,EAAE,CAAC;IACjG,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAQD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,cAAc,CA8EvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA+B7D"}
|
|
@@ -18,15 +18,18 @@ export const godNodesPhase = {
|
|
|
18
18
|
outDeg.set(e.sourceId, (outDeg.get(e.sourceId) ?? 0) + 1);
|
|
19
19
|
inDeg.set(e.targetId, (inDeg.get(e.targetId) ?? 0) + 1);
|
|
20
20
|
}
|
|
21
|
-
// Compute degree distributions from all symbol nodes
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
.
|
|
29
|
-
.
|
|
21
|
+
// Compute degree distributions from all symbol nodes in a single pass
|
|
22
|
+
// (avoids two separate filter + map passes over potentially large arrays)
|
|
23
|
+
const allFanIn = [];
|
|
24
|
+
const allFanOut = [];
|
|
25
|
+
for (const n of symbolNodes) {
|
|
26
|
+
if (EXCLUDED_LABELS.has(n.label))
|
|
27
|
+
continue;
|
|
28
|
+
allFanIn.push(inDeg.get(n.id) ?? 0);
|
|
29
|
+
allFanOut.push(outDeg.get(n.id) ?? 0);
|
|
30
|
+
}
|
|
31
|
+
allFanIn.sort((a, b) => a - b);
|
|
32
|
+
allFanOut.sort((a, b) => a - b);
|
|
30
33
|
const thresholds = {
|
|
31
34
|
p75FanIn: percentile(allFanIn, 75),
|
|
32
35
|
p90FanIn: percentile(allFanIn, 90),
|
|
@@ -74,4 +77,35 @@ export const godNodesPhase = {
|
|
|
74
77
|
return { godNodes, thresholds };
|
|
75
78
|
},
|
|
76
79
|
};
|
|
80
|
+
/**
|
|
81
|
+
* Format god-node results as structured text with file:line hints for LLM navigation.
|
|
82
|
+
*/
|
|
83
|
+
export function formatGodNodes(output) {
|
|
84
|
+
const { godNodes, thresholds } = output;
|
|
85
|
+
if (godNodes.length === 0) {
|
|
86
|
+
return 'god-nodes: none\nstatus: no high-centrality nodes detected\n';
|
|
87
|
+
}
|
|
88
|
+
const lines = [
|
|
89
|
+
`god-nodes: ${godNodes.length} high-centrality node(s) detected`,
|
|
90
|
+
`thresholds: fanIn p75=${thresholds.p75FanIn} p90=${thresholds.p90FanIn} p95=${thresholds.p95FanIn}; fanOut p75=${thresholds.p75FanOut} p90=${thresholds.p90FanOut}`,
|
|
91
|
+
'',
|
|
92
|
+
];
|
|
93
|
+
for (let i = 0; i < godNodes.length; i++) {
|
|
94
|
+
const n = godNodes[i];
|
|
95
|
+
const loc = n.filePath
|
|
96
|
+
? `${n.filePath}${n.startLine !== undefined ? `:${n.startLine}` : ''}`
|
|
97
|
+
: n.id;
|
|
98
|
+
lines.push(`[${i + 1}] ${n.name} (${n.label}) — ${n.category}`);
|
|
99
|
+
lines.push(` file: ${loc}`);
|
|
100
|
+
lines.push(` degree: ${n.degree} (fanIn=${n.inDegree}, fanOut=${n.outDegree})`);
|
|
101
|
+
for (const f of n.contributingFactors) {
|
|
102
|
+
lines.push(` factor: ${f.metric}=${f.value} (threshold=${f.threshold})`);
|
|
103
|
+
}
|
|
104
|
+
lines.push('');
|
|
105
|
+
}
|
|
106
|
+
const bridgeCount = godNodes.filter(n => n.category === 'BRIDGE_NODE').length;
|
|
107
|
+
const highCentralityCount = godNodes.length - bridgeCount;
|
|
108
|
+
lines.push(`summary: ${highCentralityCount} HIGH_CENTRALITY, ${bridgeCount} BRIDGE_NODE`);
|
|
109
|
+
return lines.join('\n');
|
|
110
|
+
}
|
|
77
111
|
//# sourceMappingURL=god-nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"god-nodes.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"AAKA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AA6B5E,SAAS,UAAU,CAAC,MAAgB,EAAE,CAAS;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI;QACrB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAoB,CAAC;QACpE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAgB,CAAC;QACnE,MAAM,gBAAgB,GAAoB,CAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC;QAE1E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"god-nodes.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/god-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,16 @@ export interface ImportResolverOutput {
|
|
|
9
9
|
}
|
|
10
10
|
export declare function detectWorkspacePackages(repoPath: string): WorkspacePackage[];
|
|
11
11
|
export declare function resolveWorkspaceImport(importSpecifier: string, packages: WorkspacePackage[]): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Build a Map<packageName, packagePath> index from a WorkspacePackage array.
|
|
14
|
+
* Use this when resolveWorkspaceImport will be called many times (e.g. per import
|
|
15
|
+
* statement across a whole repo) to reduce resolution cost from O(N*I) to O(N+I).
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildPackageIndex(packages: WorkspacePackage[]): Map<string, string>;
|
|
18
|
+
/**
|
|
19
|
+
* O(1) workspace import resolution using a pre-built package index.
|
|
20
|
+
* Falls back to prefix scan only for sub-path imports (e.g. `pkg/subpath`).
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveWorkspaceImportFromIndex(importSpecifier: string, index: Map<string, string>): string | null;
|
|
12
23
|
export declare const importResolverPhase: PipelinePhase<ImportResolverOutput>;
|
|
13
24
|
//# sourceMappingURL=import-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/import-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC;CACvB;AAkBD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/import-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC;CACvB;AAkBD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA4B5E;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,GAAG,IAAI,CAOf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACzB,MAAM,GAAG,IAAI,CAYf;AAED,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,oBAAoB,CAOnE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync, readdirSync } from 'fs';
|
|
2
2
|
import { join, resolve } from 'path';
|
|
3
3
|
function globWorkspacePattern(repoPath, pattern) {
|
|
4
4
|
if (!pattern.includes('*')) {
|
|
@@ -6,8 +6,7 @@ function globWorkspacePattern(repoPath, pattern) {
|
|
|
6
6
|
}
|
|
7
7
|
const [base] = pattern.split('/*');
|
|
8
8
|
const baseDir = join(repoPath, base ?? '');
|
|
9
|
-
|
|
10
|
-
return [];
|
|
9
|
+
// Skip existsSync — readdirSync will throw ENOENT which the catch already handles.
|
|
11
10
|
try {
|
|
12
11
|
return readdirSync(baseDir, { withFileTypes: true })
|
|
13
12
|
.filter(d => d.isDirectory())
|
|
@@ -19,8 +18,6 @@ function globWorkspacePattern(repoPath, pattern) {
|
|
|
19
18
|
}
|
|
20
19
|
export function detectWorkspacePackages(repoPath) {
|
|
21
20
|
const pkgPath = join(repoPath, 'package.json');
|
|
22
|
-
if (!existsSync(pkgPath))
|
|
23
|
-
return [];
|
|
24
21
|
let workspaceGlobs = [];
|
|
25
22
|
try {
|
|
26
23
|
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
@@ -38,9 +35,8 @@ export function detectWorkspacePackages(repoPath) {
|
|
|
38
35
|
const dirs = globWorkspacePattern(repoPath, glob);
|
|
39
36
|
for (const dir of dirs) {
|
|
40
37
|
const subPkgPath = join(dir, 'package.json');
|
|
41
|
-
if (!existsSync(subPkgPath))
|
|
42
|
-
continue;
|
|
43
38
|
try {
|
|
39
|
+
// existsSync guard removed — readFileSync throws ENOENT which the catch handles.
|
|
44
40
|
const subPkg = JSON.parse(readFileSync(subPkgPath, 'utf8'));
|
|
45
41
|
if (subPkg.name) {
|
|
46
42
|
result.push({ name: subPkg.name, path: resolve(dir) });
|
|
@@ -59,6 +55,37 @@ export function resolveWorkspaceImport(importSpecifier, packages) {
|
|
|
59
55
|
}
|
|
60
56
|
return null;
|
|
61
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Build a Map<packageName, packagePath> index from a WorkspacePackage array.
|
|
60
|
+
* Use this when resolveWorkspaceImport will be called many times (e.g. per import
|
|
61
|
+
* statement across a whole repo) to reduce resolution cost from O(N*I) to O(N+I).
|
|
62
|
+
*/
|
|
63
|
+
export function buildPackageIndex(packages) {
|
|
64
|
+
const index = new Map();
|
|
65
|
+
for (const pkg of packages) {
|
|
66
|
+
index.set(pkg.name, pkg.path);
|
|
67
|
+
}
|
|
68
|
+
return index;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* O(1) workspace import resolution using a pre-built package index.
|
|
72
|
+
* Falls back to prefix scan only for sub-path imports (e.g. `pkg/subpath`).
|
|
73
|
+
*/
|
|
74
|
+
export function resolveWorkspaceImportFromIndex(importSpecifier, index) {
|
|
75
|
+
// Exact match: O(1)
|
|
76
|
+
const exact = index.get(importSpecifier);
|
|
77
|
+
if (exact !== undefined)
|
|
78
|
+
return exact;
|
|
79
|
+
// Sub-path import: find the matching package name prefix
|
|
80
|
+
const slash = importSpecifier.indexOf('/', importSpecifier.startsWith('@') ? importSpecifier.indexOf('/') + 1 : 0);
|
|
81
|
+
if (slash !== -1) {
|
|
82
|
+
const pkgName = importSpecifier.slice(0, slash);
|
|
83
|
+
const path = index.get(pkgName);
|
|
84
|
+
if (path !== undefined)
|
|
85
|
+
return path;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
62
89
|
export const importResolverPhase = {
|
|
63
90
|
name: 'import-resolver',
|
|
64
91
|
deps: ['cross-file'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/import-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/import-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leiden.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/leiden.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"leiden.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/leiden.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwD7F"}
|
|
@@ -22,36 +22,44 @@ export function leiden(graph, _options = {}) {
|
|
|
22
22
|
}
|
|
23
23
|
// Phase 1: Louvain with deterministic settings
|
|
24
24
|
const communities = louvain(graph, { randomWalk: false });
|
|
25
|
-
// Phase 2: Refinement — merge singletons into their largest neighbor's community
|
|
25
|
+
// Phase 2: Refinement — merge singletons into their largest neighbor's community.
|
|
26
|
+
// Single pass over Object.entries to build both communitySizes and the singletonNodes Set,
|
|
27
|
+
// avoiding a separate Object.values scan. The singletonNodes Set enables O(1) skip in the
|
|
28
|
+
// refinement loop below instead of a map.get(commId) <= 1 test per node.
|
|
26
29
|
const communitySizes = new Map();
|
|
27
30
|
for (const comm of Object.values(communities)) {
|
|
28
31
|
communitySizes.set(comm, (communitySizes.get(comm) ?? 0) + 1);
|
|
29
32
|
}
|
|
33
|
+
const singletonNodes = new Set();
|
|
34
|
+
for (const [nodeId, commId] of Object.entries(communities)) {
|
|
35
|
+
if ((communitySizes.get(commId) ?? 0) <= 1)
|
|
36
|
+
singletonNodes.add(nodeId);
|
|
37
|
+
}
|
|
30
38
|
// Refinement: merge singletons into their largest neighbor's community.
|
|
31
39
|
// Pass 1: update communitySizes eagerly (so adjacent singletons see each other's moves
|
|
32
40
|
// and avoid mutual-swap cycles), collect community writes into `pending`.
|
|
33
41
|
// Pass 2: apply community writes — keeps the community map consistent at all times.
|
|
34
42
|
const pending = new Map();
|
|
35
43
|
for (const [nodeId, commId] of Object.entries(communities)) {
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
if (bestComm !== commId) {
|
|
50
|
-
// Update sizes eagerly so subsequent singletons see the correct community sizes
|
|
51
|
-
communitySizes.set(commId, (communitySizes.get(commId) ?? 1) - 1);
|
|
52
|
-
communitySizes.set(bestComm, (communitySizes.get(bestComm) ?? 0) + 1);
|
|
53
|
-
pending.set(nodeId, bestComm);
|
|
44
|
+
if (!singletonNodes.has(nodeId))
|
|
45
|
+
continue; // O(1) skip for non-singletons
|
|
46
|
+
let bestComm = commId;
|
|
47
|
+
let bestSize = 0;
|
|
48
|
+
graph.forEachNeighbor(nodeId, (neighbor) => {
|
|
49
|
+
const neighborComm = communities[neighbor];
|
|
50
|
+
if (neighborComm === undefined)
|
|
51
|
+
return;
|
|
52
|
+
const size = communitySizes.get(neighborComm) ?? 0;
|
|
53
|
+
if (size > bestSize) {
|
|
54
|
+
bestSize = size;
|
|
55
|
+
bestComm = neighborComm;
|
|
54
56
|
}
|
|
57
|
+
});
|
|
58
|
+
if (bestComm !== commId) {
|
|
59
|
+
// Update sizes eagerly so subsequent singletons see the correct community sizes
|
|
60
|
+
communitySizes.set(commId, (communitySizes.get(commId) ?? 1) - 1);
|
|
61
|
+
communitySizes.set(bestComm, (communitySizes.get(bestComm) ?? 0) + 1);
|
|
62
|
+
pending.set(nodeId, bestComm);
|
|
55
63
|
}
|
|
56
64
|
}
|
|
57
65
|
// Apply deferred community writes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leiden.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/leiden.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,WAA8B,EAAE;IACnE,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAA2B,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAElF,
|
|
1
|
+
{"version":3,"file":"leiden.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/leiden.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAGrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,WAA8B,EAAE;IACnE,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAA2B,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAElF,kFAAkF;IAClF,2FAA2F;IAC3F,0FAA0F;IAC1F,yEAAyE;IACzE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,wEAAwE;IACxE,uFAAuF;IACvF,kFAAkF;IAClF,oFAAoF;IACpF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,+BAA+B;QAE1E,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE;YACjD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO;YACvC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,gFAAgF;YAChF,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/markdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/markdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAYnE,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,eAAe,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,cAAc,CAqFvD,CAAC"}
|
|
@@ -6,6 +6,8 @@ import { insertEdges } from '../../storage/edge-store.js';
|
|
|
6
6
|
const MARKDOWN_EXTENSIONS = new Set(['.md', '.mdx']);
|
|
7
7
|
// Inline code span: `identifier`
|
|
8
8
|
const INLINE_CODE_RE = /`([^`]+)`/g;
|
|
9
|
+
// Module-level constant: compiled once per process, not per isIdentifier() call.
|
|
10
|
+
const IDENTIFIER_RE = /^[A-Za-z_$][A-Za-z0-9_$.-]*$/;
|
|
9
11
|
export const markdownPhase = {
|
|
10
12
|
name: 'markdown',
|
|
11
13
|
// Must run after parse so symbols are already in the DB for name lookup.
|
|
@@ -13,6 +15,8 @@ export const markdownPhase = {
|
|
|
13
15
|
// Runs before communities so REFERENCES edges are visible to graph analyses.
|
|
14
16
|
deps: ['parse', 'structure'],
|
|
15
17
|
async execute(ctx, deps) {
|
|
18
|
+
if (ctx.options.codeOnly)
|
|
19
|
+
return { documentNodes: [], referencesEdges: [] };
|
|
16
20
|
const { fileNodes } = deps.get('structure');
|
|
17
21
|
const documentNodes = [];
|
|
18
22
|
const referencesEdges = [];
|
|
@@ -50,15 +54,16 @@ export const markdownPhase = {
|
|
|
50
54
|
// Extract inline code spans and match against symbol names in the DB
|
|
51
55
|
if (ctx.db) {
|
|
52
56
|
const spans = extractCodeSpans(source);
|
|
57
|
+
// Hoist prepared statement outside the span loop — avoids re-compiling the
|
|
58
|
+
// SQL query for every identifier in every markdown file (N+1 preparation).
|
|
59
|
+
const symbolLookup = ctx.db.prepare(`SELECT id FROM nodes WHERE name = ?
|
|
60
|
+
AND label NOT IN ('File', 'Folder', 'Document')`);
|
|
53
61
|
for (const span of spans) {
|
|
54
62
|
// Only match single-word identifiers (not shell commands, paths, etc.)
|
|
55
63
|
if (!isIdentifier(span))
|
|
56
64
|
continue;
|
|
57
65
|
// Exact name match, excluding structural nodes to avoid matching file names
|
|
58
|
-
const rows =
|
|
59
|
-
.prepare(`SELECT id FROM nodes WHERE name = ?
|
|
60
|
-
AND label NOT IN ('File', 'Folder', 'Document')`)
|
|
61
|
-
.all(span);
|
|
66
|
+
const rows = symbolLookup.all(span);
|
|
62
67
|
if (rows.length === 1) {
|
|
63
68
|
const edgeId = makeId(docId, rows[0].id, 'references');
|
|
64
69
|
referencesEdges.push({
|
|
@@ -93,6 +98,6 @@ function extractCodeSpans(source) {
|
|
|
93
98
|
}
|
|
94
99
|
/** Accept only simple identifiers — letters, digits, underscores, hyphens, dots (for namespaced names). */
|
|
95
100
|
function isIdentifier(span) {
|
|
96
|
-
return
|
|
101
|
+
return IDENTIFIER_RE.test(span);
|
|
97
102
|
}
|
|
98
103
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,MAAM,CAAC;AAGnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,iCAAiC;AACjC,MAAM,cAAc,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-parse.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/pdf-parse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAWnE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqBD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"pdf-parse.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/pdf-parse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAWnE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqBD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,cAAc,CA8FvD,CAAC"}
|
|
@@ -108,10 +108,25 @@ export const pdfParsePhase = {
|
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
if (sectionNodes.length > 0)
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
if (sectionNodes.length > 0) {
|
|
112
|
+
// File nodes are not persisted by structure/parse phases for non-code files —
|
|
113
|
+
// insert them here before edges to satisfy the FK constraint.
|
|
114
|
+
const seenFileIds = new Set();
|
|
115
|
+
const fileNodes = [];
|
|
116
|
+
for (const edge of allEdges) {
|
|
117
|
+
if (!seenFileIds.has(edge.sourceId)) {
|
|
118
|
+
seenFileIds.add(edge.sourceId);
|
|
119
|
+
const relPath = sectionNodes.find(n => n.id === edge.targetId)?.filePath ?? '';
|
|
120
|
+
fileNodes.push({
|
|
121
|
+
id: edge.sourceId, label: 'File',
|
|
122
|
+
name: basename(relPath), normLabel: toNormLabel(basename(relPath)),
|
|
123
|
+
filePath: relPath, isExported: false,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
insertNodes(ctx.db, [...fileNodes, ...sectionNodes]);
|
|
114
128
|
insertEdges(ctx.db, allEdges);
|
|
129
|
+
}
|
|
115
130
|
ctx.onProgress?.({ phase: 'pdf-parse', message: `Parsed ${pdfPaths.length} PDF files → ${sectionNodes.length} chunks` });
|
|
116
131
|
return { sectionNodes, pdfFiles: pdfPaths.length };
|
|
117
132
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-parse.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/pdf-parse.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pdf-parse.js","sourceRoot":"","sources":["../../../../src/pipeline/phases/pdf-parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/processes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE;QACb,SAAS,EAAE,UAAU,EAAE,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,EAAE;YAAE,cAAc,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/processes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE;QACb,SAAS,EAAE,UAAU,EAAE,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,EAAE;YAAE,cAAc,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,CAAC;CACH;AAoHD,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,eAAe,CA4GzD,CAAC"}
|