agentlang 0.10.4 → 0.10.5

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.
Files changed (111) hide show
  1. package/README.md +22 -9
  2. package/out/extension/main.cjs +250 -250
  3. package/out/extension/main.cjs.map +2 -2
  4. package/out/language/generated/ast.d.ts +2 -12
  5. package/out/language/generated/ast.d.ts.map +1 -1
  6. package/out/language/generated/ast.js +0 -8
  7. package/out/language/generated/ast.js.map +1 -1
  8. package/out/language/generated/grammar.d.ts.map +1 -1
  9. package/out/language/generated/grammar.js +18 -52
  10. package/out/language/generated/grammar.js.map +1 -1
  11. package/out/language/main.cjs +522 -564
  12. package/out/language/main.cjs.map +3 -3
  13. package/out/language/parser.d.ts.map +1 -1
  14. package/out/language/parser.js +10 -3
  15. package/out/language/parser.js.map +1 -1
  16. package/out/runtime/api.d.ts.map +1 -1
  17. package/out/runtime/api.js +0 -14
  18. package/out/runtime/api.js.map +1 -1
  19. package/out/runtime/defs.d.ts +0 -1
  20. package/out/runtime/defs.d.ts.map +1 -1
  21. package/out/runtime/defs.js +1 -2
  22. package/out/runtime/defs.js.map +1 -1
  23. package/out/runtime/embeddings/chunker.d.ts +0 -18
  24. package/out/runtime/embeddings/chunker.d.ts.map +1 -1
  25. package/out/runtime/embeddings/chunker.js +15 -47
  26. package/out/runtime/embeddings/chunker.js.map +1 -1
  27. package/out/runtime/embeddings/openai.d.ts.map +1 -1
  28. package/out/runtime/embeddings/openai.js +11 -22
  29. package/out/runtime/embeddings/openai.js.map +1 -1
  30. package/out/runtime/embeddings/provider.d.ts +0 -1
  31. package/out/runtime/embeddings/provider.d.ts.map +1 -1
  32. package/out/runtime/embeddings/provider.js +1 -20
  33. package/out/runtime/embeddings/provider.js.map +1 -1
  34. package/out/runtime/exec-graph.js +5 -5
  35. package/out/runtime/exec-graph.js.map +1 -1
  36. package/out/runtime/interpreter.d.ts +4 -4
  37. package/out/runtime/interpreter.d.ts.map +1 -1
  38. package/out/runtime/interpreter.js +23 -30
  39. package/out/runtime/interpreter.js.map +1 -1
  40. package/out/runtime/loader.d.ts.map +1 -1
  41. package/out/runtime/loader.js +6 -2
  42. package/out/runtime/loader.js.map +1 -1
  43. package/out/runtime/logger.d.ts.map +1 -1
  44. package/out/runtime/logger.js +1 -8
  45. package/out/runtime/logger.js.map +1 -1
  46. package/out/runtime/module.d.ts +0 -6
  47. package/out/runtime/module.d.ts.map +1 -1
  48. package/out/runtime/module.js +1 -58
  49. package/out/runtime/module.js.map +1 -1
  50. package/out/runtime/modules/ai.d.ts +4 -4
  51. package/out/runtime/modules/ai.d.ts.map +1 -1
  52. package/out/runtime/modules/ai.js +70 -166
  53. package/out/runtime/modules/ai.js.map +1 -1
  54. package/out/runtime/modules/auth.d.ts.map +1 -1
  55. package/out/runtime/modules/auth.js +6 -4
  56. package/out/runtime/modules/auth.js.map +1 -1
  57. package/out/runtime/monitor.d.ts +2 -1
  58. package/out/runtime/monitor.d.ts.map +1 -1
  59. package/out/runtime/monitor.js +5 -1
  60. package/out/runtime/monitor.js.map +1 -1
  61. package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -1
  62. package/out/runtime/resolvers/sqldb/database.js +126 -128
  63. package/out/runtime/resolvers/sqldb/database.js.map +1 -1
  64. package/out/runtime/resolvers/sqldb/impl.d.ts +0 -1
  65. package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -1
  66. package/out/runtime/resolvers/sqldb/impl.js +0 -3
  67. package/out/runtime/resolvers/sqldb/impl.js.map +1 -1
  68. package/out/runtime/services/documentFetcher.d.ts.map +1 -1
  69. package/out/runtime/services/documentFetcher.js +6 -21
  70. package/out/runtime/services/documentFetcher.js.map +1 -1
  71. package/out/runtime/state.d.ts +0 -14
  72. package/out/runtime/state.d.ts.map +1 -1
  73. package/out/runtime/state.js +0 -28
  74. package/out/runtime/state.js.map +1 -1
  75. package/package.json +19 -19
  76. package/src/language/agentlang.langium +2 -2
  77. package/src/language/generated/ast.ts +2 -12
  78. package/src/language/generated/grammar.ts +18 -52
  79. package/src/language/parser.ts +9 -2
  80. package/src/runtime/api.ts +0 -15
  81. package/src/runtime/defs.ts +1 -2
  82. package/src/runtime/embeddings/chunker.ts +14 -52
  83. package/src/runtime/embeddings/openai.ts +9 -27
  84. package/src/runtime/embeddings/provider.ts +1 -22
  85. package/src/runtime/exec-graph.ts +4 -4
  86. package/src/runtime/interpreter.ts +24 -29
  87. package/src/runtime/loader.ts +10 -2
  88. package/src/runtime/logger.ts +1 -12
  89. package/src/runtime/module.ts +1 -64
  90. package/src/runtime/modules/ai.ts +81 -206
  91. package/src/runtime/modules/auth.ts +6 -4
  92. package/src/runtime/monitor.ts +10 -1
  93. package/src/runtime/resolvers/sqldb/database.ts +130 -142
  94. package/src/runtime/resolvers/sqldb/impl.ts +0 -4
  95. package/src/runtime/services/documentFetcher.ts +6 -21
  96. package/src/runtime/state.ts +0 -29
  97. package/out/runtime/document-retriever.d.ts +0 -24
  98. package/out/runtime/document-retriever.d.ts.map +0 -1
  99. package/out/runtime/document-retriever.js +0 -258
  100. package/out/runtime/document-retriever.js.map +0 -1
  101. package/out/runtime/resolvers/vector/lancedb-store.d.ts +0 -16
  102. package/out/runtime/resolvers/vector/lancedb-store.d.ts.map +0 -1
  103. package/out/runtime/resolvers/vector/lancedb-store.js +0 -159
  104. package/out/runtime/resolvers/vector/lancedb-store.js.map +0 -1
  105. package/out/runtime/resolvers/vector/types.d.ts +0 -32
  106. package/out/runtime/resolvers/vector/types.d.ts.map +0 -1
  107. package/out/runtime/resolvers/vector/types.js +0 -2
  108. package/out/runtime/resolvers/vector/types.js.map +0 -1
  109. package/src/runtime/document-retriever.ts +0 -311
  110. package/src/runtime/resolvers/vector/lancedb-store.ts +0 -187
  111. package/src/runtime/resolvers/vector/types.ts +0 -39
