@retrivora-ai/rag-engine 1.7.9 → 1.8.1

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 (47) hide show
  1. package/dist/DocumentChunker-Dh9TvmGG.d.mts +45 -0
  2. package/dist/DocumentChunker-Dh9TvmGG.d.ts +45 -0
  3. package/dist/{index-wCRqMtdX.d.mts → ILLMProvider-BfRgI1Xh.d.mts} +59 -1
  4. package/dist/{index-wCRqMtdX.d.ts → ILLMProvider-BfRgI1Xh.d.ts} +59 -1
  5. package/dist/MultiTablePostgresProvider-YY7LPNJK.mjs +8 -0
  6. package/dist/{chunk-UHGYLTTY.mjs → chunk-BFYLQYQU.mjs} +846 -458
  7. package/dist/chunk-R3RGUMHE.mjs +218 -0
  8. package/dist/handlers/index.d.mts +2 -2
  9. package/dist/handlers/index.d.ts +2 -2
  10. package/dist/handlers/index.js +1033 -622
  11. package/dist/handlers/index.mjs +1 -1
  12. package/dist/{index-BDqz2_Yu.d.ts → index-1Z4GuYBi.d.ts} +7 -1
  13. package/dist/{index-DhsG2o5q.d.mts → index-BV0z5mb6.d.mts} +7 -1
  14. package/dist/index.d.mts +3 -3
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +507 -352
  17. package/dist/index.mjs +427 -253
  18. package/dist/server.d.mts +35 -5
  19. package/dist/server.d.ts +35 -5
  20. package/dist/server.js +1183 -795
  21. package/dist/server.mjs +163 -176
  22. package/package.json +4 -2
  23. package/src/app/page.tsx +1 -2
  24. package/src/components/DynamicChart.tsx +10 -35
  25. package/src/components/MessageBubble.tsx +223 -74
  26. package/src/components/ProductCard.tsx +2 -2
  27. package/src/components/VisualizationRenderer.tsx +347 -247
  28. package/src/config/RagConfig.ts +5 -0
  29. package/src/config/serverConfig.ts +3 -1
  30. package/src/core/Pipeline.ts +70 -209
  31. package/src/core/ProviderRegistry.ts +2 -2
  32. package/src/core/VectorPlugin.ts +9 -0
  33. package/src/handlers/index.ts +23 -7
  34. package/src/hooks/useRagChat.ts +2 -2
  35. package/src/llm/LLMFactory.ts +54 -2
  36. package/src/llm/providers/AnthropicProvider.ts +12 -8
  37. package/src/llm/providers/GeminiProvider.ts +188 -143
  38. package/src/llm/providers/OllamaProvider.ts +7 -3
  39. package/src/llm/providers/OpenAIProvider.ts +12 -8
  40. package/src/types/chat.ts +6 -0
  41. package/src/types/index.ts +81 -0
  42. package/src/utils/SchemaMapper.ts +129 -0
  43. package/src/utils/UITransformer.ts +524 -194
  44. package/dist/DocumentChunker-Bmscbh-X.d.ts +0 -93
  45. package/dist/DocumentChunker-DCuxrOdM.d.mts +0 -93
  46. package/dist/PostgreSQLProvider-BMOETDZA.mjs +0 -8
  47. package/dist/chunk-FLOSGE6A.mjs +0 -202
