agentlang 0.10.1 → 0.10.3
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/README.md +7 -14
- package/out/api/http.d.ts +4 -0
- package/out/api/http.d.ts.map +1 -1
- package/out/api/http.js +307 -26
- package/out/api/http.js.map +1 -1
- package/out/cli/main.d.ts.map +1 -1
- package/out/cli/main.js +3 -0
- package/out/cli/main.js.map +1 -1
- package/out/extension/main.cjs +250 -250
- package/out/extension/main.cjs.map +2 -2
- package/out/language/agentlang-validator.d.ts.map +1 -1
- package/out/language/agentlang-validator.js +4 -0
- package/out/language/agentlang-validator.js.map +1 -1
- package/out/language/error-reporter.d.ts +53 -0
- package/out/language/error-reporter.d.ts.map +1 -0
- package/out/language/error-reporter.js +879 -0
- package/out/language/error-reporter.js.map +1 -0
- package/out/language/generated/ast.d.ts +77 -2
- package/out/language/generated/ast.d.ts.map +1 -1
- package/out/language/generated/ast.js +60 -0
- package/out/language/generated/ast.js.map +1 -1
- package/out/language/generated/grammar.d.ts.map +1 -1
- package/out/language/generated/grammar.js +342 -206
- package/out/language/generated/grammar.js.map +1 -1
- package/out/language/main.cjs +901 -710
- package/out/language/main.cjs.map +3 -3
- package/out/language/parser.d.ts +4 -2
- package/out/language/parser.d.ts.map +1 -1
- package/out/language/parser.js +58 -99
- package/out/language/parser.js.map +1 -1
- package/out/language/syntax.d.ts +16 -0
- package/out/language/syntax.d.ts.map +1 -1
- package/out/language/syntax.js +66 -27
- package/out/language/syntax.js.map +1 -1
- package/out/runtime/api.d.ts +2 -0
- package/out/runtime/api.d.ts.map +1 -1
- package/out/runtime/api.js +25 -0
- package/out/runtime/api.js.map +1 -1
- package/out/runtime/datefns.d.ts +34 -0
- package/out/runtime/datefns.d.ts.map +1 -0
- package/out/runtime/datefns.js +82 -0
- package/out/runtime/datefns.js.map +1 -0
- package/out/runtime/defs.d.ts +1 -0
- package/out/runtime/defs.d.ts.map +1 -1
- package/out/runtime/defs.js +2 -1
- package/out/runtime/defs.js.map +1 -1
- package/out/runtime/document-retriever.d.ts +24 -0
- package/out/runtime/document-retriever.d.ts.map +1 -0
- package/out/runtime/document-retriever.js +258 -0
- package/out/runtime/document-retriever.js.map +1 -0
- package/out/runtime/embeddings/chunker.d.ts +18 -0
- package/out/runtime/embeddings/chunker.d.ts.map +1 -1
- package/out/runtime/embeddings/chunker.js +47 -15
- package/out/runtime/embeddings/chunker.js.map +1 -1
- package/out/runtime/embeddings/openai.d.ts.map +1 -1
- package/out/runtime/embeddings/openai.js +22 -9
- package/out/runtime/embeddings/openai.js.map +1 -1
- package/out/runtime/embeddings/provider.d.ts +1 -0
- package/out/runtime/embeddings/provider.d.ts.map +1 -1
- package/out/runtime/embeddings/provider.js +20 -1
- package/out/runtime/embeddings/provider.js.map +1 -1
- package/out/runtime/exec-graph.d.ts.map +1 -1
- package/out/runtime/exec-graph.js +22 -3
- package/out/runtime/exec-graph.js.map +1 -1
- package/out/runtime/integration-client.d.ts +21 -0
- package/out/runtime/integration-client.d.ts.map +1 -0
- package/out/runtime/integration-client.js +112 -0
- package/out/runtime/integration-client.js.map +1 -0
- package/out/runtime/integrations.d.ts.map +1 -1
- package/out/runtime/integrations.js +20 -9
- package/out/runtime/integrations.js.map +1 -1
- package/out/runtime/interpreter.d.ts +10 -0
- package/out/runtime/interpreter.d.ts.map +1 -1
- package/out/runtime/interpreter.js +221 -22
- package/out/runtime/interpreter.js.map +1 -1
- package/out/runtime/loader.d.ts.map +1 -1
- package/out/runtime/loader.js +70 -7
- package/out/runtime/loader.js.map +1 -1
- package/out/runtime/logger.d.ts.map +1 -1
- package/out/runtime/logger.js +8 -1
- package/out/runtime/logger.js.map +1 -1
- package/out/runtime/module.d.ts +18 -0
- package/out/runtime/module.d.ts.map +1 -1
- package/out/runtime/module.js +91 -3
- package/out/runtime/module.js.map +1 -1
- package/out/runtime/modules/ai.d.ts +16 -5
- package/out/runtime/modules/ai.d.ts.map +1 -1
- package/out/runtime/modules/ai.js +286 -88
- package/out/runtime/modules/ai.js.map +1 -1
- package/out/runtime/modules/core.d.ts.map +1 -1
- package/out/runtime/modules/core.js +5 -1
- package/out/runtime/modules/core.js.map +1 -1
- package/out/runtime/monitor.d.ts +6 -0
- package/out/runtime/monitor.d.ts.map +1 -1
- package/out/runtime/monitor.js +21 -1
- package/out/runtime/monitor.js.map +1 -1
- package/out/runtime/relgraph.d.ts.map +1 -1
- package/out/runtime/relgraph.js +7 -3
- package/out/runtime/relgraph.js.map +1 -1
- package/out/runtime/resolvers/interface.d.ts +7 -2
- package/out/runtime/resolvers/interface.d.ts.map +1 -1
- package/out/runtime/resolvers/interface.js +17 -3
- package/out/runtime/resolvers/interface.js.map +1 -1
- package/out/runtime/resolvers/sqldb/database.d.ts +2 -0
- package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -1
- package/out/runtime/resolvers/sqldb/database.js +142 -126
- package/out/runtime/resolvers/sqldb/database.js.map +1 -1
- package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -1
- package/out/runtime/resolvers/sqldb/dbutil.js +25 -4
- package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -1
- package/out/runtime/resolvers/sqldb/impl.d.ts +2 -1
- package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -1
- package/out/runtime/resolvers/sqldb/impl.js +24 -7
- package/out/runtime/resolvers/sqldb/impl.js.map +1 -1
- package/out/runtime/resolvers/vector/lancedb-store.d.ts +16 -0
- package/out/runtime/resolvers/vector/lancedb-store.d.ts.map +1 -0
- package/out/runtime/resolvers/vector/lancedb-store.js +159 -0
- package/out/runtime/resolvers/vector/lancedb-store.js.map +1 -0
- package/out/runtime/resolvers/vector/types.d.ts +32 -0
- package/out/runtime/resolvers/vector/types.d.ts.map +1 -0
- package/out/runtime/resolvers/vector/types.js +2 -0
- package/out/runtime/resolvers/vector/types.js.map +1 -0
- package/out/runtime/services/documentFetcher.d.ts.map +1 -1
- package/out/runtime/services/documentFetcher.js +21 -6
- package/out/runtime/services/documentFetcher.js.map +1 -1
- package/out/runtime/state.d.ts +19 -1
- package/out/runtime/state.d.ts.map +1 -1
- package/out/runtime/state.js +36 -1
- package/out/runtime/state.js.map +1 -1
- package/out/runtime/util.d.ts +3 -2
- package/out/runtime/util.d.ts.map +1 -1
- package/out/runtime/util.js +13 -2
- package/out/runtime/util.js.map +1 -1
- package/out/syntaxes/agentlang.monarch.js +1 -1
- package/out/syntaxes/agentlang.monarch.js.map +1 -1
- package/out/test-harness.d.ts +36 -0
- package/out/test-harness.d.ts.map +1 -0
- package/out/test-harness.js +341 -0
- package/out/test-harness.js.map +1 -0
- package/package.json +22 -19
- package/src/api/http.ts +336 -38
- package/src/cli/main.ts +3 -0
- package/src/language/agentlang-validator.ts +3 -0
- package/src/language/agentlang.langium +6 -2
- package/src/language/error-reporter.ts +1028 -0
- package/src/language/generated/ast.ts +94 -1
- package/src/language/generated/grammar.ts +342 -206
- package/src/language/parser.ts +64 -101
- package/src/language/syntax.ts +79 -24
- package/src/runtime/api.ts +36 -0
- package/src/runtime/datefns.ts +112 -0
- package/src/runtime/defs.ts +2 -1
- package/src/runtime/document-retriever.ts +311 -0
- package/src/runtime/embeddings/chunker.ts +52 -14
- package/src/runtime/embeddings/openai.ts +27 -9
- package/src/runtime/embeddings/provider.ts +22 -1
- package/src/runtime/exec-graph.ts +23 -2
- package/src/runtime/integration-client.ts +158 -0
- package/src/runtime/integrations.ts +20 -11
- package/src/runtime/interpreter.ts +221 -15
- package/src/runtime/loader.ts +83 -5
- package/src/runtime/logger.ts +12 -1
- package/src/runtime/module.ts +104 -3
- package/src/runtime/modules/ai.ts +341 -107
- package/src/runtime/modules/core.ts +5 -1
- package/src/runtime/monitor.ts +27 -1
- package/src/runtime/relgraph.ts +7 -3
- package/src/runtime/resolvers/interface.ts +23 -3
- package/src/runtime/resolvers/sqldb/database.ts +158 -130
- package/src/runtime/resolvers/sqldb/dbutil.ts +28 -6
- package/src/runtime/resolvers/sqldb/impl.ts +25 -7
- package/src/runtime/resolvers/vector/lancedb-store.ts +187 -0
- package/src/runtime/resolvers/vector/types.ts +39 -0
- package/src/runtime/services/documentFetcher.ts +21 -6
- package/src/runtime/state.ts +40 -1
- package/src/runtime/util.ts +19 -2
- package/src/syntaxes/agentlang.monarch.ts +1 -1
- package/src/test-harness.ts +423 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAEL,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,kBAAkB,EAGlB,YAAY,EACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { logger } from '../logger.js';
|
|
|
3
3
|
import { Instance, makeInstance, newInstanceAttributes, } from '../module.js';
|
|
4
4
|
import { CrudType, nameToPath, generateLoggerCallId } from '../util.js';
|
|
5
5
|
import { DefaultAuthInfo } from './authinfo.js';
|
|
6
|
+
import { getIntegrationAuthHeaders } from '../integration-client.js';
|
|
6
7
|
const subscriptionEvents = new Map();
|
|
7
8
|
export function setSubscriptionEvent(fqEventName, resolverName) {
|
|
8
9
|
subscriptionEvents.set(resolverName, fqEventName);
|
|
@@ -17,6 +18,18 @@ export class Resolver {
|
|
|
17
18
|
if (name)
|
|
18
19
|
this.name = name;
|
|
19
20
|
}
|
|
21
|
+
setIntegrationName(name) {
|
|
22
|
+
this.integrationName = name;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
getIntegrationName() {
|
|
26
|
+
return this.integrationName;
|
|
27
|
+
}
|
|
28
|
+
async getAuthHeaders() {
|
|
29
|
+
if (!this.integrationName)
|
|
30
|
+
return {};
|
|
31
|
+
return getIntegrationAuthHeaders(this.integrationName);
|
|
32
|
+
}
|
|
20
33
|
setAuthInfo(authInfo) {
|
|
21
34
|
this.authInfo = authInfo;
|
|
22
35
|
return this;
|
|
@@ -73,11 +86,12 @@ export class Resolver {
|
|
|
73
86
|
/**
|
|
74
87
|
* Return all instances connected to connectedInstance via the given between-relationship
|
|
75
88
|
* @param relationship Between relationship
|
|
76
|
-
* @param connectedInstance The instance to
|
|
89
|
+
* @param connectedInstance The instance to traverse the relationship from
|
|
77
90
|
* @param inst Target instance with query attributes
|
|
91
|
+
* @param connectedAlias For self-referencing relationships, the alias of the connected instance's role
|
|
78
92
|
*/
|
|
79
|
-
async queryConnectedInstances(relationship, connectedInstance, inst) {
|
|
80
|
-
return this.notImpl(`queryConnectedInstances(${relationship}, ${connectedInstance}, ${inst})`);
|
|
93
|
+
async queryConnectedInstances(relationship, connectedInstance, inst, connectedAlias) {
|
|
94
|
+
return this.notImpl(`queryConnectedInstances(${relationship}, ${connectedInstance}, ${inst}, ${connectedAlias})`);
|
|
81
95
|
}
|
|
82
96
|
async queryByJoin(inst, joinInfo, intoSpec, distinct = false, rawJoinSpec, whereClauses) {
|
|
83
97
|
return this.notImpl(`queryByJoin(${inst}, ${joinInfo}, ${intoSpec}, ${distinct}, ${rawJoinSpec}, ${whereClauses})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAE3B,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,QAAQ,EAER,YAAY,EACZ,qBAAqB,GAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,eAAe,EAAoB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,8 @@ export type QuerySpec = {
|
|
|
80
80
|
intoSpec: Map<string, string> | undefined;
|
|
81
81
|
whereClauses: WhereClause[] | undefined;
|
|
82
82
|
distinct: boolean;
|
|
83
|
+
limit: number | undefined;
|
|
84
|
+
offset: number | undefined;
|
|
83
85
|
};
|
|
84
86
|
export declare function makeSimpleQuerySpec(queryObj: object, queryVals: object): QuerySpec;
|
|
85
87
|
export declare function getMany(tableName: string, querySpec: QuerySpec, ctx: DbContext): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/runtime/resolvers/sqldb/database.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EACL,UAAU,EAMX,MAAM,SAAS,CAAC;AASjB,OAAO,EAAmB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAqB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,QAAQ,EAIR,iBAAiB,EACjB,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/runtime/resolvers/sqldb/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { DeletedFlagAttributeName, ForceReadPermFlag, getUserTenantId, isRuntime
|
|
|
11
11
|
import { saveMigration } from '../../modules/core.js';
|
|
12
12
|
import { getAppSpec } from '../../loader.js';
|
|
13
13
|
import { AppConfig } from '../../state.js';
|
|
14
|
+
import { createLanceDBStore } from '../vector/lancedb-store.js';
|
|
14
15
|
export let defaultDataSource;
|
|
15
16
|
// Detect browser environment
|
|
16
17
|
function isBrowser() {
|
|
@@ -18,55 +19,8 @@ function isBrowser() {
|
|
|
18
19
|
return ((typeof window !== 'undefined' && typeof window.document !== 'undefined') ||
|
|
19
20
|
(typeof self !== 'undefined' && typeof self.importScripts === 'function'));
|
|
20
21
|
}
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
let sqliteVecWasmModule = null;
|
|
24
|
-
async function loadSqliteVecWasm() {
|
|
25
|
-
if (sqliteVecWasmModule) {
|
|
26
|
-
return sqliteVecWasmModule;
|
|
27
|
-
}
|
|
28
|
-
try {
|
|
29
|
-
// Use dynamic import with string to prevent bundlers from analyzing
|
|
30
|
-
const cdnUrl = 'https://cdn.jsdelivr.net/npm/sqlite-vec-wasm-demo@latest/sqlite3.mjs';
|
|
31
|
-
const module = await import(/* @vite-ignore */ cdnUrl);
|
|
32
|
-
sqliteVecWasmModule = await module.default();
|
|
33
|
-
return sqliteVecWasmModule;
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
logger.warn('Failed to load sqlite-vec WASM:', err);
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Helper to load sqlite-vec based on environment
|
|
41
|
-
async function loadSqliteVec() {
|
|
42
|
-
// In browser, use WASM version with built-in sqlite-vec
|
|
43
|
-
// In Node.js, use the npm package
|
|
44
|
-
if (isBrowser()) {
|
|
45
|
-
const wasmModule = await loadSqliteVecWasm();
|
|
46
|
-
if (wasmModule) {
|
|
47
|
-
// WASM version has sqlite-vec built-in, no need to call load()
|
|
48
|
-
// Return a compatible interface
|
|
49
|
-
return {
|
|
50
|
-
load: () => {
|
|
51
|
-
// No-op: sqlite-vec is already loaded in WASM version
|
|
52
|
-
logger.info('sqlite-vec WASM loaded (built-in)');
|
|
53
|
-
},
|
|
54
|
-
// Expose the WASM module for direct use if needed
|
|
55
|
-
_wasmModule: wasmModule,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
// Node.js: use npm package
|
|
61
|
-
try {
|
|
62
|
-
// Use variable to prevent bundlers from statically analyzing this import
|
|
63
|
-
const moduleName = 'sqlite-vec';
|
|
64
|
-
return await import(/* @vite-ignore */ moduleName);
|
|
65
|
-
}
|
|
66
|
-
catch (_a) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
22
|
+
// LanceDB vector store cache - keyed by module name
|
|
23
|
+
const lanceDBStores = new Map();
|
|
70
24
|
export class DbContext {
|
|
71
25
|
constructor(resourceFqName, authInfo, activeEnv, txnId, inKernelMode, rbacRules) {
|
|
72
26
|
this.inKernelMode = false;
|
|
@@ -190,16 +144,23 @@ function makeSqliteDataSource(entities, config) {
|
|
|
190
144
|
ds.initialize = async () => {
|
|
191
145
|
const res = await originalInit();
|
|
192
146
|
try {
|
|
193
|
-
const sqliteVec = await loadSqliteVec();
|
|
194
147
|
const driver = ds.driver;
|
|
195
148
|
const db = driver.databaseConnection || driver.nativeDatabase;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
149
|
+
// Enable WAL mode and additional pragmas for better write performance
|
|
150
|
+
if (db === null || db === void 0 ? void 0 : db.pragma) {
|
|
151
|
+
db.pragma('journal_mode = WAL');
|
|
152
|
+
const syncMode = process.env.SQLITE_SYNC_MODE || 'NORMAL';
|
|
153
|
+
const busyTimeout = process.env.SQLITE_BUSY_TIMEOUT || '5000';
|
|
154
|
+
const cacheSize = process.env.SQLITE_CACHE_SIZE || '-20000';
|
|
155
|
+
db.pragma(`synchronous = ${syncMode}`);
|
|
156
|
+
db.pragma(`busy_timeout = ${busyTimeout}`);
|
|
157
|
+
db.pragma(`cache_size = ${cacheSize}`);
|
|
158
|
+
db.pragma('temp_store = MEMORY');
|
|
159
|
+
logger.info(`SQLite pragmas enabled: WAL mode, synchronous=${syncMode}, busy_timeout=${busyTimeout}, cache_size=${cacheSize}, temp_store=MEMORY`);
|
|
199
160
|
}
|
|
200
161
|
}
|
|
201
162
|
catch (err) {
|
|
202
|
-
logger.warn(`Failed to
|
|
163
|
+
logger.warn(`Failed to enable SQLite pragmas: ${err.message}.`);
|
|
203
164
|
}
|
|
204
165
|
return res;
|
|
205
166
|
};
|
|
@@ -290,6 +251,21 @@ function forceGetDbType(config) {
|
|
|
290
251
|
return 'sqlite';
|
|
291
252
|
}
|
|
292
253
|
let DbType;
|
|
254
|
+
function getVectorStoreType() {
|
|
255
|
+
// Check explicit vectorStore config first
|
|
256
|
+
const vectorStoreConfig = AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.vectorStore;
|
|
257
|
+
if (vectorStoreConfig === null || vectorStoreConfig === void 0 ? void 0 : vectorStoreConfig.type) {
|
|
258
|
+
if (vectorStoreConfig.type === 'pgvector')
|
|
259
|
+
return 'postgres';
|
|
260
|
+
if (vectorStoreConfig.type === 'lancedb')
|
|
261
|
+
return 'lancedb';
|
|
262
|
+
}
|
|
263
|
+
// Fallback to main store type
|
|
264
|
+
const dbType = getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store);
|
|
265
|
+
if (dbType === 'postgres')
|
|
266
|
+
return 'postgres';
|
|
267
|
+
return 'lancedb';
|
|
268
|
+
}
|
|
293
269
|
function getDbType(config) {
|
|
294
270
|
if (DbType === undefined)
|
|
295
271
|
DbType = forceGetDbType(config);
|
|
@@ -314,13 +290,11 @@ export function isUsingSqljs() {
|
|
|
314
290
|
return getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store) == 'sqljs';
|
|
315
291
|
}
|
|
316
292
|
export async function isVectorStoreSupported() {
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
293
|
+
const vectorStoreType = getVectorStoreType();
|
|
294
|
+
if (vectorStoreType === 'postgres')
|
|
295
|
+
return true;
|
|
296
|
+
if (vectorStoreType === 'lancedb')
|
|
319
297
|
return true;
|
|
320
|
-
if (dbType === 'sqlite') {
|
|
321
|
-
const sqliteVecModule = await loadSqliteVec();
|
|
322
|
-
return !!sqliteVecModule;
|
|
323
|
-
}
|
|
324
298
|
return false;
|
|
325
299
|
}
|
|
326
300
|
export async function initDatabase(config) {
|
|
@@ -372,38 +346,54 @@ function ownersTable(tableName) {
|
|
|
372
346
|
return (tableName.replace('.', '_') + OwnersSuffix).toLowerCase();
|
|
373
347
|
}
|
|
374
348
|
async function insertRowsHelper(tableName, rows, ctx, doUpsert) {
|
|
375
|
-
const
|
|
376
|
-
|
|
349
|
+
const ds = getDatasourceForTransaction(ctx.txnId);
|
|
350
|
+
const repo = ds.getRepository(tableName);
|
|
351
|
+
if (doUpsert) {
|
|
377
352
|
await repo.save(rows);
|
|
378
|
-
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
379
355
|
await repo.insert(rows);
|
|
356
|
+
}
|
|
380
357
|
}
|
|
381
358
|
export async function addRowForFullTextSearch(tableName, id, vect, ctx) {
|
|
382
|
-
if (!(await isVectorStoreSupported()))
|
|
359
|
+
if (!(await isVectorStoreSupported())) {
|
|
360
|
+
logger.warn(`[VECTOR] Vector store not supported, skipping save for ${id}`);
|
|
383
361
|
return;
|
|
362
|
+
}
|
|
384
363
|
try {
|
|
385
364
|
const vecTableName = tableName + VectorSuffix;
|
|
386
|
-
|
|
365
|
+
logger.info(`[VECTOR] Saving embedding to ${vecTableName} for ${id} (${vect.length} dimensions)`);
|
|
366
|
+
const dbType = getVectorStoreType();
|
|
387
367
|
const tenantId = await ctx.getTenantId();
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
.
|
|
368
|
+
if (dbType === 'lancedb') {
|
|
369
|
+
let store = lanceDBStores.get(tableName);
|
|
370
|
+
if (!store) {
|
|
371
|
+
store = createLanceDBStore({
|
|
372
|
+
moduleName: tableName,
|
|
373
|
+
vectorDimension: vect.length,
|
|
374
|
+
});
|
|
375
|
+
await store.init();
|
|
376
|
+
lanceDBStores.set(tableName, store);
|
|
377
|
+
}
|
|
378
|
+
await store.addEmbedding({
|
|
379
|
+
id,
|
|
380
|
+
embedding: Array.from(vect),
|
|
381
|
+
tenantId,
|
|
382
|
+
});
|
|
396
383
|
}
|
|
397
|
-
else {
|
|
384
|
+
else if (dbType === 'postgres') {
|
|
385
|
+
const qb = getDatasourceForTransaction(ctx.txnId).createQueryBuilder();
|
|
386
|
+
const { default: pgvector } = await import('pgvector');
|
|
398
387
|
await qb
|
|
399
388
|
.insert()
|
|
400
389
|
.into(vecTableName)
|
|
401
|
-
.values([{ id: id, embedding:
|
|
390
|
+
.values([{ id: id, embedding: pgvector.toSql(vect), agentId: tenantId }])
|
|
402
391
|
.execute();
|
|
403
392
|
}
|
|
393
|
+
logger.info(`[VECTOR] Successfully saved embedding to ${vecTableName} for ${id}`);
|
|
404
394
|
}
|
|
405
395
|
catch (err) {
|
|
406
|
-
logger.error(`Failed to add row to vector store - ${err}`);
|
|
396
|
+
logger.error(`[VECTOR] Failed to add row to vector store - ${err}`);
|
|
407
397
|
}
|
|
408
398
|
}
|
|
409
399
|
export async function initVectorStore(tableNames, ctx) {
|
|
@@ -411,11 +401,22 @@ export async function initVectorStore(tableNames, ctx) {
|
|
|
411
401
|
logger.info(`Vector store not supported for ${getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store)}, skipping init...`);
|
|
412
402
|
return;
|
|
413
403
|
}
|
|
414
|
-
const dbType =
|
|
404
|
+
const dbType = getVectorStoreType();
|
|
415
405
|
let notInited = true;
|
|
416
406
|
for (const vecTableName of tableNames) {
|
|
417
|
-
|
|
418
|
-
|
|
407
|
+
if (dbType === 'lancedb') {
|
|
408
|
+
if (!lanceDBStores.has(vecTableName)) {
|
|
409
|
+
const store = createLanceDBStore({
|
|
410
|
+
moduleName: vecTableName,
|
|
411
|
+
vectorDimension: DefaultVectorDimension,
|
|
412
|
+
});
|
|
413
|
+
await store.init();
|
|
414
|
+
lanceDBStores.set(vecTableName, store);
|
|
415
|
+
logger.info(`[VECTOR] Initialized LanceDB store for ${vecTableName}`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
else if (dbType === 'postgres') {
|
|
419
|
+
const vecRepo = getDatasourceForTransaction(ctx.txnId).getRepository(vecTableName);
|
|
419
420
|
if (notInited) {
|
|
420
421
|
let failure = false;
|
|
421
422
|
try {
|
|
@@ -430,17 +431,11 @@ export async function initVectorStore(tableNames, ctx) {
|
|
|
430
431
|
notInited = false;
|
|
431
432
|
}
|
|
432
433
|
await vecRepo.query(`CREATE TABLE IF NOT EXISTS ${vecTableName} (
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
// sqlite-vec - vec0 doesn't support type declarations for metadata columns
|
|
441
|
-
await vecRepo.query(`CREATE VIRTUAL TABLE IF NOT EXISTS ${vecTableName} USING vec0(
|
|
442
|
-
id TEXT PRIMARY KEY,
|
|
443
|
-
embedding FLOAT[${DefaultVectorDimension}])`);
|
|
434
|
+
id varchar PRIMARY KEY,
|
|
435
|
+
embedding vector(${DefaultVectorDimension}),
|
|
436
|
+
${TenantAttributeName} varchar,
|
|
437
|
+
__is_deleted__ boolean default false
|
|
438
|
+
)`);
|
|
444
439
|
}
|
|
445
440
|
}
|
|
446
441
|
}
|
|
@@ -450,6 +445,19 @@ export async function vectorStoreSearch(tableName, searchVec, limit, ctx) {
|
|
|
450
445
|
return [];
|
|
451
446
|
}
|
|
452
447
|
try {
|
|
448
|
+
const dbType = getVectorStoreType();
|
|
449
|
+
const tenantId = await ctx.getTenantId();
|
|
450
|
+
if (dbType === 'lancedb') {
|
|
451
|
+
const store = lanceDBStores.get(tableName);
|
|
452
|
+
if (!store) {
|
|
453
|
+
logger.warn(`[VECTOR] LanceDB store not found for ${tableName}`);
|
|
454
|
+
return [];
|
|
455
|
+
}
|
|
456
|
+
// Extract agentId from resourceFqName for agent-level filtering
|
|
457
|
+
const agentId = ctx.resourceFqName || undefined;
|
|
458
|
+
const results = await store.search(searchVec, tenantId, agentId, limit);
|
|
459
|
+
return results.map(r => ({ id: r.id }));
|
|
460
|
+
}
|
|
453
461
|
let hasGlobalPerms = ctx.isPermitted();
|
|
454
462
|
if (!hasGlobalPerms) {
|
|
455
463
|
const userId = ctx.getUserId();
|
|
@@ -459,8 +467,6 @@ export async function vectorStoreSearch(tableName, searchVec, limit, ctx) {
|
|
|
459
467
|
}
|
|
460
468
|
const vecTableName = tableName + VectorSuffix;
|
|
461
469
|
const qb = getDatasourceForTransaction(ctx.txnId).getRepository(tableName).manager;
|
|
462
|
-
const dbType = getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store);
|
|
463
|
-
const tenantId = await ctx.getTenantId();
|
|
464
470
|
let ownersJoinCond = '';
|
|
465
471
|
if (!hasGlobalPerms) {
|
|
466
472
|
const ot = ownersTable(tableName);
|
|
@@ -474,17 +480,6 @@ export async function vectorStoreSearch(tableName, searchVec, limit, ctx) {
|
|
|
474
480
|
const args = pgvector.toSql(searchVec);
|
|
475
481
|
return await qb.query(sql, [args]);
|
|
476
482
|
}
|
|
477
|
-
else {
|
|
478
|
-
// sqlite-vec - join with main table to filter by tenant
|
|
479
|
-
const alias = tableName.toLowerCase();
|
|
480
|
-
const sql = `SELECT ${vecTableName}.id FROM ${vecTableName}
|
|
481
|
-
INNER JOIN ${tableName} ${alias} ON ${alias}.${PathAttributeName} = ${vecTableName}.id
|
|
482
|
-
${ownersJoinCond}
|
|
483
|
-
WHERE ${alias}.${TenantAttributeName} = '${tenantId}' AND ${alias}.${DeletedFlagAttributeName} = false AND ${vecTableName}.embedding MATCH $1
|
|
484
|
-
LIMIT ${limit}`;
|
|
485
|
-
const args = new Float32Array(searchVec);
|
|
486
|
-
return await qb.query(sql, [args]);
|
|
487
|
-
}
|
|
488
483
|
}
|
|
489
484
|
catch (err) {
|
|
490
485
|
logger.error(`Vector store search failed - ${err}`);
|
|
@@ -495,22 +490,22 @@ export async function vectorStoreSearchEntryExists(tableName, id, ctx) {
|
|
|
495
490
|
if (!(await isVectorStoreSupported()))
|
|
496
491
|
return false;
|
|
497
492
|
try {
|
|
493
|
+
const dbType = getVectorStoreType();
|
|
494
|
+
if (dbType === 'lancedb') {
|
|
495
|
+
const store = lanceDBStores.get(tableName);
|
|
496
|
+
if (!store) {
|
|
497
|
+
logger.warn(`[VECTOR] LanceDB store not found for ${tableName}`);
|
|
498
|
+
return false;
|
|
499
|
+
}
|
|
500
|
+
return await store.exists(id);
|
|
501
|
+
}
|
|
498
502
|
const qb = getDatasourceForTransaction(ctx.txnId).getRepository(tableName).manager;
|
|
499
503
|
const vecTableName = tableName + VectorSuffix;
|
|
500
|
-
const dbType = getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store);
|
|
501
504
|
const tenantId = await ctx.getTenantId();
|
|
502
505
|
if (dbType === 'postgres') {
|
|
503
506
|
const result = await qb.query(`select id from ${vecTableName} where id = $1 and ${TenantAttributeName} = '${tenantId}'`, [id]);
|
|
504
507
|
return result !== null && result.length > 0;
|
|
505
508
|
}
|
|
506
|
-
else {
|
|
507
|
-
// sqlite-vec - join with main table to verify tenant
|
|
508
|
-
const alias = tableName.toLowerCase();
|
|
509
|
-
const result = await qb.query(`SELECT ${vecTableName}.id FROM ${vecTableName}
|
|
510
|
-
INNER JOIN ${tableName} ${alias} ON ${alias}.${PathAttributeName} = ${vecTableName}.id
|
|
511
|
-
WHERE ${vecTableName}.id = $1 AND ${alias}.${TenantAttributeName} = '${tenantId}'`, [id]);
|
|
512
|
-
return result !== null && result.length > 0;
|
|
513
|
-
}
|
|
514
509
|
}
|
|
515
510
|
catch (err) {
|
|
516
511
|
logger.error(`Vector store search failed - ${err}`);
|
|
@@ -521,17 +516,22 @@ export async function deleteFullTextSearchEntry(tableName, id, ctx) {
|
|
|
521
516
|
if (!(await isVectorStoreSupported()))
|
|
522
517
|
return;
|
|
523
518
|
try {
|
|
519
|
+
const dbType = getVectorStoreType();
|
|
520
|
+
if (dbType === 'lancedb') {
|
|
521
|
+
const store = lanceDBStores.get(tableName);
|
|
522
|
+
if (!store) {
|
|
523
|
+
logger.warn(`[VECTOR] LanceDB store not found for ${tableName}`);
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
await store.delete(id);
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
524
529
|
const qb = getDatasourceForTransaction(ctx.txnId).getRepository(tableName).manager;
|
|
525
530
|
const vecTableName = tableName + VectorSuffix;
|
|
526
|
-
const dbType = getDbType(AppConfig === null || AppConfig === void 0 ? void 0 : AppConfig.store);
|
|
527
531
|
const tenantId = await ctx.getTenantId();
|
|
528
532
|
if (dbType === 'postgres') {
|
|
529
533
|
await qb.query(`delete from ${vecTableName} where id = $1 and ${TenantAttributeName} = '${tenantId}'`, [id]);
|
|
530
534
|
}
|
|
531
|
-
else {
|
|
532
|
-
// sqlite-vec - delete just by id (ownership verified by caller)
|
|
533
|
-
await qb.query(`delete from ${vecTableName} where id = $1`, [id]);
|
|
534
|
-
}
|
|
535
535
|
}
|
|
536
536
|
catch (err) {
|
|
537
537
|
logger.error(`Vector store delete failed - ${err}`);
|
|
@@ -663,7 +663,7 @@ async function createLimitedOwnership(tableName, rows, userId, perms, ctx) {
|
|
|
663
663
|
r: perms.has(RbacPermissionFlag.READ),
|
|
664
664
|
d: perms.has(RbacPermissionFlag.DELETE),
|
|
665
665
|
u: perms.has(RbacPermissionFlag.UPDATE),
|
|
666
|
-
|
|
666
|
+
agentId: tenantId,
|
|
667
667
|
});
|
|
668
668
|
});
|
|
669
669
|
const tname = ownersTable(tableName);
|
|
@@ -845,6 +845,8 @@ export function makeSimpleQuerySpec(queryObj, queryVals) {
|
|
|
845
845
|
intoSpec: undefined,
|
|
846
846
|
whereClauses: undefined,
|
|
847
847
|
distinct: false,
|
|
848
|
+
limit: undefined,
|
|
849
|
+
offset: undefined,
|
|
848
850
|
};
|
|
849
851
|
}
|
|
850
852
|
export async function getMany(tableName, querySpec, ctx) {
|
|
@@ -912,6 +914,12 @@ export async function getMany(tableName, querySpec, ctx) {
|
|
|
912
914
|
if (querySpec.distinct) {
|
|
913
915
|
qb.distinct(true);
|
|
914
916
|
}
|
|
917
|
+
if (querySpec.limit !== undefined) {
|
|
918
|
+
qb.take(querySpec.limit);
|
|
919
|
+
}
|
|
920
|
+
if (querySpec.offset !== undefined) {
|
|
921
|
+
qb.skip(querySpec.offset);
|
|
922
|
+
}
|
|
915
923
|
qb.where(queryStr, querySpec.queryVals);
|
|
916
924
|
if (hasAggregates)
|
|
917
925
|
return await qb.getRawMany();
|
|
@@ -987,6 +995,12 @@ export async function getManyByJoin(tableName, querySpec, ctx) {
|
|
|
987
995
|
if (querySpec.orderBy !== undefined) {
|
|
988
996
|
sql = `${sql} ORDER BY ${querySpec.orderBy.join(', ')} ${querySpec.orderByDesc}`;
|
|
989
997
|
}
|
|
998
|
+
if (querySpec.limit !== undefined) {
|
|
999
|
+
sql = `${sql} LIMIT ${querySpec.limit}`;
|
|
1000
|
+
}
|
|
1001
|
+
if (querySpec.offset !== undefined) {
|
|
1002
|
+
sql = `${sql} OFFSET ${querySpec.offset}`;
|
|
1003
|
+
}
|
|
990
1004
|
logger.debug(`Join Query: ${sql}`);
|
|
991
1005
|
const qb = getDatasourceForTransaction(ctx.txnId).getRepository(tableName).manager;
|
|
992
1006
|
return await qb.query(sql);
|
|
@@ -1075,14 +1089,16 @@ async function endTransaction(txnId, commit) {
|
|
|
1075
1089
|
const qr = transactionsDb.get(txnId);
|
|
1076
1090
|
if (qr && qr.isTransactionActive) {
|
|
1077
1091
|
try {
|
|
1078
|
-
if (commit)
|
|
1079
|
-
await qr.commitTransaction()
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1092
|
+
if (commit) {
|
|
1093
|
+
await qr.commitTransaction();
|
|
1094
|
+
}
|
|
1095
|
+
else {
|
|
1096
|
+
await qr.rollbackTransaction();
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
catch (err) {
|
|
1100
|
+
logger.error(`Failed to ${commit ? 'commit' : 'rollback'} transaction ${txnId}: ${err.message}`);
|
|
1101
|
+
throw err;
|
|
1086
1102
|
}
|
|
1087
1103
|
finally {
|
|
1088
1104
|
await qr.release();
|