ai-database 2.1.3 → 2.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 (260) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +880 -669
  3. package/dist/actions.d.ts +2 -2
  4. package/dist/actions.d.ts.map +1 -1
  5. package/dist/actions.js +1 -1
  6. package/dist/actions.js.map +1 -1
  7. package/dist/ai-promise-db.d.ts +49 -23
  8. package/dist/ai-promise-db.d.ts.map +1 -1
  9. package/dist/ai-promise-db.js +91 -63
  10. package/dist/ai-promise-db.js.map +1 -1
  11. package/dist/authorization.d.ts.map +1 -1
  12. package/dist/authorization.js +38 -30
  13. package/dist/authorization.js.map +1 -1
  14. package/dist/cascade-orchestrator.d.ts +404 -0
  15. package/dist/cascade-orchestrator.d.ts.map +1 -0
  16. package/dist/cascade-orchestrator.js +828 -0
  17. package/dist/cascade-orchestrator.js.map +1 -0
  18. package/dist/cascade-write-strategy.d.ts +584 -0
  19. package/dist/cascade-write-strategy.d.ts.map +1 -0
  20. package/dist/cascade-write-strategy.js +590 -0
  21. package/dist/cascade-write-strategy.js.map +1 -0
  22. package/dist/ch-adapter.d.ts +358 -0
  23. package/dist/ch-adapter.d.ts.map +1 -0
  24. package/dist/ch-adapter.js +929 -0
  25. package/dist/ch-adapter.js.map +1 -0
  26. package/dist/client/index.d.ts +42 -0
  27. package/dist/client/index.d.ts.map +1 -0
  28. package/dist/client/index.js +43 -0
  29. package/dist/client/index.js.map +1 -0
  30. package/dist/client.d.ts +266 -0
  31. package/dist/client.d.ts.map +1 -0
  32. package/dist/client.js +81 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/constants.d.ts +64 -1
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +52 -2
  37. package/dist/constants.js.map +1 -1
  38. package/dist/dataloader.d.ts +99 -0
  39. package/dist/dataloader.d.ts.map +1 -0
  40. package/dist/dataloader.js +225 -0
  41. package/dist/dataloader.js.map +1 -0
  42. package/dist/db-provider-port.d.ts +501 -0
  43. package/dist/db-provider-port.d.ts.map +1 -0
  44. package/dist/db-provider-port.js +113 -0
  45. package/dist/db-provider-port.js.map +1 -0
  46. package/dist/digital-objects-provider.d.ts +49 -0
  47. package/dist/digital-objects-provider.d.ts.map +1 -0
  48. package/dist/digital-objects-provider.js +55 -0
  49. package/dist/digital-objects-provider.js.map +1 -0
  50. package/dist/do-sqlite-adapter.d.ts +402 -0
  51. package/dist/do-sqlite-adapter.d.ts.map +1 -0
  52. package/dist/do-sqlite-adapter.js +745 -0
  53. package/dist/do-sqlite-adapter.js.map +1 -0
  54. package/dist/docs-rels/custom-types.d.ts +134 -0
  55. package/dist/docs-rels/custom-types.d.ts.map +1 -0
  56. package/dist/docs-rels/custom-types.js +70 -0
  57. package/dist/docs-rels/custom-types.js.map +1 -0
  58. package/dist/docs-rels/index.d.ts +16 -0
  59. package/dist/docs-rels/index.d.ts.map +1 -0
  60. package/dist/docs-rels/index.js +16 -0
  61. package/dist/docs-rels/index.js.map +1 -0
  62. package/dist/docs-rels/migrations/index.d.ts +30 -0
  63. package/dist/docs-rels/migrations/index.d.ts.map +1 -0
  64. package/dist/docs-rels/migrations/index.js +128 -0
  65. package/dist/docs-rels/migrations/index.js.map +1 -0
  66. package/dist/docs-rels/schema.d.ts +2961 -0
  67. package/dist/docs-rels/schema.d.ts.map +1 -0
  68. package/dist/docs-rels/schema.js +244 -0
  69. package/dist/docs-rels/schema.js.map +1 -0
  70. package/dist/durable-clickhouse.d.ts.map +1 -1
  71. package/dist/durable-clickhouse.js +16 -13
  72. package/dist/durable-clickhouse.js.map +1 -1
  73. package/dist/durable-promise.d.ts.map +1 -1
  74. package/dist/durable-promise.js +34 -15
  75. package/dist/durable-promise.js.map +1 -1
  76. package/dist/errors.d.ts +127 -0
  77. package/dist/errors.d.ts.map +1 -0
  78. package/dist/errors.js +210 -0
  79. package/dist/errors.js.map +1 -0
  80. package/dist/eventbridge.d.ts +117 -0
  81. package/dist/eventbridge.d.ts.map +1 -0
  82. package/dist/eventbridge.js +238 -0
  83. package/dist/eventbridge.js.map +1 -0
  84. package/dist/events.d.ts +2 -2
  85. package/dist/events.d.ts.map +1 -1
  86. package/dist/events.js +1 -1
  87. package/dist/events.js.map +1 -1
  88. package/dist/execution-queue.d.ts.map +1 -1
  89. package/dist/execution-queue.js +4 -5
  90. package/dist/execution-queue.js.map +1 -1
  91. package/dist/index.d.ts +35 -8
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +106 -6
  94. package/dist/index.js.map +1 -1
  95. package/dist/linguistic.d.ts +3 -108
  96. package/dist/linguistic.d.ts.map +1 -1
  97. package/dist/linguistic.js +3 -372
  98. package/dist/linguistic.js.map +1 -1
  99. package/dist/logger.d.ts +132 -0
  100. package/dist/logger.d.ts.map +1 -0
  101. package/dist/logger.js +137 -0
  102. package/dist/logger.js.map +1 -0
  103. package/dist/memory-provider.d.ts +128 -0
  104. package/dist/memory-provider.d.ts.map +1 -1
  105. package/dist/memory-provider.js +592 -257
  106. package/dist/memory-provider.js.map +1 -1
  107. package/dist/pg-adapter.d.ts +424 -0
  108. package/dist/pg-adapter.d.ts.map +1 -0
  109. package/dist/pg-adapter.js +921 -0
  110. package/dist/pg-adapter.js.map +1 -0
  111. package/dist/pipelines-iceberg-emitter.d.ts +327 -0
  112. package/dist/pipelines-iceberg-emitter.d.ts.map +1 -0
  113. package/dist/pipelines-iceberg-emitter.js +351 -0
  114. package/dist/pipelines-iceberg-emitter.js.map +1 -0
  115. package/dist/provider-capabilities.d.ts +146 -0
  116. package/dist/provider-capabilities.d.ts.map +1 -0
  117. package/dist/provider-capabilities.js +214 -0
  118. package/dist/provider-capabilities.js.map +1 -0
  119. package/dist/rdb-provider-adapter.d.ts +195 -0
  120. package/dist/rdb-provider-adapter.d.ts.map +1 -0
  121. package/dist/rdb-provider-adapter.js +291 -0
  122. package/dist/rdb-provider-adapter.js.map +1 -0
  123. package/dist/schema/cascade.d.ts +48 -17
  124. package/dist/schema/cascade.d.ts.map +1 -1
  125. package/dist/schema/cascade.js +477 -278
  126. package/dist/schema/cascade.js.map +1 -1
  127. package/dist/schema/definition-caches.d.ts +24 -0
  128. package/dist/schema/definition-caches.d.ts.map +1 -0
  129. package/dist/schema/definition-caches.js +26 -0
  130. package/dist/schema/definition-caches.js.map +1 -0
  131. package/dist/schema/dependency-graph.d.ts +21 -109
  132. package/dist/schema/dependency-graph.d.ts.map +1 -1
  133. package/dist/schema/dependency-graph.js +25 -333
  134. package/dist/schema/dependency-graph.js.map +1 -1
  135. package/dist/schema/diff.d.ts +103 -0
  136. package/dist/schema/diff.d.ts.map +1 -0
  137. package/dist/schema/diff.js +329 -0
  138. package/dist/schema/diff.js.map +1 -0
  139. package/dist/schema/entity-operations.d.ts +99 -0
  140. package/dist/schema/entity-operations.d.ts.map +1 -0
  141. package/dist/schema/entity-operations.js +818 -0
  142. package/dist/schema/entity-operations.js.map +1 -0
  143. package/dist/schema/index.d.ts +28 -34
  144. package/dist/schema/index.d.ts.map +1 -1
  145. package/dist/schema/index.js +454 -521
  146. package/dist/schema/index.js.map +1 -1
  147. package/dist/schema/migration.d.ts +205 -0
  148. package/dist/schema/migration.d.ts.map +1 -0
  149. package/dist/schema/migration.js +327 -0
  150. package/dist/schema/migration.js.map +1 -0
  151. package/dist/schema/nl-query-generator.d.ts +68 -0
  152. package/dist/schema/nl-query-generator.d.ts.map +1 -0
  153. package/dist/schema/nl-query-generator.js +362 -0
  154. package/dist/schema/nl-query-generator.js.map +1 -0
  155. package/dist/schema/nl-query.d.ts +65 -0
  156. package/dist/schema/nl-query.d.ts.map +1 -0
  157. package/dist/schema/nl-query.js +178 -0
  158. package/dist/schema/nl-query.js.map +1 -0
  159. package/dist/schema/parse.d.ts.map +1 -1
  160. package/dist/schema/parse.js +144 -89
  161. package/dist/schema/parse.js.map +1 -1
  162. package/dist/schema/provider.d.ts +37 -0
  163. package/dist/schema/provider.d.ts.map +1 -1
  164. package/dist/schema/provider.js +15 -7
  165. package/dist/schema/provider.js.map +1 -1
  166. package/dist/schema/resolve.d.ts +46 -5
  167. package/dist/schema/resolve.d.ts.map +1 -1
  168. package/dist/schema/resolve.js +237 -95
  169. package/dist/schema/resolve.js.map +1 -1
  170. package/dist/schema/search-utils.d.ts +76 -0
  171. package/dist/schema/search-utils.d.ts.map +1 -0
  172. package/dist/schema/search-utils.js +86 -0
  173. package/dist/schema/search-utils.js.map +1 -0
  174. package/dist/schema/seed.d.ts +53 -0
  175. package/dist/schema/seed.d.ts.map +1 -0
  176. package/dist/schema/seed.js +94 -0
  177. package/dist/schema/seed.js.map +1 -0
  178. package/dist/schema/semantic.d.ts +10 -0
  179. package/dist/schema/semantic.d.ts.map +1 -1
  180. package/dist/schema/semantic.js +192 -86
  181. package/dist/schema/semantic.js.map +1 -1
  182. package/dist/schema/sub-apis.d.ts +52 -0
  183. package/dist/schema/sub-apis.d.ts.map +1 -0
  184. package/dist/schema/sub-apis.js +216 -0
  185. package/dist/schema/sub-apis.js.map +1 -0
  186. package/dist/schema/system-entities.d.ts +42 -0
  187. package/dist/schema/system-entities.d.ts.map +1 -0
  188. package/dist/schema/system-entities.js +101 -0
  189. package/dist/schema/system-entities.js.map +1 -0
  190. package/dist/schema/types.d.ts +91 -9
  191. package/dist/schema/types.d.ts.map +1 -1
  192. package/dist/schema/union-fallback.d.ts.map +1 -1
  193. package/dist/schema/union-fallback.js +21 -15
  194. package/dist/schema/union-fallback.js.map +1 -1
  195. package/dist/schema/value-generators/ai.d.ts +54 -0
  196. package/dist/schema/value-generators/ai.d.ts.map +1 -0
  197. package/dist/schema/value-generators/ai.js +136 -0
  198. package/dist/schema/value-generators/ai.js.map +1 -0
  199. package/dist/schema/value-generators/index.d.ts +126 -0
  200. package/dist/schema/value-generators/index.d.ts.map +1 -0
  201. package/dist/schema/value-generators/index.js +219 -0
  202. package/dist/schema/value-generators/index.js.map +1 -0
  203. package/dist/schema/value-generators/placeholder.d.ts +52 -0
  204. package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
  205. package/dist/schema/value-generators/placeholder.js +328 -0
  206. package/dist/schema/value-generators/placeholder.js.map +1 -0
  207. package/dist/schema/value-generators/types.d.ts +116 -0
  208. package/dist/schema/value-generators/types.d.ts.map +1 -0
  209. package/dist/schema/value-generators/types.js +11 -0
  210. package/dist/schema/value-generators/types.js.map +1 -0
  211. package/dist/schema/version.d.ts +111 -0
  212. package/dist/schema/version.d.ts.map +1 -0
  213. package/dist/schema/version.js +190 -0
  214. package/dist/schema/version.js.map +1 -0
  215. package/dist/schema.d.ts +1095 -24
  216. package/dist/schema.d.ts.map +1 -1
  217. package/dist/schema.js +2852 -40
  218. package/dist/schema.js.map +1 -1
  219. package/dist/semantic-vectors.d.ts +39 -0
  220. package/dist/semantic-vectors.d.ts.map +1 -0
  221. package/dist/semantic-vectors.js +334 -0
  222. package/dist/semantic-vectors.js.map +1 -0
  223. package/dist/semantic.d.ts +29 -1
  224. package/dist/semantic.d.ts.map +1 -1
  225. package/dist/semantic.js +26 -16
  226. package/dist/semantic.js.map +1 -1
  227. package/dist/telemetry.d.ts +128 -0
  228. package/dist/telemetry.d.ts.map +1 -0
  229. package/dist/telemetry.js +305 -0
  230. package/dist/telemetry.js.map +1 -0
  231. package/dist/tests.d.ts.map +1 -1
  232. package/dist/tests.js +30 -22
  233. package/dist/tests.js.map +1 -1
  234. package/dist/type-guards.d.ts +50 -5
  235. package/dist/type-guards.d.ts.map +1 -1
  236. package/dist/type-guards.js +87 -16
  237. package/dist/type-guards.js.map +1 -1
  238. package/dist/types.d.ts +33 -245
  239. package/dist/types.d.ts.map +1 -1
  240. package/dist/types.js +62 -72
  241. package/dist/types.js.map +1 -1
  242. package/dist/validation.d.ts +2 -5
  243. package/dist/validation.d.ts.map +1 -1
  244. package/dist/validation.js +65 -93
  245. package/dist/validation.js.map +1 -1
  246. package/dist/worker/db-provider.d.ts +168 -0
  247. package/dist/worker/db-provider.d.ts.map +1 -0
  248. package/dist/worker/db-provider.js +277 -0
  249. package/dist/worker/db-provider.js.map +1 -0
  250. package/dist/worker/index.d.ts +35 -0
  251. package/dist/worker/index.d.ts.map +1 -0
  252. package/dist/worker/index.js +37 -0
  253. package/dist/worker/index.js.map +1 -0
  254. package/dist/worker.d.ts +779 -0
  255. package/dist/worker.d.ts.map +1 -0
  256. package/dist/worker.js +2786 -0
  257. package/dist/worker.js.map +1 -0
  258. package/package.json +46 -16
  259. package/src/docs-rels/migrations/0001-init.sql +125 -0
  260. package/LICENSE +0 -21