@@ -1,258 +0,0 @@
1
- import { logger } from './logger.js';
2
- import { AppConfig } from './state.js';
3
- import { TextChunker } from './embeddings/chunker.js';
4
- import { OpenAIEmbeddingProvider } from './embeddings/openai.js';
5
- import { LanceDBVectorStore } from './resolvers/vector/lancedb-store.js';
6
- import crypto from 'crypto';
7
- import { readFileSync } from 'fs';
8
- import { resolve as pathResolve } from 'path';
9
- const VECTOR_DIMENSION = 1536;
10
- function usePgvector() {
11
- var _a, _b, _c;
12
- if (((_a = AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.vectorStore) === null || _a === void 0 ? void 0 : _a.type) === 'pgvector')
13
- return true;
14
- if (((_b = AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.vectorStore) === null || _b === void 0 ? void 0 : _b.type) === 'lancedb')
15
- return false;
16
- return ((_c = AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store) === null || _c === void 0 ? void 0 : _c.type) === 'postgres';
17
- }
18
- /**
19
- * Local document retriever — embeds documents into pgvector or LanceDB
20
- * and retrieves relevant chunks via vector similarity search.
21
- */
22
- class DocumentRetriever {
23
- constructor() {
24
- this.vectorStore = null;
25
- this.embeddingProvider = null;
26
- this.chunker = null;
27
- this.localChunks = new Map();
28
- this.processedDocuments = new Set();
29
- this.initialized = false;
30
- }
31
- async ensureInit() {
32
- var _a;
33
- if (this.initialized)
34
- return;
35
- this.chunker = new TextChunker(1000, 200);
36
- this.embeddingProvider = new OpenAIEmbeddingProvider({
37
- model: 'text-embedding-3-small',
38
- });
39
- if (!usePgvector()) {
40
- const dbPath = ((_a = AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.vectorStore) === null || _a === void 0 ? void 0 : _a.type) === 'lancedb'
41
- ? AppConfig.vectorStore.dbname || './data/document-vectors.lance'
42
- : './data/document-vectors.lance';
43
- this.vectorStore = new LanceDBVectorStore({
44
- moduleName: 'documents',
45
- vectorDimension: VECTOR_DIMENSION,
46
- dbname: dbPath,
47
- });
48
- await this.vectorStore.init();
49
- logger.info(`[DOCUMENT-RETRIEVER] LanceDB vector store initialized at ${dbPath}`);
50
- }
51
- else {
52
- try {
53
- const ag = globalThis.agentlang;
54
- if (ag === null || ag === void 0 ? void 0 : ag.rawQuery) {
55
- await ag.rawQuery(`
56
- CREATE TABLE IF NOT EXISTS document_local_chunks (
57
- id TEXT PRIMARY KEY,
58
- content TEXT NOT NULL,
59
- document_title TEXT NOT NULL,
60
- chunk_index INTEGER NOT NULL,
61
- embedding vector(${VECTOR_DIMENSION})
62
- )
63
- `);
64
- try {
65
- await ag.rawQuery(`
66
- CREATE INDEX IF NOT EXISTS idx_document_local_chunks_embedding
67
- ON document_local_chunks USING hnsw (embedding vector_cosine_ops)
68
- `);
69
- }
70
- catch (_b) {
71
- // Index may already exist or pgvector extension not loaded
72
- }
73
- logger.info('[DOCUMENT-RETRIEVER] pgvector local chunks table initialized');
74
- }
75
- }
76
- catch (err) {
77
- logger.warn(`[DOCUMENT-RETRIEVER] Failed to initialize pgvector table: ${err}`);
78
- }
79
- }
80
- this.initialized = true;
81
- }
82
- async processDocument(title, url) {
83
- if (this.processedDocuments.has(title))
84
- return;
85
- await this.ensureInit();
86
- try {
87
- let content;
88
- if (url.startsWith('http://') || url.startsWith('https://')) {
89
- const resp = await fetch(url);
90
- if (!resp.ok) {
91
- logger.warn(`[DOCUMENT-RETRIEVER] Failed to fetch "${title}" from ${url}: ${resp.status}`);
92
- return;
93
- }
94
- content = await resp.text();
95
- }
96
- else {
97
- const filePath = pathResolve(url);
98
- try {
99
- content = readFileSync(filePath, 'utf-8');
100
- }
101
- catch (err) {
102
- logger.warn(`[DOCUMENT-RETRIEVER] Failed to read "${title}" from ${filePath}: ${err}`);
103
- return;
104
- }
105
- }
106
- if (!content || content.trim().length === 0) {
107
- logger.debug(`[DOCUMENT-RETRIEVER] Document "${title}" is empty, skipping`);
108
- this.processedDocuments.add(title);
109
- return;
110
- }
111
- const chunks = this.chunker.splitText(content);
112
- logger.debug(`[DOCUMENT-RETRIEVER] Document "${title}": ${chunks.length} chunks`);
113
- if (chunks.length === 0) {
114
- this.processedDocuments.add(title);
115
- return;
116
- }
117
- const embeddings = await this.embeddingProvider.embedTexts(chunks);
118
- if (usePgvector()) {
119
- await this.storePgvectorChunks(title, chunks, embeddings);
120
- }
121
- else {
122
- await this.storeLanceDBChunks(title, chunks, embeddings);
123
- }
124
- this.processedDocuments.add(title);
125
- logger.info(`[DOCUMENT-RETRIEVER] Processed "${title}": ${chunks.length} chunks embedded and stored`);
126
- }
127
- catch (err) {
128
- logger.warn(`[DOCUMENT-RETRIEVER] Error processing "${title}": ${err}`);
129
- }
130
- }
131
- async storePgvectorChunks(title, chunks, embeddings) {
132
- const ag = globalThis.agentlang;
133
- if (!(ag === null || ag === void 0 ? void 0 : ag.rawQuery))
134
- return;
135
- for (let i = 0; i < chunks.length; i++) {
136
- const id = crypto.randomUUID();
137
- const embeddingStr = `[${embeddings[i].join(',')}]`;
138
- await ag.rawQuery(`INSERT INTO document_local_chunks (id, content, document_title, chunk_index, embedding)
139
- VALUES ($1, $2, $3, $4, $5::vector)
140
- ON CONFLICT (id) DO NOTHING`, [id, chunks[i], title, i, embeddingStr]);
141
- this.localChunks.set(id, {
142
- id,
143
- content: chunks[i],
144
- documentTitle: title,
145
- chunkIndex: i,
146
- });
147
- }
148
- }
149
- async storeLanceDBChunks(title, chunks, embeddings) {
150
- if (!this.vectorStore)
151
- return;
152
- for (let i = 0; i < chunks.length; i++) {
153
- const id = crypto.randomUUID();
154
- await this.vectorStore.addEmbedding({
155
- id,
156
- embedding: embeddings[i],
157
- documentId: title,
158
- });
159
- this.localChunks.set(id, {
160
- id,
161
- content: chunks[i],
162
- documentTitle: title,
163
- chunkIndex: i,
164
- });
165
- }
166
- }
167
- async query(queryText, documentTitles, limit = 10) {
168
- await this.ensureInit();
169
- try {
170
- const results = usePgvector()
171
- ? await this.queryPgvector(queryText, documentTitles, limit)
172
- : await this.queryLanceDB(queryText, documentTitles, limit);
173
- if (results.length === 0)
174
- return '';
175
- return results.map(r => r.content).join('\n\n---\n\n');
176
- }
177
- catch (err) {
178
- logger.debug(`[DOCUMENT-RETRIEVER] Query failed: ${err}`);
179
- return '';
180
- }
181
- }
182
- async queryPgvector(queryText, documentTitles, limit = 10) {
183
- const ag = globalThis.agentlang;
184
- if (!(ag === null || ag === void 0 ? void 0 : ag.rawQuery))
185
- return [];
186
- const queryEmbedding = await this.embeddingProvider.embedText(queryText);
187
- const embeddingStr = `[${queryEmbedding.join(',')}]`;
188
- let sql;
189
- let params;
190
- if (documentTitles && documentTitles.length > 0) {
191
- const placeholders = documentTitles.map((_, i) => `$${i + 2}`).join(', ');
192
- sql = `SELECT id, content, document_title, 1 - (embedding <=> $1::vector) AS similarity
193
- FROM document_local_chunks
194
- WHERE document_title IN (${placeholders})
195
- ORDER BY embedding <=> $1::vector
196
- LIMIT ${limit}`;
197
- params = [embeddingStr, ...documentTitles];
198
- }
199
- else {
200
- sql = `SELECT id, content, document_title, 1 - (embedding <=> $1::vector) AS similarity
201
- FROM document_local_chunks
202
- ORDER BY embedding <=> $1::vector
203
- LIMIT ${limit}`;
204
- params = [embeddingStr];
205
- }
206
- const rows = await ag.rawQuery(sql, params);
207
- return (rows || []).map((r) => ({
208
- id: r.id,
209
- content: r.content,
210
- similarity: parseFloat(r.similarity) || 0,
211
- }));
212
- }
213
- async queryLanceDB(queryText, documentTitles, limit = 10) {
214
- if (!this.vectorStore)
215
- return [];
216
- const queryEmbedding = await this.embeddingProvider.embedText(queryText);
217
- const searchResults = await this.vectorStore.search(queryEmbedding, undefined, undefined, limit);
218
- const results = [];
219
- for (const sr of searchResults) {
220
- const chunk = this.localChunks.get(sr.id);
221
- if (!chunk)
222
- continue;
223
- if (documentTitles && documentTitles.length > 0) {
224
- if (!documentTitles.includes(chunk.documentTitle))
225
- continue;
226
- }
227
- results.push({
228
- id: sr.id,
229
- content: chunk.content,
230
- similarity: 1 - (sr.distance || 0),
231
- });
232
- }
233
- return results.slice(0, limit);
234
- }
235
- async close() {
236
- if (this.vectorStore) {
237
- await this.vectorStore.close();
238
- this.vectorStore = null;
239
- }
240
- this.localChunks.clear();
241
- this.processedDocuments.clear();
242
- this.initialized = false;
243
- }
244
- }
245
- let retrieverInstance = null;
246
- export function getDocumentRetriever() {
247
- if (!retrieverInstance) {
248
- retrieverInstance = new DocumentRetriever();
249
- }
250
- return retrieverInstance;
251
- }
252
- export function resetDocumentRetriever() {
253
- if (retrieverInstance) {
254
- retrieverInstance.close().catch(() => { });
255
- retrieverInstance = null;
256
- }
257
- }
258
- //# sourceMappingURL=document-retriever.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-retriever.js","sourceRoot":"","sources":["../../src/runtime/document-retriever.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { VectorStore, VectorRecord, SearchResult, VectorStoreConfig } from './types.js';
2
- export declare class LanceDBVectorStore implements VectorStore {
3
- private db;
4
- private table;
5
- private config;
6
- constructor(config: VectorStoreConfig);
7
- init(): Promise<void>;
8
- addEmbedding(record: VectorRecord): Promise<void>;
9
- addEmbeddings(records: VectorRecord[]): Promise<void>;
10
- search(embedding: number[], tenantId?: string, agentId?: string, limit?: number): Promise<SearchResult[]>;
11
- delete(id: string): Promise<void>;
12
- exists(id: string): Promise<boolean>;
13
- close(): Promise<void>;
14
- }
15
- export declare function createLanceDBStore(config: VectorStoreConfig): VectorStore;
16
- //# sourceMappingURL=lancedb-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lancedb-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime/resolvers/vector/lancedb-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCrB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD,MAAM,CACV,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IA0CpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB7B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAEzE"}
@@ -1,159 +0,0 @@
1
- import * as lancedb from '@lancedb/lancedb';
2
- import { Schema, Field, Float32, Utf8, FixedSizeList } from 'apache-arrow';
3
- import { logger } from '../../logger.js';
4
- export class LanceDBVectorStore {
5
- constructor(config) {
6
- this.db = null;
7
- this.table = null;
8
- this.config = config;
9
- }
10
- async init() {
11
- try {
12
- const dbPath = this.config.inMemory
13
- ? 'memory://'
14
- : this.config.dbname || `./data/vector-store/${this.config.moduleName}.lance`;
15
- this.db = await lancedb.connect(dbPath);
16
- const tableName = 'embeddings';
17
- const tableNames = await this.db.tableNames();
18
- if (tableNames.includes(tableName)) {
19
- this.table = await this.db.openTable(tableName);
20
- logger.info(`LanceDB table ${tableName} opened`);
21
- }
22
- else {
23
- const schema = new Schema([
24
- new Field('id', new Utf8(), false),
25
- new Field('embedding', new FixedSizeList(this.config.vectorDimension, new Field('item', new Float32())), false),
26
- new Field('tenantId', new Utf8(), true),
27
- new Field('agentId', new Utf8(), true),
28
- new Field('documentId', new Utf8(), true),
29
- ]);
30
- this.table = await this.db.createEmptyTable(tableName, schema);
31
- logger.info(`LanceDB table ${tableName} created`);
32
- }
33
- }
34
- catch (error) {
35
- logger.error('Failed to initialize LanceDB vector store:', error);
36
- throw error;
37
- }
38
- }
39
- async addEmbedding(record) {
40
- if (!this.table) {
41
- throw new Error('Vector store not initialized. Call init() first.');
42
- }
43
- try {
44
- await this.table.add([
45
- {
46
- id: record.id,
47
- embedding: record.embedding,
48
- tenantId: record.tenantId || null,
49
- agentId: record.agentId || null,
50
- documentId: record.documentId || null,
51
- },
52
- ]);
53
- }
54
- catch (error) {
55
- logger.error(`Failed to add embedding ${record.id}:`, error);
56
- throw error;
57
- }
58
- }
59
- async addEmbeddings(records) {
60
- if (!this.table) {
61
- throw new Error('Vector store not initialized. Call init() first.');
62
- }
63
- try {
64
- const data = records.map(record => ({
65
- id: record.id,
66
- embedding: record.embedding,
67
- tenantId: record.tenantId || null,
68
- agentId: record.agentId || null,
69
- documentId: record.documentId || null,
70
- }));
71
- await this.table.add(data);
72
- }
73
- catch (error) {
74
- logger.error(`Failed to add ${records.length} embeddings:`, error);
75
- throw error;
76
- }
77
- }
78
- async search(embedding, tenantId, agentId, limit = 10) {
79
- if (!this.table) {
80
- throw new Error('Vector store not initialized. Call init() first.');
81
- }
82
- try {
83
- let query = this.table.vectorSearch(embedding).limit(limit);
84
- // Build filter conditions for agent-level isolation
85
- const filters = [];
86
- if (tenantId) {
87
- // Use parameterized filtering to prevent SQL injection
88
- const escapedTenantId = tenantId.replace(/'/g, "''");
89
- filters.push(`tenantId = '${escapedTenantId}'`);
90
- }
91
- if (agentId) {
92
- // Add agent-level filtering for strict agent isolation
93
- const escapedAgentId = agentId.replace(/'/g, "''");
94
- filters.push(`agentId = '${escapedAgentId}'`);
95
- }
96
- if (filters.length > 0) {
97
- query = query.where(filters.join(' AND '));
98
- }
99
- const results = await query.toArray();
100
- return results.map((row) => ({
101
- id: row.id,
102
- distance: row._distance || 0,
103
- tenantId: row.tenantId,
104
- agentId: row.agentId,
105
- documentId: row.documentId,
106
- }));
107
- }
108
- catch (error) {
109
- logger.error('Failed to search embeddings:', error);
110
- throw error;
111
- }
112
- }
113
- async delete(id) {
114
- if (!this.table) {
115
- throw new Error('Vector store not initialized. Call init() first.');
116
- }
117
- try {
118
- await this.table.delete(`id = '${id}'`);
119
- }
120
- catch (error) {
121
- logger.error(`Failed to delete embedding ${id}:`, error);
122
- throw error;
123
- }
124
- }
125
- async exists(id) {
126
- if (!this.table) {
127
- throw new Error('Vector store not initialized. Call init() first.');
128
- }
129
- try {
130
- const results = await this.table.query().where(`id = '${id}'`).limit(1).toArray();
131
- return results.length > 0;
132
- }
133
- catch (error) {
134
- logger.error(`Failed to check existence of ${id}:`, error);
135
- throw error;
136
- }
137
- }
138
- async close() {
139
- try {
140
- if (this.table) {
141
- // LanceDB tables don't have explicit close method
142
- this.table = null;
143
- }
144
- if (this.db) {
145
- // Note: LanceDB connection doesn't have explicit close method
146
- this.db = null;
147
- }
148
- logger.info('LanceDB vector store closed');
149
- }
150
- catch (error) {
151
- logger.error('Failed to close LanceDB vector store:', error);
152
- throw error;
153
- }
154
- }
155
- }
156
- export function createLanceDBStore(config) {
157
- return new LanceDBVectorStore(config);
158
- }
159
- //# sourceMappingURL=lancedb-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lancedb-store.js","sourceRoot":"","sources":["../../../../src/runtime/resolvers/vector/lancedb-store.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- export interface VectorRecord {
2
- id: string;
3
- embedding: number[];
4
- tenantId?: string;
5
- agentId?: string;
6
- documentId?: string;
7
- metadata?: Record<string, any>;
8
- }
9
- export interface SearchResult {
10
- id: string;
11
- distance: number;
12
- tenantId?: string;
13
- agentId?: string;
14
- documentId?: string;
15
- metadata?: Record<string, any>;
16
- }
17
- export interface VectorStore {
18
- init(): Promise<void>;
19
- addEmbedding(record: VectorRecord): Promise<void>;
20
- addEmbeddings(records: VectorRecord[]): Promise<void>;
21
- search(embedding: number[], tenantId?: string, agentId?: string, limit?: number): Promise<SearchResult[]>;
22
- delete(id: string): Promise<void>;
23
- exists(id: string): Promise<boolean>;
24
- close(): Promise<void>;
25
- }
26
- export interface VectorStoreConfig {
27
- dbname?: string;
28
- moduleName: string;
29
- vectorDimension: number;
30
- inMemory?: boolean;
31
- }
32
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/resolvers/vector/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,CACJ,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/runtime/resolvers/vector/types.ts"],"names":[],"mappings":""}