@opensaas/stack-rag 0.1.6 → 0.3.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 (95) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +141 -0
  3. package/README.md +82 -6
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +9 -0
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/config/plugin.d.ts.map +1 -1
  8. package/dist/config/plugin.js +61 -1
  9. package/dist/config/plugin.js.map +1 -1
  10. package/dist/config/plugin.test.js +70 -14
  11. package/dist/config/plugin.test.js.map +1 -1
  12. package/dist/config/types.d.ts +186 -0
  13. package/dist/config/types.d.ts.map +1 -1
  14. package/dist/fields/index.d.ts +1 -0
  15. package/dist/fields/index.d.ts.map +1 -1
  16. package/dist/fields/index.js +1 -0
  17. package/dist/fields/index.js.map +1 -1
  18. package/dist/fields/searchable.d.ts +42 -0
  19. package/dist/fields/searchable.d.ts.map +1 -0
  20. package/dist/fields/searchable.js +51 -0
  21. package/dist/fields/searchable.js.map +1 -0
  22. package/dist/fields/searchable.test.d.ts +2 -0
  23. package/dist/fields/searchable.test.d.ts.map +1 -0
  24. package/dist/fields/searchable.test.js +112 -0
  25. package/dist/fields/searchable.test.js.map +1 -0
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/providers/openai.d.ts +2 -0
  29. package/dist/providers/openai.d.ts.map +1 -1
  30. package/dist/providers/openai.js +35 -20
  31. package/dist/providers/openai.js.map +1 -1
  32. package/dist/runtime/batch.test.js +1 -1
  33. package/dist/runtime/build-time.d.ts +100 -0
  34. package/dist/runtime/build-time.d.ts.map +1 -0
  35. package/dist/runtime/build-time.js +185 -0
  36. package/dist/runtime/build-time.js.map +1 -0
  37. package/dist/runtime/index.d.ts +3 -0
  38. package/dist/runtime/index.d.ts.map +1 -1
  39. package/dist/runtime/index.js +6 -0
  40. package/dist/runtime/index.js.map +1 -1
  41. package/dist/runtime/markdown.d.ts +33 -0
  42. package/dist/runtime/markdown.d.ts.map +1 -0
  43. package/dist/runtime/markdown.js +94 -0
  44. package/dist/runtime/markdown.js.map +1 -0
  45. package/dist/runtime/provider-helpers.d.ts +56 -0
  46. package/dist/runtime/provider-helpers.d.ts.map +1 -0
  47. package/dist/runtime/provider-helpers.js +95 -0
  48. package/dist/runtime/provider-helpers.js.map +1 -0
  49. package/dist/runtime/types.d.ts +29 -0
  50. package/dist/runtime/types.d.ts.map +1 -0
  51. package/dist/runtime/types.js +6 -0
  52. package/dist/runtime/types.js.map +1 -0
  53. package/dist/storage/access-filter.d.ts +30 -0
  54. package/dist/storage/access-filter.d.ts.map +1 -0
  55. package/dist/storage/access-filter.js +241 -0
  56. package/dist/storage/access-filter.js.map +1 -0
  57. package/dist/storage/index.d.ts +2 -0
  58. package/dist/storage/index.d.ts.map +1 -1
  59. package/dist/storage/index.js +3 -0
  60. package/dist/storage/index.js.map +1 -1
  61. package/dist/storage/json-file.d.ts +53 -0
  62. package/dist/storage/json-file.d.ts.map +1 -0
  63. package/dist/storage/json-file.js +124 -0
  64. package/dist/storage/json-file.js.map +1 -0
  65. package/dist/storage/pgvector.d.ts.map +1 -1
  66. package/dist/storage/pgvector.js +26 -11
  67. package/dist/storage/pgvector.js.map +1 -1
  68. package/dist/storage/storage.test.js +2 -0
  69. package/dist/storage/storage.test.js.map +1 -1
  70. package/dist/storage/types.d.ts +5 -0
  71. package/dist/storage/types.d.ts.map +1 -1
  72. package/dist/storage/types.js.map +1 -1
  73. package/package.json +6 -5
  74. package/src/config/index.ts +9 -0
  75. package/src/config/plugin.test.ts +70 -14
  76. package/src/config/plugin.ts +72 -2
  77. package/src/config/types.ts +217 -0
  78. package/src/fields/index.ts +2 -0
  79. package/src/fields/searchable.test.ts +136 -0
  80. package/src/fields/searchable.ts +57 -0
  81. package/src/index.ts +6 -0
  82. package/src/providers/openai.ts +37 -22
  83. package/src/runtime/batch.test.ts +1 -1
  84. package/src/runtime/build-time.ts +216 -0
  85. package/src/runtime/index.ts +18 -0
  86. package/src/runtime/markdown.ts +119 -0
  87. package/src/runtime/provider-helpers.ts +115 -0
  88. package/src/runtime/types.ts +30 -0
  89. package/src/storage/access-filter.ts +303 -0
  90. package/src/storage/index.ts +4 -0
  91. package/src/storage/json-file.ts +157 -0
  92. package/src/storage/pgvector.ts +31 -11
  93. package/src/storage/storage.test.ts +2 -0
  94. package/src/storage/types.ts +6 -0
  95. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pgvector.d.ts","sourceRoot":"","sources":["../../src/storage/pgvector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAI/D;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,cAAa;IAC1B,OAAO,CAAC,gBAAgB,CAAmC;gBAE/C,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAoG7B;;OAEG;YACW,cAAc;IAW5B;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;CAGnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAEpF"}
