codevault 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunking/file-grouper.d.ts +39 -0
- package/dist/chunking/file-grouper.d.ts.map +1 -0
- package/dist/chunking/file-grouper.js +164 -0
- package/dist/chunking/file-grouper.js.map +1 -0
- package/dist/chunking/semantic-chunker.d.ts +37 -0
- package/dist/chunking/semantic-chunker.d.ts.map +1 -0
- package/dist/chunking/semantic-chunker.js +157 -0
- package/dist/chunking/semantic-chunker.js.map +1 -0
- package/dist/chunking/token-counter.d.ts +28 -0
- package/dist/chunking/token-counter.d.ts.map +1 -0
- package/dist/chunking/token-counter.js +207 -0
- package/dist/chunking/token-counter.js.map +1 -0
- package/dist/cli/commands/ask-cmd.d.ts +3 -0
- package/dist/cli/commands/ask-cmd.d.ts.map +1 -0
- package/dist/cli/commands/ask-cmd.js +130 -0
- package/dist/cli/commands/ask-cmd.js.map +1 -0
- package/dist/cli/commands/chat-cmd.d.ts +3 -0
- package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
- package/dist/cli/commands/chat-cmd.js +194 -0
- package/dist/cli/commands/chat-cmd.js.map +1 -0
- package/dist/cli/commands/config-cmd.d.ts +3 -0
- package/dist/cli/commands/config-cmd.d.ts.map +1 -0
- package/dist/cli/commands/config-cmd.js +245 -0
- package/dist/cli/commands/config-cmd.js.map +1 -0
- package/dist/cli/commands/context.d.ts +3 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +98 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/interactive-config.d.ts +2 -0
- package/dist/cli/commands/interactive-config.d.ts.map +1 -0
- package/dist/cli/commands/interactive-config.js +274 -0
- package/dist/cli/commands/interactive-config.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +403 -0
- package/dist/cli.js.map +1 -0
- package/dist/codemap/io.d.ts +5 -0
- package/dist/codemap/io.d.ts.map +1 -0
- package/dist/codemap/io.js +30 -0
- package/dist/codemap/io.js.map +1 -0
- package/dist/config/apply-env.d.ts +15 -0
- package/dist/config/apply-env.d.ts.map +1 -0
- package/dist/config/apply-env.js +91 -0
- package/dist/config/apply-env.js.map +1 -0
- package/dist/config/constants.d.ts +326 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +214 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/loader.d.ts +57 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +287 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +46 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/context/packs.d.ts +33 -0
- package/dist/context/packs.d.ts.map +1 -0
- package/dist/context/packs.js +180 -0
- package/dist/context/packs.js.map +1 -0
- package/dist/core/batch-indexer.d.ts +56 -0
- package/dist/core/batch-indexer.d.ts.map +1 -0
- package/dist/core/batch-indexer.js +189 -0
- package/dist/core/batch-indexer.js.map +1 -0
- package/dist/core/indexer.d.ts +3 -0
- package/dist/core/indexer.d.ts.map +1 -0
- package/dist/core/indexer.js +600 -0
- package/dist/core/indexer.js.map +1 -0
- package/dist/core/metadata.d.ts +19 -0
- package/dist/core/metadata.d.ts.map +1 -0
- package/dist/core/metadata.js +161 -0
- package/dist/core/metadata.js.map +1 -0
- package/dist/core/search.d.ts +7 -0
- package/dist/core/search.d.ts.map +1 -0
- package/dist/core/search.js +545 -0
- package/dist/core/search.js.map +1 -0
- package/dist/core/symbol-extractor.d.ts +3 -0
- package/dist/core/symbol-extractor.d.ts.map +1 -0
- package/dist/core/symbol-extractor.js +78 -0
- package/dist/core/symbol-extractor.js.map +1 -0
- package/dist/core/types.d.ts +104 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/database/db.d.ts +102 -0
- package/dist/database/db.d.ts.map +1 -0
- package/dist/database/db.js +366 -0
- package/dist/database/db.js.map +1 -0
- package/dist/indexer/merkle.d.ts +13 -0
- package/dist/indexer/merkle.d.ts.map +1 -0
- package/dist/indexer/merkle.js +86 -0
- package/dist/indexer/merkle.js.map +1 -0
- package/dist/indexer/update.d.ts +19 -0
- package/dist/indexer/update.d.ts.map +1 -0
- package/dist/indexer/update.js +40 -0
- package/dist/indexer/update.js.map +1 -0
- package/dist/indexer/watch.d.ts +21 -0
- package/dist/indexer/watch.d.ts.map +1 -0
- package/dist/indexer/watch.js +222 -0
- package/dist/indexer/watch.js.map +1 -0
- package/dist/languages/rules.d.ts +11 -0
- package/dist/languages/rules.d.ts.map +1 -0
- package/dist/languages/rules.js +371 -0
- package/dist/languages/rules.js.map +1 -0
- package/dist/languages/tree-sitter-loader.d.ts +27 -0
- package/dist/languages/tree-sitter-loader.d.ts.map +1 -0
- package/dist/languages/tree-sitter-loader.js +76 -0
- package/dist/languages/tree-sitter-loader.js.map +1 -0
- package/dist/mcp/schemas.d.ts +166 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +159 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/tools/ask-codebase.d.ts +85 -0
- package/dist/mcp/tools/ask-codebase.d.ts.map +1 -0
- package/dist/mcp/tools/ask-codebase.js +125 -0
- package/dist/mcp/tools/ask-codebase.js.map +1 -0
- package/dist/mcp/tools/use-context-pack.d.ts +57 -0
- package/dist/mcp/tools/use-context-pack.d.ts.map +1 -0
- package/dist/mcp/tools/use-context-pack.js +91 -0
- package/dist/mcp/tools/use-context-pack.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +511 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/providers/base.d.ts +39 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +198 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/chat-llm.d.ts +30 -0
- package/dist/providers/chat-llm.d.ts.map +1 -0
- package/dist/providers/chat-llm.js +85 -0
- package/dist/providers/chat-llm.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +12 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +14 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +122 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/token-counter.d.ts +2 -0
- package/dist/providers/token-counter.d.ts.map +1 -0
- package/dist/providers/token-counter.js +18 -0
- package/dist/providers/token-counter.js.map +1 -0
- package/dist/ranking/api-reranker.d.ts +18 -0
- package/dist/ranking/api-reranker.d.ts.map +1 -0
- package/dist/ranking/api-reranker.js +134 -0
- package/dist/ranking/api-reranker.js.map +1 -0
- package/dist/ranking/symbol-boost.d.ts +15 -0
- package/dist/ranking/symbol-boost.d.ts.map +1 -0
- package/dist/ranking/symbol-boost.js +175 -0
- package/dist/ranking/symbol-boost.js.map +1 -0
- package/dist/search/bm25.d.ts +17 -0
- package/dist/search/bm25.d.ts.map +1 -0
- package/dist/search/bm25.js +56 -0
- package/dist/search/bm25.js.map +1 -0
- package/dist/search/hybrid.d.ts +21 -0
- package/dist/search/hybrid.d.ts.map +1 -0
- package/dist/search/hybrid.js +50 -0
- package/dist/search/hybrid.js.map +1 -0
- package/dist/search/scope.d.ts +5 -0
- package/dist/search/scope.d.ts.map +1 -0
- package/dist/search/scope.js +107 -0
- package/dist/search/scope.js.map +1 -0
- package/dist/storage/encrypted-chunks.d.ts +40 -0
- package/dist/storage/encrypted-chunks.d.ts.map +1 -0
- package/dist/storage/encrypted-chunks.js +238 -0
- package/dist/storage/encrypted-chunks.js.map +1 -0
- package/dist/symbols/extract.d.ts +15 -0
- package/dist/symbols/extract.d.ts.map +1 -0
- package/dist/symbols/extract.js +208 -0
- package/dist/symbols/extract.js.map +1 -0
- package/dist/symbols/graph.d.ts +3 -0
- package/dist/symbols/graph.d.ts.map +1 -0
- package/dist/symbols/graph.js +89 -0
- package/dist/symbols/graph.js.map +1 -0
- package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
- package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
- package/dist/synthesis/conversational-synthesizer.js +286 -0
- package/dist/synthesis/conversational-synthesizer.js.map +1 -0
- package/dist/synthesis/markdown-formatter.d.ts +13 -0
- package/dist/synthesis/markdown-formatter.d.ts.map +1 -0
- package/dist/synthesis/markdown-formatter.js +104 -0
- package/dist/synthesis/markdown-formatter.js.map +1 -0
- package/dist/synthesis/prompt-builder.d.ts +21 -0
- package/dist/synthesis/prompt-builder.d.ts.map +1 -0
- package/dist/synthesis/prompt-builder.js +129 -0
- package/dist/synthesis/prompt-builder.js.map +1 -0
- package/dist/synthesis/synthesizer.d.ts +30 -0
- package/dist/synthesis/synthesizer.d.ts.map +1 -0
- package/dist/synthesis/synthesizer.js +210 -0
- package/dist/synthesis/synthesizer.js.map +1 -0
- package/dist/types/ast.d.ts +3 -0
- package/dist/types/ast.d.ts.map +1 -0
- package/dist/types/ast.js +2 -0
- package/dist/types/ast.js.map +1 -0
- package/dist/types/codemap.d.ts +58 -0
- package/dist/types/codemap.d.ts.map +1 -0
- package/dist/types/codemap.js +224 -0
- package/dist/types/codemap.js.map +1 -0
- package/dist/types/context-pack.d.ts +47 -0
- package/dist/types/context-pack.d.ts.map +1 -0
- package/dist/types/context-pack.js +44 -0
- package/dist/types/context-pack.js.map +1 -0
- package/dist/types/search.d.ts +15 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +11 -0
- package/dist/types/search.js.map +1 -0
- package/dist/utils/cli-ui.d.ts +44 -0
- package/dist/utils/cli-ui.d.ts.map +1 -0
- package/dist/utils/cli-ui.js +139 -0
- package/dist/utils/cli-ui.js.map +1 -0
- package/dist/utils/indexer-with-progress.d.ts +10 -0
- package/dist/utils/indexer-with-progress.d.ts.map +1 -0
- package/dist/utils/indexer-with-progress.js +43 -0
- package/dist/utils/indexer-with-progress.js.map +1 -0
- package/dist/utils/logger.d.ts +55 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mutex.d.ts +63 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +123 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/path-helpers.d.ts +27 -0
- package/dist/utils/path-helpers.d.ts.map +1 -0
- package/dist/utils/path-helpers.js +55 -0
- package/dist/utils/path-helpers.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +34 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +178 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/scan-patterns.d.ts +5 -0
- package/dist/utils/scan-patterns.d.ts.map +1 -0
- package/dist/utils/scan-patterns.js +29 -0
- package/dist/utils/scan-patterns.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-extractor.js","sourceRoot":"","sources":["../../src/core/symbol-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { EmbeddingProvider } from '../providers/base.js';
|
|
2
|
+
export interface IndexProjectOptions {
|
|
3
|
+
repoPath?: string;
|
|
4
|
+
provider?: string;
|
|
5
|
+
onProgress?: ((event: ProgressEvent) => void) | null;
|
|
6
|
+
changedFiles?: string[] | null;
|
|
7
|
+
deletedFiles?: string[];
|
|
8
|
+
embeddingProviderOverride?: EmbeddingProvider | null;
|
|
9
|
+
encryptMode?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IndexProjectResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
processedChunks: number;
|
|
14
|
+
totalChunks: number;
|
|
15
|
+
provider: string;
|
|
16
|
+
errors: IndexError[];
|
|
17
|
+
chunkingStats?: ChunkingStats;
|
|
18
|
+
tokenStats?: any;
|
|
19
|
+
}
|
|
20
|
+
export interface ProgressEvent {
|
|
21
|
+
type: string;
|
|
22
|
+
file?: string;
|
|
23
|
+
symbol?: string;
|
|
24
|
+
chunkId?: string;
|
|
25
|
+
fileCount?: number;
|
|
26
|
+
languages?: number;
|
|
27
|
+
stats?: {
|
|
28
|
+
chunks?: number;
|
|
29
|
+
merged?: number;
|
|
30
|
+
subdivided?: number;
|
|
31
|
+
skipped?: number;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface IndexError {
|
|
35
|
+
type: string;
|
|
36
|
+
file?: string;
|
|
37
|
+
chunkId?: string;
|
|
38
|
+
error: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ChunkingStats {
|
|
41
|
+
totalNodes: number;
|
|
42
|
+
skippedSmall: number;
|
|
43
|
+
subdivided: number;
|
|
44
|
+
statementFallback: number;
|
|
45
|
+
normalChunks: number;
|
|
46
|
+
mergedSmall: number;
|
|
47
|
+
fileGrouped?: number;
|
|
48
|
+
functionsGrouped?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface SearchResult {
|
|
51
|
+
type: string;
|
|
52
|
+
lang: string;
|
|
53
|
+
path: string;
|
|
54
|
+
sha: string;
|
|
55
|
+
data: string | null;
|
|
56
|
+
meta: {
|
|
57
|
+
id?: string;
|
|
58
|
+
symbol: string;
|
|
59
|
+
score: number;
|
|
60
|
+
searchType?: string;
|
|
61
|
+
intent?: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
vectorScore?: number;
|
|
64
|
+
hybridScore?: number;
|
|
65
|
+
bm25Score?: number;
|
|
66
|
+
bm25Rank?: number;
|
|
67
|
+
vectorRank?: number;
|
|
68
|
+
rerankerScore?: number;
|
|
69
|
+
rerankerRank?: number;
|
|
70
|
+
symbolBoost?: number;
|
|
71
|
+
symbolBoostSources?: string[];
|
|
72
|
+
scoreRaw?: number;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export interface SearchCodeResult {
|
|
76
|
+
success: boolean;
|
|
77
|
+
query?: string;
|
|
78
|
+
searchType?: string;
|
|
79
|
+
intentionResults?: number;
|
|
80
|
+
vectorResults?: number;
|
|
81
|
+
provider: string;
|
|
82
|
+
scope?: any;
|
|
83
|
+
reranker?: string;
|
|
84
|
+
hybrid?: {
|
|
85
|
+
enabled: boolean;
|
|
86
|
+
bm25Enabled: boolean;
|
|
87
|
+
fused?: boolean;
|
|
88
|
+
bm25Candidates?: number;
|
|
89
|
+
};
|
|
90
|
+
symbolBoost?: {
|
|
91
|
+
enabled: boolean;
|
|
92
|
+
boosted: boolean;
|
|
93
|
+
};
|
|
94
|
+
results: SearchResult[];
|
|
95
|
+
error?: string;
|
|
96
|
+
message?: string;
|
|
97
|
+
suggestion?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface GetChunkResult {
|
|
100
|
+
success: boolean;
|
|
101
|
+
code?: string;
|
|
102
|
+
error?: string;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export interface DatabaseChunk {
|
|
2
|
+
id: string;
|
|
3
|
+
file_path: string;
|
|
4
|
+
symbol: string;
|
|
5
|
+
sha: string;
|
|
6
|
+
lang: string;
|
|
7
|
+
chunk_type: string;
|
|
8
|
+
embedding: Buffer;
|
|
9
|
+
embedding_provider: string;
|
|
10
|
+
embedding_dimensions: number;
|
|
11
|
+
codevault_tags?: string;
|
|
12
|
+
codevault_intent?: string;
|
|
13
|
+
codevault_description?: string;
|
|
14
|
+
doc_comments?: string;
|
|
15
|
+
variables_used?: string;
|
|
16
|
+
context_info?: string;
|
|
17
|
+
created_at?: string;
|
|
18
|
+
updated_at?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class CodeVaultDatabase {
|
|
21
|
+
private db;
|
|
22
|
+
private insertChunkStmt;
|
|
23
|
+
private getChunksStmt;
|
|
24
|
+
private deleteChunksStmt;
|
|
25
|
+
private initialized;
|
|
26
|
+
constructor(dbPath: string);
|
|
27
|
+
/**
|
|
28
|
+
* Ensure database tables exist and prepare statements
|
|
29
|
+
*/
|
|
30
|
+
private ensureTablesExist;
|
|
31
|
+
initialize(dimensions: number): Promise<void>;
|
|
32
|
+
insertChunk(params: {
|
|
33
|
+
id: string;
|
|
34
|
+
file_path: string;
|
|
35
|
+
symbol: string;
|
|
36
|
+
sha: string;
|
|
37
|
+
lang: string;
|
|
38
|
+
chunk_type: string;
|
|
39
|
+
embedding: number[];
|
|
40
|
+
embedding_provider: string;
|
|
41
|
+
embedding_dimensions: number;
|
|
42
|
+
codevault_tags: string[];
|
|
43
|
+
codevault_intent: string | null;
|
|
44
|
+
codevault_description: string | null;
|
|
45
|
+
doc_comments: string | null;
|
|
46
|
+
variables_used: any[];
|
|
47
|
+
context_info: any;
|
|
48
|
+
}): void;
|
|
49
|
+
deleteChunks(chunkIds: string[]): Promise<void>;
|
|
50
|
+
getChunks(providerName: string, dimensions: number): Promise<DatabaseChunk[]>;
|
|
51
|
+
getExistingDimensions(): Promise<Array<{
|
|
52
|
+
embedding_provider: string;
|
|
53
|
+
embedding_dimensions: number;
|
|
54
|
+
}>>;
|
|
55
|
+
recordIntention(normalizedQuery: string, originalQuery: string, targetSha: string, confidence: number): Promise<void>;
|
|
56
|
+
searchByIntention(normalizedQuery: string): Promise<any>;
|
|
57
|
+
recordQueryPattern(pattern: string): Promise<void>;
|
|
58
|
+
getOverviewChunks(limit: number): Promise<Array<{
|
|
59
|
+
id: string;
|
|
60
|
+
file_path: string;
|
|
61
|
+
symbol: string;
|
|
62
|
+
sha: string;
|
|
63
|
+
lang: string;
|
|
64
|
+
}>>;
|
|
65
|
+
/**
|
|
66
|
+
* Begin a database transaction
|
|
67
|
+
*/
|
|
68
|
+
beginTransaction(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Commit the current transaction
|
|
71
|
+
*/
|
|
72
|
+
commit(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Rollback the current transaction
|
|
75
|
+
*/
|
|
76
|
+
rollback(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Execute a function within a transaction
|
|
79
|
+
* Automatically commits on success and rolls back on error
|
|
80
|
+
*
|
|
81
|
+
* Note: better-sqlite3 transactions MUST be synchronous
|
|
82
|
+
* If you need async operations, use beginTransaction/commit/rollback manually
|
|
83
|
+
*/
|
|
84
|
+
transaction<T>(fn: () => Promise<T> | T): Promise<T>;
|
|
85
|
+
/**
|
|
86
|
+
* Close the database connection
|
|
87
|
+
* IMPORTANT: Always call this when done to avoid resource leaks
|
|
88
|
+
*/
|
|
89
|
+
close(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get database statistics for monitoring
|
|
92
|
+
*/
|
|
93
|
+
getStats(): {
|
|
94
|
+
isOpen: boolean;
|
|
95
|
+
inTransaction: boolean;
|
|
96
|
+
readonly: boolean;
|
|
97
|
+
memory: boolean;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export declare function initDatabase(dimensions: number, basePath?: string): Promise<void>;
|
|
101
|
+
export { CodeVaultDatabase as Database };
|
|
102
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { log } from '../utils/logger.js';
|
|
5
|
+
export class CodeVaultDatabase {
|
|
6
|
+
db;
|
|
7
|
+
insertChunkStmt;
|
|
8
|
+
getChunksStmt;
|
|
9
|
+
deleteChunksStmt = null;
|
|
10
|
+
initialized = false;
|
|
11
|
+
constructor(dbPath) {
|
|
12
|
+
this.db = new Database(dbPath);
|
|
13
|
+
// Enable WAL mode for better concurrency
|
|
14
|
+
this.db.pragma('journal_mode = WAL');
|
|
15
|
+
// Optimize for performance
|
|
16
|
+
this.db.pragma('synchronous = NORMAL');
|
|
17
|
+
this.db.pragma('cache_size = -64000'); // 64MB cache
|
|
18
|
+
this.db.pragma('temp_store = MEMORY');
|
|
19
|
+
this.db.pragma('mmap_size = 30000000000'); // 30GB mmap
|
|
20
|
+
// Check if tables exist and create if needed
|
|
21
|
+
this.ensureTablesExist();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ensure database tables exist and prepare statements
|
|
25
|
+
*/
|
|
26
|
+
ensureTablesExist() {
|
|
27
|
+
// Create tables if they don't exist
|
|
28
|
+
this.db.exec(`
|
|
29
|
+
CREATE TABLE IF NOT EXISTS code_chunks (
|
|
30
|
+
id TEXT PRIMARY KEY,
|
|
31
|
+
file_path TEXT NOT NULL,
|
|
32
|
+
symbol TEXT NOT NULL,
|
|
33
|
+
sha TEXT NOT NULL,
|
|
34
|
+
lang TEXT NOT NULL,
|
|
35
|
+
chunk_type TEXT DEFAULT 'function',
|
|
36
|
+
embedding BLOB,
|
|
37
|
+
embedding_provider TEXT,
|
|
38
|
+
embedding_dimensions INTEGER,
|
|
39
|
+
codevault_tags TEXT,
|
|
40
|
+
codevault_intent TEXT,
|
|
41
|
+
codevault_description TEXT,
|
|
42
|
+
doc_comments TEXT,
|
|
43
|
+
variables_used TEXT,
|
|
44
|
+
context_info TEXT,
|
|
45
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
46
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
47
|
+
)
|
|
48
|
+
`);
|
|
49
|
+
// Prepare statements after tables exist
|
|
50
|
+
this.insertChunkStmt = this.db.prepare(`
|
|
51
|
+
INSERT OR REPLACE INTO code_chunks
|
|
52
|
+
(id, file_path, symbol, sha, lang, chunk_type, embedding, embedding_provider, embedding_dimensions,
|
|
53
|
+
codevault_tags, codevault_intent, codevault_description, doc_comments, variables_used, context_info, updated_at)
|
|
54
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
|
55
|
+
`);
|
|
56
|
+
this.getChunksStmt = this.db.prepare(`
|
|
57
|
+
SELECT id, file_path, symbol, sha, lang, chunk_type, embedding,
|
|
58
|
+
codevault_tags, codevault_intent, codevault_description,
|
|
59
|
+
embedding_provider, embedding_dimensions
|
|
60
|
+
FROM code_chunks
|
|
61
|
+
WHERE embedding_provider = ? AND embedding_dimensions = ?
|
|
62
|
+
ORDER BY created_at DESC
|
|
63
|
+
`);
|
|
64
|
+
}
|
|
65
|
+
async initialize(dimensions) {
|
|
66
|
+
this.db.exec(`
|
|
67
|
+
CREATE TABLE IF NOT EXISTS code_chunks (
|
|
68
|
+
id TEXT PRIMARY KEY,
|
|
69
|
+
file_path TEXT NOT NULL,
|
|
70
|
+
symbol TEXT NOT NULL,
|
|
71
|
+
sha TEXT NOT NULL,
|
|
72
|
+
lang TEXT NOT NULL,
|
|
73
|
+
chunk_type TEXT DEFAULT 'function',
|
|
74
|
+
embedding BLOB,
|
|
75
|
+
embedding_provider TEXT,
|
|
76
|
+
embedding_dimensions INTEGER,
|
|
77
|
+
codevault_tags TEXT,
|
|
78
|
+
codevault_intent TEXT,
|
|
79
|
+
codevault_description TEXT,
|
|
80
|
+
doc_comments TEXT,
|
|
81
|
+
variables_used TEXT,
|
|
82
|
+
context_info TEXT,
|
|
83
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
84
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
85
|
+
)
|
|
86
|
+
`);
|
|
87
|
+
this.db.exec(`
|
|
88
|
+
CREATE TABLE IF NOT EXISTS intention_cache (
|
|
89
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
90
|
+
query_normalized TEXT NOT NULL,
|
|
91
|
+
original_query TEXT NOT NULL,
|
|
92
|
+
target_sha TEXT NOT NULL,
|
|
93
|
+
confidence REAL DEFAULT 1.0,
|
|
94
|
+
usage_count INTEGER DEFAULT 1,
|
|
95
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
96
|
+
last_used DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
97
|
+
)
|
|
98
|
+
`);
|
|
99
|
+
this.db.exec(`
|
|
100
|
+
CREATE TABLE IF NOT EXISTS query_patterns (
|
|
101
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
102
|
+
pattern TEXT NOT NULL UNIQUE,
|
|
103
|
+
frequency INTEGER DEFAULT 1,
|
|
104
|
+
typical_results TEXT,
|
|
105
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
106
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
107
|
+
)
|
|
108
|
+
`);
|
|
109
|
+
const indexes = [
|
|
110
|
+
'CREATE INDEX IF NOT EXISTS idx_file_path ON code_chunks(file_path)',
|
|
111
|
+
'CREATE INDEX IF NOT EXISTS idx_symbol ON code_chunks(symbol)',
|
|
112
|
+
'CREATE INDEX IF NOT EXISTS idx_lang ON code_chunks(lang)',
|
|
113
|
+
'CREATE INDEX IF NOT EXISTS idx_provider ON code_chunks(embedding_provider)',
|
|
114
|
+
'CREATE INDEX IF NOT EXISTS idx_chunk_type ON code_chunks(chunk_type)',
|
|
115
|
+
'CREATE INDEX IF NOT EXISTS idx_codevault_tags ON code_chunks(codevault_tags)',
|
|
116
|
+
'CREATE INDEX IF NOT EXISTS idx_codevault_intent ON code_chunks(codevault_intent)',
|
|
117
|
+
'CREATE INDEX IF NOT EXISTS idx_lang_provider ON code_chunks(lang, embedding_provider, embedding_dimensions)',
|
|
118
|
+
'CREATE INDEX IF NOT EXISTS idx_query_normalized ON intention_cache(query_normalized)',
|
|
119
|
+
'CREATE INDEX IF NOT EXISTS idx_target_sha ON intention_cache(target_sha)',
|
|
120
|
+
'CREATE INDEX IF NOT EXISTS idx_usage_count ON intention_cache(usage_count DESC)',
|
|
121
|
+
'CREATE INDEX IF NOT EXISTS idx_pattern_frequency ON query_patterns(frequency DESC)'
|
|
122
|
+
];
|
|
123
|
+
for (const sql of indexes) {
|
|
124
|
+
this.db.exec(sql);
|
|
125
|
+
}
|
|
126
|
+
// Prepare statements after tables are created
|
|
127
|
+
if (!this.initialized) {
|
|
128
|
+
this.insertChunkStmt = this.db.prepare(`
|
|
129
|
+
INSERT OR REPLACE INTO code_chunks
|
|
130
|
+
(id, file_path, symbol, sha, lang, chunk_type, embedding, embedding_provider, embedding_dimensions,
|
|
131
|
+
codevault_tags, codevault_intent, codevault_description, doc_comments, variables_used, context_info, updated_at)
|
|
132
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
|
133
|
+
`);
|
|
134
|
+
this.getChunksStmt = this.db.prepare(`
|
|
135
|
+
SELECT id, file_path, symbol, sha, lang, chunk_type, embedding,
|
|
136
|
+
codevault_tags, codevault_intent, codevault_description,
|
|
137
|
+
embedding_provider, embedding_dimensions
|
|
138
|
+
FROM code_chunks
|
|
139
|
+
WHERE embedding_provider = ? AND embedding_dimensions = ?
|
|
140
|
+
ORDER BY created_at DESC
|
|
141
|
+
`);
|
|
142
|
+
this.initialized = true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
insertChunk(params) {
|
|
146
|
+
try {
|
|
147
|
+
this.insertChunkStmt.run(params.id, params.file_path, params.symbol, params.sha, params.lang, params.chunk_type, Buffer.from(JSON.stringify(params.embedding)), params.embedding_provider, params.embedding_dimensions, JSON.stringify(params.codevault_tags), params.codevault_intent, params.codevault_description, params.doc_comments, JSON.stringify(params.variables_used), JSON.stringify(params.context_info));
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
log.error('Failed to insert chunk', error, { chunkId: params.id });
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async deleteChunks(chunkIds) {
|
|
155
|
+
if (!Array.isArray(chunkIds) || chunkIds.length === 0) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
try {
|
|
159
|
+
const placeholders = chunkIds.map(() => '?').join(', ');
|
|
160
|
+
if (!this.deleteChunksStmt) {
|
|
161
|
+
this.deleteChunksStmt = this.db.prepare(`DELETE FROM code_chunks WHERE id IN (${placeholders})`);
|
|
162
|
+
}
|
|
163
|
+
this.deleteChunksStmt.run(...chunkIds);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
log.error('Failed to delete chunks', error, { count: chunkIds.length });
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async getChunks(providerName, dimensions) {
|
|
171
|
+
try {
|
|
172
|
+
return this.getChunksStmt.all(providerName, dimensions);
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
log.error('Failed to get chunks', error, { provider: providerName, dimensions });
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async getExistingDimensions() {
|
|
180
|
+
try {
|
|
181
|
+
const stmt = this.db.prepare(`
|
|
182
|
+
SELECT DISTINCT embedding_provider, embedding_dimensions
|
|
183
|
+
FROM code_chunks
|
|
184
|
+
LIMIT 10
|
|
185
|
+
`);
|
|
186
|
+
return stmt.all();
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
log.error('Failed to get existing dimensions', error);
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async recordIntention(normalizedQuery, originalQuery, targetSha, confidence) {
|
|
194
|
+
try {
|
|
195
|
+
const existing = this.db.prepare(`
|
|
196
|
+
SELECT id, usage_count FROM intention_cache
|
|
197
|
+
WHERE query_normalized = ? AND target_sha = ?
|
|
198
|
+
`).get(normalizedQuery, targetSha);
|
|
199
|
+
if (existing) {
|
|
200
|
+
this.db.prepare(`
|
|
201
|
+
UPDATE intention_cache
|
|
202
|
+
SET usage_count = usage_count + 1,
|
|
203
|
+
confidence = ?,
|
|
204
|
+
last_used = CURRENT_TIMESTAMP
|
|
205
|
+
WHERE id = ?
|
|
206
|
+
`).run(confidence, existing.id);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this.db.prepare(`
|
|
210
|
+
INSERT INTO intention_cache
|
|
211
|
+
(query_normalized, original_query, target_sha, confidence)
|
|
212
|
+
VALUES (?, ?, ?, ?)
|
|
213
|
+
`).run(normalizedQuery, originalQuery, targetSha, confidence);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
log.error('Failed to record intention', error, { query: normalizedQuery });
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async searchByIntention(normalizedQuery) {
|
|
222
|
+
try {
|
|
223
|
+
return this.db.prepare(`
|
|
224
|
+
SELECT
|
|
225
|
+
i.target_sha,
|
|
226
|
+
i.confidence,
|
|
227
|
+
i.usage_count,
|
|
228
|
+
i.original_query,
|
|
229
|
+
c.file_path,
|
|
230
|
+
c.symbol,
|
|
231
|
+
c.lang,
|
|
232
|
+
c.chunk_type
|
|
233
|
+
FROM intention_cache i
|
|
234
|
+
LEFT JOIN code_chunks c ON i.target_sha = c.sha
|
|
235
|
+
WHERE i.query_normalized = ?
|
|
236
|
+
ORDER BY i.confidence DESC, i.usage_count DESC
|
|
237
|
+
LIMIT 1
|
|
238
|
+
`).get(normalizedQuery);
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
log.error('Failed to search by intention', error, { query: normalizedQuery });
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
async recordQueryPattern(pattern) {
|
|
246
|
+
try {
|
|
247
|
+
const existing = this.db.prepare(`
|
|
248
|
+
SELECT id, frequency FROM query_patterns WHERE pattern = ?
|
|
249
|
+
`).get(pattern);
|
|
250
|
+
if (existing) {
|
|
251
|
+
this.db.prepare(`
|
|
252
|
+
UPDATE query_patterns
|
|
253
|
+
SET frequency = frequency + 1, updated_at = CURRENT_TIMESTAMP
|
|
254
|
+
WHERE id = ?
|
|
255
|
+
`).run(existing.id);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
this.db.prepare(`
|
|
259
|
+
INSERT INTO query_patterns (pattern) VALUES (?)
|
|
260
|
+
`).run(pattern);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
log.error('Failed to record query pattern', error, { pattern });
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async getOverviewChunks(limit) {
|
|
269
|
+
try {
|
|
270
|
+
return this.db.prepare(`
|
|
271
|
+
SELECT id, file_path, symbol, sha, lang
|
|
272
|
+
FROM code_chunks
|
|
273
|
+
ORDER BY file_path, symbol
|
|
274
|
+
LIMIT ?
|
|
275
|
+
`).all(limit);
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
log.error('Failed to get overview chunks', error, { limit });
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Begin a database transaction
|
|
284
|
+
*/
|
|
285
|
+
async beginTransaction() {
|
|
286
|
+
this.db.prepare('BEGIN TRANSACTION').run();
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Commit the current transaction
|
|
290
|
+
*/
|
|
291
|
+
async commit() {
|
|
292
|
+
this.db.prepare('COMMIT').run();
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Rollback the current transaction
|
|
296
|
+
*/
|
|
297
|
+
async rollback() {
|
|
298
|
+
this.db.prepare('ROLLBACK').run();
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Execute a function within a transaction
|
|
302
|
+
* Automatically commits on success and rolls back on error
|
|
303
|
+
*
|
|
304
|
+
* Note: better-sqlite3 transactions MUST be synchronous
|
|
305
|
+
* If you need async operations, use beginTransaction/commit/rollback manually
|
|
306
|
+
*/
|
|
307
|
+
async transaction(fn) {
|
|
308
|
+
try {
|
|
309
|
+
// Start transaction
|
|
310
|
+
this.db.prepare('BEGIN TRANSACTION').run();
|
|
311
|
+
// Execute function (can be async)
|
|
312
|
+
const result = await fn();
|
|
313
|
+
// Commit if successful
|
|
314
|
+
this.db.prepare('COMMIT').run();
|
|
315
|
+
return result;
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
// Rollback on error
|
|
319
|
+
try {
|
|
320
|
+
this.db.prepare('ROLLBACK').run();
|
|
321
|
+
}
|
|
322
|
+
catch (rollbackError) {
|
|
323
|
+
log.error('Failed to rollback transaction', rollbackError);
|
|
324
|
+
}
|
|
325
|
+
log.error('Transaction failed and was rolled back', error);
|
|
326
|
+
throw error;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Close the database connection
|
|
331
|
+
* IMPORTANT: Always call this when done to avoid resource leaks
|
|
332
|
+
*/
|
|
333
|
+
close() {
|
|
334
|
+
try {
|
|
335
|
+
this.db.close();
|
|
336
|
+
log.debug('Database connection closed');
|
|
337
|
+
}
|
|
338
|
+
catch (error) {
|
|
339
|
+
log.error('Failed to close database', error);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Get database statistics for monitoring
|
|
344
|
+
*/
|
|
345
|
+
getStats() {
|
|
346
|
+
return {
|
|
347
|
+
isOpen: this.db.open,
|
|
348
|
+
inTransaction: this.db.inTransaction,
|
|
349
|
+
readonly: this.db.readonly,
|
|
350
|
+
memory: this.db.memory,
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
export async function initDatabase(dimensions, basePath = '.') {
|
|
355
|
+
const dbPath = path.join(path.resolve(basePath), '.codevault', 'codevault.db');
|
|
356
|
+
const dbDir = path.dirname(dbPath);
|
|
357
|
+
if (!fs.existsSync(dbDir)) {
|
|
358
|
+
fs.mkdirSync(dbDir, { recursive: true });
|
|
359
|
+
}
|
|
360
|
+
const db = new CodeVaultDatabase(dbPath);
|
|
361
|
+
await db.initialize(dimensions);
|
|
362
|
+
db.close();
|
|
363
|
+
}
|
|
364
|
+
// Export as Database for backward compatibility
|
|
365
|
+
export { CodeVaultDatabase as Database };
|
|
366
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function computeFastHash(input: string | Buffer): Promise<string>;
|
|
2
|
+
export interface MerkleEntry {
|
|
3
|
+
shaFile: string;
|
|
4
|
+
chunkShas: string[];
|
|
5
|
+
}
|
|
6
|
+
export type MerkleTree = Record<string, MerkleEntry>;
|
|
7
|
+
export declare function loadMerkle(basePath?: string): MerkleTree;
|
|
8
|
+
export declare function saveMerkle(basePath?: string, merkle?: MerkleTree): void;
|
|
9
|
+
export declare function toPosixPath(relativePath: string | null): string | null;
|
|
10
|
+
export declare function normalizeToProjectPath(basePath?: string, filePath?: string): string | null;
|
|
11
|
+
export declare function removeMerkleEntry(merkle: MerkleTree, relativePath: string): boolean;
|
|
12
|
+
export declare function cloneMerkle(merkle: MerkleTree): MerkleTree;
|
|
13
|
+
//# sourceMappingURL=merkle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/indexer/merkle.ts"],"names":[],"mappings":"AAuBA,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7E;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAErD,wBAAgB,UAAU,CAAC,QAAQ,SAAM,GAAG,UAAU,CAcrD;AAED,wBAAgB,UAAU,CAAC,QAAQ,SAAM,EAAE,MAAM,GAAE,UAAe,GAAG,IAAI,CAOxE;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAKtE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,SAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcvF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAWnF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE1D"}
|