@opensaas/stack-rag 0.1.7 → 0.4.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 (77) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +223 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +9 -0
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/plugin.d.ts.map +1 -1
  7. package/dist/config/plugin.js +32 -0
  8. package/dist/config/plugin.js.map +1 -1
  9. package/dist/config/plugin.test.js +70 -14
  10. package/dist/config/plugin.test.js.map +1 -1
  11. package/dist/config/types.d.ts +135 -0
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/fields/embedding.d.ts +4 -4
  14. package/dist/fields/embedding.d.ts.map +1 -1
  15. package/dist/fields/embedding.js.map +1 -1
  16. package/dist/fields/searchable.d.ts +1 -1
  17. package/dist/fields/searchable.d.ts.map +1 -1
  18. package/dist/fields/searchable.js +1 -0
  19. package/dist/fields/searchable.js.map +1 -1
  20. package/dist/fields/searchable.test.js +1 -0
  21. package/dist/fields/searchable.test.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/providers/ollama.js +4 -4
  25. package/dist/providers/ollama.js.map +1 -1
  26. package/dist/providers/openai.js +1 -1
  27. package/dist/providers/openai.js.map +1 -1
  28. package/dist/runtime/build-time.d.ts +100 -0
  29. package/dist/runtime/build-time.d.ts.map +1 -0
  30. package/dist/runtime/build-time.js +185 -0
  31. package/dist/runtime/build-time.js.map +1 -0
  32. package/dist/runtime/index.d.ts +3 -0
  33. package/dist/runtime/index.d.ts.map +1 -1
  34. package/dist/runtime/index.js +6 -0
  35. package/dist/runtime/index.js.map +1 -1
  36. package/dist/runtime/markdown.d.ts +33 -0
  37. package/dist/runtime/markdown.d.ts.map +1 -0
  38. package/dist/runtime/markdown.js +94 -0
  39. package/dist/runtime/markdown.js.map +1 -0
  40. package/dist/runtime/provider-helpers.d.ts +56 -0
  41. package/dist/runtime/provider-helpers.d.ts.map +1 -0
  42. package/dist/runtime/provider-helpers.js +95 -0
  43. package/dist/runtime/provider-helpers.js.map +1 -0
  44. package/dist/runtime/types.d.ts +29 -0
  45. package/dist/runtime/types.d.ts.map +1 -0
  46. package/dist/runtime/types.js +6 -0
  47. package/dist/runtime/types.js.map +1 -0
  48. package/dist/storage/index.d.ts +1 -0
  49. package/dist/storage/index.d.ts.map +1 -1
  50. package/dist/storage/index.js +1 -0
  51. package/dist/storage/index.js.map +1 -1
  52. package/dist/storage/json-file.d.ts +53 -0
  53. package/dist/storage/json-file.d.ts.map +1 -0
  54. package/dist/storage/json-file.js +124 -0
  55. package/dist/storage/json-file.js.map +1 -0
  56. package/dist/storage/storage.test.js +1 -0
  57. package/dist/storage/storage.test.js.map +1 -1
  58. package/package.json +11 -10
  59. package/src/config/index.ts +9 -0
  60. package/src/config/plugin.test.ts +70 -14
  61. package/src/config/plugin.ts +37 -0
  62. package/src/config/types.ts +158 -0
  63. package/src/fields/embedding.ts +6 -4
  64. package/src/fields/searchable.test.ts +2 -1
  65. package/src/fields/searchable.ts +2 -1
  66. package/src/index.ts +6 -0
  67. package/src/providers/ollama.ts +5 -5
  68. package/src/providers/openai.ts +1 -1
  69. package/src/runtime/build-time.ts +216 -0
  70. package/src/runtime/index.ts +18 -0
  71. package/src/runtime/markdown.ts +119 -0
  72. package/src/runtime/provider-helpers.ts +115 -0
  73. package/src/runtime/types.ts +30 -0
  74. package/src/storage/index.ts +1 -0
  75. package/src/storage/json-file.ts +157 -0
  76. package/src/storage/storage.test.ts +1 -0
  77. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,53 @@
