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.
Files changed (93) hide show
  1. package/dist/federation/cache-layer.d.ts +58 -0
  2. package/dist/federation/cache-layer.d.ts.map +1 -0
  3. package/dist/federation/cache-layer.js +210 -0
  4. package/dist/federation/cache-layer.js.map +1 -0
  5. package/dist/federation/index.d.ts +12 -0
  6. package/dist/federation/index.d.ts.map +1 -0
  7. package/dist/federation/index.js +9 -0
  8. package/dist/federation/index.js.map +1 -0
  9. package/dist/federation/source-manager.d.ts +57 -0
  10. package/dist/federation/source-manager.d.ts.map +1 -0
  11. package/dist/federation/source-manager.js +238 -0
  12. package/dist/federation/source-manager.js.map +1 -0
  13. package/dist/federation/sync-engine.d.ts +68 -0
  14. package/dist/federation/sync-engine.d.ts.map +1 -0
  15. package/dist/federation/sync-engine.js +288 -0
  16. package/dist/federation/sync-engine.js.map +1 -0
  17. package/dist/index.d.ts +80 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +79 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/plugin.d.ts +28 -0
  22. package/dist/plugin.d.ts.map +1 -0
  23. package/dist/plugin.js +798 -0
  24. package/dist/plugin.js.map +1 -0
  25. package/dist/providers/base.d.ts +142 -0
  26. package/dist/providers/base.d.ts.map +1 -0
  27. package/dist/providers/base.js +161 -0
  28. package/dist/providers/base.js.map +1 -0
  29. package/dist/providers/index.d.ts +22 -0
  30. package/dist/providers/index.d.ts.map +1 -0
  31. package/dist/providers/index.js +74 -0
  32. package/dist/providers/index.js.map +1 -0
  33. package/dist/providers/mariadb.d.ts +83 -0
  34. package/dist/providers/mariadb.d.ts.map +1 -0
  35. package/dist/providers/mariadb.js +293 -0
  36. package/dist/providers/mariadb.js.map +1 -0
  37. package/dist/providers/mysql.d.ts +78 -0
  38. package/dist/providers/mysql.d.ts.map +1 -0
  39. package/dist/providers/mysql.js +284 -0
  40. package/dist/providers/mysql.js.map +1 -0
  41. package/dist/providers/postgresql.d.ts +77 -0
  42. package/dist/providers/postgresql.d.ts.map +1 -0
  43. package/dist/providers/postgresql.js +296 -0
  44. package/dist/providers/postgresql.js.map +1 -0
  45. package/dist/providers/sqlite.d.ts +80 -0
  46. package/dist/providers/sqlite.d.ts.map +1 -0
  47. package/dist/providers/sqlite.js +283 -0
  48. package/dist/providers/sqlite.js.map +1 -0
  49. package/dist/query/builder.d.ts +74 -0
  50. package/dist/query/builder.d.ts.map +1 -0
  51. package/dist/query/builder.js +279 -0
  52. package/dist/query/builder.js.map +1 -0
  53. package/dist/query/index.d.ts +10 -0
  54. package/dist/query/index.d.ts.map +1 -0
  55. package/dist/query/index.js +8 -0
  56. package/dist/query/index.js.map +1 -0
  57. package/dist/query/transformer.d.ts +74 -0
  58. package/dist/query/transformer.d.ts.map +1 -0
  59. package/dist/query/transformer.js +236 -0
  60. package/dist/query/transformer.js.map +1 -0
  61. package/dist/types.d.ts +350 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +38 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/vectors/adapter.d.ts +128 -0
  66. package/dist/vectors/adapter.d.ts.map +1 -0
  67. package/dist/vectors/adapter.js +79 -0
  68. package/dist/vectors/adapter.js.map +1 -0
  69. package/dist/vectors/index.d.ts +41 -0
  70. package/dist/vectors/index.d.ts.map +1 -0
  71. package/dist/vectors/index.js +87 -0
  72. package/dist/vectors/index.js.map +1 -0
  73. package/dist/vectors/lokijs-vector.d.ts +112 -0
  74. package/dist/vectors/lokijs-vector.d.ts.map +1 -0
  75. package/dist/vectors/lokijs-vector.js +217 -0
  76. package/dist/vectors/lokijs-vector.js.map +1 -0
  77. package/dist/vectors/mariadb-vector.d.ts +56 -0
  78. package/dist/vectors/mariadb-vector.d.ts.map +1 -0
  79. package/dist/vectors/mariadb-vector.js +263 -0
  80. package/dist/vectors/mariadb-vector.js.map +1 -0
  81. package/dist/vectors/mysql-vector.d.ts +56 -0
  82. package/dist/vectors/mysql-vector.d.ts.map +1 -0
  83. package/dist/vectors/mysql-vector.js +235 -0
  84. package/dist/vectors/mysql-vector.js.map +1 -0
  85. package/dist/vectors/pgvector.d.ts +52 -0
  86. package/dist/vectors/pgvector.d.ts.map +1 -0
  87. package/dist/vectors/pgvector.js +190 -0
  88. package/dist/vectors/pgvector.js.map +1 -0
  89. package/dist/vectors/sqlite-vec.d.ts +80 -0
  90. package/dist/vectors/sqlite-vec.d.ts.map +1 -0
  91. package/dist/vectors/sqlite-vec.js +362 -0
  92. package/dist/vectors/sqlite-vec.js.map +1 -0
  93. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;GAEG;AACH,UAAU,cAAc,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACrE;AASD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,YAAY,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,UAAU,CAA+C;gBAErD,OAAO,EAAE,wBAAwB;IAM7C;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/E;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvD;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAyBhC;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAOlD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO3D;;OAEG;IACG,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjD;;OAEG;IACG,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgBzB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAE5F"}