@absolutejs/rag 0.0.26 → 0.0.28

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 (97) hide show
  1. package/dist/adapter-kit/index.js +122 -6
  2. package/dist/adapter-kit/index.js.map +14 -14
  3. package/dist/angular/index.js.map +6 -6
  4. package/dist/client/index.js.map +6 -6
  5. package/dist/client/ui.js.map +4 -4
  6. package/dist/index.js +124 -6
  7. package/dist/index.js.map +29 -29
  8. package/dist/presentation/ui.js.map +6 -6
  9. package/dist/quality/quality.js.map +4 -4
  10. package/dist/react/index.js.map +14 -14
  11. package/dist/src/adapter-kit/index.d.ts +1 -1
  12. package/dist/src/adapters/inMemory.d.ts +1 -1
  13. package/dist/src/adapters/sync.d.ts +1 -1
  14. package/dist/src/angular/ai-rag-stream.service.d.ts +9 -9
  15. package/dist/src/angular/ai-rag-workflow.service.d.ts +10 -10
  16. package/dist/src/angular/rag-client.service.d.ts +68 -68
  17. package/dist/src/chat/chat.d.ts +1 -1
  18. package/dist/src/client/createRAGAnswerWorkflow.d.ts +10 -9
  19. package/dist/src/client/ragClient.d.ts +41 -40
  20. package/dist/src/client/ui.d.ts +1 -1
  21. package/dist/src/index.d.ts +3 -2
  22. package/dist/src/ingestion/ingestion.d.ts +1 -1
  23. package/dist/src/internal/accessControl.d.ts +1 -1
  24. package/dist/src/internal/jobState.d.ts +1 -1
  25. package/dist/src/presentation/htmxCitationFragments.d.ts +1 -1
  26. package/dist/src/presentation/htmxConfig.d.ts +1 -1
  27. package/dist/src/presentation/htmxRenderers.d.ts +2 -1
  28. package/dist/src/presentation/htmxWorkflowRenderers.d.ts +1 -1
  29. package/dist/src/presentation/presentation.d.ts +5 -4
  30. package/dist/src/providers/contactProviders.d.ts +1 -1
  31. package/dist/src/providers/emailProviders.d.ts +1 -1
  32. package/dist/src/providers/embeddingProviders.d.ts +1 -1
  33. package/dist/src/providers/extractorProviders.d.ts +1 -1
  34. package/dist/src/providers/rerankerProviders.d.ts +1 -1
  35. package/dist/src/providers/socialProviders.d.ts +1 -1
  36. package/dist/src/quality/quality.d.ts +2 -1
  37. package/dist/src/react/useRAG.d.ts +117 -117
  38. package/dist/src/react/useRAGChunkPreview.d.ts +5 -5
  39. package/dist/src/react/useRAGCitations.d.ts +4 -4
  40. package/dist/src/react/useRAGDocuments.d.ts +1 -1
  41. package/dist/src/react/useRAGEvaluate.d.ts +4 -4
  42. package/dist/src/react/useRAGGrounding.d.ts +3 -3
  43. package/dist/src/react/useRAGIndexAdmin.d.ts +5 -5
  44. package/dist/src/react/useRAGIngest.d.ts +1 -1
  45. package/dist/src/react/useRAGOps.d.ts +1 -1
  46. package/dist/src/react/useRAGSearch.d.ts +2 -1
  47. package/dist/src/react/useRAGSources.d.ts +6 -6
  48. package/dist/src/react/useRAGStatus.d.ts +2 -2
  49. package/dist/src/react/useRAGStream.d.ts +11 -11
  50. package/dist/src/react/useRAGWorkflow.d.ts +12 -12
  51. package/dist/src/retrieval/collection.d.ts +3 -1
  52. package/dist/src/retrieval/context.d.ts +1 -1
  53. package/dist/src/retrieval/embedding.d.ts +1 -1
  54. package/dist/src/retrieval/grounding.d.ts +2 -1
  55. package/dist/src/retrieval/lexical.d.ts +2 -1
  56. package/dist/src/retrieval/queryTransforms.d.ts +1 -1
  57. package/dist/src/retrieval/reranking.d.ts +1 -1
  58. package/dist/src/retrieval/retrievalStrategies.d.ts +1 -1
  59. package/dist/src/svelte/createRAG.d.ts +109 -109
  60. package/dist/src/svelte/createRAGChunkPreview.d.ts +5 -5
  61. package/dist/src/svelte/createRAGCitations.d.ts +4 -4
  62. package/dist/src/svelte/createRAGDocuments.d.ts +1 -1
  63. package/dist/src/svelte/createRAGEvaluate.d.ts +4 -4
  64. package/dist/src/svelte/createRAGGrounding.d.ts +3 -3
  65. package/dist/src/svelte/createRAGIndexAdmin.d.ts +5 -5
  66. package/dist/src/svelte/createRAGIngest.d.ts +1 -1
  67. package/dist/src/svelte/createRAGOps.d.ts +1 -1
  68. package/dist/src/svelte/createRAGSearch.d.ts +2 -1
  69. package/dist/src/svelte/createRAGSources.d.ts +6 -6
  70. package/dist/src/svelte/createRAGStatus.d.ts +2 -2
  71. package/dist/src/svelte/createRAGStream.d.ts +8 -8
  72. package/dist/src/svelte/createRAGWorkflow.d.ts +9 -9
  73. package/dist/src/sync/sync.d.ts +2 -2
  74. package/dist/src/vue/useRAG.d.ts +257 -257
  75. package/dist/src/vue/useRAGChunkPreview.d.ts +25 -25
  76. package/dist/src/vue/useRAGCitations.d.ts +4 -4
  77. package/dist/src/vue/useRAGDocuments.d.ts +9 -9
  78. package/dist/src/vue/useRAGEvaluate.d.ts +50 -50
  79. package/dist/src/vue/useRAGGrounding.d.ts +3 -3
  80. package/dist/src/vue/useRAGIndexAdmin.d.ts +35 -35
  81. package/dist/src/vue/useRAGIngest.d.ts +1 -1
  82. package/dist/src/vue/useRAGOps.d.ts +9 -9
  83. package/dist/src/vue/useRAGSearch.d.ts +30 -29
  84. package/dist/src/vue/useRAGSources.d.ts +6 -6
  85. package/dist/src/vue/useRAGStatus.d.ts +2 -2
  86. package/dist/src/vue/useRAGStream.d.ts +10 -10
  87. package/dist/src/vue/useRAGWorkflow.d.ts +11 -11
  88. package/dist/svelte/index.js.map +13 -13
  89. package/dist/types/adapters.d.ts +1 -1
  90. package/dist/types/client.d.ts +2 -1
  91. package/dist/types/core.d.ts +1 -1
  92. package/dist/types/engine.d.ts +4407 -0
  93. package/dist/types/index.d.ts +1 -0
  94. package/dist/types/presentation.d.ts +2 -1
  95. package/dist/types/retrieval.d.ts +1 -1
  96. package/dist/vue/index.js.map +13 -13
  97. package/package.json +6 -2