1
+ import type { VectorStorage, SearchOptions } from './types.js';
2
+ import type { SearchResult, EmbeddingsIndex } from '../config/types.js';
3
+ /**
4
+ * JSON file-based vector storage
5
+ * Loads embeddings from a JSON file generated at build time
6
+ * Performs similarity search in JavaScript without database queries
7
+ * Ideal for static sites, documentation, and build-time generated embeddings
8
+ */
9
+ export declare class JsonFileStorage implements VectorStorage {
10
+ readonly type = "json-file";
11
+ private index;
12
+ private filePath;
13
+ constructor(filePath: string);
14
+ /**
15
+ * Load embeddings index from file
16
+ * Caches the result in memory
17
+ */
18
+ private loadIndex;
19
+ /**
20
+ * Search for similar documents using JavaScript-based cosine similarity
21
+ * Note: listKey parameter is included for interface compatibility but not used
22
+ * since this storage is typically used for standalone content (e.g., docs)
23
+ */
24
+ search<T = unknown>(_listKey: string, _fieldName: string, queryVector: number[], options: SearchOptions): Promise<SearchResult<T>[]>;
25
+ /**
26
+ * Calculate cosine similarity between two vectors
27
+ */
28
+ cosineSimilarity(a: number[], b: number[]): number;
29
+ /**
30
+ * Get the loaded index for inspection
31
+ */
32
+ getIndex(): EmbeddingsIndex | null;
33
+ /**
34
+ * Force reload the index from disk
35
+ */
36
+ reloadIndex(): void;
37
+ }
38
+ /**
39
+ * Create a JSON file vector storage instance
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * import { createJsonFileStorage } from '@opensaas/stack-rag/storage'
44
+ *
45
+ * const storage = createJsonFileStorage('.embeddings/docs.json')
46
+ * const results = await storage.search('', '', queryVector, {
47
+ * limit: 10,
48
+ * minScore: 0.7
49
+ * })
50
+ * ```
51
+ */
52
+ export declare function createJsonFileStorage(filePath: string): JsonFileStorage;
53
+ //# sourceMappingURL=json-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-file.d.ts","sourceRoot":"","sources":["../../src/storage/json-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGvE;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,eAAc;IAE3B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,MAAM;IAI5B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAoBjB;;;;OAIG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IA8D7B;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAIlD;;OAEG;IACH,QAAQ,IAAI,eAAe,GAAG,IAAI;IAIlC;;OAEG;IACH,WAAW,IAAI,IAAI;CAIpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAEvE"}
@@ -0,0 +1,124 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { cosineSimilarity as calculateCosineSimilarity } from './types.js';
3
+ /**
4
+ * JSON file-based vector storage
5
+ * Loads embeddings from a JSON file generated at build time
6
+ * Performs similarity search in JavaScript without database queries
7
+ * Ideal for static sites, documentation, and build-time generated embeddings
8
+ */
9
+ export class JsonFileStorage {
10
+ type = 'json-file';
11
+ index = null;
12
+ filePath;
13
+ constructor(filePath) {
14
+ this.filePath = filePath;
15
+ }
16
+ /**
17
+ * Load embeddings index from file
18
+ * Caches the result in memory
19
+ */
20
+ loadIndex() {
21
+ if (this.index) {
22
+ return this.index;
23
+ }
24
+ if (!existsSync(this.filePath)) {
25
+ throw new Error(`Embeddings file not found: ${this.filePath}. Run embeddings generation first.`);
26
+ }
27
+ try {
28
+ const content = readFileSync(this.filePath, 'utf-8');
29
+ this.index = JSON.parse(content);
30
+ return this.index;
31
+ }
32
+ catch (error) {
33
+ throw new Error(`Failed to load embeddings from ${this.filePath}: ${error}`);
34
+ }
35
+ }
36
+ /**
37
+ * Search for similar documents using JavaScript-based cosine similarity
38
+ * Note: listKey parameter is included for interface compatibility but not used
39
+ * since this storage is typically used for standalone content (e.g., docs)
40
+ */
41
+ async search(_listKey, _fieldName, queryVector, options) {
42
+ const { limit = 10, minScore = 0.0, where = {} } = options;
43
+ const index = this.loadIndex();
44
+ // Validate query vector dimensions against index config
45
+ if (queryVector.length !== index.config.dimensions) {
46
+ throw new Error(`Query vector dimensions (${queryVector.length}) don't match index dimensions (${index.config.dimensions})`);
47
+ }
48
+ const results = [];
49
+ // Search through all documents and chunks
50
+ for (const [documentId, document] of Object.entries(index.documents)) {
51
+ // Apply where filters if provided (simple equality check)
52
+ if (where && Object.keys(where).length > 0) {
53
+ let matches = true;
54
+ for (const [key, value] of Object.entries(where)) {
55
+ if (document[key] !== value) {
56
+ matches = false;
57
+ break;
58
+ }
59
+ }
60
+ if (!matches)
61
+ continue;
62
+ }
63
+ // Search through each chunk
64
+ for (const chunk of document.chunks) {
65
+ const score = this.cosineSimilarity(queryVector, chunk.embedding);
66
+ if (score >= minScore) {
67
+ results.push({
68
+ item: {
69
+ documentId,
70
+ title: document.title,
71
+ content: chunk.text,
72
+ chunkIndex: chunk.metadata.chunkIndex,
73
+ metadata: chunk.metadata,
74
+ },
75
+ score,
76
+ distance: 1 - score,
77
+ documentId,
78
+ chunkIndex: chunk.metadata.chunkIndex,
79
+ });
80
+ }
81
+ }
82
+ }
83
+ // Sort by score (descending) and limit results
84
+ results.sort((a, b) => b.score - a.score);
85
+ return results.slice(0, limit);
86
+ }
87
+ /**
88
+ * Calculate cosine similarity between two vectors
89
+ */
90
+ cosineSimilarity(a, b) {
91
+ return calculateCosineSimilarity(a, b);
92
+ }
93
+ /**
94
+ * Get the loaded index for inspection
95
+ */
96
+ getIndex() {
97
+ return this.index;
98
+ }
99
+ /**
100
+ * Force reload the index from disk
101
+ */
102
+ reloadIndex() {
103
+ this.index = null;
104
+ this.loadIndex();
105
+ }
106
+ }
107
+ /**
108
+ * Create a JSON file vector storage instance
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * import { createJsonFileStorage } from '@opensaas/stack-rag/storage'
113
+ *
114
+ * const storage = createJsonFileStorage('.embeddings/docs.json')
115
+ * const results = await storage.search('', '', queryVector, {
116
+ * limit: 10,
117
+ * minScore: 0.7
118
+ * })
119
+ * ```
120
+ */
121
+ export function createJsonFileStorage(filePath) {
122
+ return new JsonFileStorage(filePath);
123
+ }
124
+ //# sourceMappingURL=json-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-file.js","sourceRoot":"","sources":["../../src/storage/json-file.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ function createMockContext(dbOverrides = {}) {
10
10
  sudo: vi.fn(),
