@mcp-abap-adt/llm-agent-rag 12.0.2 → 12.0.4

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.
@@ -0,0 +1,17 @@
1
+ import type { IEmbedder } from '@mcp-abap-adt/llm-agent';
2
+ export type EmbedderFactoryOpts = Record<string, unknown>;
3
+ /**
4
+ * Load peer packages for the factory names given. Call once at server
5
+ * startup before any synchronous resolve calls. Missing peer throws
6
+ * MissingProviderError up front so startup fails fast.
7
+ */
8
+ export declare function prefetchEmbedderFactories(names: readonly string[]): Promise<void>;
9
+ /**
10
+ * Sync resolve from prefetched cache.
11
+ * Caller MUST have awaited prefetchEmbedderFactories(names) first.
12
+ */
13
+ export declare function resolvePrefetchedEmbedder(name: string, opts: EmbedderFactoryOpts): IEmbedder;
14
+ export declare const builtInEmbedderFactories: Record<string, (opts: EmbedderFactoryOpts) => IEmbedder>;
15
+ /** Test-only: reset the prefetched map (for unit tests). */
16
+ export declare function _resetPrefetchedForTests(): void;
17
+ //# sourceMappingURL=embedder-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedder-factories.d.ts","sourceRoot":"","sources":["../src/embedder-factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkB1D;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,mBAAmB,GACxB,SAAS,CAYX;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAC3C,MAAM,EACN,CAAC,IAAI,EAAE,mBAAmB,KAAK,SAAS,CAMzC,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
@@ -0,0 +1,64 @@
1
+ import { MissingProviderError } from '@mcp-abap-adt/llm-agent';
2
+ const PACKAGE_BY_NAME = {
3
+ openai: '@mcp-abap-adt/openai-embedder',
4
+ ollama: '@mcp-abap-adt/ollama-embedder',
5
+ 'sap-ai-core': '@mcp-abap-adt/sap-aicore-embedder',
6
+ 'sap-aicore': '@mcp-abap-adt/sap-aicore-embedder',
7
+ };
8
+ const EXPORT_BY_NAME = {
9
+ openai: 'OpenAiEmbedder',
10
+ ollama: 'OllamaEmbedder',
11
+ 'sap-ai-core': 'SapAiCoreEmbedder',
12
+ 'sap-aicore': 'SapAiCoreEmbedder',
13
+ };
14
+ const prefetched = new Map();
15
+ /**
16
+ * Load peer packages for the factory names given. Call once at server
17
+ * startup before any synchronous resolve calls. Missing peer throws
18
+ * MissingProviderError up front so startup fails fast.
19
+ */
20
+ export async function prefetchEmbedderFactories(names) {
21
+ for (const name of names) {
22
+ if (prefetched.has(name))
23
+ continue;
24
+ const packageName = PACKAGE_BY_NAME[name];
25
+ if (!packageName) {
26
+ throw new MissingProviderError('(unknown)', name);
27
+ }
28
+ try {
29
+ const mod = (await import(packageName));
30
+ prefetched.set(name, mod);
31
+ }
32
+ catch {
33
+ throw new MissingProviderError(packageName, name);
34
+ }
35
+ }
36
+ }
37
+ /**
38
+ * Sync resolve from prefetched cache.
39
+ * Caller MUST have awaited prefetchEmbedderFactories(names) first.
40
+ */
41
+ export function resolvePrefetchedEmbedder(name, opts) {
42
+ const mod = prefetched.get(name);
43
+ if (!mod) {
44
+ const packageName = PACKAGE_BY_NAME[name] ?? '(unknown)';
45
+ throw new MissingProviderError(packageName, name);
46
+ }
47
+ const className = EXPORT_BY_NAME[name];
48
+ const Cls = mod[className];
49
+ if (!Cls) {
50
+ throw new MissingProviderError(PACKAGE_BY_NAME[name] ?? '(unknown)', name);
51
+ }
52
+ return new Cls(opts);
53
+ }
54
+ export const builtInEmbedderFactories = {
55
+ openai: (opts) => resolvePrefetchedEmbedder('openai', opts),
56
+ ollama: (opts) => resolvePrefetchedEmbedder('ollama', opts),
57
+ 'sap-ai-core': (opts) => resolvePrefetchedEmbedder('sap-ai-core', opts),
58
+ 'sap-aicore': (opts) => resolvePrefetchedEmbedder('sap-aicore', opts),
59
+ };
60
+ /** Test-only: reset the prefetched map (for unit tests). */
61
+ export function _resetPrefetchedForTests() {
62
+ prefetched.clear();
63
+ }
64
+ //# sourceMappingURL=embedder-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedder-factories.js","sourceRoot":"","sources":["../src/embedder-factories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,+BAA+B;IACvC,MAAM,EAAE,+BAA+B;IACvC,aAAa,EAAE,mCAAmC;IAClD,YAAY,EAAE,mCAAmC;CAClD,CAAC;AAEF,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;CAClC,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAwB;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAA4B,CAAC;YACnE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,IAAyB;IAEzB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;QACzD,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAiD,CAAC;IAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC3D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC;IACvE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAAC;CACtE,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB;IACtC,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { _resetPrefetchedForTests, builtInEmbedderFactories, type EmbedderFactoryOpts, prefetchEmbedderFactories, resolvePrefetchedEmbedder, } from './embedder-factories.js';
2
+ export { _resetPrefetchedRagForTests, type EmbedderResolutionConfig, type EmbedderResolutionOptions, makeRag, prefetchRagFactories, type RagFactoryOpts, type RagResolutionConfig, type RagResolutionOptions, ragBackendNames, resolveEmbedder, resolveRag, } from './rag-factories.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,OAAO,EACP,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,eAAe,EACf,eAAe,EACf,UAAU,GACX,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { _resetPrefetchedForTests, builtInEmbedderFactories, prefetchEmbedderFactories, resolvePrefetchedEmbedder, } from './embedder-factories.js';
2
+ export { _resetPrefetchedRagForTests, makeRag, prefetchRagFactories, ragBackendNames, resolveEmbedder, resolveRag, } from './rag-factories.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EAExB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,2BAA2B,EAG3B,OAAO,EACP,oBAAoB,EAIpB,eAAe,EACf,eAAe,EACf,UAAU,GACX,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,109 @@
1
+ import type { EmbedderFactory, IDocumentEnricher, IEmbedder, IQueryPreprocessor, IRag, ISearchStrategy } from '@mcp-abap-adt/llm-agent';
2
+ export interface RagFactoryOpts {
3
+ url?: string;
4
+ apiKey?: string;
5
+ collectionName?: string;
6
+ embedder: IEmbedder;
7
+ timeoutMs?: number;
8
+ dimension?: number;
9
+ autoCreateSchema?: boolean;
10
+ connectionString?: string;
11
+ host?: string;
12
+ port?: number;
13
+ user?: string;
14
+ password?: string;
15
+ database?: string;
16
+ schema?: string;
17
+ poolMax?: number;
18
+ connectTimeout?: number;
19
+ }
20
+ /**
21
+ * Load peer packages for the RAG backend names given. Call once at server
22
+ * startup before any synchronous resolveRag calls. Missing peer throws
23
+ * MissingProviderError up front so startup fails fast.
24
+ */
25
+ export declare function prefetchRagFactories(names: readonly string[]): Promise<void>;
26
+ /** Sync resolve. Caller MUST have awaited prefetchRagFactories(names) first. */
27
+ export declare function resolveRag(name: string, opts: RagFactoryOpts): IRag;
28
+ /** Test-only: reset the prefetched map. */
29
+ export declare function _resetPrefetchedRagForTests(): void;
30
+ export declare const ragBackendNames: readonly string[];
31
+ export interface EmbedderResolutionConfig {
32
+ /** Embedder name — looked up in the factory registry. Default: 'ollama' */
33
+ embedder?: string;
34
+ url?: string;
35
+ apiKey?: string;
36
+ model?: string;
37
+ timeoutMs?: number;
38
+ /** SAP AI Core resource group (used when embedder is 'sap-ai-core' / 'sap-aicore'). */
39
+ resourceGroup?: string;
40
+ /**
41
+ * SAP AI Core scenario for the embedding model deployment.
42
+ * `'orchestration'` (default) uses the SAP SDK; `'foundation-models'` calls the REST inference API.
43
+ */
44
+ scenario?: 'orchestration' | 'foundation-models';
45
+ }
46
+ export interface EmbedderResolutionOptions {
47
+ /** Pre-built embedder injected by the consumer (takes precedence). */
48
+ injectedEmbedder?: IEmbedder;
49
+ /** Additional embedder factories (merged with built-ins). */
50
+ extraFactories?: Record<string, EmbedderFactory>;
51
+ }
52
+ /**
53
+ * Resolve an IEmbedder from config.
54
+ *
55
+ * Priority:
56
+ * 1. Injected embedder instance (DI)
57
+ * 2. Named factory from registry (YAML `embedder: <name>`)
58
+ * 3. Default: 'ollama'
59
+ */
60
+ export declare function resolveEmbedder(cfg: EmbedderResolutionConfig, options?: EmbedderResolutionOptions): IEmbedder;
61
+ export interface RagResolutionConfig {
62
+ type?: 'ollama' | 'openai' | 'in-memory' | 'qdrant' | 'hana-vector' | 'pg-vector';
63
+ embedder?: string;
64
+ url?: string;
65
+ apiKey?: string;
66
+ model?: string;
67
+ collectionName?: string;
68
+ dedupThreshold?: number;
69
+ vectorWeight?: number;
70
+ keywordWeight?: number;
71
+ timeoutMs?: number;
72
+ /** Search scoring strategy for hybrid RAG stores (VectorRag). */
73
+ strategy?: ISearchStrategy;
74
+ /** Query preprocessors for this RAG store. */
75
+ queryPreprocessors?: IQueryPreprocessor[];
76
+ /** Document enrichers for this RAG store. */
77
+ documentEnrichers?: IDocumentEnricher[];
78
+ /** Connection string or URL for external vector backends. */
79
+ connectionString?: string;
80
+ host?: string;
81
+ port?: number;
82
+ user?: string;
83
+ password?: string;
84
+ database?: string;
85
+ schema?: string;
86
+ dimension?: number;
87
+ autoCreateSchema?: boolean;
88
+ poolMax?: number;
89
+ connectTimeout?: number;
90
+ /** SAP AI Core resource group (used when embedder is 'sap-ai-core' / 'sap-aicore'). */
91
+ resourceGroup?: string;
92
+ /**
93
+ * SAP AI Core scenario for the embedding model deployment.
94
+ * `'orchestration'` (default) uses the SAP SDK; `'foundation-models'` calls the REST inference API.
95
+ */
96
+ scenario?: 'orchestration' | 'foundation-models';
97
+ }
98
+ export interface RagResolutionOptions {
99
+ /** Pre-built embedder injected by the consumer. */
100
+ injectedEmbedder?: IEmbedder;
101
+ /** Additional embedder factories (merged with built-ins). */
102
+ extraFactories?: Record<string, EmbedderFactory>;
103
+ }
104
+ /**
105
+ * Create an IRag from a declarative store config.
106
+ * This is the only function that knows about concrete RAG implementations.
107
+ */
108
+ export declare function makeRag(cfg: RagResolutionConfig, options?: RagResolutionOptions): Promise<IRag>;
109
+ //# sourceMappingURL=rag-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-factories.d.ts","sourceRoot":"","sources":["../src/rag-factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAejC,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAkBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAYnE;AAED,2CAA2C;AAC3C,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,eAAO,MAAM,eAAe,EAEvB,SAAS,MAAM,EAAE,CAAC;AA4CvB,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;CAClD;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAClD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,OAAO,CAAC,EAAE,yBAAyB,GAClC,SAAS,CA8BX;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EACD,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,aAAa,GACb,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,mBAAmB,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAiJf"}
@@ -0,0 +1,257 @@
1
+ import { InMemoryRag, MissingProviderError, VectorRag, } from '@mcp-abap-adt/llm-agent';
2
+ import { builtInEmbedderFactories, prefetchEmbedderFactories, } from './embedder-factories.js';
3
+ const PACKAGE_BY_NAME = {
4
+ qdrant: '@mcp-abap-adt/qdrant-rag',
5
+ 'hana-vector': '@mcp-abap-adt/hana-vector-rag',
6
+ 'pg-vector': '@mcp-abap-adt/pg-vector-rag',
7
+ };
8
+ const EXPORT_BY_NAME = {
9
+ qdrant: 'QdrantRag',
10
+ 'hana-vector': 'HanaVectorRag',
11
+ 'pg-vector': 'PgVectorRag',
12
+ };
13
+ const prefetched = new Map();
14
+ /**
15
+ * Load peer packages for the RAG backend names given. Call once at server
16
+ * startup before any synchronous resolveRag calls. Missing peer throws
17
+ * MissingProviderError up front so startup fails fast.
18
+ */
19
+ export async function prefetchRagFactories(names) {
20
+ for (const name of names) {
21
+ if (prefetched.has(name))
22
+ continue;
23
+ const pkg = PACKAGE_BY_NAME[name];
24
+ if (!pkg)
25
+ throw new MissingProviderError('(unknown)', name);
26
+ try {
27
+ const mod = (await import(pkg));
28
+ prefetched.set(name, mod);
29
+ }
30
+ catch {
31
+ throw new MissingProviderError(pkg, name);
32
+ }
33
+ }
34
+ }
35
+ /** Sync resolve. Caller MUST have awaited prefetchRagFactories(names) first. */
36
+ export function resolveRag(name, opts) {
37
+ const mod = prefetched.get(name);
38
+ if (!mod) {
39
+ const pkg = PACKAGE_BY_NAME[name] ?? '(unknown)';
40
+ throw new MissingProviderError(pkg, name);
41
+ }
42
+ const exportName = EXPORT_BY_NAME[name];
43
+ const Cls = mod[exportName];
44
+ if (!Cls) {
45
+ throw new MissingProviderError(PACKAGE_BY_NAME[name] ?? '(unknown)', name);
46
+ }
47
+ return new Cls(opts);
48
+ }
49
+ /** Test-only: reset the prefetched map. */
50
+ export function _resetPrefetchedRagForTests() {
51
+ prefetched.clear();
52
+ }
53
+ export const ragBackendNames = Object.freeze(Object.keys(PACKAGE_BY_NAME));
54
+ // ---------------------------------------------------------------------------
55
+ // OllamaRag dynamic loader
56
+ // ---------------------------------------------------------------------------
57
+ function isMissingOptionalPeer(err, pkg) {
58
+ if (!(err instanceof Error))
59
+ return false;
60
+ // Node ESM resolver
61
+ if (err.code === 'ERR_MODULE_NOT_FOUND')
62
+ return true;
63
+ // CJS / generic
64
+ if (err.message.includes(pkg) &&
65
+ err.message.toLowerCase().includes('cannot find'))
66
+ return true;
67
+ return false;
68
+ }
69
+ async function loadOllamaRag() {
70
+ try {
71
+ const mod = await import('@mcp-abap-adt/ollama-embedder');
72
+ return mod.OllamaRag;
73
+ }
74
+ catch (err) {
75
+ if (isMissingOptionalPeer(err, '@mcp-abap-adt/ollama-embedder')) {
76
+ throw new MissingProviderError('@mcp-abap-adt/ollama-embedder', 'ollama');
77
+ }
78
+ throw err;
79
+ }
80
+ }
81
+ /**
82
+ * Resolve an IEmbedder from config.
83
+ *
84
+ * Priority:
85
+ * 1. Injected embedder instance (DI)
86
+ * 2. Named factory from registry (YAML `embedder: <name>`)
87
+ * 3. Default: 'ollama'
88
+ */
89
+ export function resolveEmbedder(cfg, options) {
90
+ if (options?.injectedEmbedder)
91
+ return options.injectedEmbedder;
92
+ const name = cfg.embedder ?? 'ollama';
93
+ const opts = {
94
+ url: cfg.url,
95
+ apiKey: cfg.apiKey,
96
+ model: cfg.model,
97
+ timeoutMs: cfg.timeoutMs,
98
+ resourceGroup: cfg.resourceGroup,
99
+ scenario: cfg.scenario,
100
+ };
101
+ // Check built-in prefetch-based factories first
102
+ if (name in builtInEmbedderFactories) {
103
+ return builtInEmbedderFactories[name](opts);
104
+ }
105
+ // Fall back to consumer-registered extra factories
106
+ const extraFactory = options?.extraFactories?.[name];
107
+ if (!extraFactory) {
108
+ const known = [
109
+ ...Object.keys(builtInEmbedderFactories),
110
+ ...Object.keys(options?.extraFactories ?? {}),
111
+ ];
112
+ throw new Error(`Unknown embedder "${name}". Register a factory or use: ${known.join(', ')}`);
113
+ }
114
+ return extraFactory(opts);
115
+ }
116
+ /**
117
+ * Create an IRag from a declarative store config.
118
+ * This is the only function that knows about concrete RAG implementations.
119
+ */
120
+ export async function makeRag(cfg, options) {
121
+ if (cfg.type === 'in-memory') {
122
+ // When an embedder is specified, upgrade to VectorRag for hybrid scoring
123
+ if (cfg.embedder || options?.injectedEmbedder) {
124
+ if (!options?.injectedEmbedder) {
125
+ await prefetchEmbedderFactories([cfg.embedder ?? 'ollama']);
126
+ }
127
+ const embedder = resolveEmbedder(cfg, options);
128
+ return new VectorRag(embedder, {
129
+ dedupThreshold: cfg.dedupThreshold,
130
+ vectorWeight: cfg.vectorWeight,
131
+ keywordWeight: cfg.keywordWeight,
132
+ strategy: cfg.strategy,
133
+ queryPreprocessors: cfg.queryPreprocessors,
134
+ documentEnrichers: cfg.documentEnrichers,
135
+ });
136
+ }
137
+ return new InMemoryRag({
138
+ dedupThreshold: cfg.dedupThreshold,
139
+ queryPreprocessors: cfg.queryPreprocessors,
140
+ documentEnrichers: cfg.documentEnrichers,
141
+ });
142
+ }
143
+ if (cfg.type === 'qdrant') {
144
+ if (!cfg.url) {
145
+ throw new Error('Qdrant URL is required for qdrant RAG type');
146
+ }
147
+ const embedderName = cfg.embedder ?? 'ollama';
148
+ if (!options?.injectedEmbedder) {
149
+ await prefetchEmbedderFactories([embedderName]);
150
+ }
151
+ await prefetchRagFactories(['qdrant']);
152
+ const embedder = resolveEmbedder(cfg, options);
153
+ return resolveRag('qdrant', {
154
+ url: cfg.url,
155
+ collectionName: cfg.collectionName ?? 'llm-agent',
156
+ embedder,
157
+ apiKey: cfg.apiKey,
158
+ timeoutMs: cfg.timeoutMs,
159
+ });
160
+ }
161
+ if (cfg.type === 'hana-vector') {
162
+ if (!cfg.collectionName) {
163
+ throw new Error('collectionName is required for hana-vector RAG type');
164
+ }
165
+ const embedderName = cfg.embedder ?? 'ollama';
166
+ if (!options?.injectedEmbedder) {
167
+ await prefetchEmbedderFactories([embedderName]);
168
+ }
169
+ await prefetchRagFactories(['hana-vector']);
170
+ const embedder = resolveEmbedder(cfg, options);
171
+ return resolveRag('hana-vector', {
172
+ connectionString: cfg.connectionString,
173
+ host: cfg.host,
174
+ port: cfg.port,
175
+ user: cfg.user,
176
+ password: cfg.password,
177
+ schema: cfg.schema,
178
+ collectionName: cfg.collectionName,
179
+ dimension: cfg.dimension,
180
+ autoCreateSchema: cfg.autoCreateSchema,
181
+ poolMax: cfg.poolMax,
182
+ connectTimeout: cfg.connectTimeout,
183
+ embedder,
184
+ });
185
+ }
186
+ if (cfg.type === 'pg-vector') {
187
+ if (!cfg.collectionName) {
188
+ throw new Error('collectionName is required for pg-vector RAG type');
189
+ }
190
+ const embedderName = cfg.embedder ?? 'ollama';
191
+ if (!options?.injectedEmbedder) {
192
+ await prefetchEmbedderFactories([embedderName]);
193
+ }
194
+ await prefetchRagFactories(['pg-vector']);
195
+ const embedder = resolveEmbedder(cfg, options);
196
+ return resolveRag('pg-vector', {
197
+ connectionString: cfg.connectionString,
198
+ host: cfg.host,
199
+ port: cfg.port,
200
+ user: cfg.user,
201
+ password: cfg.password,
202
+ database: cfg.database,
203
+ schema: cfg.schema,
204
+ collectionName: cfg.collectionName,
205
+ dimension: cfg.dimension,
206
+ autoCreateSchema: cfg.autoCreateSchema,
207
+ poolMax: cfg.poolMax,
208
+ connectTimeout: cfg.connectTimeout,
209
+ embedder,
210
+ });
211
+ }
212
+ if (cfg.type === 'openai') {
213
+ const embedderName = cfg.embedder ?? 'openai';
214
+ if (!options?.injectedEmbedder) {
215
+ await prefetchEmbedderFactories([embedderName]);
216
+ }
217
+ const embedder = resolveEmbedder({ ...cfg, embedder: embedderName }, options);
218
+ return new VectorRag(embedder, {
219
+ dedupThreshold: cfg.dedupThreshold,
220
+ vectorWeight: cfg.vectorWeight,
221
+ keywordWeight: cfg.keywordWeight,
222
+ strategy: cfg.strategy,
223
+ queryPreprocessors: cfg.queryPreprocessors,
224
+ documentEnrichers: cfg.documentEnrichers,
225
+ });
226
+ }
227
+ // Default: 'ollama'
228
+ // Use convenience OllamaRag when no custom embedder is involved
229
+ if (!options?.injectedEmbedder && !cfg.embedder) {
230
+ const OllamaRag = await loadOllamaRag();
231
+ return new OllamaRag({
232
+ ollamaUrl: cfg.url,
233
+ model: cfg.model,
234
+ timeoutMs: cfg.timeoutMs,
235
+ dedupThreshold: cfg.dedupThreshold,
236
+ vectorWeight: cfg.vectorWeight,
237
+ keywordWeight: cfg.keywordWeight,
238
+ strategy: cfg.strategy,
239
+ queryPreprocessors: cfg.queryPreprocessors,
240
+ documentEnrichers: cfg.documentEnrichers,
241
+ });
242
+ }
243
+ const embedderName = cfg.embedder ?? 'ollama';
244
+ if (!options?.injectedEmbedder) {
245
+ await prefetchEmbedderFactories([embedderName]);
246
+ }
247
+ const embedder = resolveEmbedder({ ...cfg, embedder: embedderName }, options);
248
+ return new VectorRag(embedder, {
249
+ dedupThreshold: cfg.dedupThreshold,
250
+ vectorWeight: cfg.vectorWeight,
251
+ keywordWeight: cfg.keywordWeight,
252
+ strategy: cfg.strategy,
253
+ queryPreprocessors: cfg.queryPreprocessors,
254
+ documentEnrichers: cfg.documentEnrichers,
255
+ });
256
+ }
257
+ //# sourceMappingURL=rag-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-factories.js","sourceRoot":"","sources":["../src/rag-factories.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/llm-agent-rag",
3
- "version": "12.0.2",
3
+ "version": "12.0.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
9
  "types": "./dist/index.d.ts",