1
+ {"version":3,"file":"pgvector.d.ts","sourceRoot":"","sources":["../../src/storage/pgvector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,cAAa;IAC1B,OAAO,CAAC,gBAAgB,CAAmC;gBAE/C,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,OAAO,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAuH7B;;OAEG;YACW,cAAc;IAW5B;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;CAGnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAEpF"}
@@ -1,5 +1,6 @@
1
1
  import { cosineSimilarity as calculateCosineSimilarity } from './types.js';
2
2
  import { getDbKey } from '@opensaas/stack-core';
3
+ import { buildAccessControlFilter, mergeAccessFilter, prismaFilterToSQL } from './access-filter.js';
3
4
  /**
4
5
  * pgvector storage backend
5
6
  * Uses PostgreSQL with pgvector extension for efficient vector similarity search
@@ -49,7 +50,7 @@ export class PgVectorStorage {
49
50
  * Search for similar vectors using pgvector
50
51
  */
51
52
  async search(listKey, fieldName, queryVector, options) {
52
- const { limit = 10, minScore = 0.0, context, where = {} } = options;
53
+ const { limit = 10, minScore = 0.0, context, where = {}, config } = options;
53
54
  const dbKey = getDbKey(listKey);
54
55
  const model = context.db[dbKey];
55
56
  if (!model) {
@@ -60,31 +61,45 @@ export class PgVectorStorage {
60
61
  // pgvector expects vectors in format: '[1,2,3]'
61
62
  const vectorString = `[${queryVector.join(',')}]`;
62
63
  // We need to use Prisma.$queryRaw to access pgvector operators
63
- // The access-controlled context.db doesn't expose $queryRaw directly,
64
- // so we need to use a two-step approach:
65
- // 1. Get all matching IDs using raw query
66
- // 2. Fetch full items via access-controlled context
64
+ // However, we must enforce access control in the raw query itself
65
+ // to ensure users only see items they have access to
67
66
  try {
68
67
  // Get the underlying Prisma client
69
- // Note: This bypasses access control for the similarity search,
70
- // but we enforce it in the second query
71
68
  const prisma = context.prisma;
72
69
  if (!prisma) {
73
70
  // Fallback: if we can't access Prisma directly, use JSON storage approach
74
71
  console.warn('pgvector: Could not access Prisma client directly. ' +
75
72
  'Falling back to JSON-based search. ' +
76
- 'For full pgvector support, ensure the context exposes _prisma.');
73
+ 'For full pgvector support, ensure the context exposes prisma.');
77
74
  return this.fallbackSearch(listKey, fieldName, queryVector, options);
78
75
  }
79
- // Raw query to get IDs and distances
76
+ // Build access control filter
77
+ let accessFilter = null;
78
+ if (config) {
79
+ accessFilter = await buildAccessControlFilter(listKey, context, config);
80
+ // If access is denied, return empty results
81
+ if (accessFilter === null) {
82
+ return [];
83
+ }
84
+ }
85
+ // Merge access filter with user where clause
86
+ const combinedFilter = accessFilter ? mergeAccessFilter(accessFilter, where) : where;
87
+ // If merged filter is null (access denied), return empty results
88
+ if (combinedFilter === null) {
89
+ return [];
90
+ }
91
+ // Convert Prisma filter to SQL WHERE clause
92
+ const tableName = listKey; // Prisma table names match the model name (PascalCase by default)
93
+ const sqlWhereClause = prismaFilterToSQL(combinedFilter, tableName);
94
+ // Raw query to get IDs and distances with access control
80
95
  // We extract the vector from the JSON field and cast it to vector type
81
- const tableName = listKey.toLowerCase(); // Prisma table names are lowercase
82
96
  const results = (await prisma.$queryRawUnsafe(`
83
97
  SELECT id,
84
98
  (("${fieldName}"->>'vector')::vector ${distanceOp} '${vectorString}'::vector) as distance
85
99
  FROM "${tableName}"
86
100
  WHERE "${fieldName}" IS NOT NULL
87
101
  AND "${fieldName}"->>'vector' IS NOT NULL
102
+ AND (${sqlWhereClause})
88
103
  ORDER BY distance
89
104
  LIMIT ${limit * 2}
90
105
  `));
@@ -102,9 +117,9 @@ export class PgVectorStorage {
102
117
  return [];
103
118
  }
104
119
  // Fetch full items via access-controlled context
120
+ // This applies field-level access control and resolveOutput hooks
105
121
  const items = await model.findMany({
106
122
  where: {
107
- ...where,
108
123
  id: {
109
124
  in: itemIds.map((r) => r.id),
110
125
  },
@@ -1 +1 @@
1
- {"version":3,"file":"pgvector.js","sourceRoot":"","sources":["../../src/storage/pgvector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,UAAU,CAAA;IAClB,gBAAgB,CAAmC;IAE3D,YAAY,MAA6B;QACvC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,QAAQ,CAAA;IAC7D,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAA,CAAC,kBAAkB;YACjC,KAAK,IAAI;gBACP,OAAO,KAAK,CAAA,CAAC,cAAc;YAC7B,KAAK,eAAe;gBAClB,OAAO,KAAK,CAAA,CAAC,uDAAuD;YACtE;gBACE,OAAO,KAAK,CAAA,CAAC,oBAAoB;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAAgB;QACtC,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,KAAK,QAAQ;gBACX,kEAAkE;gBAClE,OAAO,CAAC,GAAG,QAAQ,CAAA;YACrB,KAAK,IAAI;gBACP,8DAA8D;gBAC9D,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;YAC3B,KAAK,eAAe;gBAClB,wDAAwD;gBACxD,uBAAuB;gBACvB,OAAO,CAAC,QAAQ,CAAA;YAClB;gBACE,OAAO,CAAC,GAAG,QAAQ,CAAA;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,SAAiB,EACjB,WAAqB,EACrB,OAAsB;QAEtB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;QAEnE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,2BAA2B,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAE7C,+CAA+C;QAC/C,gDAAgD;QAChD,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QAEjD,+DAA+D;QAC/D,sEAAsE;QACtE,yCAAyC;QACzC,0CAA0C;QAC1C,oDAAoD;QAEpD,IAAI,CAAC;YACH,mCAAmC;YACnC,gEAAgE;YAChE,wCAAwC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,0EAA0E;gBAC1E,OAAO,CAAC,IAAI,CACV,qDAAqD;oBACnD,qCAAqC;oBACrC,gEAAgE,CACnE,CAAA;gBACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;YACtE,CAAC;YAED,qCAAqC;YACrC,uEAAuE;YACvE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA,CAAC,mCAAmC;YAC3E,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC;;oBAEhC,SAAS,yBAAyB,UAAU,KAAK,YAAY;gBACjE,SAAS;iBACR,SAAS;iBACT,SAAS;;gBAEV,KAAK,GAAG,CAAC;OAClB,CAAC,CAA4C,CAAA;YAE9C,0CAA0C;YAC1C,MAAM,OAAO,GAAG,OAAO;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC5B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC,CAAC;iBACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC;iBAClC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAEnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAA;YACX,CAAC;YAED,iDAAiD;YACjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;gBACjC,KAAK,EAAE;oBACL,GAAG,KAAK;oBACR,EAAE,EAAE;wBACF,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC7B;iBACF;aACF,CAAC,CAAA;YAEF,kDAAkD;YAClD,MAAM,aAAa,GAAsB,EAAE,CAAA;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,CAAC,CAA0B,EAAE,EAAE,CAAE,CAAoB,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CACvE,CAAA;gBACD,IAAI,IAAI,EAAE,CAAC;oBACT,aAAa,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,IAAS;wBACf,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,aAAa,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2BAA4B,KAAe,CAAC,OAAO,IAAI;gBACrD,kEAAkE,CACrE,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,OAAe,EACf,SAAiB,EACjB,WAAqB,EACrB,OAAsB;QAEtB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACrE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,CAAW,EAAE,CAAW;QACvC,OAAO,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"pgvector.js","sourceRoot":"","sources":["../../src/storage/pgvector.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ function createMockContext(dbOverrides = {}) {
10
10
  sudo: vi.fn(),
11
11
  prisma: {},
12
12
  storage: {},
13
+ plugins: {},
14
+ _isSudo: false,
13
15
  };
14
16
  }
15
17
  describe('Vector Storage', () => {
@@ -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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"}
@@ -53,6 +53,11 @@ export type SearchOptions = {
53
53
  * This is merged with access control filters
54
54
  */
55
55
  where?: Record<string, unknown>;
56
+ /**
57
+ * OpenSaaS config for access control integration
58
+ * Required to properly enforce access control in raw SQL queries
59
+ */
60
+ config?: import('@opensaas/stack-core').OpenSaasConfig;
56
61
  };
57
62
  /**
58
63
  * Distance functions for vector similarity
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;CACnD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,OAAO,EAAE,OAAO,sBAAsB,EAAE,aAAa,CAAA;IAErD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,eAAe,CAAA;AAEhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAK3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAS3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAajE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;CACnD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,OAAO,EAAE,OAAO,sBAAsB,EAAE,aAAa,CAAA;IAErD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAA;CACvD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,eAAe,CAAA;AAEhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAK3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAS3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAajE"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AA0EA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAgB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACvB,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1B,CAAC,EAAE,CAAC,CAAC,CAAA;IACL,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE9C,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,wCAAwC;IACxC,sCAAsC;IACtC,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;IACtD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAgFA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAgB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACvB,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1B,CAAC,EAAE,CAAC,CAAC,CAAA;IACL,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE9C,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,wCAAwC;IACxC,sCAAsC;IACtC,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;IACtD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensaas/stack-rag",
3
- "version": "0.1.6",
3
+ "version": "0.3.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.6"
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
+ "dotenv": "^16.4.7",
63
64
  "zod": "^4.1.12"
64
65
  },
65
66
  "devDependencies": {
66
67
  "@types/node": "^24.7.2",
67
68
  "@vitest/coverage-v8": "^4.0.4",
68
69
  "@vitest/ui": "^4.0.0",
69
- "openai": "^6.0.0",
70
+ "openai": "^6.8.0",
70
71
  "typescript": "^5.9.3",
71
72
  "vitest": "^4.0.0",
72
- "@opensaas/stack-core": "0.1.6"
73
+ "@opensaas/stack-core": "0.3.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(),
@@ -1,7 +1,8 @@
1
1
  import type { Plugin } from '@opensaas/stack-core'
2
- import type { RAGConfig, NormalizedRAGConfig } from './types.js'
2
+ import type { RAGConfig, NormalizedRAGConfig, SearchableMetadata } from './types.js'
3
3
  import { normalizeRAGConfig } from './index.js'
4
4
  import { createEmbeddingProvider } from '../providers/index.js'
5
+ import { embedding } from '../fields/embedding.js'
5
6
 
6
7
  /**
7
8
  * RAG plugin for OpenSaas Stack
@@ -44,8 +45,45 @@ export function ragPlugin(config: RAGConfig): Plugin {
44
45
  name: 'rag',
45
46
  version: '0.1.0',
46
47
 
48
+ runtimeServiceTypes: {
49
+ import: "import type { RAGRuntimeServices } from '@opensaas/stack-rag'",
50
+ typeName: 'RAGRuntimeServices',
51
+ },
52
+
47
53
  init: async (context) => {
48
- // Find all embedding fields with autoGenerate enabled
54
+ // First pass: Scan for searchable() wrapped fields and inject embedding fields
55
+ for (const [listName, listConfig] of Object.entries(context.config.lists)) {
56
+ const embeddingFieldsToInject: Record<string, ReturnType<typeof embedding>> = {}
57
+
58
+ for (const [fieldName, fieldConfig] of Object.entries(listConfig.fields)) {
59
+ // Check if field has _searchable metadata
60
+ if ('_searchable' in fieldConfig) {
61
+ const meta = fieldConfig._searchable as SearchableMetadata
62
+
63
+ // Determine embedding field name
64
+ const embeddingName = meta.embeddingFieldName || `${fieldName}Embedding`
65
+
66
+ // Create embedding field
67
+ embeddingFieldsToInject[embeddingName] = embedding({
68
+ sourceField: fieldName,
69
+ provider: meta.provider,
70
+ dimensions: meta.dimensions,
71
+ chunking: meta.chunking,
72
+ autoGenerate: true,
73
+ })
74
+ }
75
+ }
76
+
77
+ // Inject all embedding fields at once
78
+ if (Object.keys(embeddingFieldsToInject).length > 0) {
79
+ context.extendList(listName, {
80
+ fields: embeddingFieldsToInject,
81
+ })
82
+ }
83
+ }
84
+
85
+ // Second pass: Find all embedding fields with autoGenerate enabled
86
+ // This includes both manually defined embedding fields AND injected ones from searchable()
49
87
  for (const [listName, listConfig] of Object.entries(context.config.lists)) {
50
88
  for (const [fieldName, fieldConfig] of Object.entries(listConfig.fields)) {
51
89
  if (
@@ -214,6 +252,38 @@ export function ragPlugin(config: RAGConfig): Plugin {
214
252
  // Access at runtime via: config._pluginData.rag
215
253
  context.setPluginData<NormalizedRAGConfig>('rag', normalized)
216
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
+ },
217
287
  }
218
288
  }
219
289