agentic-qe 2.5.10 → 2.6.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/.claude/agents/qe-code-intelligence.md +359 -0
- package/CHANGELOG.md +61 -0
- package/README.md +3 -2
- package/dist/agents/BaseAgent.d.ts +48 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +126 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CodeIntelligenceAgent.d.ts +133 -0
- package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -0
- package/dist/agents/CodeIntelligenceAgent.js +473 -0
- package/dist/agents/CodeIntelligenceAgent.js.map +1 -0
- package/dist/agents/context/ContextCache.d.ts +105 -0
- package/dist/agents/context/ContextCache.d.ts.map +1 -0
- package/dist/agents/context/ContextCache.js +235 -0
- package/dist/agents/context/ContextCache.js.map +1 -0
- package/dist/agents/context/ContextFormatter.d.ts +92 -0
- package/dist/agents/context/ContextFormatter.d.ts.map +1 -0
- package/dist/agents/context/ContextFormatter.js +338 -0
- package/dist/agents/context/ContextFormatter.js.map +1 -0
- package/dist/agents/context/GraphExpander.d.ts +87 -0
- package/dist/agents/context/GraphExpander.d.ts.map +1 -0
- package/dist/agents/context/GraphExpander.js +215 -0
- package/dist/agents/context/GraphExpander.js.map +1 -0
- package/dist/agents/context/KnowledgeGraphContextBuilder.d.ts +160 -0
- package/dist/agents/context/KnowledgeGraphContextBuilder.d.ts.map +1 -0
- package/dist/agents/context/KnowledgeGraphContextBuilder.js +300 -0
- package/dist/agents/context/KnowledgeGraphContextBuilder.js.map +1 -0
- package/dist/agents/context/index.d.ts +15 -0
- package/dist/agents/context/index.d.ts.map +1 -0
- package/dist/agents/context/index.js +18 -0
- package/dist/agents/context/index.js.map +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +67 -3
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/commands/knowledge-graph.d.ts +112 -0
- package/dist/cli/commands/knowledge-graph.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-graph.js +466 -0
- package/dist/cli/commands/knowledge-graph.js.map +1 -0
- package/dist/cli/formatters/KGOutputFormatter.d.ts +50 -0
- package/dist/cli/formatters/KGOutputFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/KGOutputFormatter.js +237 -0
- package/dist/cli/formatters/KGOutputFormatter.js.map +1 -0
- package/dist/cli/index-working.js +138 -0
- package/dist/cli/index-working.js.map +1 -1
- package/dist/cli/init/claude-config.d.ts +13 -1
- package/dist/cli/init/claude-config.d.ts.map +1 -1
- package/dist/cli/init/claude-config.js +70 -8
- package/dist/cli/init/claude-config.js.map +1 -1
- package/dist/cli/init/code-intelligence-init.d.ts +52 -0
- package/dist/cli/init/code-intelligence-init.d.ts.map +1 -0
- package/dist/cli/init/code-intelligence-init.js +250 -0
- package/dist/cli/init/code-intelligence-init.js.map +1 -0
- package/dist/cli/init/index.d.ts +2 -2
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +10 -1
- package/dist/cli/init/index.js.map +1 -1
- package/dist/code-intelligence/chunking/ASTChunker.d.ts +64 -0
- package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -0
- package/dist/code-intelligence/chunking/ASTChunker.js +344 -0
- package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -0
- package/dist/code-intelligence/chunking/ChunkSplitter.d.ts +48 -0
- package/dist/code-intelligence/chunking/ChunkSplitter.d.ts.map +1 -0
- package/dist/code-intelligence/chunking/ChunkSplitter.js +278 -0
- package/dist/code-intelligence/chunking/ChunkSplitter.js.map +1 -0
- package/dist/code-intelligence/chunking/index.d.ts +8 -0
- package/dist/code-intelligence/chunking/index.d.ts.map +1 -0
- package/dist/code-intelligence/chunking/index.js +13 -0
- package/dist/code-intelligence/chunking/index.js.map +1 -0
- package/dist/code-intelligence/chunking/types.d.ts +52 -0
- package/dist/code-intelligence/chunking/types.d.ts.map +1 -0
- package/dist/code-intelligence/chunking/types.js +6 -0
- package/dist/code-intelligence/chunking/types.js.map +1 -0
- package/dist/code-intelligence/config/database-schema.d.ts +245 -0
- package/dist/code-intelligence/config/database-schema.d.ts.map +1 -0
- package/dist/code-intelligence/config/database-schema.js +110 -0
- package/dist/code-intelligence/config/database-schema.js.map +1 -0
- package/dist/code-intelligence/config/environment.d.ts +53 -0
- package/dist/code-intelligence/config/environment.d.ts.map +1 -0
- package/dist/code-intelligence/config/environment.js +86 -0
- package/dist/code-intelligence/config/environment.js.map +1 -0
- package/dist/code-intelligence/config/index.d.ts +10 -0
- package/dist/code-intelligence/config/index.d.ts.map +1 -0
- package/dist/code-intelligence/config/index.js +36 -0
- package/dist/code-intelligence/config/index.js.map +1 -0
- package/dist/code-intelligence/embeddings/EmbeddingCache.d.ts +81 -0
- package/dist/code-intelligence/embeddings/EmbeddingCache.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/EmbeddingCache.js +168 -0
- package/dist/code-intelligence/embeddings/EmbeddingCache.js.map +1 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +82 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.js +233 -0
- package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -0
- package/dist/code-intelligence/embeddings/OllamaClient.d.ts +42 -0
- package/dist/code-intelligence/embeddings/OllamaClient.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/OllamaClient.js +142 -0
- package/dist/code-intelligence/embeddings/OllamaClient.js.map +1 -0
- package/dist/code-intelligence/embeddings/index.d.ts +33 -0
- package/dist/code-intelligence/embeddings/index.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/index.js +39 -0
- package/dist/code-intelligence/embeddings/index.js.map +1 -0
- package/dist/code-intelligence/embeddings/types.d.ts +84 -0
- package/dist/code-intelligence/embeddings/types.d.ts.map +1 -0
- package/dist/code-intelligence/embeddings/types.js +19 -0
- package/dist/code-intelligence/embeddings/types.js.map +1 -0
- package/dist/code-intelligence/graph/GraphBuilder.d.ts +126 -0
- package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/graph/GraphBuilder.js +416 -0
- package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -0
- package/dist/code-intelligence/graph/ImportParser.d.ts +72 -0
- package/dist/code-intelligence/graph/ImportParser.d.ts.map +1 -0
- package/dist/code-intelligence/graph/ImportParser.js +422 -0
- package/dist/code-intelligence/graph/ImportParser.js.map +1 -0
- package/dist/code-intelligence/graph/RelationshipExtractor.d.ts +74 -0
- package/dist/code-intelligence/graph/RelationshipExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/graph/RelationshipExtractor.js +310 -0
- package/dist/code-intelligence/graph/RelationshipExtractor.js.map +1 -0
- package/dist/code-intelligence/graph/TestMapper.d.ts +99 -0
- package/dist/code-intelligence/graph/TestMapper.d.ts.map +1 -0
- package/dist/code-intelligence/graph/TestMapper.js +335 -0
- package/dist/code-intelligence/graph/TestMapper.js.map +1 -0
- package/dist/code-intelligence/graph/index.d.ts +14 -0
- package/dist/code-intelligence/graph/index.d.ts.map +1 -0
- package/dist/code-intelligence/graph/index.js +19 -0
- package/dist/code-intelligence/graph/index.js.map +1 -0
- package/dist/code-intelligence/graph/types.d.ts +141 -0
- package/dist/code-intelligence/graph/types.d.ts.map +1 -0
- package/dist/code-intelligence/graph/types.js +18 -0
- package/dist/code-intelligence/graph/types.js.map +1 -0
- package/dist/code-intelligence/indexing/FileWatcher.d.ts +90 -0
- package/dist/code-intelligence/indexing/FileWatcher.d.ts.map +1 -0
- package/dist/code-intelligence/indexing/FileWatcher.js +304 -0
- package/dist/code-intelligence/indexing/FileWatcher.js.map +1 -0
- package/dist/code-intelligence/indexing/GitChangeDetector.d.ts +76 -0
- package/dist/code-intelligence/indexing/GitChangeDetector.d.ts.map +1 -0
- package/dist/code-intelligence/indexing/GitChangeDetector.js +347 -0
- package/dist/code-intelligence/indexing/GitChangeDetector.js.map +1 -0
- package/dist/code-intelligence/indexing/IncrementalIndexer.d.ts +108 -0
- package/dist/code-intelligence/indexing/IncrementalIndexer.d.ts.map +1 -0
- package/dist/code-intelligence/indexing/IncrementalIndexer.js +269 -0
- package/dist/code-intelligence/indexing/IncrementalIndexer.js.map +1 -0
- package/dist/code-intelligence/indexing/index.d.ts +11 -0
- package/dist/code-intelligence/indexing/index.d.ts.map +1 -0
- package/dist/code-intelligence/indexing/index.js +18 -0
- package/dist/code-intelligence/indexing/index.js.map +1 -0
- package/dist/code-intelligence/indexing/types.d.ts +133 -0
- package/dist/code-intelligence/indexing/types.d.ts.map +1 -0
- package/dist/code-intelligence/indexing/types.js +27 -0
- package/dist/code-intelligence/indexing/types.js.map +1 -0
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts +150 -0
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -0
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +806 -0
- package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -0
- package/dist/code-intelligence/orchestrator/index.d.ts +8 -0
- package/dist/code-intelligence/orchestrator/index.d.ts.map +1 -0
- package/dist/code-intelligence/orchestrator/index.js +24 -0
- package/dist/code-intelligence/orchestrator/index.js.map +1 -0
- package/dist/code-intelligence/orchestrator/types.d.ts +164 -0
- package/dist/code-intelligence/orchestrator/types.d.ts.map +1 -0
- package/dist/code-intelligence/orchestrator/types.js +18 -0
- package/dist/code-intelligence/orchestrator/types.js.map +1 -0
- package/dist/code-intelligence/parser/LanguageRegistry.d.ts +13 -0
- package/dist/code-intelligence/parser/LanguageRegistry.d.ts.map +1 -0
- package/dist/code-intelligence/parser/LanguageRegistry.js +150 -0
- package/dist/code-intelligence/parser/LanguageRegistry.js.map +1 -0
- package/dist/code-intelligence/parser/TreeSitterParser.d.ts +98 -0
- package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +1 -0
- package/dist/code-intelligence/parser/TreeSitterParser.js +530 -0
- package/dist/code-intelligence/parser/TreeSitterParser.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +36 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js +31 -0
- package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +21 -0
- package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/GoExtractor.js +249 -0
- package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +21 -0
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +217 -0
- package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +20 -0
- package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js +237 -0
- package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +21 -0
- package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/RustExtractor.js +234 -0
- package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +23 -0
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +247 -0
- package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -0
- package/dist/code-intelligence/parser/extractors/index.d.ts +7 -0
- package/dist/code-intelligence/parser/extractors/index.d.ts.map +1 -0
- package/dist/code-intelligence/parser/extractors/index.js +16 -0
- package/dist/code-intelligence/parser/extractors/index.js.map +1 -0
- package/dist/code-intelligence/parser/index.d.ts +8 -0
- package/dist/code-intelligence/parser/index.d.ts.map +1 -0
- package/dist/code-intelligence/parser/index.js +12 -0
- package/dist/code-intelligence/parser/index.js.map +1 -0
- package/dist/code-intelligence/parser/types.d.ts +60 -0
- package/dist/code-intelligence/parser/types.d.ts.map +1 -0
- package/dist/code-intelligence/parser/types.js +6 -0
- package/dist/code-intelligence/parser/types.js.map +1 -0
- package/dist/code-intelligence/rag/ContextBuilder.d.ts +82 -0
- package/dist/code-intelligence/rag/ContextBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/rag/ContextBuilder.js +242 -0
- package/dist/code-intelligence/rag/ContextBuilder.js.map +1 -0
- package/dist/code-intelligence/rag/GraphExpander.d.ts +95 -0
- package/dist/code-intelligence/rag/GraphExpander.d.ts.map +1 -0
- package/dist/code-intelligence/rag/GraphExpander.js +250 -0
- package/dist/code-intelligence/rag/GraphExpander.js.map +1 -0
- package/dist/code-intelligence/rag/index.d.ts +9 -0
- package/dist/code-intelligence/rag/index.d.ts.map +1 -0
- package/dist/code-intelligence/rag/index.js +25 -0
- package/dist/code-intelligence/rag/index.js.map +1 -0
- package/dist/code-intelligence/rag/types.d.ts +121 -0
- package/dist/code-intelligence/rag/types.d.ts.map +1 -0
- package/dist/code-intelligence/rag/types.js +50 -0
- package/dist/code-intelligence/rag/types.js.map +1 -0
- package/dist/code-intelligence/retrieval/SemanticRetriever.d.ts +62 -0
- package/dist/code-intelligence/retrieval/SemanticRetriever.d.ts.map +1 -0
- package/dist/code-intelligence/retrieval/SemanticRetriever.js +174 -0
- package/dist/code-intelligence/retrieval/SemanticRetriever.js.map +1 -0
- package/dist/code-intelligence/retrieval/index.d.ts +9 -0
- package/dist/code-intelligence/retrieval/index.d.ts.map +1 -0
- package/dist/code-intelligence/retrieval/index.js +16 -0
- package/dist/code-intelligence/retrieval/index.js.map +1 -0
- package/dist/code-intelligence/retrieval/types.d.ts +118 -0
- package/dist/code-intelligence/retrieval/types.d.ts.map +1 -0
- package/dist/code-intelligence/retrieval/types.js +46 -0
- package/dist/code-intelligence/retrieval/types.js.map +1 -0
- package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.d.ts +167 -0
- package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.d.ts.map +1 -0
- package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.js +365 -0
- package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.js.map +1 -0
- package/dist/code-intelligence/router/index.d.ts +7 -0
- package/dist/code-intelligence/router/index.d.ts.map +1 -0
- package/dist/code-intelligence/router/index.js +14 -0
- package/dist/code-intelligence/router/index.js.map +1 -0
- package/dist/code-intelligence/search/BM25Search.d.ts +74 -0
- package/dist/code-intelligence/search/BM25Search.d.ts.map +1 -0
- package/dist/code-intelligence/search/BM25Search.js +233 -0
- package/dist/code-intelligence/search/BM25Search.js.map +1 -0
- package/dist/code-intelligence/search/HybridSearchEngine.d.ts +94 -0
- package/dist/code-intelligence/search/HybridSearchEngine.d.ts.map +1 -0
- package/dist/code-intelligence/search/HybridSearchEngine.js +168 -0
- package/dist/code-intelligence/search/HybridSearchEngine.js.map +1 -0
- package/dist/code-intelligence/search/RRFFusion.d.ts +46 -0
- package/dist/code-intelligence/search/RRFFusion.d.ts.map +1 -0
- package/dist/code-intelligence/search/RRFFusion.js +223 -0
- package/dist/code-intelligence/search/RRFFusion.js.map +1 -0
- package/dist/code-intelligence/search/VectorSearch.d.ts +157 -0
- package/dist/code-intelligence/search/VectorSearch.d.ts.map +1 -0
- package/dist/code-intelligence/search/VectorSearch.js +301 -0
- package/dist/code-intelligence/search/VectorSearch.js.map +1 -0
- package/dist/code-intelligence/search/index.d.ts +14 -0
- package/dist/code-intelligence/search/index.d.ts.map +1 -0
- package/dist/code-intelligence/search/index.js +23 -0
- package/dist/code-intelligence/search/index.js.map +1 -0
- package/dist/code-intelligence/search/types.d.ts +201 -0
- package/dist/code-intelligence/search/types.d.ts.map +1 -0
- package/dist/code-intelligence/search/types.js +35 -0
- package/dist/code-intelligence/search/types.js.map +1 -0
- package/dist/code-intelligence/service/CodeIntelligenceService.d.ts +171 -0
- package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -0
- package/dist/code-intelligence/service/CodeIntelligenceService.js +325 -0
- package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -0
- package/dist/code-intelligence/service/index.d.ts +7 -0
- package/dist/code-intelligence/service/index.d.ts.map +1 -0
- package/dist/code-intelligence/service/index.js +14 -0
- package/dist/code-intelligence/service/index.js.map +1 -0
- package/dist/code-intelligence/storage/CodeChunkStore.d.ts +213 -0
- package/dist/code-intelligence/storage/CodeChunkStore.d.ts.map +1 -0
- package/dist/code-intelligence/storage/CodeChunkStore.js +542 -0
- package/dist/code-intelligence/storage/CodeChunkStore.js.map +1 -0
- package/dist/code-intelligence/storage/index.d.ts +7 -0
- package/dist/code-intelligence/storage/index.d.ts.map +1 -0
- package/dist/code-intelligence/storage/index.js +13 -0
- package/dist/code-intelligence/storage/index.js.map +1 -0
- package/dist/code-intelligence/visualization/ClassDiagramBuilder.d.ts +51 -0
- package/dist/code-intelligence/visualization/ClassDiagramBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/ClassDiagramBuilder.js +180 -0
- package/dist/code-intelligence/visualization/ClassDiagramBuilder.js.map +1 -0
- package/dist/code-intelligence/visualization/DependencyGraphBuilder.d.ts +66 -0
- package/dist/code-intelligence/visualization/DependencyGraphBuilder.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/DependencyGraphBuilder.js +203 -0
- package/dist/code-intelligence/visualization/DependencyGraphBuilder.js.map +1 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.d.ts +76 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.js +368 -0
- package/dist/code-intelligence/visualization/MermaidGenerator.js.map +1 -0
- package/dist/code-intelligence/visualization/index.d.ts +9 -0
- package/dist/code-intelligence/visualization/index.d.ts.map +1 -0
- package/dist/code-intelligence/visualization/index.js +15 -0
- package/dist/code-intelligence/visualization/index.js.map +1 -0
- package/dist/core/FleetManager.d.ts +27 -0
- package/dist/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +84 -0
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/HNSWVectorMemory.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/docs/reference/agents.md +44 -1
- package/package.json +12 -1
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CodeChunkStore - RuVector-based storage for code intelligence chunks
|
|
4
|
+
*
|
|
5
|
+
* Extends RuVectorPostgresAdapter to provide specialized storage for:
|
|
6
|
+
* - Code chunks with embeddings
|
|
7
|
+
* - Entity relationships
|
|
8
|
+
* - File-based filtering and search
|
|
9
|
+
*
|
|
10
|
+
* Uses the existing RuVector PostgreSQL infrastructure instead of
|
|
11
|
+
* reinventing vector storage.
|
|
12
|
+
*
|
|
13
|
+
* @module code-intelligence/storage/CodeChunkStore
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CodeChunkStore = void 0;
|
|
17
|
+
exports.createDockerCodeChunkStore = createDockerCodeChunkStore;
|
|
18
|
+
exports.createCodeChunkStoreFromEnv = createCodeChunkStoreFromEnv;
|
|
19
|
+
const pg_1 = require("pg");
|
|
20
|
+
/**
|
|
21
|
+
* CodeChunkStore - RuVector-backed code chunk storage
|
|
22
|
+
*
|
|
23
|
+
* Uses PostgreSQL with RuVector extension for:
|
|
24
|
+
* - Semantic vector search via ruvector_cosine_distance()
|
|
25
|
+
* - Full-text search via tsvector/GIN
|
|
26
|
+
* - Hybrid search combining both
|
|
27
|
+
*/
|
|
28
|
+
class CodeChunkStore {
|
|
29
|
+
constructor(config = {}) {
|
|
30
|
+
this.initialized = false;
|
|
31
|
+
this.config = {
|
|
32
|
+
connectionString: config.connectionString ?? '',
|
|
33
|
+
host: config.host ?? 'localhost',
|
|
34
|
+
port: config.port ?? 5432,
|
|
35
|
+
database: config.database ?? 'ruvector_db',
|
|
36
|
+
user: config.user ?? 'ruvector',
|
|
37
|
+
password: config.password ?? 'ruvector',
|
|
38
|
+
embeddingDimension: config.embeddingDimension ?? 768,
|
|
39
|
+
poolSize: config.poolSize ?? 10,
|
|
40
|
+
debug: config.debug ?? false,
|
|
41
|
+
};
|
|
42
|
+
const poolConfig = this.config.connectionString
|
|
43
|
+
? { connectionString: this.config.connectionString }
|
|
44
|
+
: {
|
|
45
|
+
host: this.config.host,
|
|
46
|
+
port: this.config.port,
|
|
47
|
+
database: this.config.database,
|
|
48
|
+
user: this.config.user,
|
|
49
|
+
password: this.config.password,
|
|
50
|
+
max: this.config.poolSize,
|
|
51
|
+
idleTimeoutMillis: 30000,
|
|
52
|
+
connectionTimeoutMillis: 10000,
|
|
53
|
+
};
|
|
54
|
+
this.pool = new pg_1.Pool(poolConfig);
|
|
55
|
+
this.log('CodeChunkStore initialized', {
|
|
56
|
+
host: this.config.host,
|
|
57
|
+
port: this.config.port,
|
|
58
|
+
database: this.config.database,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Initialize the store and create tables if needed
|
|
63
|
+
*/
|
|
64
|
+
async initialize() {
|
|
65
|
+
if (this.initialized)
|
|
66
|
+
return;
|
|
67
|
+
const client = await this.pool.connect();
|
|
68
|
+
try {
|
|
69
|
+
// Verify RuVector extension
|
|
70
|
+
try {
|
|
71
|
+
const extCheck = await client.query("SELECT ruvector_version() as version");
|
|
72
|
+
this.log('RuVector extension version', { version: extCheck.rows[0]?.version });
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
this.log('RuVector extension not available, using standard vector operations');
|
|
76
|
+
}
|
|
77
|
+
// Create code_chunks table
|
|
78
|
+
await client.query(`
|
|
79
|
+
CREATE TABLE IF NOT EXISTS code_chunks (
|
|
80
|
+
id TEXT PRIMARY KEY,
|
|
81
|
+
file_path TEXT NOT NULL,
|
|
82
|
+
chunk_type VARCHAR(50),
|
|
83
|
+
name TEXT,
|
|
84
|
+
line_start INTEGER,
|
|
85
|
+
line_end INTEGER,
|
|
86
|
+
content TEXT NOT NULL,
|
|
87
|
+
language VARCHAR(20),
|
|
88
|
+
embedding ruvector(${this.config.embeddingDimension}),
|
|
89
|
+
metadata JSONB DEFAULT '{}',
|
|
90
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
91
|
+
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
92
|
+
)
|
|
93
|
+
`);
|
|
94
|
+
// Create indices
|
|
95
|
+
await client.query(`
|
|
96
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_file ON code_chunks(file_path);
|
|
97
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_type ON code_chunks(chunk_type);
|
|
98
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_language ON code_chunks(language);
|
|
99
|
+
`);
|
|
100
|
+
// Create code_entities table
|
|
101
|
+
await client.query(`
|
|
102
|
+
CREATE TABLE IF NOT EXISTS code_entities (
|
|
103
|
+
id TEXT PRIMARY KEY,
|
|
104
|
+
file_path TEXT NOT NULL,
|
|
105
|
+
entity_type VARCHAR(50) NOT NULL,
|
|
106
|
+
name TEXT NOT NULL,
|
|
107
|
+
signature TEXT,
|
|
108
|
+
line_start INTEGER,
|
|
109
|
+
line_end INTEGER,
|
|
110
|
+
language VARCHAR(20),
|
|
111
|
+
parent_id TEXT REFERENCES code_entities(id) ON DELETE CASCADE,
|
|
112
|
+
metadata JSONB DEFAULT '{}',
|
|
113
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
114
|
+
)
|
|
115
|
+
`);
|
|
116
|
+
// Create entity_relationships table
|
|
117
|
+
await client.query(`
|
|
118
|
+
CREATE TABLE IF NOT EXISTS entity_relationships (
|
|
119
|
+
id SERIAL PRIMARY KEY,
|
|
120
|
+
source_id TEXT NOT NULL,
|
|
121
|
+
target_id TEXT NOT NULL,
|
|
122
|
+
relationship_type VARCHAR(50) NOT NULL,
|
|
123
|
+
confidence REAL DEFAULT 1.0,
|
|
124
|
+
metadata JSONB DEFAULT '{}',
|
|
125
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
126
|
+
UNIQUE(source_id, target_id, relationship_type)
|
|
127
|
+
)
|
|
128
|
+
`);
|
|
129
|
+
// Create indices for relationships
|
|
130
|
+
await client.query(`
|
|
131
|
+
CREATE INDEX IF NOT EXISTS idx_rel_source ON entity_relationships(source_id);
|
|
132
|
+
CREATE INDEX IF NOT EXISTS idx_rel_target ON entity_relationships(target_id);
|
|
133
|
+
CREATE INDEX IF NOT EXISTS idx_rel_type ON entity_relationships(relationship_type);
|
|
134
|
+
`);
|
|
135
|
+
this.initialized = true;
|
|
136
|
+
this.log('CodeChunkStore tables initialized');
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
client.release();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Store a code chunk with its embedding
|
|
144
|
+
*/
|
|
145
|
+
async storeChunk(chunk) {
|
|
146
|
+
await this.ensureInitialized();
|
|
147
|
+
const embeddingStr = `[${chunk.embedding.join(',')}]`;
|
|
148
|
+
await this.pool.query(`INSERT INTO code_chunks
|
|
149
|
+
(id, file_path, content, embedding, chunk_type, name, line_start, line_end, language, metadata)
|
|
150
|
+
VALUES ($1, $2, $3, $4::ruvector, $5, $6, $7, $8, $9, $10)
|
|
151
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
152
|
+
content = EXCLUDED.content,
|
|
153
|
+
embedding = EXCLUDED.embedding,
|
|
154
|
+
chunk_type = EXCLUDED.chunk_type,
|
|
155
|
+
name = EXCLUDED.name,
|
|
156
|
+
line_start = EXCLUDED.line_start,
|
|
157
|
+
line_end = EXCLUDED.line_end,
|
|
158
|
+
language = EXCLUDED.language,
|
|
159
|
+
metadata = EXCLUDED.metadata,
|
|
160
|
+
updated_at = NOW()`, [
|
|
161
|
+
chunk.id,
|
|
162
|
+
chunk.filePath,
|
|
163
|
+
chunk.content,
|
|
164
|
+
embeddingStr,
|
|
165
|
+
chunk.chunkType || null,
|
|
166
|
+
chunk.name || null,
|
|
167
|
+
chunk.startLine || null,
|
|
168
|
+
chunk.endLine || null,
|
|
169
|
+
chunk.language || null,
|
|
170
|
+
JSON.stringify(chunk.metadata || {}),
|
|
171
|
+
]);
|
|
172
|
+
this.log('Chunk stored', { id: chunk.id, filePath: chunk.filePath });
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Store multiple chunks in batch
|
|
176
|
+
*/
|
|
177
|
+
async storeChunks(chunks) {
|
|
178
|
+
await this.ensureInitialized();
|
|
179
|
+
const client = await this.pool.connect();
|
|
180
|
+
try {
|
|
181
|
+
await client.query('BEGIN');
|
|
182
|
+
for (const chunk of chunks) {
|
|
183
|
+
const embeddingStr = `[${chunk.embedding.join(',')}]`;
|
|
184
|
+
await client.query(`INSERT INTO code_chunks
|
|
185
|
+
(id, file_path, content, embedding, chunk_type, name, line_start, line_end, language, metadata)
|
|
186
|
+
VALUES ($1, $2, $3, $4::ruvector, $5, $6, $7, $8, $9, $10)
|
|
187
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
188
|
+
content = EXCLUDED.content,
|
|
189
|
+
embedding = EXCLUDED.embedding,
|
|
190
|
+
chunk_type = EXCLUDED.chunk_type,
|
|
191
|
+
name = EXCLUDED.name,
|
|
192
|
+
line_start = EXCLUDED.line_start,
|
|
193
|
+
line_end = EXCLUDED.line_end,
|
|
194
|
+
language = EXCLUDED.language,
|
|
195
|
+
metadata = EXCLUDED.metadata,
|
|
196
|
+
updated_at = NOW()`, [
|
|
197
|
+
chunk.id,
|
|
198
|
+
chunk.filePath,
|
|
199
|
+
chunk.content,
|
|
200
|
+
embeddingStr,
|
|
201
|
+
chunk.chunkType || null,
|
|
202
|
+
chunk.name || null,
|
|
203
|
+
chunk.startLine || null,
|
|
204
|
+
chunk.endLine || null,
|
|
205
|
+
chunk.language || null,
|
|
206
|
+
JSON.stringify(chunk.metadata || {}),
|
|
207
|
+
]);
|
|
208
|
+
}
|
|
209
|
+
await client.query('COMMIT');
|
|
210
|
+
this.log('Batch stored', { count: chunks.length });
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
await client.query('ROLLBACK');
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
finally {
|
|
217
|
+
client.release();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Search for similar code chunks using vector similarity
|
|
222
|
+
*/
|
|
223
|
+
async search(queryEmbedding, options = {}) {
|
|
224
|
+
await this.ensureInitialized();
|
|
225
|
+
const { topK = 10, minScore = 0.0, language, filePattern, entityType, includeContent = true, } = options;
|
|
226
|
+
const embeddingStr = `[${queryEmbedding.join(',')}]`;
|
|
227
|
+
// Build filter clauses
|
|
228
|
+
const filters = ['embedding IS NOT NULL'];
|
|
229
|
+
const params = [embeddingStr, topK];
|
|
230
|
+
let paramIndex = 3;
|
|
231
|
+
if (language) {
|
|
232
|
+
filters.push(`language = $${paramIndex++}`);
|
|
233
|
+
params.push(language);
|
|
234
|
+
}
|
|
235
|
+
if (filePattern) {
|
|
236
|
+
filters.push(`file_path LIKE $${paramIndex++}`);
|
|
237
|
+
params.push(`%${filePattern}%`);
|
|
238
|
+
}
|
|
239
|
+
if (entityType) {
|
|
240
|
+
filters.push(`chunk_type = $${paramIndex++}`);
|
|
241
|
+
params.push(entityType);
|
|
242
|
+
}
|
|
243
|
+
const whereClause = filters.length > 0 ? `WHERE ${filters.join(' AND ')}` : '';
|
|
244
|
+
const contentSelect = includeContent ? 'content,' : "'' as content,";
|
|
245
|
+
const result = await this.pool.query(`SELECT
|
|
246
|
+
id,
|
|
247
|
+
file_path,
|
|
248
|
+
${contentSelect}
|
|
249
|
+
line_start,
|
|
250
|
+
line_end,
|
|
251
|
+
chunk_type,
|
|
252
|
+
name,
|
|
253
|
+
language,
|
|
254
|
+
metadata,
|
|
255
|
+
ruvector_cosine_distance(embedding, $1::ruvector) as distance
|
|
256
|
+
FROM code_chunks
|
|
257
|
+
${whereClause}
|
|
258
|
+
ORDER BY ruvector_cosine_distance(embedding, $1::ruvector)
|
|
259
|
+
LIMIT $2`, params);
|
|
260
|
+
return result.rows
|
|
261
|
+
.map((row) => ({
|
|
262
|
+
id: row.id,
|
|
263
|
+
filePath: row.file_path,
|
|
264
|
+
content: row.content,
|
|
265
|
+
startLine: row.line_start || 0,
|
|
266
|
+
endLine: row.line_end || 0,
|
|
267
|
+
score: Math.max(0, 1 - row.distance), // Convert distance to similarity
|
|
268
|
+
chunkType: row.chunk_type,
|
|
269
|
+
name: row.name,
|
|
270
|
+
language: row.language,
|
|
271
|
+
metadata: row.metadata,
|
|
272
|
+
}))
|
|
273
|
+
.filter((r) => r.score >= minScore);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Hybrid search combining vector similarity and keyword matching
|
|
277
|
+
*/
|
|
278
|
+
async hybridSearch(queryEmbedding, queryText, options = {}) {
|
|
279
|
+
await this.ensureInitialized();
|
|
280
|
+
const { topK = 10, minScore = 0.0, language, filePattern, semanticWeight = 0.7, } = options;
|
|
281
|
+
const embeddingStr = `[${queryEmbedding.join(',')}]`;
|
|
282
|
+
// Build filter clauses
|
|
283
|
+
const filters = ['embedding IS NOT NULL'];
|
|
284
|
+
const params = [embeddingStr, queryText, topK];
|
|
285
|
+
let paramIndex = 4;
|
|
286
|
+
if (language) {
|
|
287
|
+
filters.push(`language = $${paramIndex++}`);
|
|
288
|
+
params.push(language);
|
|
289
|
+
}
|
|
290
|
+
if (filePattern) {
|
|
291
|
+
filters.push(`file_path LIKE $${paramIndex++}`);
|
|
292
|
+
params.push(`%${filePattern}%`);
|
|
293
|
+
}
|
|
294
|
+
const whereClause = filters.length > 0 ? `WHERE ${filters.join(' AND ')}` : '';
|
|
295
|
+
const result = await this.pool.query(`SELECT
|
|
296
|
+
id,
|
|
297
|
+
file_path,
|
|
298
|
+
content,
|
|
299
|
+
line_start,
|
|
300
|
+
line_end,
|
|
301
|
+
chunk_type,
|
|
302
|
+
name,
|
|
303
|
+
language,
|
|
304
|
+
metadata,
|
|
305
|
+
(1 - ruvector_cosine_distance(embedding, $1::ruvector)) as semantic_score,
|
|
306
|
+
ts_rank(to_tsvector('english', content), plainto_tsquery('english', $2)) as keyword_score,
|
|
307
|
+
(
|
|
308
|
+
${semanticWeight} * (1 - ruvector_cosine_distance(embedding, $1::ruvector)) +
|
|
309
|
+
${1 - semanticWeight} * ts_rank(to_tsvector('english', content), plainto_tsquery('english', $2))
|
|
310
|
+
) as hybrid_score
|
|
311
|
+
FROM code_chunks
|
|
312
|
+
${whereClause}
|
|
313
|
+
ORDER BY hybrid_score DESC
|
|
314
|
+
LIMIT $3`, params);
|
|
315
|
+
return result.rows
|
|
316
|
+
.map((row) => ({
|
|
317
|
+
id: row.id,
|
|
318
|
+
filePath: row.file_path,
|
|
319
|
+
content: row.content,
|
|
320
|
+
startLine: row.line_start || 0,
|
|
321
|
+
endLine: row.line_end || 0,
|
|
322
|
+
score: row.hybrid_score,
|
|
323
|
+
chunkType: row.chunk_type,
|
|
324
|
+
name: row.name,
|
|
325
|
+
language: row.language,
|
|
326
|
+
metadata: {
|
|
327
|
+
...row.metadata,
|
|
328
|
+
semanticScore: row.semantic_score,
|
|
329
|
+
keywordScore: row.keyword_score,
|
|
330
|
+
},
|
|
331
|
+
}))
|
|
332
|
+
.filter((r) => r.score >= minScore);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Store a code entity
|
|
336
|
+
*/
|
|
337
|
+
async storeEntity(entity) {
|
|
338
|
+
await this.ensureInitialized();
|
|
339
|
+
await this.pool.query(`INSERT INTO code_entities
|
|
340
|
+
(id, file_path, entity_type, name, signature, line_start, line_end, language, parent_id, metadata)
|
|
341
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
342
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
343
|
+
file_path = EXCLUDED.file_path,
|
|
344
|
+
entity_type = EXCLUDED.entity_type,
|
|
345
|
+
name = EXCLUDED.name,
|
|
346
|
+
signature = EXCLUDED.signature,
|
|
347
|
+
line_start = EXCLUDED.line_start,
|
|
348
|
+
line_end = EXCLUDED.line_end,
|
|
349
|
+
language = EXCLUDED.language,
|
|
350
|
+
parent_id = EXCLUDED.parent_id,
|
|
351
|
+
metadata = EXCLUDED.metadata`, [
|
|
352
|
+
entity.id,
|
|
353
|
+
entity.filePath,
|
|
354
|
+
entity.entityType,
|
|
355
|
+
entity.name,
|
|
356
|
+
entity.signature || null,
|
|
357
|
+
entity.startLine || null,
|
|
358
|
+
entity.endLine || null,
|
|
359
|
+
entity.language || null,
|
|
360
|
+
entity.parentId || null,
|
|
361
|
+
JSON.stringify(entity.metadata || {}),
|
|
362
|
+
]);
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Store a relationship between entities
|
|
366
|
+
*/
|
|
367
|
+
async storeRelationship(relationship) {
|
|
368
|
+
await this.ensureInitialized();
|
|
369
|
+
await this.pool.query(`INSERT INTO entity_relationships
|
|
370
|
+
(source_id, target_id, relationship_type, confidence, metadata)
|
|
371
|
+
VALUES ($1, $2, $3, $4, $5)
|
|
372
|
+
ON CONFLICT (source_id, target_id, relationship_type) DO UPDATE SET
|
|
373
|
+
confidence = EXCLUDED.confidence,
|
|
374
|
+
metadata = EXCLUDED.metadata`, [
|
|
375
|
+
relationship.sourceId,
|
|
376
|
+
relationship.targetId,
|
|
377
|
+
relationship.relationshipType,
|
|
378
|
+
relationship.confidence ?? 1.0,
|
|
379
|
+
JSON.stringify(relationship.metadata || {}),
|
|
380
|
+
]);
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Get relationships for an entity
|
|
384
|
+
*/
|
|
385
|
+
async getRelationships(entityId, direction = 'both') {
|
|
386
|
+
await this.ensureInitialized();
|
|
387
|
+
let query;
|
|
388
|
+
const params = [entityId];
|
|
389
|
+
if (direction === 'outgoing') {
|
|
390
|
+
query = 'SELECT * FROM entity_relationships WHERE source_id = $1';
|
|
391
|
+
}
|
|
392
|
+
else if (direction === 'incoming') {
|
|
393
|
+
query = 'SELECT * FROM entity_relationships WHERE target_id = $1';
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
query = 'SELECT * FROM entity_relationships WHERE source_id = $1 OR target_id = $1';
|
|
397
|
+
}
|
|
398
|
+
const result = await this.pool.query(query, params);
|
|
399
|
+
return result.rows;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Delete chunks for a file (for re-indexing)
|
|
403
|
+
*/
|
|
404
|
+
async deleteChunksForFile(filePath) {
|
|
405
|
+
await this.ensureInitialized();
|
|
406
|
+
const result = await this.pool.query('DELETE FROM code_chunks WHERE file_path = $1', [filePath]);
|
|
407
|
+
return result.rowCount || 0;
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Delete entities for a file
|
|
411
|
+
*/
|
|
412
|
+
async deleteEntitiesForFile(filePath) {
|
|
413
|
+
await this.ensureInitialized();
|
|
414
|
+
const result = await this.pool.query('DELETE FROM code_entities WHERE file_path = $1', [filePath]);
|
|
415
|
+
return result.rowCount || 0;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Delete chunks by file path (alias for deleteChunksForFile)
|
|
419
|
+
*/
|
|
420
|
+
async deleteByFilePath(filePath) {
|
|
421
|
+
return this.deleteChunksForFile(filePath);
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Get statistics about stored data
|
|
425
|
+
*/
|
|
426
|
+
async getStats() {
|
|
427
|
+
await this.ensureInitialized();
|
|
428
|
+
const [chunks, entities, relationships] = await Promise.all([
|
|
429
|
+
this.pool.query('SELECT COUNT(*) as count FROM code_chunks'),
|
|
430
|
+
this.pool.query('SELECT COUNT(*) as count FROM code_entities'),
|
|
431
|
+
this.pool.query('SELECT COUNT(*) as count FROM entity_relationships'),
|
|
432
|
+
]);
|
|
433
|
+
return {
|
|
434
|
+
chunkCount: parseInt(chunks.rows[0]?.count ?? '0', 10),
|
|
435
|
+
entityCount: parseInt(entities.rows[0]?.count ?? '0', 10),
|
|
436
|
+
relationshipCount: parseInt(relationships.rows[0]?.count ?? '0', 10),
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Get chunk count
|
|
441
|
+
*/
|
|
442
|
+
async getChunkCount() {
|
|
443
|
+
await this.ensureInitialized();
|
|
444
|
+
const result = await this.pool.query('SELECT COUNT(*) as count FROM code_chunks');
|
|
445
|
+
return parseInt(result.rows[0]?.count ?? '0', 10);
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Get entity count
|
|
449
|
+
*/
|
|
450
|
+
async getEntityCount() {
|
|
451
|
+
await this.ensureInitialized();
|
|
452
|
+
const result = await this.pool.query('SELECT COUNT(*) as count FROM code_entities');
|
|
453
|
+
return parseInt(result.rows[0]?.count ?? '0', 10);
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Health check
|
|
457
|
+
*/
|
|
458
|
+
async healthCheck() {
|
|
459
|
+
try {
|
|
460
|
+
await this.ensureInitialized();
|
|
461
|
+
const [chunkResult, entityResult, versionResult] = await Promise.all([
|
|
462
|
+
this.pool.query('SELECT COUNT(*) as count FROM code_chunks'),
|
|
463
|
+
this.pool.query('SELECT COUNT(*) as count FROM code_entities'),
|
|
464
|
+
this.pool.query("SELECT ruvector_version() as version").catch(() => null),
|
|
465
|
+
]);
|
|
466
|
+
return {
|
|
467
|
+
healthy: true,
|
|
468
|
+
chunkCount: parseInt(chunkResult.rows[0]?.count ?? '0', 10),
|
|
469
|
+
entityCount: parseInt(entityResult.rows[0]?.count ?? '0', 10),
|
|
470
|
+
ruvectorVersion: versionResult?.rows[0]?.version,
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
catch (error) {
|
|
474
|
+
return {
|
|
475
|
+
healthy: false,
|
|
476
|
+
chunkCount: 0,
|
|
477
|
+
entityCount: 0,
|
|
478
|
+
error: error.message,
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Close the connection pool
|
|
484
|
+
*/
|
|
485
|
+
async close() {
|
|
486
|
+
await this.pool.end();
|
|
487
|
+
this.initialized = false;
|
|
488
|
+
this.log('Connection pool closed');
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Clear all data (use with caution)
|
|
492
|
+
*/
|
|
493
|
+
async clear() {
|
|
494
|
+
await this.ensureInitialized();
|
|
495
|
+
await this.pool.query('TRUNCATE entity_relationships CASCADE');
|
|
496
|
+
await this.pool.query('TRUNCATE code_entities CASCADE');
|
|
497
|
+
await this.pool.query('TRUNCATE code_chunks CASCADE');
|
|
498
|
+
this.log('All data cleared');
|
|
499
|
+
}
|
|
500
|
+
// Private helpers
|
|
501
|
+
async ensureInitialized() {
|
|
502
|
+
if (!this.initialized) {
|
|
503
|
+
await this.initialize();
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
log(message, data) {
|
|
507
|
+
if (this.config.debug) {
|
|
508
|
+
const timestamp = new Date().toISOString();
|
|
509
|
+
console.log(`[CodeChunkStore] ${timestamp} - ${message}`, data ?? '');
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
exports.CodeChunkStore = CodeChunkStore;
|
|
514
|
+
/**
|
|
515
|
+
* Factory function to create CodeChunkStore with Docker defaults
|
|
516
|
+
*/
|
|
517
|
+
function createDockerCodeChunkStore(options) {
|
|
518
|
+
return new CodeChunkStore({
|
|
519
|
+
host: 'localhost',
|
|
520
|
+
port: 5432,
|
|
521
|
+
database: 'ruvector_db',
|
|
522
|
+
user: 'ruvector',
|
|
523
|
+
password: 'ruvector',
|
|
524
|
+
embeddingDimension: 768,
|
|
525
|
+
...options,
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Factory function to create CodeChunkStore from environment
|
|
530
|
+
*/
|
|
531
|
+
function createCodeChunkStoreFromEnv() {
|
|
532
|
+
return new CodeChunkStore({
|
|
533
|
+
connectionString: process.env.RUVECTOR_DATABASE_URL,
|
|
534
|
+
host: process.env.RUVECTOR_HOST || 'localhost',
|
|
535
|
+
port: parseInt(process.env.RUVECTOR_PORT || '5432', 10),
|
|
536
|
+
database: process.env.RUVECTOR_DATABASE || 'ruvector_db',
|
|
537
|
+
user: process.env.RUVECTOR_USER || 'ruvector',
|
|
538
|
+
password: process.env.RUVECTOR_PASSWORD || 'ruvector',
|
|
539
|
+
debug: process.env.DEBUG === 'true',
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
//# sourceMappingURL=CodeChunkStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeChunkStore.js","sourceRoot":"","sources":["../../../src/code-intelligence/storage/CodeChunkStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Intelligence Storage Module
|
|
3
|
+
*
|
|
4
|
+
* Provides RuVector-backed storage for code chunks and entities.
|
|
5
|
+
*/
|
|
6
|
+
export { CodeChunkStore, CodeChunkStoreConfig, CodeSearchOptions, CodeSearchResult, createDockerCodeChunkStore, createCodeChunkStoreFromEnv, } from './CodeChunkStore.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Code Intelligence Storage Module
|
|
4
|
+
*
|
|
5
|
+
* Provides RuVector-backed storage for code chunks and entities.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createCodeChunkStoreFromEnv = exports.createDockerCodeChunkStore = exports.CodeChunkStore = void 0;
|
|
9
|
+
var CodeChunkStore_js_1 = require("./CodeChunkStore.js");
|
|
10
|
+
Object.defineProperty(exports, "CodeChunkStore", { enumerable: true, get: function () { return CodeChunkStore_js_1.CodeChunkStore; } });
|
|
11
|
+
Object.defineProperty(exports, "createDockerCodeChunkStore", { enumerable: true, get: function () { return CodeChunkStore_js_1.createDockerCodeChunkStore; } });
|
|
12
|
+
Object.defineProperty(exports, "createCodeChunkStoreFromEnv", { enumerable: true, get: function () { return CodeChunkStore_js_1.createCodeChunkStoreFromEnv; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/code-intelligence/storage/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yDAO6B;AAN3B,mHAAA,cAAc,OAAA;AAId,+HAAA,0BAA0B,OAAA;AAC1B,gIAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class Diagram Builder
|
|
3
|
+
*
|
|
4
|
+
* Generates Mermaid class diagrams with inheritance,
|
|
5
|
+
* methods, properties, and visibility markers.
|
|
6
|
+
*/
|
|
7
|
+
import { GraphNode, GraphEdge } from '../graph/types.js';
|
|
8
|
+
import { MermaidOptions } from './MermaidGenerator.js';
|
|
9
|
+
export interface ClassDiagramOptions extends MermaidOptions {
|
|
10
|
+
/** Include method signatures */
|
|
11
|
+
includeMethods?: boolean;
|
|
12
|
+
/** Include properties/fields */
|
|
13
|
+
includeProperties?: boolean;
|
|
14
|
+
/** Show method parameters */
|
|
15
|
+
showParameters?: boolean;
|
|
16
|
+
/** Show return types */
|
|
17
|
+
showReturnTypes?: boolean;
|
|
18
|
+
/** Group by namespace/package */
|
|
19
|
+
groupByNamespace?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class ClassDiagramBuilder {
|
|
22
|
+
/**
|
|
23
|
+
* Build class diagram from graph nodes.
|
|
24
|
+
*/
|
|
25
|
+
static build(nodes: GraphNode[], edges: GraphEdge[], options?: ClassDiagramOptions): string;
|
|
26
|
+
/**
|
|
27
|
+
* Build inheritance hierarchy for a specific class.
|
|
28
|
+
*/
|
|
29
|
+
static buildHierarchy(rootClassId: string, nodes: GraphNode[], edges: GraphEdge[], options?: ClassDiagramOptions): string;
|
|
30
|
+
/**
|
|
31
|
+
* Enrich class node with methods and properties from child nodes.
|
|
32
|
+
*/
|
|
33
|
+
private static enrichClassNode;
|
|
34
|
+
/**
|
|
35
|
+
* Infer visibility from naming convention.
|
|
36
|
+
*/
|
|
37
|
+
private static inferVisibility;
|
|
38
|
+
/**
|
|
39
|
+
* Add namespace grouping to diagram.
|
|
40
|
+
*/
|
|
41
|
+
private static addNamespaceGrouping;
|
|
42
|
+
/**
|
|
43
|
+
* Extract namespace from file path.
|
|
44
|
+
*/
|
|
45
|
+
private static extractNamespace;
|
|
46
|
+
/**
|
|
47
|
+
* Generate interface overview diagram.
|
|
48
|
+
*/
|
|
49
|
+
static buildInterfaceOverview(nodes: GraphNode[], edges: GraphEdge[], options?: ClassDiagramOptions): string;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ClassDiagramBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassDiagramBuilder.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/visualization/ClassDiagramBuilder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,gCAAgC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,6BAA6B;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,KAAK,CACV,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,mBAAwB,GAChC,MAAM;IAkDT;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,mBAAwB,GAChC,MAAM;IAgDT;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAgD9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAO9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA6BnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,mBAAwB,GAChC,MAAM;CAyBV"}
|