@@ -20813,7 +20813,10 @@ var createRAGCollection = (options) => {
20813
20813
  const embeddingProvider = resolveRAGEmbeddingProvider(options.embedding, options.store.embed, options.defaultModel);
20814
20814
  const getExpectedDimensions = () => embeddingProvider.dimensions ?? getStatus?.()?.dimensions;
20815
20815
  const embed = async (input, context) => {
20816
- const vector = await embeddingProvider.embed(input);
20816
+ const vector = await embeddingProvider.embed({
20817
+ ...input,
20818
+ kind: input.kind ?? (context === "query" ? "query" : "passage")
20819
+ });
20817
20820
  validateRAGEmbeddingDimensions(vector, getExpectedDimensions(), context);
20818
20821
  return vector;
20819
20822
  };
@@ -21273,6 +21276,115 @@ var createRAGCollection = (options) => {
21273
21276
  }))).flat();
21274
21277
  await options.store.upsert({ chunks });
21275
21278
  };
21279
+ const buildSourceUpsertInput = async (sourceId, input) => {
21280
+ const sharedMetadata = input.metadata;
21281
+ if (input.document) {
21282
+ return buildRAGUpsertInputFromDocuments({
21283
+ chunkingRegistry: input.chunkingRegistry,
21284
+ defaultChunking: input.chunking,
21285
+ documents: [
21286
+ {
21287
+ ...input.document,
21288
+ chunking: input.document.chunking ?? input.chunking,
21289
+ metadata: { ...input.document.metadata ?? {}, ...sharedMetadata },
21290
+ source: input.document.source ?? sourceId
21291
+ }
21292
+ ]
21293
+ });
21294
+ }
21295
+ if (input.upload) {
21296
+ return buildRAGUpsertInputFromUploads({
21297
+ chunkingRegistry: input.chunkingRegistry,
21298
+ extractorRegistry: input.extractorRegistry,
21299
+ extractors: input.extractors,
21300
+ uploads: [
21301
+ {
21302
+ ...input.upload,
21303
+ chunking: input.upload.chunking ?? input.chunking,
21304
+ metadata: { ...input.upload.metadata ?? {}, ...sharedMetadata },
21305
+ source: input.upload.source ?? sourceId
21306
+ }
21307
+ ]
21308
+ });
21309
+ }
21310
+ if (input.url) {
21311
+ return buildRAGUpsertInputFromURLs({
21312
+ chunkingRegistry: input.chunkingRegistry,
21313
+ extractorRegistry: input.extractorRegistry,
21314
+ extractors: input.extractors,
21315
+ urls: [
21316
+ {
21317
+ ...input.url,
21318
+ chunking: input.url.chunking ?? input.chunking,
21319
+ extractorRegistry: input.url.extractorRegistry ?? input.extractorRegistry,
21320
+ extractors: input.url.extractors ?? input.extractors,
21321
+ metadata: { ...input.url.metadata ?? {}, ...sharedMetadata },
21322
+ source: input.url.source ?? sourceId
21323
+ }
21324
+ ]
21325
+ });
21326
+ }
21327
+ throw new Error("ingestSource requires one of upload, url, or document to be provided.");
21328
+ };
21329
+ const removeSource = async (input) => {
21330
+ const sourceId = input.sourceId?.trim();
21331
+ if (!sourceId) {
21332
+ throw new Error("removeSource requires a non-empty sourceId.");
21333
+ }
21334
+ const deleteFromStore = options.store.delete;
21335
+ if (typeof deleteFromStore !== "function") {
21336
+ throw new Error("removeSource requires a store that implements delete().");
21337
+ }
21338
+ let deleted = 0;
21339
+ const chunkIds = input.chunkIds ?? (typeof input.chunkCount === "number" && input.chunkCount > 0 ? Array.from({ length: input.chunkCount }, (_unused, index) => `${sourceId}#${index}`) : undefined);
21340
+ if (chunkIds && chunkIds.length > 0) {
21341
+ deleted += await deleteFromStore({ chunkIds });
21342
+ }
21343
+ if (input.filterDelete !== false) {
21344
+ try {
21345
+ deleted += await deleteFromStore({ filter: { sourceId } });
21346
+ } catch {}
21347
+ }
21348
+ return { deleted, sourceId };
21349
+ };
21350
+ const ingestSource = async (input) => {
21351
+ const sourceId = input.sourceId?.trim();
21352
+ if (!sourceId) {
21353
+ throw new Error("ingestSource requires a non-empty sourceId.");
21354
+ }
21355
+ if (input.replace !== false) {
21356
+ await removeSource({
21357
+ chunkCount: input.previousChunkCount,
21358
+ sourceId
21359
+ });
21360
+ }
21361
+ const built = await buildSourceUpsertInput(sourceId, input);
21362
+ const embedKind = input.embedKind ?? "passage";
21363
+ const chunks = await Promise.all(built.chunks.map(async (chunk, index) => {
21364
+ const chunkId = `${sourceId}#${index}`;
21365
+ const embedding = chunk.embedding ?? await embed({
21366
+ kind: embedKind,
21367
+ model: options.defaultModel,
21368
+ text: chunk.text
21369
+ }, "chunk");
21370
+ return {
21371
+ ...chunk,
21372
+ chunkId,
21373
+ embedding,
21374
+ metadata: {
21375
+ ...chunk.metadata ?? {},
21376
+ sourceId
21377
+ },
21378
+ source: chunk.source ?? sourceId
21379
+ };
21380
+ }));
21381
+ await ingest({ chunks });
21382
+ return {
21383
+ chunkCount: chunks.length,
21384
+ chunkIds: chunks.map((chunk) => chunk.chunkId),
21385
+ sourceId
21386
+ };
21387
+ };
21276
21388
  return {
21277
21389
  clear: typeof options.store.clear === "function" ? () => options.store.clear?.() : undefined,
21278
21390
  getCapabilities: typeof getCapabilities === "function" ? () => getCapabilities() : undefined,
@@ -21280,12 +21392,16 @@ var createRAGCollection = (options) => {
21280
21392
  searchWithTrace,
21281
21393
  search,
21282
21394
  store: options.store,
21283
- ingest
21395
+ ingest,
21396
+ ingestSource,
21397
+ removeSource
21284
21398
  };
21285
21399
  };
