contextpro-mcp 0.0.0-stage → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +416 -0
- package/INSTALL.md +128 -0
- package/INSTRUCTIONS.md +33 -0
- package/LICENSE +21 -0
- package/NOTICE +12 -0
- package/README.md +164 -2
- package/SECURITY.md +27 -0
- package/agent-guide.md +323 -0
- package/agent-instructions.md +1 -0
- package/build/core/agent-setup.d.ts +5 -0
- package/build/core/agent-setup.d.ts.map +1 -0
- package/build/core/agent-setup.js +94 -0
- package/build/core/agent-setup.js.map +1 -0
- package/build/core/artifacts.d.ts +64 -0
- package/build/core/artifacts.d.ts.map +1 -0
- package/build/core/artifacts.js +370 -0
- package/build/core/artifacts.js.map +1 -0
- package/build/core/bounded-source.d.ts +15 -0
- package/build/core/bounded-source.d.ts.map +1 -0
- package/build/core/bounded-source.js +78 -0
- package/build/core/bounded-source.js.map +1 -0
- package/build/core/changed-since.d.ts +20 -0
- package/build/core/changed-since.d.ts.map +1 -0
- package/build/core/changed-since.js +43 -0
- package/build/core/changed-since.js.map +1 -0
- package/build/core/chat-model.d.ts +8 -0
- package/build/core/chat-model.d.ts.map +1 -0
- package/build/core/chat-model.js +135 -0
- package/build/core/chat-model.js.map +1 -0
- package/build/core/clustering.d.ts +6 -0
- package/build/core/clustering.d.ts.map +1 -0
- package/build/core/clustering.js +201 -0
- package/build/core/clustering.js.map +1 -0
- package/build/core/context-metadata.d.ts +50 -0
- package/build/core/context-metadata.d.ts.map +1 -0
- package/build/core/context-metadata.js +118 -0
- package/build/core/context-metadata.js.map +1 -0
- package/build/core/data-dir.d.ts +5 -0
- package/build/core/data-dir.d.ts.map +1 -0
- package/build/core/data-dir.js +53 -0
- package/build/core/data-dir.js.map +1 -0
- package/build/core/db-native.d.ts +28 -0
- package/build/core/db-native.d.ts.map +1 -0
- package/build/core/db-native.js +120 -0
- package/build/core/db-native.js.map +1 -0
- package/build/core/db.d.ts +294 -0
- package/build/core/db.d.ts.map +1 -0
- package/build/core/db.js +1047 -0
- package/build/core/db.js.map +1 -0
- package/build/core/doctor.d.ts +13 -0
- package/build/core/doctor.d.ts.map +1 -0
- package/build/core/doctor.js +55 -0
- package/build/core/doctor.js.map +1 -0
- package/build/core/efficiency.d.ts +16 -0
- package/build/core/efficiency.d.ts.map +1 -0
- package/build/core/efficiency.js +170 -0
- package/build/core/efficiency.js.map +1 -0
- package/build/core/embedding-tracker.d.ts +25 -0
- package/build/core/embedding-tracker.d.ts.map +1 -0
- package/build/core/embedding-tracker.js +228 -0
- package/build/core/embedding-tracker.js.map +1 -0
- package/build/core/embeddings.d.ts +90 -0
- package/build/core/embeddings.d.ts.map +1 -0
- package/build/core/embeddings.js +693 -0
- package/build/core/embeddings.js.map +1 -0
- package/build/core/evidence-state.d.ts +42 -0
- package/build/core/evidence-state.d.ts.map +1 -0
- package/build/core/evidence-state.js +153 -0
- package/build/core/evidence-state.js.map +1 -0
- package/build/core/extractor-stamp.d.ts +10 -0
- package/build/core/extractor-stamp.d.ts.map +1 -0
- package/build/core/extractor-stamp.js +51 -0
- package/build/core/extractor-stamp.js.map +1 -0
- package/build/core/feature-brief-cache.d.ts +37 -0
- package/build/core/feature-brief-cache.d.ts.map +1 -0
- package/build/core/feature-brief-cache.js +100 -0
- package/build/core/feature-brief-cache.js.map +1 -0
- package/build/core/file-fingerprint.d.ts +15 -0
- package/build/core/file-fingerprint.d.ts.map +1 -0
- package/build/core/file-fingerprint.js +24 -0
- package/build/core/file-fingerprint.js.map +1 -0
- package/build/core/graph-analytics.d.ts +46 -0
- package/build/core/graph-analytics.d.ts.map +1 -0
- package/build/core/graph-analytics.js +371 -0
- package/build/core/graph-analytics.js.map +1 -0
- package/build/core/hub.d.ts +23 -0
- package/build/core/hub.d.ts.map +1 -0
- package/build/core/hub.js +123 -0
- package/build/core/hub.js.map +1 -0
- package/build/core/ignore-dirs.d.ts +7 -0
- package/build/core/ignore-dirs.d.ts.map +1 -0
- package/build/core/ignore-dirs.js +84 -0
- package/build/core/ignore-dirs.js.map +1 -0
- package/build/core/index-freshness.d.ts +15 -0
- package/build/core/index-freshness.d.ts.map +1 -0
- package/build/core/index-freshness.js +96 -0
- package/build/core/index-freshness.js.map +1 -0
- package/build/core/index-reconcile.d.ts +28 -0
- package/build/core/index-reconcile.d.ts.map +1 -0
- package/build/core/index-reconcile.js +129 -0
- package/build/core/index-reconcile.js.map +1 -0
- package/build/core/local-daemon.d.ts +5 -0
- package/build/core/local-daemon.d.ts.map +1 -0
- package/build/core/local-daemon.js +282 -0
- package/build/core/local-daemon.js.map +1 -0
- package/build/core/memory-graph.d.ts +68 -0
- package/build/core/memory-graph.d.ts.map +1 -0
- package/build/core/memory-graph.js +152 -0
- package/build/core/memory-graph.js.map +1 -0
- package/build/core/native-repair.d.ts +12 -0
- package/build/core/native-repair.d.ts.map +1 -0
- package/build/core/native-repair.js +167 -0
- package/build/core/native-repair.js.map +1 -0
- package/build/core/native-runtime.d.ts +12 -0
- package/build/core/native-runtime.d.ts.map +1 -0
- package/build/core/native-runtime.js +38 -0
- package/build/core/native-runtime.js.map +1 -0
- package/build/core/pagerank.d.ts +29 -0
- package/build/core/pagerank.d.ts.map +1 -0
- package/build/core/pagerank.js +90 -0
- package/build/core/pagerank.js.map +1 -0
- package/build/core/parser-process.d.ts +21 -0
- package/build/core/parser-process.d.ts.map +1 -0
- package/build/core/parser-process.js +103 -0
- package/build/core/parser-process.js.map +1 -0
- package/build/core/parser-worker.d.ts +2 -0
- package/build/core/parser-worker.d.ts.map +1 -0
- package/build/core/parser-worker.js +17 -0
- package/build/core/parser-worker.js.map +1 -0
- package/build/core/parser.d.ts +66 -0
- package/build/core/parser.d.ts.map +1 -0
- package/build/core/parser.js +750 -0
- package/build/core/parser.js.map +1 -0
- package/build/core/path-guard.d.ts +6 -0
- package/build/core/path-guard.d.ts.map +1 -0
- package/build/core/path-guard.js +55 -0
- package/build/core/path-guard.js.map +1 -0
- package/build/core/process-lifecycle.d.ts +30 -0
- package/build/core/process-lifecycle.d.ts.map +1 -0
- package/build/core/process-lifecycle.js +129 -0
- package/build/core/process-lifecycle.js.map +1 -0
- package/build/core/project-config.d.ts +83 -0
- package/build/core/project-config.d.ts.map +1 -0
- package/build/core/project-config.js +302 -0
- package/build/core/project-config.js.map +1 -0
- package/build/core/project-graph.d.ts +69 -0
- package/build/core/project-graph.d.ts.map +1 -0
- package/build/core/project-graph.js +874 -0
- package/build/core/project-graph.js.map +1 -0
- package/build/core/provider-config.d.ts +15 -0
- package/build/core/provider-config.d.ts.map +1 -0
- package/build/core/provider-config.js +67 -0
- package/build/core/provider-config.js.map +1 -0
- package/build/core/provider-usage.d.ts +21 -0
- package/build/core/provider-usage.d.ts.map +1 -0
- package/build/core/provider-usage.js +52 -0
- package/build/core/provider-usage.js.map +1 -0
- package/build/core/python-language-server.d.ts +23 -0
- package/build/core/python-language-server.d.ts.map +1 -0
- package/build/core/python-language-server.js +217 -0
- package/build/core/python-language-server.js.map +1 -0
- package/build/core/python-runtime-identity.d.ts +3 -0
- package/build/core/python-runtime-identity.d.ts.map +1 -0
- package/build/core/python-runtime-identity.js +53 -0
- package/build/core/python-runtime-identity.js.map +1 -0
- package/build/core/reconcile-scheduler.d.ts +20 -0
- package/build/core/reconcile-scheduler.d.ts.map +1 -0
- package/build/core/reconcile-scheduler.js +58 -0
- package/build/core/reconcile-scheduler.js.map +1 -0
- package/build/core/request-context.d.ts +7 -0
- package/build/core/request-context.d.ts.map +1 -0
- package/build/core/request-context.js +17 -0
- package/build/core/request-context.js.map +1 -0
- package/build/core/request-root.d.ts +19 -0
- package/build/core/request-root.d.ts.map +1 -0
- package/build/core/request-root.js +26 -0
- package/build/core/request-root.js.map +1 -0
- package/build/core/root-guard.d.ts +8 -0
- package/build/core/root-guard.d.ts.map +1 -0
- package/build/core/root-guard.js +53 -0
- package/build/core/root-guard.js.map +1 -0
- package/build/core/roots-detect.d.ts +17 -0
- package/build/core/roots-detect.d.ts.map +1 -0
- package/build/core/roots-detect.js +63 -0
- package/build/core/roots-detect.js.map +1 -0
- package/build/core/runtime-session.d.ts +5 -0
- package/build/core/runtime-session.d.ts.map +1 -0
- package/build/core/runtime-session.js +10 -0
- package/build/core/runtime-session.js.map +1 -0
- package/build/core/scip-index.d.ts +71 -0
- package/build/core/scip-index.d.ts.map +1 -0
- package/build/core/scip-index.js +343 -0
- package/build/core/scip-index.js.map +1 -0
- package/build/core/semantic-diff.d.ts +32 -0
- package/build/core/semantic-diff.d.ts.map +1 -0
- package/build/core/semantic-diff.js +259 -0
- package/build/core/semantic-diff.js.map +1 -0
- package/build/core/source-context.d.ts +3 -0
- package/build/core/source-context.d.ts.map +1 -0
- package/build/core/source-context.js +86 -0
- package/build/core/source-context.js.map +1 -0
- package/build/core/source-mask.d.ts +8 -0
- package/build/core/source-mask.d.ts.map +1 -0
- package/build/core/source-mask.js +156 -0
- package/build/core/source-mask.js.map +1 -0
- package/build/core/source-mutation.d.ts +16 -0
- package/build/core/source-mutation.d.ts.map +1 -0
- package/build/core/source-mutation.js +193 -0
- package/build/core/source-mutation.js.map +1 -0
- package/build/core/sql-schema.d.ts +59 -0
- package/build/core/sql-schema.d.ts.map +1 -0
- package/build/core/sql-schema.js +218 -0
- package/build/core/sql-schema.js.map +1 -0
- package/build/core/startup-health.d.ts +40 -0
- package/build/core/startup-health.d.ts.map +1 -0
- package/build/core/startup-health.js +132 -0
- package/build/core/startup-health.js.map +1 -0
- package/build/core/team-ledger.d.ts +60 -0
- package/build/core/team-ledger.d.ts.map +1 -0
- package/build/core/team-ledger.js +171 -0
- package/build/core/team-ledger.js.map +1 -0
- package/build/core/test-impact.d.ts +23 -0
- package/build/core/test-impact.d.ts.map +1 -0
- package/build/core/test-impact.js +131 -0
- package/build/core/test-impact.js.map +1 -0
- package/build/core/tool-metrics.d.ts +29 -0
- package/build/core/tool-metrics.d.ts.map +1 -0
- package/build/core/tool-metrics.js +74 -0
- package/build/core/tool-metrics.js.map +1 -0
- package/build/core/tool-profile.d.ts +12 -0
- package/build/core/tool-profile.d.ts.map +1 -0
- package/build/core/tool-profile.js +102 -0
- package/build/core/tool-profile.js.map +1 -0
- package/build/core/tool-trace.d.ts +8 -0
- package/build/core/tool-trace.d.ts.map +1 -0
- package/build/core/tool-trace.js +70 -0
- package/build/core/tool-trace.js.map +1 -0
- package/build/core/tree-sitter-runtime.d.ts +20 -0
- package/build/core/tree-sitter-runtime.d.ts.map +1 -0
- package/build/core/tree-sitter-runtime.js +324 -0
- package/build/core/tree-sitter-runtime.js.map +1 -0
- package/build/core/tree-sitter.d.ts +6 -0
- package/build/core/tree-sitter.d.ts.map +1 -0
- package/build/core/tree-sitter.js +24 -0
- package/build/core/tree-sitter.js.map +1 -0
- package/build/core/typescript-reference-process.d.ts +30 -0
- package/build/core/typescript-reference-process.d.ts.map +1 -0
- package/build/core/typescript-reference-process.js +124 -0
- package/build/core/typescript-reference-process.js.map +1 -0
- package/build/core/typescript-reference-worker.d.ts +2 -0
- package/build/core/typescript-reference-worker.d.ts.map +1 -0
- package/build/core/typescript-reference-worker.js +14 -0
- package/build/core/typescript-reference-worker.js.map +1 -0
- package/build/core/typescript-references.d.ts +71 -0
- package/build/core/typescript-references.d.ts.map +1 -0
- package/build/core/typescript-references.js +392 -0
- package/build/core/typescript-references.js.map +1 -0
- package/build/core/typescript-skeleton.d.ts +5 -0
- package/build/core/typescript-skeleton.d.ts.map +1 -0
- package/build/core/typescript-skeleton.js +49 -0
- package/build/core/typescript-skeleton.js.map +1 -0
- package/build/core/walker.d.ts +16 -0
- package/build/core/walker.d.ts.map +1 -0
- package/build/core/walker.js +152 -0
- package/build/core/walker.js.map +1 -0
- package/build/core/workspace-router.d.ts +28 -0
- package/build/core/workspace-router.d.ts.map +1 -0
- package/build/core/workspace-router.js +93 -0
- package/build/core/workspace-router.js.map +1 -0
- package/build/core/worktree-gc.d.ts +16 -0
- package/build/core/worktree-gc.d.ts.map +1 -0
- package/build/core/worktree-gc.js +69 -0
- package/build/core/worktree-gc.js.map +1 -0
- package/build/core/worktree-overlay.d.ts +22 -0
- package/build/core/worktree-overlay.d.ts.map +1 -0
- package/build/core/worktree-overlay.js +84 -0
- package/build/core/worktree-overlay.js.map +1 -0
- package/build/core/worktree-root-guard.d.ts +8 -0
- package/build/core/worktree-root-guard.d.ts.map +1 -0
- package/build/core/worktree-root-guard.js +82 -0
- package/build/core/worktree-root-guard.js.map +1 -0
- package/build/core/worktree-seed.d.ts +14 -0
- package/build/core/worktree-seed.d.ts.map +1 -0
- package/build/core/worktree-seed.js +98 -0
- package/build/core/worktree-seed.js.map +1 -0
- package/build/git/shadow.d.ts +40 -0
- package/build/git/shadow.d.ts.map +1 -0
- package/build/git/shadow.js +298 -0
- package/build/git/shadow.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +599 -0
- package/build/index.js.map +1 -0
- package/build/tools/agentic-context.d.ts +86 -0
- package/build/tools/agentic-context.d.ts.map +1 -0
- package/build/tools/agentic-context.js +1546 -0
- package/build/tools/agentic-context.js.map +1 -0
- package/build/tools/blast-radius.d.ts +24 -0
- package/build/tools/blast-radius.d.ts.map +1 -0
- package/build/tools/blast-radius.js +231 -0
- package/build/tools/blast-radius.js.map +1 -0
- package/build/tools/changed-since.d.ts +7 -0
- package/build/tools/changed-since.d.ts.map +1 -0
- package/build/tools/changed-since.js +68 -0
- package/build/tools/changed-since.js.map +1 -0
- package/build/tools/compiler-actions.d.ts +26 -0
- package/build/tools/compiler-actions.d.ts.map +1 -0
- package/build/tools/compiler-actions.js +121 -0
- package/build/tools/compiler-actions.js.map +1 -0
- package/build/tools/context-tree.d.ts +9 -0
- package/build/tools/context-tree.d.ts.map +1 -0
- package/build/tools/context-tree.js +131 -0
- package/build/tools/context-tree.js.map +1 -0
- package/build/tools/context.d.ts +37 -0
- package/build/tools/context.d.ts.map +1 -0
- package/build/tools/context.js +800 -0
- package/build/tools/context.js.map +1 -0
- package/build/tools/diff.d.ts +9 -0
- package/build/tools/diff.d.ts.map +1 -0
- package/build/tools/diff.js +176 -0
- package/build/tools/diff.js.map +1 -0
- package/build/tools/directory-prior.d.ts +16 -0
- package/build/tools/directory-prior.d.ts.map +1 -0
- package/build/tools/directory-prior.js +121 -0
- package/build/tools/directory-prior.js.map +1 -0
- package/build/tools/discovery-documents.d.ts +11 -0
- package/build/tools/discovery-documents.d.ts.map +1 -0
- package/build/tools/discovery-documents.js +71 -0
- package/build/tools/discovery-documents.js.map +1 -0
- package/build/tools/discovery-hints.d.ts +25 -0
- package/build/tools/discovery-hints.d.ts.map +1 -0
- package/build/tools/discovery-hints.js +329 -0
- package/build/tools/discovery-hints.js.map +1 -0
- package/build/tools/efficiency-report.d.ts +13 -0
- package/build/tools/efficiency-report.d.ts.map +1 -0
- package/build/tools/efficiency-report.js +78 -0
- package/build/tools/efficiency-report.js.map +1 -0
- package/build/tools/evidence-retrieval.d.ts +33 -0
- package/build/tools/evidence-retrieval.d.ts.map +1 -0
- package/build/tools/evidence-retrieval.js +200 -0
- package/build/tools/evidence-retrieval.js.map +1 -0
- package/build/tools/exact-references.d.ts +10 -0
- package/build/tools/exact-references.d.ts.map +1 -0
- package/build/tools/exact-references.js +349 -0
- package/build/tools/exact-references.js.map +1 -0
- package/build/tools/explain.d.ts +14 -0
- package/build/tools/explain.d.ts.map +1 -0
- package/build/tools/explain.js +370 -0
- package/build/tools/explain.js.map +1 -0
- package/build/tools/feature-brief.d.ts +7 -0
- package/build/tools/feature-brief.d.ts.map +1 -0
- package/build/tools/feature-brief.js +89 -0
- package/build/tools/feature-brief.js.map +1 -0
- package/build/tools/feature-hub.d.ts +15 -0
- package/build/tools/feature-hub.d.ts.map +1 -0
- package/build/tools/feature-hub.js +404 -0
- package/build/tools/feature-hub.js.map +1 -0
- package/build/tools/file-skeleton.d.ts +7 -0
- package/build/tools/file-skeleton.d.ts.map +1 -0
- package/build/tools/file-skeleton.js +190 -0
- package/build/tools/file-skeleton.js.map +1 -0
- package/build/tools/grep.d.ts +25 -0
- package/build/tools/grep.d.ts.map +1 -0
- package/build/tools/grep.js +341 -0
- package/build/tools/grep.js.map +1 -0
- package/build/tools/impact-delta.d.ts +7 -0
- package/build/tools/impact-delta.d.ts.map +1 -0
- package/build/tools/impact-delta.js +102 -0
- package/build/tools/impact-delta.js.map +1 -0
- package/build/tools/memory-tools.d.ts +69 -0
- package/build/tools/memory-tools.d.ts.map +1 -0
- package/build/tools/memory-tools.js +366 -0
- package/build/tools/memory-tools.js.map +1 -0
- package/build/tools/planning-helpers.d.ts +26 -0
- package/build/tools/planning-helpers.d.ts.map +1 -0
- package/build/tools/planning-helpers.js +269 -0
- package/build/tools/planning-helpers.js.map +1 -0
- package/build/tools/project-graph.d.ts +19 -0
- package/build/tools/project-graph.d.ts.map +1 -0
- package/build/tools/project-graph.js +259 -0
- package/build/tools/project-graph.js.map +1 -0
- package/build/tools/propose-commit.d.ts +9 -0
- package/build/tools/propose-commit.d.ts.map +1 -0
- package/build/tools/propose-commit.js +156 -0
- package/build/tools/propose-commit.js.map +1 -0
- package/build/tools/register-tools.d.ts +18 -0
- package/build/tools/register-tools.d.ts.map +1 -0
- package/build/tools/register-tools.js +1131 -0
- package/build/tools/register-tools.js.map +1 -0
- package/build/tools/reindex.d.ts +76 -0
- package/build/tools/reindex.d.ts.map +1 -0
- package/build/tools/reindex.js +871 -0
- package/build/tools/reindex.js.map +1 -0
- package/build/tools/related.d.ts +6 -0
- package/build/tools/related.d.ts.map +1 -0
- package/build/tools/related.js +143 -0
- package/build/tools/related.js.map +1 -0
- package/build/tools/repo-map.d.ts +59 -0
- package/build/tools/repo-map.d.ts.map +1 -0
- package/build/tools/repo-map.js +270 -0
- package/build/tools/repo-map.js.map +1 -0
- package/build/tools/resolve-symbol.d.ts +41 -0
- package/build/tools/resolve-symbol.d.ts.map +1 -0
- package/build/tools/resolve-symbol.js +250 -0
- package/build/tools/resolve-symbol.js.map +1 -0
- package/build/tools/retrieval-helpers.d.ts +35 -0
- package/build/tools/retrieval-helpers.d.ts.map +1 -0
- package/build/tools/retrieval-helpers.js +302 -0
- package/build/tools/retrieval-helpers.js.map +1 -0
- package/build/tools/scip-index.d.ts +12 -0
- package/build/tools/scip-index.d.ts.map +1 -0
- package/build/tools/scip-index.js +66 -0
- package/build/tools/scip-index.js.map +1 -0
- package/build/tools/scoped-discovery.d.ts +7 -0
- package/build/tools/scoped-discovery.d.ts.map +1 -0
- package/build/tools/scoped-discovery.js +89 -0
- package/build/tools/scoped-discovery.js.map +1 -0
- package/build/tools/search.d.ts +62 -0
- package/build/tools/search.d.ts.map +1 -0
- package/build/tools/search.js +419 -0
- package/build/tools/search.js.map +1 -0
- package/build/tools/semantic-diff.d.ts +7 -0
- package/build/tools/semantic-diff.d.ts.map +1 -0
- package/build/tools/semantic-diff.js +45 -0
- package/build/tools/semantic-diff.js.map +1 -0
- package/build/tools/semantic-identifiers.d.ts +51 -0
- package/build/tools/semantic-identifiers.d.ts.map +1 -0
- package/build/tools/semantic-identifiers.js +522 -0
- package/build/tools/semantic-identifiers.js.map +1 -0
- package/build/tools/semantic-navigate.d.ts +18 -0
- package/build/tools/semantic-navigate.d.ts.map +1 -0
- package/build/tools/semantic-navigate.js +413 -0
- package/build/tools/semantic-navigate.js.map +1 -0
- package/build/tools/semantic-search.d.ts +30 -0
- package/build/tools/semantic-search.d.ts.map +1 -0
- package/build/tools/semantic-search.js +466 -0
- package/build/tools/semantic-search.js.map +1 -0
- package/build/tools/sql-schema.d.ts +23 -0
- package/build/tools/sql-schema.d.ts.map +1 -0
- package/build/tools/sql-schema.js +155 -0
- package/build/tools/sql-schema.js.map +1 -0
- package/build/tools/static-analysis.d.ts +7 -0
- package/build/tools/static-analysis.d.ts.map +1 -0
- package/build/tools/static-analysis.js +331 -0
- package/build/tools/static-analysis.js.map +1 -0
- package/build/tools/status.d.ts +74 -0
- package/build/tools/status.d.ts.map +1 -0
- package/build/tools/status.js +227 -0
- package/build/tools/status.js.map +1 -0
- package/build/tools/symbolic-edit.d.ts +57 -0
- package/build/tools/symbolic-edit.d.ts.map +1 -0
- package/build/tools/symbolic-edit.js +500 -0
- package/build/tools/symbolic-edit.js.map +1 -0
- package/build/tools/test-impact.d.ts +7 -0
- package/build/tools/test-impact.d.ts.map +1 -0
- package/build/tools/test-impact.js +34 -0
- package/build/tools/test-impact.js.map +1 -0
- package/build/tools/test-map.d.ts +8 -0
- package/build/tools/test-map.d.ts.map +1 -0
- package/build/tools/test-map.js +75 -0
- package/build/tools/test-map.js.map +1 -0
- package/docs/README.md +26 -0
- package/docs/architecture.md +35 -0
- package/docs/configuration.md +178 -0
- package/docs/maintenance.md +77 -0
- package/package.json +80 -4
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
// Semantic project navigator using spectral clustering and provider-agnostic labeling
|
|
2
|
+
// Browse codebase by meaning: embeds files, clusters vectors, generates labels
|
|
3
|
+
import { walkDirectory } from "../core/walker.js";
|
|
4
|
+
import { analyzeFile, flattenSymbols, isSupportedFile } from "../core/parser.js";
|
|
5
|
+
import { fetchEmbedding } from "../core/embeddings.js";
|
|
6
|
+
import { getProvider } from "../core/provider-config.js";
|
|
7
|
+
import { chatCompletion, hasConfiguredChatModel } from "../core/chat-model.js";
|
|
8
|
+
import { readFile } from "fs/promises";
|
|
9
|
+
import { spectralCluster, findPathPattern } from "../core/clustering.js";
|
|
10
|
+
import { extname } from "path";
|
|
11
|
+
const MAX_FILES_PER_LEAF = 20;
|
|
12
|
+
// Structural / layout directories that group code by KIND, not by FEATURE. A cluster sharing one of
|
|
13
|
+
// these is not telling us anything about what the feature is, so they're excluded from dir-anchor
|
|
14
|
+
// labeling. Feature folders (fees/, scanners/, venues/) are deliberately NOT here.
|
|
15
|
+
const STRUCTURAL_DIR_SEGMENTS = new Set([
|
|
16
|
+
"src", "lib", "test", "tests", "spec", "specs", "__tests__", "dist", "build", "out",
|
|
17
|
+
"node_modules", "vendor", "main", "app", "pkg", "internal", "common", "shared", "core",
|
|
18
|
+
"utils", "util", "helpers", "helper", "tools", "scripts", "bin", "public", "static",
|
|
19
|
+
"assets", "docs", "examples", "demo", "demos", "fixtures", "mocks", "__mocks__", "types",
|
|
20
|
+
]);
|
|
21
|
+
const NON_CODE_NAVIGATE_EXTENSIONS = new Set([
|
|
22
|
+
".json",
|
|
23
|
+
".jsonc",
|
|
24
|
+
".geojson",
|
|
25
|
+
".csv",
|
|
26
|
+
".tsv",
|
|
27
|
+
".ndjson",
|
|
28
|
+
".yaml",
|
|
29
|
+
".yml",
|
|
30
|
+
".toml",
|
|
31
|
+
".lock",
|
|
32
|
+
".env",
|
|
33
|
+
]);
|
|
34
|
+
async function fetchEmbeddings(inputs) {
|
|
35
|
+
return fetchEmbedding(inputs);
|
|
36
|
+
}
|
|
37
|
+
function isNavigableSourceCandidate(filePath) {
|
|
38
|
+
return isSupportedFile(filePath) && !NON_CODE_NAVIGATE_EXTENSIONS.has(extname(filePath).toLowerCase());
|
|
39
|
+
}
|
|
40
|
+
async function embedFilesWithFallback(files) {
|
|
41
|
+
if (files.length === 0)
|
|
42
|
+
return { files: [], vectors: [], skipped: 0 };
|
|
43
|
+
const texts = files.map((file) => `${file.header} ${file.relativePath} ${file.content}`);
|
|
44
|
+
try {
|
|
45
|
+
return { files, vectors: await fetchEmbeddings(texts), skipped: 0 };
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
const keptFiles = [];
|
|
49
|
+
const vectors = [];
|
|
50
|
+
for (let i = 0; i < files.length; i++) {
|
|
51
|
+
try {
|
|
52
|
+
const [vector] = await fetchEmbeddings([texts[i]]);
|
|
53
|
+
keptFiles.push(files[i]);
|
|
54
|
+
vectors.push(vector);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (keptFiles.length === 0)
|
|
60
|
+
throw error;
|
|
61
|
+
return { files: keptFiles, vectors, skipped: files.length - keptFiles.length };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// A comment line that is really just restating an import (e.g. a docstring line
|
|
65
|
+
// "from decimal import InvalidOperation") must not seed cluster labels — those tokens
|
|
66
|
+
// are module/stdlib vocabulary, not feature vocabulary. Strip them at the source.
|
|
67
|
+
function isImportLikeLine(text) {
|
|
68
|
+
return /^\s*(from\s+[\w.]+\s+import\b|import\s+[\w.]+|const\s+\{?[\w\s,]+\}?\s*=\s*require\(|export\s+\*\s+from\b)/.test(text);
|
|
69
|
+
}
|
|
70
|
+
function extractHeader(content) {
|
|
71
|
+
const lines = content.split("\n");
|
|
72
|
+
const headerLines = [];
|
|
73
|
+
for (const line of lines.slice(0, 5)) {
|
|
74
|
+
const trimmed = line.trim();
|
|
75
|
+
if (trimmed.startsWith("//") || trimmed.startsWith("#") || trimmed.startsWith("--")) {
|
|
76
|
+
const text = trimmed.replace(/^\/\/\s*|^#\s*|^--\s*/, "");
|
|
77
|
+
if (isImportLikeLine(text))
|
|
78
|
+
continue;
|
|
79
|
+
headerLines.push(text);
|
|
80
|
+
}
|
|
81
|
+
else if (trimmed.length > 0) {
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return headerLines.join(" ").substring(0, 200);
|
|
86
|
+
}
|
|
87
|
+
function formatLineRange(line, endLine) {
|
|
88
|
+
return endLine > line ? `L${line}-L${endLine}` : `L${line}`;
|
|
89
|
+
}
|
|
90
|
+
// Exported for testing — the cluster-label heuristic is the audited surface (import-vocab leakage,
|
|
91
|
+
// bare repo-name labels, raw path globs). Tests assert it recovers feature-dir names.
|
|
92
|
+
export function deriveHeuristicLabel(cluster, index, allFiles) {
|
|
93
|
+
if (cluster.pathPattern)
|
|
94
|
+
return cluster.pathPattern;
|
|
95
|
+
const stop = new Set([
|
|
96
|
+
"the", "and", "for", "src", "test", "main", "tools", "core", "lib", "index", "is", "of",
|
|
97
|
+
"to", "a", "in", "on", "with", "from", "into", "this", "that", "feature",
|
|
98
|
+
"module", "modules", "file", "files", "function", "functions", "class", "classes", "type",
|
|
99
|
+
"types", "test", "tests", "spec", "specs", "demo", "demos", "common", "shared", "util",
|
|
100
|
+
"utils", "helper", "helpers", "import", "imports", "as",
|
|
101
|
+
"const", "let", "var", "use", "client", "server", "default", "export", "import",
|
|
102
|
+
"interface", "enum", "trait", "struct", "fn", "func", "def", "pub", "async", "await",
|
|
103
|
+
"return", "true", "false", "null", "undefined", "new", "delete", "typeof",
|
|
104
|
+
"value", "values", "data", "info", "result", "results", "item", "items", "list", "obj",
|
|
105
|
+
"object", "objects", "param", "params", "arg", "args", "ref", "refs",
|
|
106
|
+
// Generic project terms that show up everywhere; bad cluster labels.
|
|
107
|
+
"project", "build", "system", "library", "framework", "runtime", "api", "service",
|
|
108
|
+
"config", "configuration", "settings", "options", "preferences", "manage", "manager",
|
|
109
|
+
"factory", "provider", "controller", "handler", "context", "node", "edge",
|
|
110
|
+
// Python import vocabulary — these appear in headers/import lines across the whole project
|
|
111
|
+
// and were producing cluster labels like [future], [annotations], [decimal].
|
|
112
|
+
"future", "annotations", "decimal", "dataclass", "dataclasses", "pathlib", "typing",
|
|
113
|
+
"collections", "abc", "abstractmethod", "enum", "datetime", "asyncio", "logging", "json",
|
|
114
|
+
"os", "sys", "re", "math", "functools", "itertools", "contextlib", "warnings", "copy",
|
|
115
|
+
"optional", "union", "any", "dict", "tuple", "callable", "iterator", "sequence", "mapping",
|
|
116
|
+
"field", "namedtuple", "defaultdict", "counter", "path", "decimal",
|
|
117
|
+
// Exception/type names that ride along on import lines and aren't feature vocabulary.
|
|
118
|
+
"invalidoperation", "exception", "error", "errors", "valueerror", "keyerror", "typeerror",
|
|
119
|
+
"runtimeerror", "getcontext", "localcontext", "rounding",
|
|
120
|
+
]);
|
|
121
|
+
// 1) STRONGEST signal: a directory segment shared by ≥60% of cluster files IS the feature name.
|
|
122
|
+
// The clustering geometry already co-locates a feature's files, so the directory they share
|
|
123
|
+
// (`fees/`, `auth/`, `scanners/`) is the most reliable label — far more so than header tokens,
|
|
124
|
+
// which leak import/stdlib vocabulary. We exclude the repo-root segment so a cluster that simply
|
|
125
|
+
// spans the whole repo can't be labeled with the bare project name.
|
|
126
|
+
//
|
|
127
|
+
// A directory name is filtered ONLY against structural-layout dirs (src/, lib/, tests/, …) — NOT
|
|
128
|
+
// the content stopword set. A folder named `scanners/` or `decimal/` is a real feature label even
|
|
129
|
+
// though those words are stopworded as header tokens; a directory name is intrinsically meaningful.
|
|
130
|
+
const repoRootSegment = inferRepoRootSegment(cluster.files);
|
|
131
|
+
const dirSegmentCounts = new Map();
|
|
132
|
+
for (const file of cluster.files) {
|
|
133
|
+
// Only count the *immediate* parent directory of each file — the segment that actually groups
|
|
134
|
+
// siblings — not every ancestor. Counting ancestors let a shallow common root win spuriously.
|
|
135
|
+
const segs = file.relativePath.split("/").slice(0, -1);
|
|
136
|
+
const parent = segs[segs.length - 1];
|
|
137
|
+
if (!parent)
|
|
138
|
+
continue;
|
|
139
|
+
const lower = parent.toLowerCase();
|
|
140
|
+
if (lower.length < 3 || STRUCTURAL_DIR_SEGMENTS.has(lower) || lower === repoRootSegment)
|
|
141
|
+
continue;
|
|
142
|
+
dirSegmentCounts.set(lower, (dirSegmentCounts.get(lower) ?? 0) + 1);
|
|
143
|
+
}
|
|
144
|
+
const sortedDirs = [...dirSegmentCounts.entries()].sort((a, b) => b[1] - a[1]);
|
|
145
|
+
const dirThreshold = Math.max(2, Math.ceil(cluster.files.length * 0.6));
|
|
146
|
+
const dominantDir = sortedDirs.find(([, count]) => count >= dirThreshold);
|
|
147
|
+
// 2) TF-IDF over header docstrings. A word's score = freq-in-cluster × log(totalClusters / freq-in-corpus).
|
|
148
|
+
// Without TF-IDF, common words like "manager" or "config" tie. With TF-IDF, distinctive feature
|
|
149
|
+
// nouns (e.g., "scanner", "venue", "fees") win.
|
|
150
|
+
const clusterTermFreq = new Map();
|
|
151
|
+
for (const file of cluster.files) {
|
|
152
|
+
if (!file.header)
|
|
153
|
+
continue;
|
|
154
|
+
const words = tokenizeHeader(file.header, stop);
|
|
155
|
+
for (const word of words)
|
|
156
|
+
clusterTermFreq.set(word, (clusterTermFreq.get(word) ?? 0) + 1);
|
|
157
|
+
}
|
|
158
|
+
const corpusTermFreq = new Map();
|
|
159
|
+
const totalFiles = allFiles?.length ?? cluster.files.length;
|
|
160
|
+
if (allFiles) {
|
|
161
|
+
for (const file of allFiles) {
|
|
162
|
+
if (!file.header)
|
|
163
|
+
continue;
|
|
164
|
+
const words = new Set(tokenizeHeader(file.header, stop));
|
|
165
|
+
for (const word of words)
|
|
166
|
+
corpusTermFreq.set(word, (corpusTermFreq.get(word) ?? 0) + 1);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const scored = [];
|
|
170
|
+
for (const [word, freq] of clusterTermFreq) {
|
|
171
|
+
if (freq < 2)
|
|
172
|
+
continue;
|
|
173
|
+
const df = corpusTermFreq.get(word) ?? freq;
|
|
174
|
+
const idf = allFiles ? Math.log(1 + totalFiles / df) : 1;
|
|
175
|
+
const score = freq * idf;
|
|
176
|
+
scored.push([word, score]);
|
|
177
|
+
}
|
|
178
|
+
scored.sort((a, b) => b[1] - a[1]);
|
|
179
|
+
const dominantHeader = scored[0];
|
|
180
|
+
// 3) Combine. The directory name is the trusted anchor; the header word only refines it when it is
|
|
181
|
+
// a genuinely distinctive feature noun (passed TF-IDF with freq ≥ 2 across the cluster).
|
|
182
|
+
if (dominantDir && dominantHeader && dominantDir[0] !== dominantHeader[0]) {
|
|
183
|
+
return `${dominantDir[0]} (${dominantHeader[0]})`;
|
|
184
|
+
}
|
|
185
|
+
if (dominantDir)
|
|
186
|
+
return dominantDir[0];
|
|
187
|
+
if (dominantHeader)
|
|
188
|
+
return dominantHeader[0];
|
|
189
|
+
// 4) No dir anchor and no distinctive header term. Rather than emit a bare repo name or a raw path
|
|
190
|
+
// glob, summarize from filename basenames — but stopword-filter them so import/stdlib vocabulary
|
|
191
|
+
// (e.g. a `decimal.py` shim) can't become the label, and drop the repo-root token.
|
|
192
|
+
const basenameTokens = new Map();
|
|
193
|
+
for (const f of cluster.files) {
|
|
194
|
+
const base = f.relativePath.split("/").pop()?.replace(/\.\w+$/, "") ?? "";
|
|
195
|
+
for (const tok of base.toLowerCase().split(/[\s._-]+/)) {
|
|
196
|
+
if (tok.length < 3 || stop.has(tok) || tok === repoRootSegment)
|
|
197
|
+
continue;
|
|
198
|
+
basenameTokens.set(tok, (basenameTokens.get(tok) ?? 0) + 1);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const topBasenames = [...basenameTokens.entries()]
|
|
202
|
+
.sort((a, b) => b[1] - a[1])
|
|
203
|
+
.slice(0, 3)
|
|
204
|
+
.map(([t]) => t);
|
|
205
|
+
if (topBasenames.length > 0)
|
|
206
|
+
return topBasenames.join(", ").substring(0, 50);
|
|
207
|
+
return `Cluster ${index + 1}`;
|
|
208
|
+
}
|
|
209
|
+
// The repo-root directory segment (e.g. the project folder name) is NOT a useful feature label —
|
|
210
|
+
// it's shared by every file. Infer it as the first path segment common to all cluster files, if any.
|
|
211
|
+
function inferRepoRootSegment(files) {
|
|
212
|
+
if (files.length === 0)
|
|
213
|
+
return null;
|
|
214
|
+
const firstSegs = files.map((f) => f.relativePath.split("/")[0]?.toLowerCase() ?? "");
|
|
215
|
+
const candidate = firstSegs[0];
|
|
216
|
+
if (!candidate)
|
|
217
|
+
return null;
|
|
218
|
+
return firstSegs.every((s) => s === candidate) ? candidate : null;
|
|
219
|
+
}
|
|
220
|
+
function tokenizeHeader(header, stop) {
|
|
221
|
+
return header
|
|
222
|
+
.toLowerCase()
|
|
223
|
+
.replace(/[^a-z0-9\s/_-]/g, " ")
|
|
224
|
+
.split(/[\s/_-]+/)
|
|
225
|
+
.filter((t) => t.length > 3 && !stop.has(t));
|
|
226
|
+
}
|
|
227
|
+
async function labelSiblingClusters(rootDir, clusters, useChatModel) {
|
|
228
|
+
if (clusters.length === 0)
|
|
229
|
+
return [];
|
|
230
|
+
if (clusters.length === 1) {
|
|
231
|
+
const pp = clusters[0].pathPattern;
|
|
232
|
+
if (pp)
|
|
233
|
+
return [pp];
|
|
234
|
+
return [clusters[0].files.map((f) => f.relativePath.split("/").pop()).join(", ").substring(0, 40)];
|
|
235
|
+
}
|
|
236
|
+
const allFilesCorpus = clusters.flatMap((c) => c.files);
|
|
237
|
+
const heuristicLabels = clusters.map((c, i) => deriveHeuristicLabel(c, i, allFilesCorpus));
|
|
238
|
+
if (!useChatModel)
|
|
239
|
+
return heuristicLabels;
|
|
240
|
+
const clusterDescriptions = clusters.map((c, i) => {
|
|
241
|
+
const fileList = c.files.map((f) => `${f.relativePath}: ${f.header || "no description"}`).join("\n ");
|
|
242
|
+
const pattern = c.pathPattern ? ` (pattern: ${c.pathPattern})` : "";
|
|
243
|
+
return `Cluster ${i + 1}${pattern}:\n ${fileList}`;
|
|
244
|
+
});
|
|
245
|
+
const prompt = `You are labeling clusters of code files. For each cluster below, produce EXACTLY one JSON array of objects, each with:
|
|
246
|
+
- "overarchingTheme": a sentence about the cluster's theme
|
|
247
|
+
- "distinguishingFeature": what makes this cluster unique vs siblings
|
|
248
|
+
- "label": EXACTLY 2 words describing the cluster
|
|
249
|
+
|
|
250
|
+
${clusterDescriptions.join("\n\n")}
|
|
251
|
+
|
|
252
|
+
Respond with ONLY a JSON array of ${clusters.length} objects. No other text.`;
|
|
253
|
+
try {
|
|
254
|
+
const response = await chatCompletion(rootDir, prompt);
|
|
255
|
+
const jsonMatch = response.match(/\[[\s\S]*\]/);
|
|
256
|
+
if (!jsonMatch) {
|
|
257
|
+
process.stderr.write(`[contextpro/cluster] degraded: chat model returned no JSON; using heuristic labels\n`);
|
|
258
|
+
return heuristicLabels;
|
|
259
|
+
}
|
|
260
|
+
const labels = JSON.parse(jsonMatch[0]);
|
|
261
|
+
return labels.map((l, i) => {
|
|
262
|
+
const pp = clusters[i].pathPattern;
|
|
263
|
+
const base = (l.label && l.label.trim().length > 0) ? l.label : heuristicLabels[i];
|
|
264
|
+
return pp ? `${base} (${pp})` : base;
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
269
|
+
process.stderr.write(`[contextpro/cluster] degraded: chat-model labeling failed (${message}); using heuristic labels\n`);
|
|
270
|
+
return heuristicLabels;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
async function buildHierarchy(rootDir, files, vectors, maxClusters, depth, maxDepth, useChatModel) {
|
|
274
|
+
if (files.length <= MAX_FILES_PER_LEAF || depth >= maxDepth) {
|
|
275
|
+
return {
|
|
276
|
+
label: "",
|
|
277
|
+
pathPattern: findPathPattern(files.map((f) => f.relativePath)),
|
|
278
|
+
files,
|
|
279
|
+
children: [],
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
const clusterResults = spectralCluster(vectors, maxClusters);
|
|
283
|
+
if (clusterResults.length <= 1) {
|
|
284
|
+
return {
|
|
285
|
+
label: "",
|
|
286
|
+
pathPattern: findPathPattern(files.map((f) => f.relativePath)),
|
|
287
|
+
files,
|
|
288
|
+
children: [],
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
const childMetas = clusterResults.map((cluster) => ({
|
|
292
|
+
files: cluster.indices.map((i) => files[i]),
|
|
293
|
+
vectors: cluster.indices.map((i) => vectors[i]),
|
|
294
|
+
pathPattern: findPathPattern(cluster.indices.map((i) => files[i].relativePath)),
|
|
295
|
+
}));
|
|
296
|
+
const labels = await labelSiblingClusters(rootDir, childMetas.map((c) => ({ files: c.files, pathPattern: c.pathPattern })), useChatModel);
|
|
297
|
+
const children = [];
|
|
298
|
+
for (let i = 0; i < childMetas.length; i++) {
|
|
299
|
+
const child = await buildHierarchy(rootDir, childMetas[i].files, childMetas[i].vectors, maxClusters, depth + 1, maxDepth, useChatModel);
|
|
300
|
+
child.label = labels[i];
|
|
301
|
+
children.push(child);
|
|
302
|
+
}
|
|
303
|
+
return {
|
|
304
|
+
label: "",
|
|
305
|
+
pathPattern: findPathPattern(files.map((f) => f.relativePath)),
|
|
306
|
+
files: [],
|
|
307
|
+
children,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
function renderClusterTree(node, indent = 0) {
|
|
311
|
+
const pad = " ".repeat(indent);
|
|
312
|
+
let result = "";
|
|
313
|
+
if (node.label) {
|
|
314
|
+
result += `${pad}[${node.label}]\n`;
|
|
315
|
+
}
|
|
316
|
+
if (node.children.length > 0) {
|
|
317
|
+
for (const child of node.children) {
|
|
318
|
+
result += renderClusterTree(child, indent + 1);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
for (const file of node.files) {
|
|
323
|
+
const label = file.header ? ` - ${file.header}` : "";
|
|
324
|
+
const symbols = file.symbolPreview.length > 0 ? ` | symbols: ${file.symbolPreview.join(", ")}` : "";
|
|
325
|
+
result += `${pad} ${file.relativePath}${label}${symbols}\n`;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return result;
|
|
329
|
+
}
|
|
330
|
+
export async function semanticNavigate(options) {
|
|
331
|
+
const maxClusters = options.maxClusters ?? 20;
|
|
332
|
+
const maxDepth = options.maxDepth ?? 3;
|
|
333
|
+
const useChatModel = await hasConfiguredChatModel(options.rootDir);
|
|
334
|
+
const entries = await walkDirectory({ rootDir: options.rootDir, depthLimit: 0 });
|
|
335
|
+
const fileEntries = entries.filter((e) => !e.isDirectory && isNavigableSourceCandidate(e.path));
|
|
336
|
+
if (fileEntries.length === 0)
|
|
337
|
+
return "No supported source files found in the project.";
|
|
338
|
+
const files = [];
|
|
339
|
+
for (const entry of fileEntries) {
|
|
340
|
+
try {
|
|
341
|
+
const content = await readFile(entry.path, "utf-8");
|
|
342
|
+
let header = extractHeader(content);
|
|
343
|
+
let symbolPreview = [];
|
|
344
|
+
try {
|
|
345
|
+
const analysis = await analyzeFile(entry.path);
|
|
346
|
+
if (analysis.header)
|
|
347
|
+
header = analysis.header;
|
|
348
|
+
symbolPreview = flattenSymbols(analysis.symbols)
|
|
349
|
+
.slice(0, 3)
|
|
350
|
+
.map((s) => `${s.name}@${formatLineRange(s.line, s.endLine)}`);
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
353
|
+
}
|
|
354
|
+
files.push({
|
|
355
|
+
relativePath: entry.relativePath,
|
|
356
|
+
header,
|
|
357
|
+
content: content.substring(0, 500),
|
|
358
|
+
symbolPreview,
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (files.length === 0)
|
|
365
|
+
return "Could not read any source files.";
|
|
366
|
+
let embeddableFiles = files;
|
|
367
|
+
let vectors = [];
|
|
368
|
+
let skippedForEmbedding = 0;
|
|
369
|
+
try {
|
|
370
|
+
const embedded = await embedFilesWithFallback(files);
|
|
371
|
+
embeddableFiles = embedded.files;
|
|
372
|
+
vectors = embedded.vectors;
|
|
373
|
+
skippedForEmbedding = embedded.skipped;
|
|
374
|
+
}
|
|
375
|
+
catch (err) {
|
|
376
|
+
const provider = getProvider();
|
|
377
|
+
const providerHint = provider === "openai"
|
|
378
|
+
? `Check CONTEXTPRO_API_KEY and CONTEXTPRO_BASE_URL.`
|
|
379
|
+
: `Make sure Ollama is running (check OLLAMA_HOST) and that the embedding model configured in CONTEXTPRO_EMBED_MODEL is available.`;
|
|
380
|
+
return `Embedding provider (${provider}) not available: ${err instanceof Error ? err.message : String(err)}\n${providerHint}`;
|
|
381
|
+
}
|
|
382
|
+
if (embeddableFiles.length === 0)
|
|
383
|
+
return "No embeddable source files found in the project.";
|
|
384
|
+
if (embeddableFiles.length <= MAX_FILES_PER_LEAF) {
|
|
385
|
+
let fileLabels = embeddableFiles.map((file) => file.header);
|
|
386
|
+
if (useChatModel) {
|
|
387
|
+
try {
|
|
388
|
+
const prompt = `For each file below, produce a 3-7 word description. Return ONLY a JSON array of strings.\n\n${embeddableFiles.map((f) => `${f.relativePath}: ${f.header}`).join("\n")}`;
|
|
389
|
+
const response = await chatCompletion(options.rootDir, prompt);
|
|
390
|
+
const match = response.match(/\[[\s\S]*\]/);
|
|
391
|
+
fileLabels = match ? JSON.parse(match[0]) : fileLabels;
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
const summary = skippedForEmbedding > 0
|
|
397
|
+
? `Semantic Navigator: ${embeddableFiles.length} files (${skippedForEmbedding} skipped due embedding limits)\n`
|
|
398
|
+
: `Semantic Navigator: ${embeddableFiles.length} files\n`;
|
|
399
|
+
const lines = [summary];
|
|
400
|
+
for (let i = 0; i < embeddableFiles.length; i++) {
|
|
401
|
+
const symbols = embeddableFiles[i].symbolPreview.length > 0 ? ` | symbols: ${embeddableFiles[i].symbolPreview.join(", ")}` : "";
|
|
402
|
+
lines.push(` ${embeddableFiles[i].relativePath} - ${fileLabels[i] || embeddableFiles[i].header}${symbols}`);
|
|
403
|
+
}
|
|
404
|
+
return lines.join("\n");
|
|
405
|
+
}
|
|
406
|
+
const tree = await buildHierarchy(options.rootDir, embeddableFiles, vectors, maxClusters, 0, maxDepth, useChatModel);
|
|
407
|
+
tree.label = "Project";
|
|
408
|
+
const summary = skippedForEmbedding > 0
|
|
409
|
+
? `Semantic Navigator: ${embeddableFiles.length} files organized by meaning (${skippedForEmbedding} skipped due embedding limits)`
|
|
410
|
+
: `Semantic Navigator: ${embeddableFiles.length} files organized by meaning`;
|
|
411
|
+
return `${summary}\n\n${renderClusterTree(tree)}`;
|
|
412
|
+
}
|
|
413
|
+
//# sourceMappingURL=semantic-navigate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-navigate.js","sourceRoot":"","sources":["../../src/tools/semantic-navigate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type SearchResult } from "../core/embeddings.js";
|
|
2
|
+
export interface SemanticSearchOptions {
|
|
3
|
+
rootDir: string;
|
|
4
|
+
query: string;
|
|
5
|
+
preset?: "fast" | "balanced" | "exhaustive" | "semantic_only" | "keyword_only";
|
|
6
|
+
topK?: number;
|
|
7
|
+
semanticWeight?: number;
|
|
8
|
+
keywordWeight?: number;
|
|
9
|
+
minSemanticScore?: number;
|
|
10
|
+
minKeywordScore?: number;
|
|
11
|
+
minCombinedScore?: number;
|
|
12
|
+
requireKeywordMatch?: boolean;
|
|
13
|
+
requireSemanticMatch?: boolean;
|
|
14
|
+
fusion?: "weighted" | "rrf";
|
|
15
|
+
inlineCode?: "off" | "crux" | "full";
|
|
16
|
+
}
|
|
17
|
+
export interface SemanticCodeSearchData {
|
|
18
|
+
query: string;
|
|
19
|
+
results: SearchResult[];
|
|
20
|
+
}
|
|
21
|
+
export declare function applySearchPreset(options: SemanticSearchOptions): SemanticSearchOptions;
|
|
22
|
+
export declare function semanticCodeSearchResults(options: SemanticSearchOptions): Promise<SemanticCodeSearchData>;
|
|
23
|
+
export declare function formatSemanticCodeSearchData({ query, results }: SemanticCodeSearchData): string;
|
|
24
|
+
export declare function semanticCodeSearch(options: SemanticSearchOptions): Promise<string>;
|
|
25
|
+
export declare function invalidateSearchCache(): void;
|
|
26
|
+
export declare function refreshFileSearchEmbeddings(options: {
|
|
27
|
+
rootDir: string;
|
|
28
|
+
relativePaths: string[];
|
|
29
|
+
}): Promise<number>;
|
|
30
|
+
//# sourceMappingURL=semantic-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/tools/semantic-search.ts"],"names":[],"mappings":"AAKA,OAAO,EAUL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAC;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAwBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,CA8CvF;AAgUD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAyB/G;AAED,wBAAgB,4BAA4B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAAG,MAAM,CAqB/F;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAExF;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxH"}
|