@@ -9,7 +9,45 @@
9
9
  import { hasSemanticSearch } from './provider.js';
10
10
  import { resolveNestedPending } from './resolve.js';
11
11
  import { generateEntity } from './cascade.js';
12
- import { searchUnionTypes, createProviderSearcher } from './union-fallback.js';
12
+ import { searchUnionTypes, createProviderSearcher, } from './union-fallback.js';
13
+ import { findBestMatchAcrossTypes } from './search-utils.js';
14
+ /**
15
+ * Perform basic text search across multiple types as fallback when semantic search unavailable
16
+ *
17
+ * This provides graceful degradation for providers that don't support semantic search
18
+ * (e.g., RDB, DigitalObjectsProvider). It uses the provider's basic search() method
19
+ * which typically performs case-insensitive substring matching.
20
+ *
21
+ * @param provider - The database provider
22
+ * @param types - Types to search across
23
+ * @param query - The search query
24
+ * @param limit - Maximum results to return
25
+ * @returns Array of matched entities with $id and $type
26
+ */
27
+ async function textSearchFallback(provider, types, query, limit) {
28
+ const results = [];
29
+ for (const type of types) {
30
+ if (results.length >= limit)
31
+ break;
32
+ try {
33
+ const searchResults = await provider.search(type, query, { limit: limit - results.length });
34
+ for (const result of searchResults) {
35
+ if (results.length >= limit)
36
+ break;
37
+ results.push({
38
+ ...result,
39
+ $id: (result['$id'] ?? result['id']),
40
+ $type: type,
41
+ });
42
+ }
43
+ }
44
+ catch {
45
+ // Ignore search errors for individual types, continue with others
46
+ continue;
47
+ }
48
+ }
49
+ return results;
50
+ }
13
51
  /**
14
52
  * Safely extract the fuzzy threshold from entity schema
15
53
  *
@@ -18,13 +56,11 @@ import { searchUnionTypes, createProviderSearcher } from './union-fallback.js';
18
56
  *
19
57
  * @param entity - The parsed entity definition
20
58
  * @returns The fuzzy matching threshold (0-1), defaults to 0.75
21
- *
22
- * @internal
23
59
  */