10
- "import": "./dist/index.js"
10
+ "import": "./dist/index.js",
11
+ "default": "./dist/index.js"
11
12
  }
12
13
  },
13
14
  "files": [
@@ -20,7 +21,7 @@
20
21
  "test": "node --import tsx/esm --test --test-reporter=spec 'src/**/*.test.ts'"
21
22
  },
22
23
  "dependencies": {
23
- "@mcp-abap-adt/llm-agent": "*"
24
+ "@mcp-abap-adt/llm-agent": "^12.0.4"
24
25
  },
25
26
  "peerDependencies": {
26
27
  "@mcp-abap-adt/openai-embedder": "^12.0.0",
@@ -51,12 +52,12 @@
51
52
  }
52
53
  },
53
54
  "devDependencies": {
54
- "@mcp-abap-adt/openai-embedder": "*",
55
- "@mcp-abap-adt/ollama-embedder": "*",
56
- "@mcp-abap-adt/sap-aicore-embedder": "*",
57
- "@mcp-abap-adt/qdrant-rag": "*",
58
- "@mcp-abap-adt/hana-vector-rag": "*",
59
- "@mcp-abap-adt/pg-vector-rag": "*"
55
+ "@mcp-abap-adt/openai-embedder": "^12.0.4",
56
+ "@mcp-abap-adt/ollama-embedder": "^12.0.4",
57
+ "@mcp-abap-adt/sap-aicore-embedder": "^12.0.4",
58
+ "@mcp-abap-adt/qdrant-rag": "^12.0.4",
59
+ "@mcp-abap-adt/hana-vector-rag": "^12.0.4",
60
+ "@mcp-abap-adt/pg-vector-rag": "^12.0.4"
60
61
  },
61
62
  "publishConfig": {
62
63
  "access": "public"