21286
21400
  var ingestDocuments = async (collection, input) => collection.ingest(input);
21287
21401
  var ingestRAGDocuments = async (collection, input) => collection.ingest(buildRAGUpsertInputFromDocuments(input));
21288
21402
  var searchDocuments = async (collection, input) => collection.search(input);
21403
+ var ingestRAGSource = async (collection, input) => collection.ingestSource(input);
21404
+ var removeRAGSource = async (collection, input) => collection.removeSource(input);
21289
21405
  // src/chat/chat.ts
21290
21406
  import { Elysia, sse } from "elysia";
21291
21407
  import { createMemoryStore } from "@absolutejs/ai";
@@ -22231,7 +22347,7 @@ var toAssistantTextBlock = (content) => [
22231
22347
  { content, type: "text" }
22232
22348
  ];
22233
22349
  var resolveTools = (config, providerName, model) => typeof config.tools === "function" ? config.tools(providerName, model) : config.tools;
22234
- var resolveThinking = (config, providerName, model) => typeof config.thinking === "function" ? config.thinking(providerName, model) : config.thinking;
22350
+ var resolveReasoning = (config, providerName, model) => typeof config.reasoning === "function" ? config.reasoning(providerName, model) : config.reasoning;
22235
22351
  var resolveModel = (config, parsed) => {
22236
22352
  if (parsed.model) {
22237
22353
  return parsed.model;
@@ -22895,7 +23011,7 @@ var ragChat = (config) => {
22895
23011
  provider,
22896
23012
  signal: controller.signal,
22897
23013
  systemPrompt: config.systemPrompt,
22898
- thinking: resolveThinking(config, providerName, model),
23014
+ reasoning: resolveReasoning(config, providerName, model),
22899
23015
  tools: resolveTools(config, providerName, model),
22900
23016
  onComplete: async (fullResponse, usage) => {
22901
23017
  await appendAssistantMessage(conversationId, assistantMessageId, fullResponse, sources, usage, model, retrievalStartedAt, retrievedAt, retrievalDurationMs, trace);
@@ -29668,7 +29784,7 @@ var ragChat = (config) => {
29668
29784
  provider,
29669
29785
  signal: controller.signal,
29670
29786
  systemPrompt: config.systemPrompt,
29671
- thinking: resolveThinking(config, providerName, model),
29787
+ reasoning: resolveReasoning(config, providerName, model),
29672
29788
  tools: resolveTools(config, providerName, model),
29673
29789
  onComplete: async (fullResponse, usage) => {
29674
29790
  await appendAssistantMessage(conversationId, assistantMessageId, fullResponse, sources, usage, model, retrievalStartedAt, retrievedAt, retrievalDurationMs);
@@ -31176,5 +31292,5 @@ export {
31176
31292
  RAG_NATIVE_QUERY_CANDIDATE_LIMIT
31177
31293
  };
31178
31294
 
31179
- //# debugId=EBDDF31AF25C9C1C64756E2164756E21
31295
+ //# debugId=545F8D8FE97848CE64756E2164756E21
31180
31296
  //# sourceMappingURL=index.js.map