package/dist/server.d.mts CHANGED
@@ -1,8 +1,7 @@
1
- import { j as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, h as RagConfig, I as IngestDocument, C as ChatMessage, d as ChatResponse, l as RetrievalResult, i as UpsertDocument, V as VectorMatch, G as GraphDBConfig, m as GraphNode, n as Edge, o as GraphSearchResult, k as VectorDBProvider, f as LLMProvider, e as EmbeddingProvider, g as RAGConfig, U as UIConfig, c as ChatOptions } from './index-wCRqMtdX.mjs';
2
- import { I as ILLMProvider, E as EmbedOptions } from './DocumentChunker-DCuxrOdM.mjs';
3
- export { C as Chunk, a as ChunkOptions, D as DocumentChunker } from './DocumentChunker-DCuxrOdM.mjs';
4
- import { H as HealthCheckResult, I as IProviderValidator, a as IProviderHealthChecker } from './index-DhsG2o5q.mjs';
5
- export { C as ConfigValidator, V as ValidationError, b as VectorPlugin, c as createChatHandler, d as createHealthHandler, e as createIngestHandler, f as createStreamHandler, g as createUploadHandler, s as sseErrorFrame, h as sseFrame, i as sseMetaFrame, j as sseTextFrame } from './index-DhsG2o5q.mjs';
1
+ import { l as VectorDBConfig, L as LLMConfig, e as EmbeddingConfig, j as RagConfig, I as ILLMProvider, g as IngestDocument, C as ChatMessage, d as ChatResponse, n as RetrievalResult, k as UpsertDocument, V as VectorMatch, G as GraphDBConfig, o as GraphNode, p as Edge, q as GraphSearchResult, m as VectorDBProvider, h as LLMProvider, f as EmbeddingProvider, i as RAGConfig, U as UIConfig, c as ChatOptions, E as EmbedOptions } from './ILLMProvider-BfRgI1Xh.mjs';
2
+ export { C as Chunk, a as ChunkOptions, D as DocumentChunker } from './DocumentChunker-Dh9TvmGG.mjs';
3
+ import { H as HealthCheckResult, I as IProviderValidator, a as IProviderHealthChecker } from './index-BV0z5mb6.mjs';
4
+ export { C as ConfigValidator, V as ValidationError, b as VectorPlugin, c as createChatHandler, d as createHealthHandler, e as createIngestHandler, f as createStreamHandler, g as createUploadHandler, s as sseErrorFrame, h as sseFrame, i as sseMetaFrame, j as sseTextFrame } from './index-BV0z5mb6.mjs';
6
5
  import 'next/server';
7
6
 
8
7
  /**
@@ -122,6 +121,11 @@ declare class Pipeline {
122
121
  private embeddingCache;
123
122
  private initialised;
124
123
  constructor(config: RagConfig);
124
+ /**
125
+ * Expose the underlying LLM provider (set after initialize()).
126
+ * Used by the stream handler to pass to UITransformer.analyzeAndDecide().
127
+ */
128
+ getLLMProvider(): ILLMProvider | undefined;
125
129
  initialize(): Promise<void>;
126
130
  /**
127
131
  * Ingest documents with automatic chunking, embedding, and batch upsert.
@@ -158,6 +162,7 @@ declare class Pipeline {
158
162
  * Universal retrieval method combining all enabled providers.
159
163
  * Uses an LRU-bounded embedding cache to avoid re-embedding the same query.
160
164
  */
