codebaxing 0.1.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/LICENSE +21 -0
- package/README.md +402 -0
- package/README.vi.md +402 -0
- package/dist/core/exceptions.d.ts +25 -0
- package/dist/core/exceptions.d.ts.map +1 -0
- package/dist/core/exceptions.js +46 -0
- package/dist/core/exceptions.js.map +1 -0
- package/dist/core/interfaces.d.ts +13 -0
- package/dist/core/interfaces.d.ts.map +1 -0
- package/dist/core/interfaces.js +5 -0
- package/dist/core/interfaces.js.map +1 -0
- package/dist/core/models.d.ts +132 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +303 -0
- package/dist/core/models.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/indexing/embedding-service.d.ts +66 -0
- package/dist/indexing/embedding-service.d.ts.map +1 -0
- package/dist/indexing/embedding-service.js +271 -0
- package/dist/indexing/embedding-service.js.map +1 -0
- package/dist/indexing/memory-retriever.d.ts +58 -0
- package/dist/indexing/memory-retriever.d.ts.map +1 -0
- package/dist/indexing/memory-retriever.js +327 -0
- package/dist/indexing/memory-retriever.js.map +1 -0
- package/dist/indexing/parallel-indexer.d.ts +36 -0
- package/dist/indexing/parallel-indexer.d.ts.map +1 -0
- package/dist/indexing/parallel-indexer.js +67 -0
- package/dist/indexing/parallel-indexer.js.map +1 -0
- package/dist/indexing/source-retriever.d.ts +66 -0
- package/dist/indexing/source-retriever.d.ts.map +1 -0
- package/dist/indexing/source-retriever.js +420 -0
- package/dist/indexing/source-retriever.js.map +1 -0
- package/dist/mcp/server.d.ts +16 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +370 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/state.d.ts +26 -0
- package/dist/mcp/state.d.ts.map +1 -0
- package/dist/mcp/state.js +154 -0
- package/dist/mcp/state.js.map +1 -0
- package/dist/parsers/language-configs.d.ts +26 -0
- package/dist/parsers/language-configs.d.ts.map +1 -0
- package/dist/parsers/language-configs.js +422 -0
- package/dist/parsers/language-configs.js.map +1 -0
- package/dist/parsers/treesitter-parser.d.ts +37 -0
- package/dist/parsers/treesitter-parser.d.ts.map +1 -0
- package/dist/parsers/treesitter-parser.js +602 -0
- package/dist/parsers/treesitter-parser.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core data models for Codebaxing.
|
|
3
|
+
*
|
|
4
|
+
* Defines the fundamental data structures used throughout the system
|
|
5
|
+
* for representing code symbols, parsed files, and codebase indices.
|
|
6
|
+
*/
|
|
7
|
+
// ─── Symbol Types ────────────────────────────────────────────────────────────
|
|
8
|
+
export var SymbolType;
|
|
9
|
+
(function (SymbolType) {
|
|
10
|
+
SymbolType["FUNCTION"] = "function";
|
|
11
|
+
SymbolType["CLASS"] = "class";
|
|
12
|
+
SymbolType["METHOD"] = "method";
|
|
13
|
+
SymbolType["VARIABLE"] = "variable";
|
|
14
|
+
})(SymbolType || (SymbolType = {}));
|
|
15
|
+
export function symbolTypeFromString(value) {
|
|
16
|
+
const lower = value.toLowerCase();
|
|
17
|
+
const entries = Object.values(SymbolType);
|
|
18
|
+
if (entries.includes(lower)) {
|
|
19
|
+
return lower;
|
|
20
|
+
}
|
|
21
|
+
throw new Error(`Invalid SymbolType: ${value}`);
|
|
22
|
+
}
|
|
23
|
+
export class Symbol {
|
|
24
|
+
name;
|
|
25
|
+
type;
|
|
26
|
+
filepath;
|
|
27
|
+
lineStart;
|
|
28
|
+
lineEnd;
|
|
29
|
+
language;
|
|
30
|
+
signature;
|
|
31
|
+
docstring;
|
|
32
|
+
parent;
|
|
33
|
+
codeSnippet;
|
|
34
|
+
imports;
|
|
35
|
+
calls;
|
|
36
|
+
metadata;
|
|
37
|
+
constructor(data) {
|
|
38
|
+
if (!data.name)
|
|
39
|
+
throw new Error('Symbol name cannot be empty');
|
|
40
|
+
if (!data.filepath)
|
|
41
|
+
throw new Error('Symbol filepath cannot be empty');
|
|
42
|
+
if (data.lineStart < 1)
|
|
43
|
+
throw new Error(`lineStart must be >= 1, got ${data.lineStart}`);
|
|
44
|
+
if (data.lineEnd < data.lineStart)
|
|
45
|
+
throw new Error(`lineEnd (${data.lineEnd}) must be >= lineStart (${data.lineStart})`);
|
|
46
|
+
if (!data.language)
|
|
47
|
+
throw new Error('Symbol language cannot be empty');
|
|
48
|
+
this.name = data.name;
|
|
49
|
+
this.type = data.type;
|
|
50
|
+
this.filepath = data.filepath;
|
|
51
|
+
this.lineStart = data.lineStart;
|
|
52
|
+
this.lineEnd = data.lineEnd;
|
|
53
|
+
this.language = data.language;
|
|
54
|
+
this.signature = data.signature;
|
|
55
|
+
this.docstring = data.docstring ?? '';
|
|
56
|
+
this.parent = data.parent;
|
|
57
|
+
this.codeSnippet = data.codeSnippet ?? '';
|
|
58
|
+
this.imports = data.imports ?? [];
|
|
59
|
+
this.calls = data.calls ?? [];
|
|
60
|
+
this.metadata = data.metadata ?? {};
|
|
61
|
+
}
|
|
62
|
+
get qualifiedName() {
|
|
63
|
+
return this.parent ? `${this.parent}.${this.name}` : this.name;
|
|
64
|
+
}
|
|
65
|
+
get lineCount() {
|
|
66
|
+
return this.lineEnd - this.lineStart + 1;
|
|
67
|
+
}
|
|
68
|
+
toDict() {
|
|
69
|
+
return {
|
|
70
|
+
name: this.name,
|
|
71
|
+
type: this.type,
|
|
72
|
+
filepath: this.filepath,
|
|
73
|
+
lineStart: this.lineStart,
|
|
74
|
+
lineEnd: this.lineEnd,
|
|
75
|
+
language: this.language,
|
|
76
|
+
signature: this.signature,
|
|
77
|
+
docstring: this.docstring,
|
|
78
|
+
parent: this.parent ?? null,
|
|
79
|
+
codeSnippet: this.codeSnippet,
|
|
80
|
+
imports: this.imports,
|
|
81
|
+
calls: this.calls,
|
|
82
|
+
metadata: this.metadata,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
static fromDict(data) {
|
|
86
|
+
return new Symbol({
|
|
87
|
+
name: data.name,
|
|
88
|
+
type: typeof data.type === 'string' ? symbolTypeFromString(data.type) : data.type,
|
|
89
|
+
filepath: data.filepath,
|
|
90
|
+
lineStart: (data.lineStart ?? data.line_start),
|
|
91
|
+
lineEnd: (data.lineEnd ?? data.line_end),
|
|
92
|
+
language: data.language,
|
|
93
|
+
signature: data.signature,
|
|
94
|
+
docstring: data.docstring ?? '',
|
|
95
|
+
parent: data.parent,
|
|
96
|
+
codeSnippet: (data.codeSnippet ?? data.code_snippet),
|
|
97
|
+
imports: data.imports,
|
|
98
|
+
calls: data.calls,
|
|
99
|
+
metadata: data.metadata,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export class ParsedFile {
|
|
104
|
+
filepath;
|
|
105
|
+
language;
|
|
106
|
+
symbols;
|
|
107
|
+
imports;
|
|
108
|
+
parseTime;
|
|
109
|
+
error;
|
|
110
|
+
constructor(data) {
|
|
111
|
+
if (!data.filepath)
|
|
112
|
+
throw new Error('ParsedFile filepath cannot be empty');
|
|
113
|
+
if (!data.language)
|
|
114
|
+
throw new Error('ParsedFile language cannot be empty');
|
|
115
|
+
this.filepath = data.filepath;
|
|
116
|
+
this.language = data.language;
|
|
117
|
+
this.symbols = data.symbols ?? [];
|
|
118
|
+
this.imports = data.imports ?? [];
|
|
119
|
+
this.parseTime = data.parseTime ?? 0;
|
|
120
|
+
this.error = data.error;
|
|
121
|
+
}
|
|
122
|
+
get isSuccessful() {
|
|
123
|
+
return this.error === undefined;
|
|
124
|
+
}
|
|
125
|
+
get symbolCount() {
|
|
126
|
+
return this.symbols.length;
|
|
127
|
+
}
|
|
128
|
+
getSymbolsByType(symbolType) {
|
|
129
|
+
return this.symbols.filter(s => s.type === symbolType);
|
|
130
|
+
}
|
|
131
|
+
toDict() {
|
|
132
|
+
return {
|
|
133
|
+
filepath: this.filepath,
|
|
134
|
+
language: this.language,
|
|
135
|
+
symbols: this.symbols.map(s => s.toDict()),
|
|
136
|
+
imports: this.imports,
|
|
137
|
+
parseTime: this.parseTime,
|
|
138
|
+
error: this.error ?? null,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
static fromDict(data) {
|
|
142
|
+
const symbols = data.symbols?.map(s => Symbol.fromDict(s)) ?? [];
|
|
143
|
+
return new ParsedFile({
|
|
144
|
+
filepath: data.filepath,
|
|
145
|
+
language: data.language,
|
|
146
|
+
symbols,
|
|
147
|
+
imports: data.imports,
|
|
148
|
+
parseTime: (data.parseTime ?? data.parse_time),
|
|
149
|
+
error: data.error,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
export class CodebaseIndex {
|
|
154
|
+
rootPath;
|
|
155
|
+
files;
|
|
156
|
+
totalFiles;
|
|
157
|
+
totalSymbols;
|
|
158
|
+
indexedAt;
|
|
159
|
+
constructor(data) {
|
|
160
|
+
if (!data.rootPath)
|
|
161
|
+
throw new Error('CodebaseIndex rootPath cannot be empty');
|
|
162
|
+
this.rootPath = data.rootPath;
|
|
163
|
+
this.files = data.files ?? {};
|
|
164
|
+
this.totalFiles = data.totalFiles ?? 0;
|
|
165
|
+
this.totalSymbols = data.totalSymbols ?? 0;
|
|
166
|
+
this.indexedAt = data.indexedAt ?? new Date().toISOString();
|
|
167
|
+
}
|
|
168
|
+
get successfulParses() {
|
|
169
|
+
return Object.values(this.files).filter(f => f.isSuccessful).length;
|
|
170
|
+
}
|
|
171
|
+
get failedParses() {
|
|
172
|
+
return Object.values(this.files).filter(f => !f.isSuccessful).length;
|
|
173
|
+
}
|
|
174
|
+
getSymbolsByName(name) {
|
|
175
|
+
const results = [];
|
|
176
|
+
for (const parsedFile of Object.values(this.files)) {
|
|
177
|
+
results.push(...parsedFile.symbols.filter(s => s.name === name));
|
|
178
|
+
}
|
|
179
|
+
return results;
|
|
180
|
+
}
|
|
181
|
+
getSymbolsByType(symbolType) {
|
|
182
|
+
const results = [];
|
|
183
|
+
for (const parsedFile of Object.values(this.files)) {
|
|
184
|
+
results.push(...parsedFile.getSymbolsByType(symbolType));
|
|
185
|
+
}
|
|
186
|
+
return results;
|
|
187
|
+
}
|
|
188
|
+
toDict() {
|
|
189
|
+
const files = {};
|
|
190
|
+
for (const [path, f] of Object.entries(this.files)) {
|
|
191
|
+
files[path] = f.toDict();
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
rootPath: this.rootPath,
|
|
195
|
+
files,
|
|
196
|
+
totalFiles: this.totalFiles,
|
|
197
|
+
totalSymbols: this.totalSymbols,
|
|
198
|
+
indexedAt: this.indexedAt,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
static fromDict(data) {
|
|
202
|
+
const filesData = data.files;
|
|
203
|
+
const files = {};
|
|
204
|
+
if (filesData) {
|
|
205
|
+
for (const [path, f] of Object.entries(filesData)) {
|
|
206
|
+
files[path] = ParsedFile.fromDict(f);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return new CodebaseIndex({
|
|
210
|
+
rootPath: (data.rootPath ?? data.root_path),
|
|
211
|
+
files,
|
|
212
|
+
totalFiles: (data.totalFiles ?? data.total_files),
|
|
213
|
+
totalSymbols: (data.totalSymbols ?? data.total_symbols),
|
|
214
|
+
indexedAt: (data.indexedAt ?? data.indexed_at),
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// ─── Memory Models ───────────────────────────────────────────────────────────
|
|
219
|
+
export var MemoryType;
|
|
220
|
+
(function (MemoryType) {
|
|
221
|
+
MemoryType["CONVERSATION"] = "conversation";
|
|
222
|
+
MemoryType["STATUS"] = "status";
|
|
223
|
+
MemoryType["DECISION"] = "decision";
|
|
224
|
+
MemoryType["PREFERENCE"] = "preference";
|
|
225
|
+
MemoryType["DOC"] = "doc";
|
|
226
|
+
MemoryType["NOTE"] = "note";
|
|
227
|
+
})(MemoryType || (MemoryType = {}));
|
|
228
|
+
export function memoryTypeFromString(value) {
|
|
229
|
+
const lower = value.toLowerCase();
|
|
230
|
+
const entries = Object.values(MemoryType);
|
|
231
|
+
if (entries.includes(lower)) {
|
|
232
|
+
return lower;
|
|
233
|
+
}
|
|
234
|
+
throw new Error(`Invalid MemoryType: ${value}`);
|
|
235
|
+
}
|
|
236
|
+
const VALID_TTLS = ['session', 'day', 'week', 'month', 'permanent'];
|
|
237
|
+
export class Memory {
|
|
238
|
+
id;
|
|
239
|
+
content;
|
|
240
|
+
memoryType;
|
|
241
|
+
project;
|
|
242
|
+
tags;
|
|
243
|
+
createdAt;
|
|
244
|
+
accessedAt;
|
|
245
|
+
ttl;
|
|
246
|
+
source;
|
|
247
|
+
metadata;
|
|
248
|
+
constructor(data) {
|
|
249
|
+
if (!data.id)
|
|
250
|
+
throw new Error('Memory id cannot be empty');
|
|
251
|
+
if (!data.content)
|
|
252
|
+
throw new Error('Memory content cannot be empty');
|
|
253
|
+
if (!data.project)
|
|
254
|
+
throw new Error('Memory project cannot be empty');
|
|
255
|
+
if (data.ttl && !VALID_TTLS.includes(data.ttl)) {
|
|
256
|
+
throw new Error(`ttl must be one of ${VALID_TTLS.join(', ')}, got ${data.ttl}`);
|
|
257
|
+
}
|
|
258
|
+
this.id = data.id;
|
|
259
|
+
this.content = data.content;
|
|
260
|
+
this.memoryType = data.memoryType;
|
|
261
|
+
this.project = data.project;
|
|
262
|
+
this.tags = data.tags ?? [];
|
|
263
|
+
this.createdAt = data.createdAt ?? new Date().toISOString();
|
|
264
|
+
this.accessedAt = data.accessedAt ?? new Date().toISOString();
|
|
265
|
+
this.ttl = data.ttl ?? 'permanent';
|
|
266
|
+
this.source = data.source ?? 'user';
|
|
267
|
+
this.metadata = data.metadata ?? {};
|
|
268
|
+
}
|
|
269
|
+
toDict() {
|
|
270
|
+
return {
|
|
271
|
+
id: this.id,
|
|
272
|
+
content: this.content,
|
|
273
|
+
memoryType: this.memoryType,
|
|
274
|
+
project: this.project,
|
|
275
|
+
tags: this.tags,
|
|
276
|
+
createdAt: this.createdAt,
|
|
277
|
+
accessedAt: this.accessedAt,
|
|
278
|
+
ttl: this.ttl,
|
|
279
|
+
source: this.source,
|
|
280
|
+
metadata: this.metadata,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
static fromDict(data) {
|
|
284
|
+
return new Memory({
|
|
285
|
+
id: data.id,
|
|
286
|
+
content: data.content,
|
|
287
|
+
memoryType: typeof data.memoryType === 'string'
|
|
288
|
+
? memoryTypeFromString(data.memoryType)
|
|
289
|
+
: (typeof data.memory_type === 'string' ? memoryTypeFromString(data.memory_type) : data.memoryType),
|
|
290
|
+
project: data.project,
|
|
291
|
+
tags: data.tags,
|
|
292
|
+
createdAt: (data.createdAt ?? data.created_at),
|
|
293
|
+
accessedAt: (data.accessedAt ?? data.accessed_at),
|
|
294
|
+
ttl: data.ttl,
|
|
295
|
+
source: data.source,
|
|
296
|
+
metadata: data.metadata,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
touch() {
|
|
300
|
+
this.accessedAt = new Date().toISOString();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/core/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAEhF,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;AACvB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAa,CAAC;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAmB,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAoBD,MAAM,OAAO,MAAM;IACR,IAAI,CAAS;IACb,IAAI,CAAa;IACjB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAqB;IAC3B,WAAW,CAAS;IACpB,OAAO,CAAW;IAClB,KAAK,CAAW;IAChB,QAAQ,CAA0B;IAE3C,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,OAAO,2BAA2B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACzH,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACjE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,MAAM,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAkB;YAC/F,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAW;YACxD,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAW;YAClD,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,SAAS,EAAE,IAAI,CAAC,SAAmB;YACnC,SAAS,EAAG,IAAI,CAAC,SAAoB,IAAI,EAAE;YAC3C,MAAM,EAAE,IAAI,CAAC,MAA4B;YACzC,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAuB;YAC1E,OAAO,EAAE,IAAI,CAAC,OAA+B;YAC7C,KAAK,EAAE,IAAI,CAAC,KAA6B;YACzC,QAAQ,EAAE,IAAI,CAAC,QAA+C;SAC/D,CAAC,CAAC;IACL,CAAC;CACF;AAaD,MAAM,OAAO,UAAU;IACZ,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,OAAO,CAAW;IAClB,OAAO,CAAW;IAClB,SAAS,CAAS;IAClB,KAAK,CAAqB;IAEnC,YAAY,IAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAE3E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,UAAsB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,MAAM,OAAO,GAAI,IAAI,CAAC,OAAqC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChG,OAAO,IAAI,UAAU,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,OAA+B;YAC7C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAuB;YACpE,KAAK,EAAE,IAAI,CAAC,KAA2B;SACxC,CAAC,CAAC;IACL,CAAC;CACF;AAYD,MAAM,OAAO,aAAa;IACf,QAAQ,CAAS;IACjB,KAAK,CAA6B;IAClC,UAAU,CAAS;IACnB,YAAY,CAAS;IACrB,SAAS,CAAS;IAE3B,YAAY,IAAuB;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC;IAED,IAAI,YAAY;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IACvE,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,UAAsB;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAA4D,CAAC;QACpF,MAAM,KAAK,GAA+B,EAAE,CAAC;QAC7C,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,aAAa,CAAC;YACvB,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAW;YACrD,KAAK;YACL,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAuB;YACvE,YAAY,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAuB;YAC7E,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAuB;SACrE,CAAC,CAAC;IACL,CAAC;CACF;AAED,gFAAgF;AAEhF,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;IACzB,yBAAW,CAAA;IACX,2BAAa,CAAA;AACf,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAa,CAAC;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAmB,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAgB7E,MAAM,OAAO,MAAM;IACjB,EAAE,CAAS;IACX,OAAO,CAAS;IAChB,UAAU,CAAa;IACvB,OAAO,CAAS;IAChB,IAAI,CAAW;IACf,SAAS,CAAS;IAClB,UAAU,CAAS;IACnB,GAAG,CAAM;IACT,MAAM,CAAS;IACf,QAAQ,CAA0B;IAElC,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAA6B;QAC3C,OAAO,IAAI,MAAM,CAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAY;YACrB,OAAO,EAAE,IAAI,CAAC,OAAiB;YAC/B,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAC7C,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAwB,CAAC;YACnH,OAAO,EAAE,IAAI,CAAC,OAAiB;YAC/B,IAAI,EAAE,IAAI,CAAC,IAA4B;YACvC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAuB;YACpE,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAuB;YACvE,GAAG,EAAE,IAAI,CAAC,GAAsB;YAChC,MAAM,EAAE,IAAI,CAAC,MAA4B;YACzC,QAAQ,EAAE,IAAI,CAAC,QAA+C;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codebaxing - MCP server for codebase understanding.
|
|
3
|
+
*
|
|
4
|
+
* A lightweight MCP server that provides code parsing and indexing capabilities
|
|
5
|
+
* through the Model Context Protocol.
|
|
6
|
+
*/
|
|
7
|
+
export declare const VERSION = "0.1.0";
|
|
8
|
+
export { Symbol, SymbolType, ParsedFile, CodebaseIndex } from './core/models.js';
|
|
9
|
+
export { Memory, MemoryType } from './core/models.js';
|
|
10
|
+
export type { IParser } from './core/interfaces.js';
|
|
11
|
+
export { CodebaxingError, ParseError, IndexingError, EmbeddingError, SearchError, ConfigurationError, } from './core/exceptions.js';
|
|
12
|
+
export { TreeSitterParser } from './parsers/treesitter-parser.js';
|
|
13
|
+
export { getLanguageForFile, getSupportedExtensions, EXTENSION_MAP } from './parsers/language-configs.js';
|
|
14
|
+
export { SourceRetriever, discoverFiles } from './indexing/source-retriever.js';
|
|
15
|
+
export { MemoryRetriever } from './indexing/memory-retriever.js';
|
|
16
|
+
export { EmbeddingService, getEmbeddingService } from './indexing/embedding-service.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codebaxing - MCP server for codebase understanding.
|
|
3
|
+
*
|
|
4
|
+
* A lightweight MCP server that provides code parsing and indexing capabilities
|
|
5
|
+
* through the Model Context Protocol.
|
|
6
|
+
*/
|
|
7
|
+
export const VERSION = '0.1.0';
|
|
8
|
+
// Core models
|
|
9
|
+
export { Symbol, SymbolType, ParsedFile, CodebaseIndex } from './core/models.js';
|
|
10
|
+
export { Memory, MemoryType } from './core/models.js';
|
|
11
|
+
// Exceptions
|
|
12
|
+
export { CodebaxingError, ParseError, IndexingError, EmbeddingError, SearchError, ConfigurationError, } from './core/exceptions.js';
|
|
13
|
+
// Parsers
|
|
14
|
+
export { TreeSitterParser } from './parsers/treesitter-parser.js';
|
|
15
|
+
export { getLanguageForFile, getSupportedExtensions, EXTENSION_MAP } from './parsers/language-configs.js';
|
|
16
|
+
// Indexing
|
|
17
|
+
export { SourceRetriever, discoverFiles } from './indexing/source-retriever.js';
|
|
18
|
+
export { MemoryRetriever } from './indexing/memory-retriever.js';
|
|
19
|
+
export { EmbeddingService, getEmbeddingService } from './indexing/embedding-service.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,cAAc;AACd,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGtD,aAAa;AACb,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE1G,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding service using @huggingface/transformers (Transformers.js).
|
|
3
|
+
*
|
|
4
|
+
* Runs ONNX models locally in Node.js — no external server needed.
|
|
5
|
+
* Default model: Xenova/all-MiniLM-L6-v2 (384 dims, fast, well-supported)
|
|
6
|
+
*
|
|
7
|
+
* Device Support:
|
|
8
|
+
* Set CODEBAXING_DEVICE environment variable:
|
|
9
|
+
* - 'cpu' (default): CPU inference, works everywhere
|
|
10
|
+
* - 'webgpu': WebGPU backend (experimental, uses Metal on macOS)
|
|
11
|
+
* - 'cuda': NVIDIA GPU (Linux/Windows only, requires CUDA drivers)
|
|
12
|
+
* - 'auto': Auto-detect best available device
|
|
13
|
+
*
|
|
14
|
+
* Note: macOS does not support CUDA. Use 'webgpu' for GPU acceleration on Mac.
|
|
15
|
+
*/
|
|
16
|
+
export type DeviceType = 'cpu' | 'cuda' | 'webgpu' | 'auto';
|
|
17
|
+
/**
|
|
18
|
+
* Get the configured device from environment variable.
|
|
19
|
+
* Defaults to 'cpu' for maximum compatibility.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getConfiguredDevice(): DeviceType;
|
|
22
|
+
export interface EmbeddingModelConfig {
|
|
23
|
+
modelId: string;
|
|
24
|
+
dimensions: number;
|
|
25
|
+
maxSeqLength: number;
|
|
26
|
+
queryPrefix: string;
|
|
27
|
+
documentPrefix: string;
|
|
28
|
+
}
|
|
29
|
+
export declare const EMBEDDING_MODELS: Record<string, EmbeddingModelConfig>;
|
|
30
|
+
export declare const DEFAULT_MODEL = "all-MiniLM-L6-v2";
|
|
31
|
+
export declare class EmbeddingService {
|
|
32
|
+
private modelName;
|
|
33
|
+
private config;
|
|
34
|
+
private device;
|
|
35
|
+
private extractor;
|
|
36
|
+
private loading;
|
|
37
|
+
private showProgress;
|
|
38
|
+
private cache;
|
|
39
|
+
private cacheMaxSize;
|
|
40
|
+
stats: {
|
|
41
|
+
totalEmbeddings: number;
|
|
42
|
+
totalBatches: number;
|
|
43
|
+
totalTime: number;
|
|
44
|
+
cacheHits: number;
|
|
45
|
+
cacheMisses: number;
|
|
46
|
+
};
|
|
47
|
+
constructor(modelName?: string, options?: {
|
|
48
|
+
showProgress?: boolean;
|
|
49
|
+
device?: DeviceType;
|
|
50
|
+
});
|
|
51
|
+
/** Get the device being used for inference */
|
|
52
|
+
getDevice(): DeviceType;
|
|
53
|
+
get dimensions(): number;
|
|
54
|
+
private loadModel;
|
|
55
|
+
embed(text: string, isQuery?: boolean): Promise<number[]>;
|
|
56
|
+
embedBatch(texts: string[], isQuery?: boolean): Promise<number[][]>;
|
|
57
|
+
getStats(): Record<string, unknown>;
|
|
58
|
+
clearCache(): void;
|
|
59
|
+
unload(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export declare function getEmbeddingService(modelName?: string, options?: {
|
|
62
|
+
showProgress?: boolean;
|
|
63
|
+
device?: DeviceType;
|
|
64
|
+
}): EmbeddingService;
|
|
65
|
+
export declare function resetEmbeddingService(modelName?: string): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=embedding-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/indexing/embedding-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAI5D;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAMhD;AAwBD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAejE,CAAC;AAEF,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAIhD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,YAAY,CAAU;IAG9B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,YAAY,CAAQ;IAG5B,KAAK;;;;;;MAMH;gBAGA,SAAS,GAAE,MAAsB,EACjC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAA;KAAO;IAoB/D,8CAA8C;IAC9C,SAAS,IAAI,UAAU;IAIvB,IAAI,UAAU,IAAI,MAAM,CAEvB;YAEa,SAAS;IA8DjB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkChE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAwChF,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUnC,UAAU,IAAI,IAAI;IAMZ,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAM9B;AAMD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,MAAsB,EACjC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAO,GAC5D,gBAAgB,CASlB;AAED,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E"}
|