11
11
  prisma: {},
12
12
  storage: {},
13
+ plugins: {},
13
14
  _isSudo: false,
14
15
  };
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/storage/storage.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/storage/storage.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensaas/stack-rag",
3
- "version": "0.1.7",
3
+ "version": "0.4.0",
4
4
  "description": "RAG and AI embeddings integration for OpenSaas Stack",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -51,8 +51,8 @@
51
51
  "url": "https://github.com/OpenSaasAU/stack/issues"
52
52
  },
53
53
  "peerDependencies": {
54
- "openai": "^6.8.0",
55
- "@opensaas/stack-core": "0.1.7"
54
+ "@opensaas/stack-core": "^0",
55
+ "openai": "^6.8.0"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
58
  "openai": {
@@ -60,16 +60,17 @@
60
60
  }
61
61
  },
62
62
  "dependencies": {
63
- "zod": "^4.1.12"
63
+ "dotenv": "^17.2.3",
64
+ "zod": "^4.1.13"
64
65
  },
65
66
  "devDependencies": {
66
- "@types/node": "^24.7.2",
67
- "@vitest/coverage-v8": "^4.0.4",
68
- "@vitest/ui": "^4.0.0",
69
- "openai": "^6.0.0",
67
+ "@types/node": "^24.10.1",
68
+ "@vitest/coverage-v8": "^4.0.15",
69
+ "@vitest/ui": "^4.0.15",
70
+ "openai": "^6.10.0",
70
71
  "typescript": "^5.9.3",
71
- "vitest": "^4.0.0",
72
- "@opensaas/stack-core": "0.1.7"
72
+ "vitest": "^4.0.15",
73
+ "@opensaas/stack-core": "0.4.0"
73
74
  },