165
+ private generateUiTransformation;
161
166
  retrieve(query: string, options: {
162
167
  namespace?: string;
163
168
  topK?: number;
@@ -871,6 +876,31 @@ declare class UniversalVectorProvider extends BaseVectorProvider {
871
876
  * LLMFactory — instantiates the correct ILLMProvider based on llmConfig.provider.
872
877
  */
873
878
  declare class LLMFactory {
879
+ /**
880
+ * Register a custom LLM provider factory at runtime.
881
+ *
882
+ * Use this to add support for any LLM backend (Azure OpenAI, Cohere, Mistral,
883
+ * Bedrock, etc.) without modifying this library's source code.
884
+ *
885
+ * @example
886
+ * // In your Next.js app initialization:
887
+ * import { LLMFactory } from '@retrivora-ai/rag-engine/server';
888
+ * import { MyCustomProvider } from './providers/MyCustomProvider';
889
+ *
890
+ * LLMFactory.register('my-provider', (config) => new MyCustomProvider(config));
891
+ *
892
+ * // Then set in your .env.local:
893
+ * // LLM_PROVIDER=my-provider
894
+ */
895
+ static register(name: string, factory: (config: LLMConfig) => ILLMProvider): void;
896
+ /**
897
+ * Unregister a previously registered custom provider.
898
+ */
899
+ static unregister(name: string): void;
900
+ /**
901
+ * List all registered provider names (built-in + custom).
902
+ */
903
+ static listProviders(): string[];
874
904
  static create(llmConfig: LLMConfig, embeddingConfig?: EmbeddingConfig): ILLMProvider;
875
905
  static getValidator(provider: LLMProvider): IProviderValidator | null;
876
906
  static getHealthChecker(provider: LLMProvider): IProviderHealthChecker | null;
package/dist/server.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import { j as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, h as RagConfig, I as IngestDocument, C as ChatMessage, d as ChatResponse, l as RetrievalResult, i as UpsertDocument, V as VectorMatch, G as GraphDBConfig, m as GraphNode, n as Edge, o as GraphSearchResult, k as VectorDBProvider, f as LLMProvider, e as EmbeddingProvider, g as RAGConfig, U as UIConfig, c as ChatOptions } from './index-wCRqMtdX.js';
2
- import { I as ILLMProvider, E as EmbedOptions } from './DocumentChunker-Bmscbh-X.js';
3
- export { C as Chunk, a as ChunkOptions, D as DocumentChunker } from './DocumentChunker-Bmscbh-X.js';
4
- import { H as HealthCheckResult, I as IProviderValidator, a as IProviderHealthChecker } from './index-BDqz2_Yu.js';
5
- export { C as ConfigValidator, V as ValidationError, b as VectorPlugin, c as createChatHandler, d as createHealthHandler, e as createIngestHandler, f as createStreamHandler, g as createUploadHandler, s as sseErrorFrame, h as sseFrame, i as sseMetaFrame, j as sseTextFrame } from './index-BDqz2_Yu.js';
1
+ import { l as VectorDBConfig, L as LLMConfig, e as EmbeddingConfig, j as RagConfig, I as ILLMProvider, g as IngestDocument, C as ChatMessage, d as ChatResponse, n as RetrievalResult, k as UpsertDocument, V as VectorMatch, G as GraphDBConfig, o as GraphNode, p as Edge, q as GraphSearchResult, m as VectorDBProvider, h as LLMProvider, f as EmbeddingProvider, i as RAGConfig, U as UIConfig, c as ChatOptions, E as EmbedOptions } from './ILLMProvider-BfRgI1Xh.js';
2
+ export { C as Chunk, a as ChunkOptions, D as DocumentChunker } from './DocumentChunker-Dh9TvmGG.js';
3
+ import { H as HealthCheckResult, I as IProviderValidator, a as IProviderHealthChecker } from './index-1Z4GuYBi.js';
4
+ export { C as ConfigValidator, V as ValidationError, b as VectorPlugin, c as createChatHandler, d as createHealthHandler, e as createIngestHandler, f as createStreamHandler, g as createUploadHandler, s as sseErrorFrame, h as sseFrame, i as sseMetaFrame, j as sseTextFrame } from './index-1Z4GuYBi.js';
6
5
  import 'next/server';
7
6
 
8
7
  /**
@@ -122,6 +121,11 @@ declare class Pipeline {
122
121
  private embeddingCache;
123
122
  private initialised;
124
123
  constructor(config: RagConfig);
124
+ /**
125
+ * Expose the underlying LLM provider (set after initialize()).
126
+ * Used by the stream handler to pass to UITransformer.analyzeAndDecide().
127
+ */
128
+ getLLMProvider(): ILLMProvider | undefined;
125
129
  initialize(): Promise<void>;
126
130
  /**
127
131
  * Ingest documents with automatic chunking, embedding, and batch upsert.
@@ -158,6 +162,7 @@ declare class Pipeline {
158
162
  * Universal retrieval method combining all enabled providers.
159
163
  * Uses an LRU-bounded embedding cache to avoid re-embedding the same query.
160
164
  */
165
+ private generateUiTransformation;
161
166
  retrieve(query: string, options: {
162
167
  namespace?: string;
163
168
  topK?: number;
@@ -871,6 +876,31 @@ declare class UniversalVectorProvider extends BaseVectorProvider {
871
876
  * LLMFactory — instantiates the correct ILLMProvider based on llmConfig.provider.
872
877
  */
873
878
  declare class LLMFactory {
879
+ /**
880
+ * Register a custom LLM provider factory at runtime.
881
+ *
882
+ * Use this to add support for any LLM backend (Azure OpenAI, Cohere, Mistral,
883
+ * Bedrock, etc.) without modifying this library's source code.
884
+ *
885
+ * @example
886
+ * // In your Next.js app initialization:
887
+ * import { LLMFactory } from '@retrivora-ai/rag-engine/server';
888
+ * import { MyCustomProvider } from './providers/MyCustomProvider';
889
+ *
890
+ * LLMFactory.register('my-provider', (config) => new MyCustomProvider(config));
891
+ *
892
+ * // Then set in your .env.local:
893
+ * // LLM_PROVIDER=my-provider
894
+ */
895
+ static register(name: string, factory: (config: LLMConfig) => ILLMProvider): void;
896
+ /**
897
+ * Unregister a previously registered custom provider.
898
+ */
899
+ static unregister(name: string): void;
900
+ /**
901
+ * List all registered provider names (built-in + custom).
902
+ */
903
+ static listProviders(): string[];
874
904
  static create(llmConfig: LLMConfig, embeddingConfig?: EmbeddingConfig): ILLMProvider;
875
905
  static getValidator(provider: LLMProvider): IProviderValidator | null;
876
906
  static getHealthChecker(provider: LLMProvider): IProviderHealthChecker | null;