codevault 1.5.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/.env.example +75 -40
- package/README.md +112 -345
- package/dist/chunking/file-grouper.d.ts +1 -1
- package/dist/chunking/file-grouper.d.ts.map +1 -1
- package/dist/chunking/file-grouper.js +2 -19
- package/dist/chunking/file-grouper.js.map +1 -1
- package/dist/chunking/semantic-chunker.d.ts.map +1 -1
- package/dist/chunking/semantic-chunker.js +4 -19
- package/dist/chunking/semantic-chunker.js.map +1 -1
- 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.js +5 -0
- package/dist/cli.js.map +1 -1
- 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.map +1 -1
- package/dist/config/loader.js +11 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/core/batch-indexer.d.ts +14 -2
- package/dist/core/batch-indexer.d.ts.map +1 -1
- package/dist/core/batch-indexer.js +107 -79
- package/dist/core/batch-indexer.js.map +1 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +4 -28
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +8 -5
- package/dist/core/search.js.map +1 -1
- package/dist/database/db.d.ts +44 -5
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +270 -109
- package/dist/database/db.js.map +1 -1
- 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-server.js +31 -38
- package/dist/mcp-server.js.map +1 -1
- package/dist/providers/chat-llm.d.ts.map +1 -1
- package/dist/providers/chat-llm.js +4 -1
- package/dist/providers/chat-llm.js.map +1 -1
- package/dist/ranking/symbol-boost.d.ts.map +1 -1
- package/dist/ranking/symbol-boost.js +28 -7
- package/dist/ranking/symbol-boost.js.map +1 -1
- package/dist/storage/encrypted-chunks.d.ts.map +1 -1
- package/dist/storage/encrypted-chunks.js +3 -2
- package/dist/storage/encrypted-chunks.js.map +1 -1
- package/dist/symbols/extract.d.ts.map +1 -1
- package/dist/symbols/extract.js +27 -6
- package/dist/symbols/extract.js.map +1 -1
- package/dist/symbols/graph.d.ts.map +1 -1
- package/dist/symbols/graph.js +1 -1
- package/dist/symbols/graph.js.map +1 -1
- 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/utils/indexer-with-progress.d.ts.map +1 -1
- package/dist/utils/indexer-with-progress.js +12 -27
- package/dist/utils/indexer-with-progress.js.map +1 -1
- 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/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 +4 -3
- package/dist/providers/ollama.d.ts +0 -13
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -50
- package/dist/providers/ollama.js.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutex implementation for coordinating async operations
|
|
3
|
+
*
|
|
4
|
+
* Provides a proper mutex/lock mechanism to replace polling-based
|
|
5
|
+
* concurrency control patterns.
|
|
6
|
+
*/
|
|
7
|
+
export class Mutex {
|
|
8
|
+
locked = false;
|
|
9
|
+
queue = [];
|
|
10
|
+
/**
|
|
11
|
+
* Check if the mutex is currently locked
|
|
12
|
+
*/
|
|
13
|
+
isLocked() {
|
|
14
|
+
return this.locked;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Acquire the mutex lock
|
|
18
|
+
* Waits if already locked
|
|
19
|
+
*/
|
|
20
|
+
async acquire() {
|
|
21
|
+
if (!this.locked) {
|
|
22
|
+
this.locked = true;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Wait for lock to be released
|
|
26
|
+
await new Promise((resolve) => {
|
|
27
|
+
this.queue.push(resolve);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Release the mutex lock
|
|
32
|
+
* Allows next queued operation to proceed
|
|
33
|
+
*/
|
|
34
|
+
release() {
|
|
35
|
+
if (this.queue.length > 0) {
|
|
36
|
+
const resolve = this.queue.shift();
|
|
37
|
+
resolve();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.locked = false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run a function with automatic acquire/release
|
|
45
|
+
* Ensures lock is always released even if function throws
|
|
46
|
+
*/
|
|
47
|
+
async runExclusive(fn) {
|
|
48
|
+
await this.acquire();
|
|
49
|
+
try {
|
|
50
|
+
return await fn();
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
this.release();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get queue length (for debugging)
|
|
58
|
+
*/
|
|
59
|
+
getQueueLength() {
|
|
60
|
+
return this.queue.length;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Async semaphore for limiting concurrent operations
|
|
65
|
+
*/
|
|
66
|
+
export class Semaphore {
|
|
67
|
+
permits;
|
|
68
|
+
maxPermits;
|
|
69
|
+
queue = [];
|
|
70
|
+
constructor(permits) {
|
|
71
|
+
this.permits = permits;
|
|
72
|
+
this.maxPermits = permits;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Acquire a permit
|
|
76
|
+
*/
|
|
77
|
+
async acquire() {
|
|
78
|
+
if (this.permits > 0) {
|
|
79
|
+
this.permits--;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
await new Promise((resolve) => {
|
|
83
|
+
this.queue.push(resolve);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Release a permit
|
|
88
|
+
*/
|
|
89
|
+
release() {
|
|
90
|
+
if (this.queue.length > 0) {
|
|
91
|
+
const resolve = this.queue.shift();
|
|
92
|
+
resolve();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.permits = Math.min(this.permits + 1, this.maxPermits);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Run function with automatic acquire/release
|
|
100
|
+
*/
|
|
101
|
+
async runExclusive(fn) {
|
|
102
|
+
await this.acquire();
|
|
103
|
+
try {
|
|
104
|
+
return await fn();
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
this.release();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get available permits
|
|
112
|
+
*/
|
|
113
|
+
getAvailablePermits() {
|
|
114
|
+
return this.permits;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get queue length
|
|
118
|
+
*/
|
|
119
|
+
getQueueLength() {
|
|
120
|
+
return this.queue.length;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=mutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,KAAK;IACR,MAAM,GAAG,KAAK,CAAC;IACf,KAAK,GAAsB,EAAE,CAAC;IAEtC;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,KAAK,GAAsB,EAAE,CAAC;IAEtC,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for path resolution and normalization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the project root path from various input options
|
|
6
|
+
* Supports multiple parameter names for backwards compatibility (project, directory, path)
|
|
7
|
+
*
|
|
8
|
+
* @param input - Object containing potential path parameters
|
|
9
|
+
* @returns Normalized path string, defaults to '.' if no path provided
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveProjectRoot(input?: {
|
|
12
|
+
project?: string;
|
|
13
|
+
directory?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
}): string;
|
|
16
|
+
/**
|
|
17
|
+
* Wraps a function execution with quiet logging mode enabled
|
|
18
|
+
* Automatically restores previous environment state after execution
|
|
19
|
+
*
|
|
20
|
+
* @param fn - Async function to execute with quiet logging
|
|
21
|
+
* @param opts - Options for additional environment flags
|
|
22
|
+
* @returns Result of the wrapped function
|
|
23
|
+
*/
|
|
24
|
+
export declare function withQuietLogs<T>(fn: () => Promise<T>, opts?: {
|
|
25
|
+
cacheModelProfile?: boolean;
|
|
26
|
+
}): Promise<T>;
|
|
27
|
+
//# sourceMappingURL=path-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAST;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,CAAC,CAAC,CA2BZ"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for path resolution and normalization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the project root path from various input options
|
|
6
|
+
* Supports multiple parameter names for backwards compatibility (project, directory, path)
|
|
7
|
+
*
|
|
8
|
+
* @param input - Object containing potential path parameters
|
|
9
|
+
* @returns Normalized path string, defaults to '.' if no path provided
|
|
10
|
+
*/
|
|
11
|
+
export function resolveProjectRoot(input) {
|
|
12
|
+
if (!input) {
|
|
13
|
+
return '.';
|
|
14
|
+
}
|
|
15
|
+
const rawPath = input.project || input.directory || input.path || '.';
|
|
16
|
+
const trimmed = typeof rawPath === 'string' ? rawPath.trim() : '.';
|
|
17
|
+
return trimmed.length > 0 ? trimmed : '.';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Wraps a function execution with quiet logging mode enabled
|
|
21
|
+
* Automatically restores previous environment state after execution
|
|
22
|
+
*
|
|
23
|
+
* @param fn - Async function to execute with quiet logging
|
|
24
|
+
* @param opts - Options for additional environment flags
|
|
25
|
+
* @returns Result of the wrapped function
|
|
26
|
+
*/
|
|
27
|
+
export async function withQuietLogs(fn, opts) {
|
|
28
|
+
const prevQuiet = process.env.CODEVAULT_QUIET;
|
|
29
|
+
const prevCache = process.env.CODEVAULT_MODEL_PROFILE_CACHED;
|
|
30
|
+
process.env.CODEVAULT_QUIET = 'true';
|
|
31
|
+
if (opts?.cacheModelProfile) {
|
|
32
|
+
process.env.CODEVAULT_MODEL_PROFILE_CACHED = 'true';
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
return await fn();
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
// Restore previous state
|
|
39
|
+
if (prevQuiet === undefined) {
|
|
40
|
+
delete process.env.CODEVAULT_QUIET;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
process.env.CODEVAULT_QUIET = prevQuiet;
|
|
44
|
+
}
|
|
45
|
+
if (opts?.cacheModelProfile) {
|
|
46
|
+
if (prevCache === undefined) {
|
|
47
|
+
delete process.env.CODEVAULT_MODEL_PROFILE_CACHED;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
process.env.CODEVAULT_MODEL_PROFILE_CACHED = prevCache;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=path-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helpers.js","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,IAAsC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IACrC,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,yBAAyB;QACzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAwBhC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default file and directory patterns to ignore during project scanning
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_SCAN_IGNORES = [
|
|
5
|
+
'**/vendor/**',
|
|
6
|
+
'**/node_modules/**',
|
|
7
|
+
'**/.git/**',
|
|
8
|
+
'**/storage/**',
|
|
9
|
+
'**/dist/**',
|
|
10
|
+
'**/build/**',
|
|
11
|
+
'**/tmp/**',
|
|
12
|
+
'**/temp/**',
|
|
13
|
+
'**/.npm/**',
|
|
14
|
+
'**/.yarn/**',
|
|
15
|
+
'**/Library/**',
|
|
16
|
+
'**/System/**',
|
|
17
|
+
'**/.Trash/**',
|
|
18
|
+
'**/.codevault/**',
|
|
19
|
+
'**/codevault.codemap.json',
|
|
20
|
+
'**/codevault.codemap.json.backup-*',
|
|
21
|
+
'**/package-lock.json',
|
|
22
|
+
'**/yarn.lock',
|
|
23
|
+
'**/pnpm-lock.yaml',
|
|
24
|
+
'**/*.json',
|
|
25
|
+
'**/*.sh',
|
|
26
|
+
'**/examples/**',
|
|
27
|
+
'**/assets/**'
|
|
28
|
+
];
|
|
29
|
+
//# sourceMappingURL=scan-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-patterns.js","sourceRoot":"","sources":["../../src/utils/scan-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,2BAA2B;IAC3B,oCAAoC;IACpC,sBAAsB;IACtB,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,cAAc;CACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codevault",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "AI-powered semantic code search via Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.20.2",
|
|
49
49
|
"@tree-sitter-grammars/tree-sitter-kotlin": "^1.1.0",
|
|
50
50
|
"@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2",
|
|
51
|
+
"better-sqlite3": "^11.10.0",
|
|
51
52
|
"chalk": "^5.6.2",
|
|
52
53
|
"chokidar": "^4.0.3",
|
|
53
54
|
"cli-progress": "^3.12.0",
|
|
@@ -57,7 +58,6 @@
|
|
|
57
58
|
"micromatch": "^4.0.8",
|
|
58
59
|
"openai": "^6.7.0",
|
|
59
60
|
"ora": "^9.0.0",
|
|
60
|
-
"sqlite3": "^5.1.7",
|
|
61
61
|
"tiktoken": "^1.0.22",
|
|
62
62
|
"tree-sitter": "^0.25.0",
|
|
63
63
|
"tree-sitter-bash": "^0.25.0",
|
|
@@ -86,10 +86,11 @@
|
|
|
86
86
|
"zod": "^4.1.12"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
89
90
|
"@types/chokidar": "^1.7.5",
|
|
90
91
|
"@types/cli-progress": "^3.11.6",
|
|
91
92
|
"@types/micromatch": "^4.0.10",
|
|
92
|
-
"@types/node": "^24.
|
|
93
|
+
"@types/node": "^24.10.0",
|
|
93
94
|
"typescript": "^5.9.3"
|
|
94
95
|
}
|
|
95
96
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EmbeddingProvider } from './base.js';
|
|
2
|
-
export declare class OllamaProvider extends EmbeddingProvider {
|
|
3
|
-
private ollama;
|
|
4
|
-
private model;
|
|
5
|
-
rateLimiter: any;
|
|
6
|
-
constructor(model?: string);
|
|
7
|
-
init(): Promise<void>;
|
|
8
|
-
generateEmbedding(text: string): Promise<number[]>;
|
|
9
|
-
getDimensions(): number;
|
|
10
|
-
getName(): string;
|
|
11
|
-
getModelName(): string;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAKlB,MAAM,WAAW,CAAC;AAEnB,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,WAAW,EAAE,GAAG,CAAC;gBAEL,KAAK,SAA2G;IAMtH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAexD,aAAa,IAAI,MAAM;IASvB,OAAO,IAAI,MAAM;IAIjB,YAAY,IAAI,MAAM;CAGvB"}
|
package/dist/providers/ollama.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createRateLimiter } from '../utils/rate-limiter.js';
|
|
2
|
-
import { EmbeddingProvider, getModelProfile } from './base.js';
|
|
3
|
-
export class OllamaProvider extends EmbeddingProvider {
|
|
4
|
-
ollama = null;
|
|
5
|
-
model;
|
|
6
|
-
rateLimiter;
|
|
7
|
-
constructor(model = process.env.CODEVAULT_OLLAMA_EMBEDDING_MODEL || process.env.CODEVAULT_OLLAMA_MODEL || 'nomic-embed-text') {
|
|
8
|
-
super();
|
|
9
|
-
this.model = model;
|
|
10
|
-
this.rateLimiter = createRateLimiter('Ollama');
|
|
11
|
-
}
|
|
12
|
-
async init() {
|
|
13
|
-
if (!this.ollama) {
|
|
14
|
-
try {
|
|
15
|
-
const ollama = await import('ollama');
|
|
16
|
-
this.ollama = ollama.default;
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
throw new Error('Ollama is not installed. Run: npm install ollama');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async generateEmbedding(text) {
|
|
24
|
-
await this.init();
|
|
25
|
-
const profile = await getModelProfile('Ollama', this.model);
|
|
26
|
-
const maxChars = profile.maxChunkChars || 8000;
|
|
27
|
-
return await this.rateLimiter.execute(async () => {
|
|
28
|
-
const response = await this.ollama.embeddings({
|
|
29
|
-
model: this.model,
|
|
30
|
-
prompt: text.slice(0, maxChars)
|
|
31
|
-
});
|
|
32
|
-
return response.embedding;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
getDimensions() {
|
|
36
|
-
if (process.env.CODEVAULT_EMBEDDING_DIMENSIONS || process.env.CODEVAULT_DIMENSIONS) {
|
|
37
|
-
const dims = parseInt(process.env.CODEVAULT_EMBEDDING_DIMENSIONS || process.env.CODEVAULT_DIMENSIONS || '0', 10);
|
|
38
|
-
if (!isNaN(dims) && dims > 0)
|
|
39
|
-
return dims;
|
|
40
|
-
}
|
|
41
|
-
return 768;
|
|
42
|
-
}
|
|
43
|
-
getName() {
|
|
44
|
-
return 'Ollama';
|
|
45
|
-
}
|
|
46
|
-
getModelName() {
|
|
47
|
-
return this.model;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=ollama.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,eAAe,EAIhB,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IAC3C,MAAM,GAAQ,IAAI,CAAC;IACnB,KAAK,CAAS;IACtB,WAAW,CAAM;IAEjB,YAAY,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,kBAAkB;QAC1H,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QAE/C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACjH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
|