74
75
  "scripts": {
75
76
  "build": "tsc",
@@ -19,6 +19,15 @@ export function normalizeRAGConfig(config: RAGConfig): NormalizedRAGConfig {
19
19
  maxTokens: config.chunking?.maxTokens || 500,
20
20
  overlap: config.chunking?.overlap || 50,
21
21
  },
22
+ buildTime: config.buildTime
23
+ ? {
24
+ enabled: config.buildTime.enabled,
25
+ outputPath: config.buildTime.outputPath || '.embeddings/embeddings.json',
26
+ chunkSize: config.buildTime.chunkSize || 500,
27
+ chunkOverlap: config.buildTime.chunkOverlap || 50,
28
+ differential: config.buildTime.differential ?? true,
29
+ }
30
+ : null,
22
31
  enableMcpTools: config.enableMcpTools ?? true,
23
32
  batchSize: config.batchSize || 10,
24
33
  rateLimit: config.rateLimit || 100,
@@ -78,7 +78,11 @@ describe('RAG Plugin', () => {
78
78
 
79
79
  const mockContext = {
80
80
  config: {
81
- db: { provider: 'sqlite', url: 'file:./test.db' },
81
+ db: {
82
+ provider: 'sqlite',
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ prismaClientConstructor: (() => null) as any,
85
+ },
82
86
  lists: {
83
87
  Article: {
84
88
  fields: {
@@ -122,7 +126,11 @@ describe('RAG Plugin', () => {
122
126
 
123
127
  const mockContext = {
124
128
  config: {
125
- db: { provider: 'sqlite', url: 'file:./test.db' },
129
+ db: {
130
+ provider: 'sqlite',
131
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
132
+ prismaClientConstructor: (() => null) as any,
133
+ },
126
134
  lists: {
127
135
  Article: {
128
136
  fields: {
@@ -158,7 +166,11 @@ describe('RAG Plugin', () => {
158
166
 
159
167
  const mockContext = {
160
168
  config: {
161
- db: { provider: 'sqlite', url: 'file:./test.db' },
169
+ db: {
170
+ provider: 'sqlite',
171
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
172
+ prismaClientConstructor: (() => null) as any,
173
+ },
162
174
  lists: {
163
175
  Article: {
164
176
  fields: {
@@ -197,7 +209,11 @@ describe('RAG Plugin', () => {
197
209
 
198
210
  const mockContext = {
199
211
  config: {
200
- db: { provider: 'sqlite', url: 'file:./test.db' },
212
+ db: {
213
+ provider: 'sqlite',
214
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
215
+ prismaClientConstructor: (() => null) as any,
216
+ },
201
217
  lists: {},
202
218
  },
203
219
  setPluginData: vi.fn(),
@@ -231,7 +247,11 @@ describe('RAG Plugin', () => {
231
247
 
232
248
  const mockContext = {
233
249
  config: {
234
- db: { provider: 'sqlite', url: 'file:./test.db' },
250
+ db: {
251
+ provider: 'sqlite',
252
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
253
+ prismaClientConstructor: (() => null) as any,
254
+ },
235
255
  lists: {
236
256
  Article: {
237
257
  fields: {
@@ -275,7 +295,11 @@ describe('RAG Plugin', () => {
275
295
 
276
296
  const mockContext = {
277
297
  config: {
278
- db: { provider: 'sqlite', url: 'file:./test.db' },
298
+ db: {
299
+ provider: 'sqlite',
300
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
301
+ prismaClientConstructor: (() => null) as any,
302
+ },
279
303
  lists: {
280
304
  Article: {
281
305
  fields: {
@@ -324,7 +348,11 @@ describe('RAG Plugin', () => {
324
348
 
325
349
  const mockContext = {
326
350
  config: {
327
- db: { provider: 'sqlite', url: 'file:./test.db' },
351
+ db: {
352
+ provider: 'sqlite',
353
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
354
+ prismaClientConstructor: (() => null) as any,
355
+ },
328
356
  lists: {
329
357
  Article: {
330
358
  fields: {
@@ -366,7 +394,11 @@ describe('RAG Plugin', () => {
366
394
 
367
395
  const mockContext = {
368
396
  config: {
369
- db: { provider: 'sqlite', url: 'file:./test.db' },
397
+ db: {
398
+ provider: 'sqlite',
399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
400
+ prismaClientConstructor: (() => null) as any,
401
+ },
370
402
  lists: {
371
403
  Article: {
372
404
  fields: {
@@ -401,7 +433,11 @@ describe('RAG Plugin', () => {
401
433
 
402
434
  const mockContext = {
403
435
  config: {
404
- db: { provider: 'sqlite', url: 'file:./test.db' },
436
+ db: {
437
+ provider: 'sqlite',
438
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
439
+ prismaClientConstructor: (() => null) as any,
440
+ },
405
441
  lists: {
406
442
  User: {
407
443
  fields: {
@@ -435,7 +471,11 @@ describe('RAG Plugin', () => {
435
471
 
436
472
  const mockContext = {
437
473
  config: {
438
- db: { provider: 'sqlite', url: 'file:./test.db' },
474
+ db: {
475
+ provider: 'sqlite',
476
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
477
+ prismaClientConstructor: (() => null) as any,
478
+ },
439
479
  lists: {
440
480
  BlogPost: {
441
481
  fields: {
@@ -483,7 +523,11 @@ describe('RAG Plugin', () => {
483
523
 
484
524
  const mockContext = {
485
525
  config: {
486
- db: { provider: 'sqlite', url: 'file:./test.db' },
526
+ db: {
527
+ provider: 'sqlite',
528
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
529
+ prismaClientConstructor: (() => null) as any,
530
+ },
487
531
  lists: {
488
532
  Article: {
489
533
  fields: {
@@ -537,7 +581,11 @@ describe('RAG Plugin', () => {
537
581
 
538
582
  const mockContext = {
539
583
  config: {
540
- db: { provider: 'sqlite', url: 'file:./test.db' },
584
+ db: {
585
+ provider: 'sqlite',
586
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
587
+ prismaClientConstructor: (() => null) as any,
588
+ },
541
589
  lists: {
542
590
  Article: {
543
591
  fields: {
@@ -574,7 +622,11 @@ describe('RAG Plugin', () => {
574
622
 
575
623
  const mockContext = {
576
624
  config: {
577
- db: { provider: 'sqlite', url: 'file:./test.db' },
625
+ db: {
626
+ provider: 'sqlite',
627
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
628
+ prismaClientConstructor: (() => null) as any,
629
+ },
578
630
  lists: {
579
631
  Article: {
580
632
  fields: {
@@ -613,7 +665,11 @@ describe('RAG Plugin', () => {
613
665
 
614
666
  const mockContext = {
615
667
  config: {
616
- db: { provider: 'sqlite', url: 'file:./test.db' },
668
+ db: {
669
+ provider: 'sqlite',
670
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
671
+ prismaClientConstructor: (() => null) as any,
672
+ },
617
673
  lists: {},
618
674
  },
619
675
  setPluginData: vi.fn(),
@@ -45,6 +45,11 @@ export function ragPlugin(config: RAGConfig): Plugin {
45
45
  name: 'rag',
46
46
  version: '0.1.0',
47
47
 
48
+ runtimeServiceTypes: {
49
+ import: "import type { RAGRuntimeServices } from '@opensaas/stack-rag'",
50
+ typeName: 'RAGRuntimeServices',
51
+ },
52
+
48
53
  init: async (context) => {
49
54
  // First pass: Scan for searchable() wrapped fields and inject embedding fields
50
55
  for (const [listName, listConfig] of Object.entries(context.config.lists)) {
@@ -247,6 +252,38 @@ export function ragPlugin(config: RAGConfig): Plugin {
247
252
  // Access at runtime via: config._pluginData.rag
248
253
  context.setPluginData<NormalizedRAGConfig>('rag', normalized)
249
254
  },
255
+
256
+ runtime: () => {
257
+ // Provide RAG-related utilities at runtime
258
+ return {
259
+ /**
260
+ * Generate embedding for a given text
261
+ * Uses the configured embedding provider
262
+ */
263
+ generateEmbedding: async (text: string) => {
264
+ const ragConfig = normalized
265
+ if (!ragConfig || !ragConfig.provider) {
266
+ throw new Error('RAG plugin not configured')
267
+ }
268
+
269
+ const provider = createEmbeddingProvider(ragConfig.provider)
270
+ return await provider.embed(text)
271
+ },
272
+
273
+ /**
274
+ * Generate embeddings for multiple texts (batch)
275
+ */
276
+ generateEmbeddings: async (texts: string[]) => {
277
+ const ragConfig = normalized
278
+ if (!ragConfig || !ragConfig.provider) {
279
+ throw new Error('RAG plugin not configured')
280
+ }
281
+
282
+ const provider = createEmbeddingProvider(ragConfig.provider)
283
+ return await provider.embedBatch(texts)
284
+ },
285
+ }
286
+ },
250
287
  }
251
288
  }
252
289