lokicms-plugin-sql 1.0.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/dist/federation/cache-layer.d.ts +58 -0
- package/dist/federation/cache-layer.d.ts.map +1 -0
- package/dist/federation/cache-layer.js +210 -0
- package/dist/federation/cache-layer.js.map +1 -0
- package/dist/federation/index.d.ts +12 -0
- package/dist/federation/index.d.ts.map +1 -0
- package/dist/federation/index.js +9 -0
- package/dist/federation/index.js.map +1 -0
- package/dist/federation/source-manager.d.ts +57 -0
- package/dist/federation/source-manager.d.ts.map +1 -0
- package/dist/federation/source-manager.js +238 -0
- package/dist/federation/source-manager.js.map +1 -0
- package/dist/federation/sync-engine.d.ts +68 -0
- package/dist/federation/sync-engine.d.ts.map +1 -0
- package/dist/federation/sync-engine.js +288 -0
- package/dist/federation/sync-engine.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +28 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +798 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers/base.d.ts +142 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +161 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/index.d.ts +22 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +74 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/mariadb.d.ts +83 -0
- package/dist/providers/mariadb.d.ts.map +1 -0
- package/dist/providers/mariadb.js +293 -0
- package/dist/providers/mariadb.js.map +1 -0
- package/dist/providers/mysql.d.ts +78 -0
- package/dist/providers/mysql.d.ts.map +1 -0
- package/dist/providers/mysql.js +284 -0
- package/dist/providers/mysql.js.map +1 -0
- package/dist/providers/postgresql.d.ts +77 -0
- package/dist/providers/postgresql.d.ts.map +1 -0
- package/dist/providers/postgresql.js +296 -0
- package/dist/providers/postgresql.js.map +1 -0
- package/dist/providers/sqlite.d.ts +80 -0
- package/dist/providers/sqlite.d.ts.map +1 -0
- package/dist/providers/sqlite.js +283 -0
- package/dist/providers/sqlite.js.map +1 -0
- package/dist/query/builder.d.ts +74 -0
- package/dist/query/builder.d.ts.map +1 -0
- package/dist/query/builder.js +279 -0
- package/dist/query/builder.js.map +1 -0
- package/dist/query/index.d.ts +10 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +8 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/transformer.d.ts +74 -0
- package/dist/query/transformer.d.ts.map +1 -0
- package/dist/query/transformer.js +236 -0
- package/dist/query/transformer.js.map +1 -0
- package/dist/types.d.ts +350 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +38 -0
- package/dist/types.js.map +1 -0
- package/dist/vectors/adapter.d.ts +128 -0
- package/dist/vectors/adapter.d.ts.map +1 -0
- package/dist/vectors/adapter.js +79 -0
- package/dist/vectors/adapter.js.map +1 -0
- package/dist/vectors/index.d.ts +41 -0
- package/dist/vectors/index.d.ts.map +1 -0
- package/dist/vectors/index.js +87 -0
- package/dist/vectors/index.js.map +1 -0
- package/dist/vectors/lokijs-vector.d.ts +112 -0
- package/dist/vectors/lokijs-vector.d.ts.map +1 -0
- package/dist/vectors/lokijs-vector.js +217 -0
- package/dist/vectors/lokijs-vector.js.map +1 -0
- package/dist/vectors/mariadb-vector.d.ts +56 -0
- package/dist/vectors/mariadb-vector.d.ts.map +1 -0
- package/dist/vectors/mariadb-vector.js +263 -0
- package/dist/vectors/mariadb-vector.js.map +1 -0
- package/dist/vectors/mysql-vector.d.ts +56 -0
- package/dist/vectors/mysql-vector.d.ts.map +1 -0
- package/dist/vectors/mysql-vector.js +235 -0
- package/dist/vectors/mysql-vector.js.map +1 -0
- package/dist/vectors/pgvector.d.ts +52 -0
- package/dist/vectors/pgvector.d.ts.map +1 -0
- package/dist/vectors/pgvector.js +190 -0
- package/dist/vectors/pgvector.js.map +1 -0
- package/dist/vectors/sqlite-vec.d.ts +80 -0
- package/dist/vectors/sqlite-vec.d.ts.map +1 -0
- package/dist/vectors/sqlite-vec.js +362 -0
- package/dist/vectors/sqlite-vec.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAMtD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,0BAA0B,GAC1B,qBAAqB,GACrB,sBAAsB,CAAC;AAM3B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,uDAAuD;IACvD,IAAI,EAAE,cAAc,CAAC;IACrB,+BAA+B;IAC/B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,iCAAiC;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,eAAe,CAAC;QAC1B,IAAI,EAAE,cAAc,CAAC;QACrB,UAAU,EAAE,gBAAgB,CAAC;KAC9B,CAAC;IAEF,kCAAkC;IAClC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB,mCAAmC;IACnC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,oBAAoB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,OAAO,CAAC;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAMD,0BAA0B;AAC1B,eAAO,MAAM,aAAa,EAAE,SAAS,eAAe,EAK1C,CAAC;AAEX,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,EAGhD,CAAC;AAEX,2BAA2B;AAC3B,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,gCAAgC;AAChC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAMpC;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,cAAc,GACd,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,sBAAsB,GACtB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAGxB,IAAI,EAAE,YAAY;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFxC,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK3C"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LokiCMS SQL Plugin - Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// CONSTANTS
|
|
6
|
+
// =============================================================================
|
|
7
|
+
/** Supported providers */
|
|
8
|
+
export const SQL_PROVIDERS = [
|
|
9
|
+
'postgresql',
|
|
10
|
+
'mysql',
|
|
11
|
+
'mariadb',
|
|
12
|
+
'sqlite',
|
|
13
|
+
];
|
|
14
|
+
/** Vector providers */
|
|
15
|
+
export const VECTOR_PROVIDERS = [
|
|
16
|
+
...SQL_PROVIDERS,
|
|
17
|
+
'lokijs',
|
|
18
|
+
];
|
|
19
|
+
/** Default table prefix */
|
|
20
|
+
export const DEFAULT_TABLE_PREFIX = 'lokicms_';
|
|
21
|
+
/** Default vector dimensions */
|
|
22
|
+
export const DEFAULT_VECTOR_DIMENSIONS = 384;
|
|
23
|
+
/** Default cache TTL */
|
|
24
|
+
export const DEFAULT_CACHE_TTL = 60;
|
|
25
|
+
/**
|
|
26
|
+
* SQL error
|
|
27
|
+
*/
|
|
28
|
+
export class SQLError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
details;
|
|
31
|
+
constructor(message, code, details) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.code = code;
|
|
34
|
+
this.details = details;
|
|
35
|
+
this.name = 'SQLError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgZH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,YAAY;IACZ,OAAO;IACP,SAAS;IACT,QAAQ;CACA,CAAC;AAEX,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,GAAG,aAAa;IAChB,QAAQ;CACA,CAAC;AAEX,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE/C,gCAAgC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,wBAAwB;AACxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAoBpC;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IAHT,YACE,OAAe,EACR,IAAkB,EAClB,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAc;QAClB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Unified interface for vector operations across all providers.
|
|
5
|
+
*/
|
|
6
|
+
import type { VectorProviderType, VectorEntry, VectorSearchOptions, VectorSearchResult, PluginLogger } from '../types.js';
|
|
7
|
+
import type { SQLProvider } from '../providers/base.js';
|
|
8
|
+
/**
|
|
9
|
+
* Vector adapter interface
|
|
10
|
+
*/
|
|
11
|
+
export interface VectorAdapter {
|
|
12
|
+
/** Provider type */
|
|
13
|
+
readonly type: VectorProviderType;
|
|
14
|
+
/** Check if vectors are supported */
|
|
15
|
+
isSupported(): boolean;
|
|
16
|
+
/** Initialize vector storage (create tables/indexes) */
|
|
17
|
+
initialize(dimensions: number): Promise<void>;
|
|
18
|
+
/** Store a vector */
|
|
19
|
+
store(entry: Omit<VectorEntry, 'createdAt' | 'updatedAt'>): Promise<void>;
|
|
20
|
+
/** Delete a vector */
|
|
21
|
+
delete(id: string): Promise<boolean>;
|
|
22
|
+
/** Delete vectors by entry ID */
|
|
23
|
+
deleteByEntryId(entryId: string): Promise<number>;
|
|
24
|
+
/** Delete vectors by collection */
|
|
25
|
+
deleteByCollection(collection: string): Promise<number>;
|
|
26
|
+
/** Search for similar vectors */
|
|
27
|
+
search(vector: number[], options?: VectorSearchOptions): Promise<VectorSearchResult[]>;
|
|
28
|
+
/** Get vector by ID */
|
|
29
|
+
get(id: string): Promise<VectorEntry | null>;
|
|
30
|
+
/** Get vectors by entry ID */
|
|
31
|
+
getByEntryId(entryId: string): Promise<VectorEntry[]>;
|
|
32
|
+
/** Count vectors */
|
|
33
|
+
count(collection?: string): Promise<number>;
|
|
34
|
+
/** Create vector index */
|
|
35
|
+
createIndex(indexType?: string): Promise<boolean>;
|
|
36
|
+
/** Check if index exists */
|
|
37
|
+
hasIndex(): Promise<boolean>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Base vector adapter options
|
|
41
|
+
*/
|
|
42
|
+
export interface VectorAdapterOptions {
|
|
43
|
+
provider: SQLProvider;
|
|
44
|
+
logger: PluginLogger;
|
|
45
|
+
tableName?: string;
|
|
46
|
+
dimensions?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Abstract base vector adapter
|
|
50
|
+
*/
|
|
51
|
+
export declare abstract class BaseVectorAdapter implements VectorAdapter {
|
|
52
|
+
abstract readonly type: VectorProviderType;
|
|
53
|
+
protected readonly provider: SQLProvider;
|
|
54
|
+
protected readonly logger: PluginLogger;
|
|
55
|
+
protected readonly tableName: string;
|
|
56
|
+
protected dimensions: number;
|
|
57
|
+
protected initialized: boolean;
|
|
58
|
+
constructor(options: VectorAdapterOptions);
|
|
59
|
+
/**
|
|
60
|
+
* Check if vectors are supported
|
|
61
|
+
*/
|
|
62
|
+
abstract isSupported(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Initialize storage
|
|
65
|
+
*/
|
|
66
|
+
abstract initialize(dimensions: number): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Store vector
|
|
69
|
+
*/
|
|
70
|
+
abstract store(entry: Omit<VectorEntry, 'createdAt' | 'updatedAt'>): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Search vectors
|
|
73
|
+
*/
|
|
74
|
+
abstract search(vector: number[], options?: VectorSearchOptions): Promise<VectorSearchResult[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Create index
|
|
77
|
+
*/
|
|
78
|
+
abstract createIndex(indexType?: string): Promise<boolean>;
|
|
79
|
+
/**
|
|
80
|
+
* Check for index
|
|
81
|
+
*/
|
|
82
|
+
abstract hasIndex(): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Delete vector by ID
|
|
85
|
+
*/
|
|
86
|
+
delete(id: string): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete by entry ID
|
|
89
|
+
*/
|
|
90
|
+
deleteByEntryId(entryId: string): Promise<number>;
|
|
91
|
+
/**
|
|
92
|
+
* Delete by collection
|
|
93
|
+
*/
|
|
94
|
+
deleteByCollection(collection: string): Promise<number>;
|
|
95
|
+
/**
|
|
96
|
+
* Get vector by ID
|
|
97
|
+
*/
|
|
98
|
+
get(id: string): Promise<VectorEntry | null>;
|
|
99
|
+
/**
|
|
100
|
+
* Get vectors by entry ID
|
|
101
|
+
*/
|
|
102
|
+
getByEntryId(entryId: string): Promise<VectorEntry[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Count vectors
|
|
105
|
+
*/
|
|
106
|
+
count(collection?: string): Promise<number>;
|
|
107
|
+
/**
|
|
108
|
+
* Convert database row to VectorEntry
|
|
109
|
+
*/
|
|
110
|
+
protected abstract rowToEntry(row: Record<string, unknown>): VectorEntry;
|
|
111
|
+
/**
|
|
112
|
+
* Convert vector to storage format
|
|
113
|
+
*/
|
|
114
|
+
protected abstract vectorToStorage(vector: number[]): unknown;
|
|
115
|
+
/**
|
|
116
|
+
* Convert storage format to vector
|
|
117
|
+
*/
|
|
118
|
+
protected abstract storageToVector(value: unknown): number[];
|
|
119
|
+
/**
|
|
120
|
+
* Generate unique ID
|
|
121
|
+
*/
|
|
122
|
+
protected generateId(): string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Factory function type for vector adapters
|
|
126
|
+
*/
|
|
127
|
+
export type VectorAdapterFactory = (options: VectorAdapterOptions) => VectorAdapter;
|
|
128
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/vectors/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Unified interface for vector operations across all providers.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Abstract base vector adapter
|
|
8
|
+
*/
|
|
9
|
+
export class BaseVectorAdapter {
|
|
10
|
+
provider;
|
|
11
|
+
logger;
|
|
12
|
+
tableName;
|
|
13
|
+
dimensions;
|
|
14
|
+
initialized = false;
|
|
15
|
+
constructor(options) {
|
|
16
|
+
this.provider = options.provider;
|
|
17
|
+
this.logger = options.logger;
|
|
18
|
+
this.tableName = options.tableName ?? 'lokicms_vectors';
|
|
19
|
+
this.dimensions = options.dimensions ?? 384;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Delete vector by ID
|
|
23
|
+
*/
|
|
24
|
+
async delete(id) {
|
|
25
|
+
const sql = `DELETE FROM ${this.provider.escapeIdentifier(this.tableName)} WHERE id = ${this.provider.getPlaceholder(0)}`;
|
|
26
|
+
const count = await this.provider.execute(sql, [id]);
|
|
27
|
+
return count > 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Delete by entry ID
|
|
31
|
+
*/
|
|
32
|
+
async deleteByEntryId(entryId) {
|
|
33
|
+
const sql = `DELETE FROM ${this.provider.escapeIdentifier(this.tableName)} WHERE entry_id = ${this.provider.getPlaceholder(0)}`;
|
|
34
|
+
return await this.provider.execute(sql, [entryId]);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Delete by collection
|
|
38
|
+
*/
|
|
39
|
+
async deleteByCollection(collection) {
|
|
40
|
+
const sql = `DELETE FROM ${this.provider.escapeIdentifier(this.tableName)} WHERE collection = ${this.provider.getPlaceholder(0)}`;
|
|
41
|
+
return await this.provider.execute(sql, [collection]);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get vector by ID
|
|
45
|
+
*/
|
|
46
|
+
async get(id) {
|
|
47
|
+
const sql = `SELECT * FROM ${this.provider.escapeIdentifier(this.tableName)} WHERE id = ${this.provider.getPlaceholder(0)}`;
|
|
48
|
+
const result = await this.provider.queryOne(sql, [id]);
|
|
49
|
+
return result ? this.rowToEntry(result) : null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get vectors by entry ID
|
|
53
|
+
*/
|
|
54
|
+
async getByEntryId(entryId) {
|
|
55
|
+
const sql = `SELECT * FROM ${this.provider.escapeIdentifier(this.tableName)} WHERE entry_id = ${this.provider.getPlaceholder(0)}`;
|
|
56
|
+
const result = await this.provider.query(sql, [entryId]);
|
|
57
|
+
return result.rows.map((row) => this.rowToEntry(row));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Count vectors
|
|
61
|
+
*/
|
|
62
|
+
async count(collection) {
|
|
63
|
+
let sql = `SELECT COUNT(*) as count FROM ${this.provider.escapeIdentifier(this.tableName)}`;
|
|
64
|
+
const params = [];
|
|
65
|
+
if (collection) {
|
|
66
|
+
sql += ` WHERE collection = ${this.provider.getPlaceholder(0)}`;
|
|
67
|
+
params.push(collection);
|
|
68
|
+
}
|
|
69
|
+
const result = await this.provider.queryOne(sql, params);
|
|
70
|
+
return result?.count ?? 0;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generate unique ID
|
|
74
|
+
*/
|
|
75
|
+
generateId() {
|
|
76
|
+
return `v_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/vectors/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Factory for creating vector adapters.
|
|
5
|
+
*/
|
|
6
|
+
import type { VectorProviderType, PluginLogger } from '../types.js';
|
|
7
|
+
import type { SQLProvider } from '../providers/base.js';
|
|
8
|
+
import type { VectorAdapter } from './adapter.js';
|
|
9
|
+
import { LokiVectorAdapter, LokiVectorAdapterOptions } from './lokijs-vector.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create vector adapter for a SQL provider
|
|
12
|
+
*/
|
|
13
|
+
export declare function createVectorAdapter(provider: SQLProvider, logger: PluginLogger, options?: {
|
|
14
|
+
tableName?: string;
|
|
15
|
+
dimensions?: number;
|
|
16
|
+
}): VectorAdapter;
|
|
17
|
+
/**
|
|
18
|
+
* Create LokiJS vector adapter
|
|
19
|
+
*/
|
|
20
|
+
export declare function createLokiVectorAdapter(options: LokiVectorAdapterOptions): LokiVectorAdapter;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a provider type supports vectors
|
|
23
|
+
*/
|
|
24
|
+
export declare function supportsVectors(_type: VectorProviderType): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Get vector provider info
|
|
27
|
+
*/
|
|
28
|
+
export declare function getVectorProviderInfo(type: VectorProviderType): {
|
|
29
|
+
name: string;
|
|
30
|
+
nativeSupport: string;
|
|
31
|
+
fallback: string;
|
|
32
|
+
};
|
|
33
|
+
export type { VectorAdapter, VectorAdapterOptions } from './adapter.js';
|
|
34
|
+
export { BaseVectorAdapter } from './adapter.js';
|
|
35
|
+
export { PgVectorAdapter } from './pgvector.js';
|
|
36
|
+
export { MySQLVectorAdapter } from './mysql-vector.js';
|
|
37
|
+
export { MariaDBVectorAdapter } from './mariadb-vector.js';
|
|
38
|
+
export { SQLiteVecAdapter } from './sqlite-vec.js';
|
|
39
|
+
export { LokiVectorAdapter } from './lokijs-vector.js';
|
|
40
|
+
export type { LokiVectorAdapterOptions } from './lokijs-vector.js';
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AAOxE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,aAAa,CAwBf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAE5F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAGlE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CA8BA;AAGD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Factory for creating vector adapters.
|
|
5
|
+
*/
|
|
6
|
+
// Adapter imports
|
|
7
|
+
import { PgVectorAdapter } from './pgvector.js';
|
|
8
|
+
import { MySQLVectorAdapter } from './mysql-vector.js';
|
|
9
|
+
import { MariaDBVectorAdapter } from './mariadb-vector.js';
|
|
10
|
+
import { SQLiteVecAdapter } from './sqlite-vec.js';
|
|
11
|
+
import { LokiVectorAdapter } from './lokijs-vector.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create vector adapter for a SQL provider
|
|
14
|
+
*/
|
|
15
|
+
export function createVectorAdapter(provider, logger, options) {
|
|
16
|
+
const adapterOptions = {
|
|
17
|
+
provider,
|
|
18
|
+
logger,
|
|
19
|
+
tableName: options?.tableName,
|
|
20
|
+
dimensions: options?.dimensions,
|
|
21
|
+
};
|
|
22
|
+
switch (provider.type) {
|
|
23
|
+
case 'postgresql':
|
|
24
|
+
return new PgVectorAdapter(adapterOptions);
|
|
25
|
+
case 'mysql':
|
|
26
|
+
return new MySQLVectorAdapter(adapterOptions);
|
|
27
|
+
case 'mariadb':
|
|
28
|
+
return new MariaDBVectorAdapter(adapterOptions);
|
|
29
|
+
case 'sqlite':
|
|
30
|
+
return new SQLiteVecAdapter(adapterOptions);
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unknown provider type: ${provider.type}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create LokiJS vector adapter
|
|
37
|
+
*/
|
|
38
|
+
export function createLokiVectorAdapter(options) {
|
|
39
|
+
return new LokiVectorAdapter(options);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if a provider type supports vectors
|
|
43
|
+
*/
|
|
44
|
+
export function supportsVectors(_type) {
|
|
45
|
+
// All providers support vectors (with fallbacks)
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get vector provider info
|
|
50
|
+
*/
|
|
51
|
+
export function getVectorProviderInfo(type) {
|
|
52
|
+
const info = {
|
|
53
|
+
postgresql: {
|
|
54
|
+
name: 'PostgreSQL',
|
|
55
|
+
nativeSupport: 'pgvector extension (any version)',
|
|
56
|
+
fallback: 'N/A (pgvector required)',
|
|
57
|
+
},
|
|
58
|
+
mysql: {
|
|
59
|
+
name: 'MySQL',
|
|
60
|
+
nativeSupport: 'Native VECTOR type (MySQL 9.0+)',
|
|
61
|
+
fallback: 'JSON column with application-side similarity',
|
|
62
|
+
},
|
|
63
|
+
mariadb: {
|
|
64
|
+
name: 'MariaDB',
|
|
65
|
+
nativeSupport: 'Native VECTOR type with HNSW (MariaDB 11.6+)',
|
|
66
|
+
fallback: 'JSON column with application-side similarity',
|
|
67
|
+
},
|
|
68
|
+
sqlite: {
|
|
69
|
+
name: 'SQLite',
|
|
70
|
+
nativeSupport: 'sqlite-vec extension',
|
|
71
|
+
fallback: 'BLOB column with application-side similarity',
|
|
72
|
+
},
|
|
73
|
+
lokijs: {
|
|
74
|
+
name: 'LokiJS',
|
|
75
|
+
nativeSupport: 'In-memory with linear scan',
|
|
76
|
+
fallback: 'N/A (always in-memory)',
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
return info[type];
|
|
80
|
+
}
|
|
81
|
+
export { BaseVectorAdapter } from './adapter.js';
|
|
82
|
+
export { PgVectorAdapter } from './pgvector.js';
|
|
83
|
+
export { MySQLVectorAdapter } from './mysql-vector.js';
|
|
84
|
+
export { MariaDBVectorAdapter } from './mariadb-vector.js';
|
|
85
|
+
export { SQLiteVecAdapter } from './sqlite-vec.js';
|
|
86
|
+
export { LokiVectorAdapter } from './lokijs-vector.js';
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,oBAAoB,CAAC;AAEjF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAqB,EACrB,MAAoB,EACpB,OAGC;IAED,MAAM,cAAc,GAAyB;QAC3C,QAAQ;QACR,MAAM;QACN,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,UAAU,EAAE,OAAO,EAAE,UAAU;KAChC,CAAC;IAEF,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAE7C,KAAK,OAAO;YACV,OAAO,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEhD,KAAK,SAAS;YACZ,OAAO,IAAI,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAElD,KAAK,QAAQ;YACX,OAAO,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAE9C;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACvE,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,iDAAiD;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAK5D,MAAM,IAAI,GAA0F;QAClG,UAAU,EAAE;YACV,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,kCAAkC;YACjD,QAAQ,EAAE,yBAAyB;SACpC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,iCAAiC;YAChD,QAAQ,EAAE,8CAA8C;SACzD;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,8CAA8C;YAC7D,QAAQ,EAAE,8CAA8C;SACzD;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,sBAAsB;YACrC,QAAQ,EAAE,8CAA8C;SACzD;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,4BAA4B;YAC3C,QAAQ,EAAE,wBAAwB;SACnC;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAID,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LokiJS Vector Adapter
|
|
3
|
+
*
|
|
4
|
+
* In-memory vector storage using LokiJS for caching and local-first use.
|
|
5
|
+
*/
|
|
6
|
+
import type { VectorEntry, VectorSearchOptions, VectorSearchResult, PluginLogger } from '../types.js';
|
|
7
|
+
import type { VectorAdapter } from './adapter.js';
|
|
8
|
+
/**
|
|
9
|
+
* LokiJS collection interface (minimal)
|
|
10
|
+
*/
|
|
11
|
+
interface LokiCollection<T> {
|
|
12
|
+
insert(doc: T): T;
|
|
13
|
+
update(doc: T): T;
|
|
14
|
+
findOne(query: object): T | null;
|
|
15
|
+
find(query?: object): T[];
|
|
16
|
+
remove(doc: T): void;
|
|
17
|
+
count(query?: object): number;
|
|
18
|
+
clear(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* LokiJS database interface (minimal)
|
|
22
|
+
*/
|
|
23
|
+
interface LokiDatabase {
|
|
24
|
+
getCollection<T>(name: string): LokiCollection<T> | null;
|
|
25
|
+
addCollection<T>(name: string, options?: object): LokiCollection<T>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* LokiJS vector adapter options
|
|
29
|
+
*/
|
|
30
|
+
export interface LokiVectorAdapterOptions {
|
|
31
|
+
db: LokiDatabase;
|
|
32
|
+
logger: PluginLogger;
|
|
33
|
+
collectionName?: string;
|
|
34
|
+
dimensions?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* LokiJS vector adapter (in-memory)
|
|
38
|
+
*/
|
|
39
|
+
export declare class LokiVectorAdapter implements VectorAdapter {
|
|
40
|
+
readonly type: "lokijs";
|
|
41
|
+
private readonly db;
|
|
42
|
+
private readonly logger;
|
|
43
|
+
private readonly collectionName;
|
|
44
|
+
private collection;
|
|
45
|
+
constructor(options: LokiVectorAdapterOptions);
|
|
46
|
+
/**
|
|
47
|
+
* Always supported (in-memory)
|
|
48
|
+
*/
|
|
49
|
+
isSupported(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Initialize vector storage
|
|
52
|
+
*/
|
|
53
|
+
initialize(dimensions: number): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Store a vector
|
|
56
|
+
*/
|
|
57
|
+
store(entry: Omit<VectorEntry, 'createdAt' | 'updatedAt'>): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Delete vector by ID
|
|
60
|
+
*/
|
|
61
|
+
delete(id: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Delete by entry ID
|
|
64
|
+
*/
|
|
65
|
+
deleteByEntryId(entryId: string): Promise<number>;
|
|
66
|
+
/**
|
|
67
|
+
* Delete by collection
|
|
68
|
+
*/
|
|
69
|
+
deleteByCollection(collection: string): Promise<number>;
|
|
70
|
+
/**
|
|
71
|
+
* Search for similar vectors using linear scan
|
|
72
|
+
*/
|
|
73
|
+
search(vector: number[], options?: VectorSearchOptions): Promise<VectorSearchResult[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Get vector by ID
|
|
76
|
+
*/
|
|
77
|
+
get(id: string): Promise<VectorEntry | null>;
|
|
78
|
+
/**
|
|
79
|
+
* Get vectors by entry ID
|
|
80
|
+
*/
|
|
81
|
+
getByEntryId(entryId: string): Promise<VectorEntry[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Count vectors
|
|
84
|
+
*/
|
|
85
|
+
count(collection?: string): Promise<number>;
|
|
86
|
+
/**
|
|
87
|
+
* Create index (no-op for LokiJS, uses built-in indices)
|
|
88
|
+
*/
|
|
89
|
+
createIndex(_indexType?: string): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Check if index exists (always true for LokiJS)
|
|
92
|
+
*/
|
|
93
|
+
hasIndex(): Promise<boolean>;
|
|
94
|
+
/**
|
|
95
|
+
* Clear all vectors
|
|
96
|
+
*/
|
|
97
|
+
clear(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Convert document to VectorEntry
|
|
100
|
+
*/
|
|
101
|
+
private docToEntry;
|
|
102
|
+
/**
|
|
103
|
+
* Compute cosine similarity between two vectors
|
|
104
|
+
*/
|
|
105
|
+
private cosineSimilarity;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create LokiJS vector adapter
|
|
109
|
+
*/
|
|
110
|
+
export declare function createLokiVectorAdapter(options: LokiVectorAdapterOptions): LokiVectorAdapter;
|
|
111
|
+
export {};
|
|
112
|
+
//# sourceMappingURL=lokijs-vector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lokijs-vector.d.ts","sourceRoot":"","sources":["../../src/vectors/lokijs-vector.ts"],"names":[],"mappings":"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"}
|