24
- function getFuzzyThreshold(entity) {
60
+ export function getFuzzyThreshold(entity) {
25
61
  const schema = entity.schema;
26
62
  if (schema && '$fuzzyThreshold' in schema) {
27
- const threshold = schema.$fuzzyThreshold;
63
+ const threshold = schema['$fuzzyThreshold'];
28
64
  if (typeof threshold === 'number') {
29
65
  return threshold;
30
66
  }
@@ -60,21 +96,31 @@ export async function resolveBackwardFuzzy(typeName, data, entity, schema, provi
60
96
  }
61
97
  // Get the hint field value - uses fieldNameHint convention
62
98
  const hintKey = `${fieldName}Hint`;
63
- const searchQuery = data[hintKey] || field.prompt || '';
64
- // Skip if no search query available (optional fields without hint)
99
+ let searchQuery = data[hintKey] || field.prompt || '';
100
+ // If no explicit hint or prompt, build context from entity's data
101
+ // This allows backward fuzzy to match based on the entity's own fields
102
+ // Only use entity context for required fields - optional fields should stay null
103
+ if (!searchQuery && !field.isOptional) {
104
+ const contextParts = [];
105
+ for (const [key, value] of Object.entries(data)) {
106
+ if (!key.startsWith('$') && !key.startsWith('_') && typeof value === 'string' && value) {
107
+ contextParts.push(value);
108
+ }
109
+ }
110
+ searchQuery = contextParts.join(' ');
111
+ }
112
+ // Skip if no search query available (optional fields without hint, or entity has no string fields)
65
113
  if (!searchQuery) {
66
114
  continue;
67
115
  }
68
116
  // Determine which types to search - all union types or just the primary type
69
- const typesToSearch = field.unionTypes && field.unionTypes.length > 0
70
- ? field.unionTypes
71
- : [field.relatedType];
117
+ const typesToSearch = field.unionTypes && field.unionTypes.length > 0 ? field.unionTypes : [field.relatedType];
118
+ // Filter to only types that exist in the schema
119
+ const validTypes = typesToSearch.filter((t) => schema.entities.has(t));
120
+ if (validTypes.length === 0)
121
+ continue;
72
122
  // Check if provider supports semantic search
73
123
  if (hasSemanticSearch(provider)) {
74
- // Filter to only types that exist in the schema
75
- const validTypes = typesToSearch.filter(t => schema.entities.has(t));
76
- if (validTypes.length === 0)
77
- continue;
78
124
  // Create a searcher from the provider
79
125
  const searcher = createProviderSearcher(provider);
80
126
  // Determine search mode:
@@ -91,7 +137,7 @@ export async function resolveBackwardFuzzy(typeName, data, entity, schema, provi
91
137
  if (field.isArray) {
92
138
  // For array fields, collect all matches sorted by score
93
139
  if (searchResult.matches.length > 0) {
94
- resolved[fieldName] = searchResult.matches.map(m => m.$id);
140
+ resolved[fieldName] = searchResult.matches.map((m) => m.$id);
95
141
  // Track metadata about the search
96
142
  if (searchResult.fallbackTriggered) {
97
143
  resolved[`${fieldName}$fallbackUsed`] = true;
@@ -114,6 +160,26 @@ export async function resolveBackwardFuzzy(typeName, data, entity, schema, provi
114
160
  }
115
161
  }
116
162
  }
163
+ else {
164
+ // Fallback to basic text search when semantic search is unavailable
165
+ // This provides graceful degradation for providers like RDB
166
+ const textSearchResults = await textSearchFallback(provider, validTypes, searchQuery, field.isArray ? 10 : 1);
167
+ if (field.isArray) {
168
+ if (textSearchResults.length > 0) {
169
+ resolved[fieldName] = textSearchResults.map((r) => r.$id);
170
+ resolved[`${fieldName}$searchedTypes`] = validTypes;
171
+ resolved[`${fieldName}$textFallback`] = true;
172
+ }
173
+ }
174
+ else {
175
+ if (textSearchResults.length > 0) {
176
+ const bestMatch = textSearchResults[0];
177
+ resolved[fieldName] = bestMatch.$id;
178
+ resolved[`${fieldName}$matchedType`] = bestMatch.$type;
179
+ resolved[`${fieldName}$textFallback`] = true;
180
+ }
181
+ }
182
+ }
117
183
  // Note: <~ typically doesn't generate - it grounds to existing data
118
184
  // If no match found and field is optional, leave as undefined
119
185
  }
@@ -147,15 +213,39 @@ export async function resolveForwardFuzzy(typeName, data, entity, schema, provid
147
213
  const defaultThreshold = getFuzzyThreshold(entity);
148
214
  for (const [fieldName, field] of entity.fields) {
149
215
  if (field.operator === '~>' && field.direction === 'forward') {
150
- // Skip if value already provided
216
+ // If value already provided, still need to track for edge creation
151
217
  if (resolved[fieldName] !== undefined && resolved[fieldName] !== null) {
152
- // If value is provided for array field, we still need to create relationships
218
+ // Get matchedType from metadata if available, otherwise use relatedType
219
+ const matchedTypeKey = `${fieldName}$matchedType`;
220
+ const matchedType = resolved[matchedTypeKey] || field.relatedType;
221
+ const similarityKey = `${fieldName}$score`;
222
+ const similarity = resolved[similarityKey];
153
223
  if (field.isArray && Array.isArray(resolved[fieldName])) {
154
224
  const ids = resolved[fieldName];
155
225
  for (const targetId of ids) {
156
- pendingRelations.push({ fieldName, targetType: field.relatedType, targetId });
226
+ const relation = {
227
+ fieldName,
228
+ targetType: matchedType,
229
+ targetId,
230
+ matchedType,
231
+ };
232
+ if (similarity !== undefined)
233
+ relation.similarity = similarity;
234
+ pendingRelations.push(relation);
157
235
  }
158
236
  }
237
+ else if (typeof resolved[fieldName] === 'string') {
238
+ // Single fuzzy field with value already set - add to pendingRelations for edge creation
239
+ const relation = {
240
+ fieldName,
241
+ targetType: matchedType,
242
+ targetId: resolved[fieldName],
243
+ matchedType,
244
+ };
245
+ if (similarity !== undefined)
246
+ relation.similarity = similarity;
247
+ pendingRelations.push(relation);
248
+ }
159
249
  continue;
160
250
  }
161
251
  // Get the hint field value - uses fieldNameHint convention
@@ -170,54 +260,60 @@ export async function resolveForwardFuzzy(typeName, data, entity, schema, provid
170
260
  const resultIds = [];
171
261
  const usedEntityIds = new Set(); // Track already-matched entities to avoid duplicates
172
262
  // Determine which types to search - all union types or just the primary type
173
- const typesToSearch = field.unionTypes && field.unionTypes.length > 0
174
- ? field.unionTypes
175
- : [field.relatedType];
263
+ const typesToSearch = field.unionTypes && field.unionTypes.length > 0 ? field.unionTypes : [field.relatedType];
176
264
  for (const hint of hints) {
177
265
  const hintStr = String(hint || fieldName);
178
266
  let matched = false;
179
267
  let matchedType;
180
268
  // Try semantic search first - search across all union types
181
269
  if (hasSemanticSearch(provider)) {
182
- // Collect best match from all union types
183
- let bestMatch;
184
- let bestMatchType;
185
- for (const searchType of typesToSearch) {
186
- // Only search types that exist in the schema
187
- if (!schema.entities.has(searchType))
188
- continue;
189
- const matches = await provider.semanticSearch(searchType, hintStr, { minScore: threshold, limit: 10 } // Get more results to find unused matches
190
- );
191
- // Find the best match that hasn't been used yet
192
- for (const match of matches) {
193
- const matchId = match.$id;
194
- if (match.$score >= threshold && !usedEntityIds.has(matchId)) {
195
- // Track the best match across all types
196
- if (!bestMatch || match.$score > bestMatch.$score) {
197
- bestMatch = match;
198
- bestMatchType = searchType;
199
- }
200
- break; // Found valid match in this type, move to next type
201
- }
202
- }
203
- }
204
- if (bestMatch && bestMatchType) {
205
- const matchId = bestMatch.$id;
206
- matchedType = bestMatchType;
270
+ const bestMatchResult = await findBestMatchAcrossTypes(typesToSearch, hintStr, {
271
+ threshold,
272
+ limit: 10,
273
+ excludeIds: usedEntityIds,
274
+ schema,
275
+ provider,
276
+ });
277
+ if (bestMatchResult) {
278
+ const matchId = bestMatchResult.match.$id;
279
+ matchedType = bestMatchResult.type;
207
280
  resultIds.push(matchId);
208
281
  usedEntityIds.add(matchId);
209
282
  pendingRelations.push({
210
283
  fieldName,
211
284
  targetType: matchedType,
212
285
  targetId: matchId,
213
- similarity: bestMatch.$score,
214
- matchedType
286
+ similarity: bestMatchResult.match.$score,
287
+ matchedType,
215
288
  });
216
289
  // Update the matched entity with $generated: false and similarity metadata
217
290
  await provider.update(matchedType, matchId, {
218
291
  $generated: false,
219
- $similarity: bestMatch.$score,
220
- $matchedType: matchedType
292
+ $similarity: bestMatchResult.match.$score,
293
+ $matchedType: matchedType,
294
+ });
295
+ matched = true;
296
+ }
297
+ }
298
+ else {
299
+ // Fallback to text search when semantic search unavailable
300
+ const textResults = await textSearchFallback(provider, typesToSearch, hintStr, 10);
301
+ // Filter out already used IDs
302
+ const availableResults = textResults.filter((r) => !usedEntityIds.has(r.$id));
303
+ if (availableResults.length > 0) {
304
+ const bestMatch = availableResults[0];
305
+ matchedType = bestMatch.$type;
306
+ resultIds.push(bestMatch.$id);
307
+ usedEntityIds.add(bestMatch.$id);
308
+ pendingRelations.push({
309
+ fieldName,
310
+ targetType: matchedType,
311
+ targetId: bestMatch.$id,
312
+ matchedType,
313
+ });
314
+ await provider.update(matchedType, bestMatch.$id, {
315
+ $generated: false,
316
+ $matchedType: matchedType,
221
317
  });
222
318
  matched = true;
223
319
  }
@@ -236,14 +332,14 @@ export async function resolveForwardFuzzy(typeName, data, entity, schema, provid
236
332
  $generated: true,
237
333
  $generatedBy: parentId,
238
334
  $sourceField: fieldName,
239
- $matchedType: generateType
335
+ $matchedType: generateType,
240
336
  });
241
- resultIds.push(created.$id);
337
+ resultIds.push(created['$id']);
242
338
  pendingRelations.push({
243
339
  fieldName,
244
340
  targetType: generateType,
245
- targetId: created.$id,
246
- matchedType: generateType
341
+ targetId: created['$id'],
342
+ matchedType: generateType,
247
343
  });
248
344
  }
249
345
  }
@@ -255,47 +351,57 @@ export async function resolveForwardFuzzy(typeName, data, entity, schema, provid
255
351
  let matched = false;
256
352
  let matchedType;
257
353
  // Determine which types to search - all union types or just the primary type
258
- const typesToSearch = field.unionTypes && field.unionTypes.length > 0
259
- ? field.unionTypes
260
- : [field.relatedType];
354
+ const typesToSearch = field.unionTypes && field.unionTypes.length > 0 ? field.unionTypes : [field.relatedType];
261
355
  // Try semantic search first - search across all union types
262
356
  if (hasSemanticSearch(provider)) {
263
- // Collect best match from all union types
264
- let bestMatch;
265
- let bestMatchType;
266
- for (const searchType of typesToSearch) {
267
- // Only search types that exist in the schema
268
- if (!schema.entities.has(searchType))
269
- continue;
270
- const matches = await provider.semanticSearch(searchType, searchQuery, { minScore: threshold, limit: 5 });
271
- const firstMatch = matches[0];
272
- if (firstMatch && firstMatch.$score >= threshold) {
273
- // Track the best match across all types
274
- if (!bestMatch || firstMatch.$score > bestMatch.$score) {
275
- bestMatch = firstMatch;
276
- bestMatchType = searchType;
277
- }
278
- }
279
- }
280
- if (bestMatch && bestMatchType) {
281
- const matchedId = bestMatch.$id;
282
- matchedType = bestMatchType;
357
+ const bestMatchResult = await findBestMatchAcrossTypes(typesToSearch, searchQuery, {
358
+ threshold,
359
+ limit: 5,
360
+ schema,
361
+ provider,
362
+ });
363
+ if (bestMatchResult) {
364
+ const matchedId = bestMatchResult.match.$id;
365
+ matchedType = bestMatchResult.type;
283
366
  resolved[fieldName] = matchedId;
284
367
  resolved[`${fieldName}$matched`] = true;
285
- resolved[`${fieldName}$score`] = bestMatch.$score;
368
+ resolved[`${fieldName}$score`] = bestMatchResult.match.$score;
286
369
  resolved[`${fieldName}$matchedType`] = matchedType;
287
370
  pendingRelations.push({
288
371
  fieldName,
289
372
  targetType: matchedType,
290
373
  targetId: matchedId,
291
- similarity: bestMatch.$score,
292
- matchedType
374
+ similarity: bestMatchResult.match.$score,
375
+ matchedType,
293
376
  });
294
377
  // Update the matched entity with $generated: false and similarity metadata
295
378
  await provider.update(matchedType, matchedId, {
296
379
  $generated: false,
297
- $similarity: bestMatch.$score,
298
- $matchedType: matchedType
380
+ $similarity: bestMatchResult.match.$score,
381
+ $matchedType: matchedType,
382
+ });
383
+ matched = true;
384
+ }
385
+ }
386
+ else {
387
+ // Fallback to text search when semantic search unavailable
388
+ const textResults = await textSearchFallback(provider, typesToSearch, searchQuery, 5);
389
+ if (textResults.length > 0) {
390
+ const bestMatch = textResults[0];
391
+ matchedType = bestMatch.$type;
392
+ resolved[fieldName] = bestMatch.$id;
393
+ resolved[`${fieldName}$matched`] = true;
394
+ resolved[`${fieldName}$matchedType`] = matchedType;
395
+ resolved[`${fieldName}$textFallback`] = true;
396
+ pendingRelations.push({
397
+ fieldName,
398
+ targetType: matchedType,
399
+ targetId: bestMatch.$id,
400
+ matchedType,
401
+ });
402
+ await provider.update(matchedType, bestMatch.$id, {
403
+ $generated: false,
404
+ $matchedType: matchedType,
299
405
  });
300
406
  matched = true;
301
407
  }
@@ -315,15 +421,15 @@ export async function resolveForwardFuzzy(typeName, data, entity, schema, provid
315
421
  $generated: true,
316
422
  $generatedBy: parentId,
317
423
  $sourceField: fieldName,
318
- $matchedType: generateType
424
+ $matchedType: generateType,
319
425
  });
320
- resolved[fieldName] = created.$id;
426
+ resolved[fieldName] = created['$id'];
321
427
  resolved[`${fieldName}$matchedType`] = generateType;
322
428
  pendingRelations.push({
323
429
  fieldName,
324
430
  targetType: generateType,
325
- targetId: created.$id,
326
- matchedType: generateType
431
+ targetId: created['$id'],
432
+ matchedType: generateType,
327
433
  });
328
434
  }
329
435
  }
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/schema/semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/schema/semantic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Sub-API Factories
3
+ *
4
+ * Creates the Events, Actions, Artifacts, Nouns, and Verbs APIs
5
+ * that are returned alongside the main DB object.
6
+ *
7
+ * These APIs provide access to:
8
+ * - Events: Event sourcing and subscription
9
+ * - Actions: Durable execution tracking
10
+ * - Artifacts: Cached computed content
11
+ * - Nouns: Type introspection
12
+ * - Verbs: Action introspection and conjugation
13
+ */
14
+ import type { EventsAPI, ActionsAPI, ArtifactsAPI, NounsAPI, VerbsAPI } from './types.js';
15
+ import type { Noun, Verb } from '../types.js';
16
+ import type { DBProvider } from './provider.js';
17
+ /**
18
+ * Create the Events API
19
+ *
20
+ * @param resolveProvider - Function to get the database provider
21
+ * @returns EventsAPI implementation
22
+ */
23
+ export declare function createEventsAPI(resolveProvider: () => Promise<DBProvider>): EventsAPI;
24
+ /**
25
+ * Create the Actions API (public version with full DBAction types)
26
+ *
27
+ * @param resolveProvider - Function to get the database provider
28
+ * @returns ActionsAPI implementation
29
+ */
30
+ export declare function createActionsPublicAPI(resolveProvider: () => Promise<DBProvider>): ActionsAPI;
31
+ /**
32
+ * Create the Artifacts API
33
+ *
34
+ * @param resolveProvider - Function to get the database provider
35
+ * @returns ArtifactsAPI implementation
36
+ */
37
+ export declare function createArtifactsAPI(resolveProvider: () => Promise<DBProvider>): ArtifactsAPI;
38
+ /**
39
+ * Create the Nouns API
40
+ *
41
+ * @param nounDefinitions - Map of entity names to Noun definitions
42
+ * @returns NounsAPI implementation
43
+ */
44
+ export declare function createNounsAPI(nounDefinitions: Map<string, Noun>): NounsAPI;
45
+ /**
46
+ * Create the Verbs API
47
+ *
48
+ * @param verbDefinitions - Map of verb actions to Verb definitions
49
+ * @returns VerbsAPI implementation
50
+ */
51
+ export declare function createVerbsAPI(verbDefinitions: Map<string, Verb>): VerbsAPI;
52
+ //# sourceMappingURL=sub-apis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-apis.d.ts","sourceRoot":"","sources":["../../src/schema/sub-apis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,QAAQ,EAKT,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CA8DrF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAsD7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,YAAY,CAgC3F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,QAAQ,CAc3E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,QAAQ,CAgB3E"}