@mcp-abap-adt/llm-agent-server 10.0.0 → 11.1.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.
- package/dist/agent.d.ts +1 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js.map +1 -1
- package/dist/agents/anthropic-agent.d.ts +1 -1
- package/dist/agents/anthropic-agent.d.ts.map +1 -1
- package/dist/agents/deepseek-agent.d.ts +1 -1
- package/dist/agents/deepseek-agent.d.ts.map +1 -1
- package/dist/agents/openai-agent.d.ts +1 -1
- package/dist/agents/openai-agent.d.ts.map +1 -1
- package/dist/agents/prompt-based-agent.d.ts +1 -2
- package/dist/agents/prompt-based-agent.d.ts.map +1 -1
- package/dist/agents/prompt-based-agent.js.map +1 -1
- package/dist/agents/sap-core-ai-agent.d.ts +1 -1
- package/dist/agents/sap-core-ai-agent.d.ts.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +11 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -19
- package/dist/index.js.map +1 -1
- package/dist/llm-providers/anthropic.d.ts +1 -1
- package/dist/llm-providers/anthropic.d.ts.map +1 -1
- package/dist/llm-providers/anthropic.js +1 -1
- package/dist/llm-providers/anthropic.js.map +1 -1
- package/dist/llm-providers/deepseek.d.ts +1 -1
- package/dist/llm-providers/deepseek.d.ts.map +1 -1
- package/dist/llm-providers/deepseek.js +1 -1
- package/dist/llm-providers/deepseek.js.map +1 -1
- package/dist/llm-providers/index.d.ts +5 -5
- package/dist/llm-providers/index.d.ts.map +1 -1
- package/dist/llm-providers/index.js +5 -5
- package/dist/llm-providers/index.js.map +1 -1
- package/dist/llm-providers/sap-core-ai.d.ts +1 -1
- package/dist/llm-providers/sap-core-ai.d.ts.map +1 -1
- package/dist/llm-providers/sap-core-ai.js +1 -1
- package/dist/llm-providers/sap-core-ai.js.map +1 -1
- package/dist/smart-agent/adapters/index.d.ts +2 -1
- package/dist/smart-agent/adapters/index.d.ts.map +1 -1
- package/dist/smart-agent/adapters/index.js +2 -1
- package/dist/smart-agent/adapters/index.js.map +1 -1
- package/dist/smart-agent/adapters/llm-adapter.d.ts +18 -3
- package/dist/smart-agent/adapters/llm-adapter.d.ts.map +1 -1
- package/dist/smart-agent/adapters/llm-adapter.js +1 -1
- package/dist/smart-agent/adapters/llm-adapter.js.map +1 -1
- package/dist/smart-agent/adapters/llm-provider-bridge.d.ts +31 -0
- package/dist/smart-agent/adapters/llm-provider-bridge.d.ts.map +1 -0
- package/dist/smart-agent/adapters/llm-provider-bridge.js +122 -0
- package/dist/smart-agent/adapters/llm-provider-bridge.js.map +1 -0
- package/dist/smart-agent/cli.js +47 -0
- package/dist/smart-agent/cli.js.map +1 -1
- package/dist/smart-agent/config.d.ts +1 -1
- package/dist/smart-agent/config.d.ts.map +1 -1
- package/dist/smart-agent/config.js +12 -2
- package/dist/smart-agent/config.js.map +1 -1
- package/dist/smart-agent/embedder-factories.d.ts +14 -0
- package/dist/smart-agent/embedder-factories.d.ts.map +1 -0
- package/dist/smart-agent/embedder-factories.js +61 -0
- package/dist/smart-agent/embedder-factories.js.map +1 -0
- package/dist/smart-agent/pipeline.d.ts +11 -4
- package/dist/smart-agent/pipeline.d.ts.map +1 -1
- package/dist/smart-agent/providers.d.ts +28 -2
- package/dist/smart-agent/providers.d.ts.map +1 -1
- package/dist/smart-agent/providers.js +81 -50
- package/dist/smart-agent/providers.js.map +1 -1
- package/dist/smart-agent/rag-factories.d.ts +31 -0
- package/dist/smart-agent/rag-factories.d.ts.map +1 -0
- package/dist/smart-agent/rag-factories.js +53 -0
- package/dist/smart-agent/rag-factories.js.map +1 -0
- package/dist/smart-agent/smart-server.d.ts +19 -1
- package/dist/smart-agent/smart-server.d.ts.map +1 -1
- package/dist/smart-agent/smart-server.js +26 -0
- package/dist/smart-agent/smart-server.js.map +1 -1
- package/dist/smoke-adapters.d.ts +1 -1
- package/dist/smoke-adapters.js +10 -6
- package/dist/smoke-adapters.js.map +1 -1
- package/package.json +55 -13
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* pipeline YAML) delegate here to resolve config into interface instances.
|
|
7
7
|
*/
|
|
8
8
|
import type { EmbedderFactory, IDocumentEnricher, IEmbedder, ILlm, IQueryPreprocessor, IRag, ISearchStrategy } from '@mcp-abap-adt/llm-agent';
|
|
9
|
-
import { type SapAICoreCredentials } from '
|
|
9
|
+
import { type SapAICoreCredentials } from '@mcp-abap-adt/sap-aicore-llm';
|
|
10
10
|
import type { IModelResolver } from './interfaces/model-resolver.js';
|
|
11
11
|
export interface LlmProviderConfig {
|
|
12
12
|
provider: 'deepseek' | 'openai' | 'anthropic' | 'sap-ai-sdk';
|
|
@@ -50,6 +50,13 @@ export interface EmbedderResolutionConfig {
|
|
|
50
50
|
apiKey?: string;
|
|
51
51
|
model?: string;
|
|
52
52
|
timeoutMs?: number;
|
|
53
|
+
/** SAP AI Core resource group (used when embedder is 'sap-ai-core' / 'sap-aicore'). */
|
|
54
|
+
resourceGroup?: string;
|
|
55
|
+
/**
|
|
56
|
+
* SAP AI Core scenario for the embedding model deployment.
|
|
57
|
+
* `'orchestration'` (default) uses the SAP SDK; `'foundation-models'` calls the REST inference API.
|
|
58
|
+
*/
|
|
59
|
+
scenario?: 'orchestration' | 'foundation-models';
|
|
53
60
|
}
|
|
54
61
|
export interface EmbedderResolutionOptions {
|
|
55
62
|
/** Pre-built embedder injected by the consumer (takes precedence). */
|
|
@@ -67,7 +74,7 @@ export interface EmbedderResolutionOptions {
|
|
|
67
74
|
*/
|
|
68
75
|
export declare function resolveEmbedder(cfg: EmbedderResolutionConfig, options?: EmbedderResolutionOptions): IEmbedder;
|
|
69
76
|
export interface RagResolutionConfig {
|
|
70
|
-
type?: 'ollama' | 'openai' | 'in-memory' | 'qdrant';
|
|
77
|
+
type?: 'ollama' | 'openai' | 'in-memory' | 'qdrant' | 'hana-vector' | 'pg-vector';
|
|
71
78
|
embedder?: string;
|
|
72
79
|
url?: string;
|
|
73
80
|
apiKey?: string;
|
|
@@ -83,6 +90,25 @@ export interface RagResolutionConfig {
|
|
|
83
90
|
queryPreprocessors?: IQueryPreprocessor[];
|
|
84
91
|
/** Document enrichers for this RAG store. */
|
|
85
92
|
documentEnrichers?: IDocumentEnricher[];
|
|
93
|
+
/** Connection string or URL for external vector backends. */
|
|
94
|
+
connectionString?: string;
|
|
95
|
+
host?: string;
|
|
96
|
+
port?: number;
|
|
97
|
+
user?: string;
|
|
98
|
+
password?: string;
|
|
99
|
+
database?: string;
|
|
100
|
+
schema?: string;
|
|
101
|
+
dimension?: number;
|
|
102
|
+
autoCreateSchema?: boolean;
|
|
103
|
+
poolMax?: number;
|
|
104
|
+
connectTimeout?: number;
|
|
105
|
+
/** SAP AI Core resource group (used when embedder is 'sap-ai-core' / 'sap-aicore'). */
|
|
106
|
+
resourceGroup?: string;
|
|
107
|
+
/**
|
|
108
|
+
* SAP AI Core scenario for the embedding model deployment.
|
|
109
|
+
* `'orchestration'` (default) uses the SAP SDK; `'foundation-models'` calls the REST inference API.
|
|
110
|
+
*/
|
|
111
|
+
scenario?: 'orchestration' | 'foundation-models';
|
|
86
112
|
}
|
|
87
113
|
export interface RagResolutionOptions {
|
|
88
114
|
/** Pre-built embedder injected by the consumer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/smart-agent/providers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/smart-agent/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,27 +5,22 @@
|
|
|
5
5
|
* embedders, and RAG implementations. All factories (Builder, SmartServer,
|
|
6
6
|
* pipeline YAML) delegate here to resolve config into interface instances.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { DeepSeekProvider } from '../llm-providers/deepseek.js';
|
|
15
|
-
import { OpenAIProvider } from '../llm-providers/openai.js';
|
|
16
|
-
import { SapCoreAIProvider, } from '../llm-providers/sap-core-ai.js';
|
|
17
|
-
import { MCPClientWrapper } from '../mcp/client.js';
|
|
8
|
+
import { AnthropicProvider } from '@mcp-abap-adt/anthropic-llm';
|
|
9
|
+
import { DeepSeekProvider } from '@mcp-abap-adt/deepseek-llm';
|
|
10
|
+
import { InMemoryRag, VectorRag } from '@mcp-abap-adt/llm-agent';
|
|
11
|
+
import { OllamaRag } from '@mcp-abap-adt/ollama-embedder';
|
|
12
|
+
import { OpenAIProvider } from '@mcp-abap-adt/openai-llm';
|
|
13
|
+
import { SapCoreAIProvider, } from '@mcp-abap-adt/sap-aicore-llm';
|
|
18
14
|
import { LlmAdapter } from './adapters/llm-adapter.js';
|
|
15
|
+
import { LlmProviderBridge } from './adapters/llm-provider-bridge.js';
|
|
19
16
|
import { NonStreamingLlm } from './adapters/non-streaming-llm.js';
|
|
17
|
+
import { builtInEmbedderFactories } from './embedder-factories.js';
|
|
18
|
+
import { resolveRag } from './rag-factories.js';
|
|
20
19
|
/**
|
|
21
20
|
* Create an ILlm from a declarative provider config.
|
|
22
21
|
* This is the only function that knows about concrete LLM implementations.
|
|
23
22
|
*/
|
|
24
23
|
export function makeLlm(cfg, temperature) {
|
|
25
|
-
const dummyMcp = new MCPClientWrapper({
|
|
26
|
-
transport: 'embedded',
|
|
27
|
-
listToolsHandler: async () => [],
|
|
28
|
-
});
|
|
29
24
|
// Coerce numeric fields that may arrive as strings from ${ENV_VAR} substitution
|
|
30
25
|
const maxTokens = cfg.maxTokens != null ? Number(cfg.maxTokens) : undefined;
|
|
31
26
|
let llm;
|
|
@@ -38,14 +33,10 @@ export function makeLlm(cfg, temperature) {
|
|
|
38
33
|
temperature,
|
|
39
34
|
maxTokens,
|
|
40
35
|
});
|
|
41
|
-
|
|
42
|
-
llmProvider: provider,
|
|
43
|
-
mcpClient: dummyMcp,
|
|
44
|
-
});
|
|
45
|
-
llm = new LlmAdapter(agent, {
|
|
36
|
+
llm = new LlmAdapter(new LlmProviderBridge(provider), {
|
|
46
37
|
model: provider.model,
|
|
47
|
-
getModels: () => provider.getModels(),
|
|
48
|
-
getEmbeddingModels: () => provider.getEmbeddingModels(),
|
|
38
|
+
getModels: () => provider.getModels?.() ?? Promise.resolve([]),
|
|
39
|
+
getEmbeddingModels: () => provider.getEmbeddingModels?.() ?? Promise.resolve([]),
|
|
49
40
|
});
|
|
50
41
|
break;
|
|
51
42
|
}
|
|
@@ -57,14 +48,10 @@ export function makeLlm(cfg, temperature) {
|
|
|
57
48
|
temperature,
|
|
58
49
|
maxTokens,
|
|
59
50
|
});
|
|
60
|
-
|
|
61
|
-
llmProvider: provider,
|
|
62
|
-
mcpClient: dummyMcp,
|
|
63
|
-
});
|
|
64
|
-
llm = new LlmAdapter(agent, {
|
|
51
|
+
llm = new LlmAdapter(new LlmProviderBridge(provider), {
|
|
65
52
|
model: provider.model,
|
|
66
|
-
getModels: () => provider.getModels(),
|
|
67
|
-
getEmbeddingModels: () => provider.getEmbeddingModels(),
|
|
53
|
+
getModels: () => provider.getModels?.() ?? Promise.resolve([]),
|
|
54
|
+
getEmbeddingModels: () => provider.getEmbeddingModels?.() ?? Promise.resolve([]),
|
|
68
55
|
});
|
|
69
56
|
break;
|
|
70
57
|
}
|
|
@@ -76,14 +63,10 @@ export function makeLlm(cfg, temperature) {
|
|
|
76
63
|
temperature,
|
|
77
64
|
maxTokens,
|
|
78
65
|
});
|
|
79
|
-
|
|
80
|
-
llmProvider: provider,
|
|
81
|
-
mcpClient: dummyMcp,
|
|
82
|
-
});
|
|
83
|
-
llm = new LlmAdapter(agent, {
|
|
66
|
+
llm = new LlmAdapter(new LlmProviderBridge(provider), {
|
|
84
67
|
model: provider.model,
|
|
85
|
-
getModels: () => provider.getModels(),
|
|
86
|
-
getEmbeddingModels: () => provider.getEmbeddingModels(),
|
|
68
|
+
getModels: () => provider.getModels?.() ?? Promise.resolve([]),
|
|
69
|
+
getEmbeddingModels: () => provider.getEmbeddingModels?.() ?? Promise.resolve([]),
|
|
87
70
|
});
|
|
88
71
|
break;
|
|
89
72
|
}
|
|
@@ -100,14 +83,10 @@ export function makeLlm(cfg, temperature) {
|
|
|
100
83
|
error: (msg, meta) => process.stderr.write(`[sap-ai-sdk:error] ${msg} ${meta ? JSON.stringify(meta) : ''}\n`),
|
|
101
84
|
},
|
|
102
85
|
});
|
|
103
|
-
|
|
104
|
-
llmProvider: provider,
|
|
105
|
-
mcpClient: dummyMcp,
|
|
106
|
-
});
|
|
107
|
-
llm = new LlmAdapter(agent, {
|
|
86
|
+
llm = new LlmAdapter(new LlmProviderBridge(provider), {
|
|
108
87
|
model: provider.model,
|
|
109
|
-
getModels: () => provider.getModels(),
|
|
110
|
-
getEmbeddingModels: () => provider.getEmbeddingModels(),
|
|
88
|
+
getModels: () => provider.getModels?.() ?? Promise.resolve([]),
|
|
89
|
+
getEmbeddingModels: () => provider.getEmbeddingModels?.() ?? Promise.resolve([]),
|
|
111
90
|
});
|
|
112
91
|
break;
|
|
113
92
|
}
|
|
@@ -157,17 +136,28 @@ export function resolveEmbedder(cfg, options) {
|
|
|
157
136
|
if (options?.injectedEmbedder)
|
|
158
137
|
return options.injectedEmbedder;
|
|
159
138
|
const name = cfg.embedder ?? 'ollama';
|
|
160
|
-
const
|
|
161
|
-
const factory = factories[name];
|
|
162
|
-
if (!factory) {
|
|
163
|
-
throw new Error(`Unknown embedder "${name}". Register a factory or use: ${Object.keys(factories).join(', ')}`);
|
|
164
|
-
}
|
|
165
|
-
return factory({
|
|
139
|
+
const opts = {
|
|
166
140
|
url: cfg.url,
|
|
167
141
|
apiKey: cfg.apiKey,
|
|
168
142
|
model: cfg.model,
|
|
169
143
|
timeoutMs: cfg.timeoutMs,
|
|
170
|
-
|
|
144
|
+
resourceGroup: cfg.resourceGroup,
|
|
145
|
+
scenario: cfg.scenario,
|
|
146
|
+
};
|
|
147
|
+
// Check built-in prefetch-based factories first
|
|
148
|
+
if (name in builtInEmbedderFactories) {
|
|
149
|
+
return builtInEmbedderFactories[name](opts);
|
|
150
|
+
}
|
|
151
|
+
// Fall back to consumer-registered extra factories
|
|
152
|
+
const extraFactory = options?.extraFactories?.[name];
|
|
153
|
+
if (!extraFactory) {
|
|
154
|
+
const known = [
|
|
155
|
+
...Object.keys(builtInEmbedderFactories),
|
|
156
|
+
...Object.keys(options?.extraFactories ?? {}),
|
|
157
|
+
];
|
|
158
|
+
throw new Error(`Unknown embedder "${name}". Register a factory or use: ${known.join(', ')}`);
|
|
159
|
+
}
|
|
160
|
+
return extraFactory(opts);
|
|
171
161
|
}
|
|
172
162
|
/**
|
|
173
163
|
* Create an IRag from a declarative store config.
|
|
@@ -198,7 +188,7 @@ export function makeRag(cfg, options) {
|
|
|
198
188
|
throw new Error('Qdrant URL is required for qdrant RAG type');
|
|
199
189
|
}
|
|
200
190
|
const embedder = resolveEmbedder(cfg, options);
|
|
201
|
-
return
|
|
191
|
+
return resolveRag('qdrant', {
|
|
202
192
|
url: cfg.url,
|
|
203
193
|
collectionName: cfg.collectionName ?? 'llm-agent',
|
|
204
194
|
embedder,
|
|
@@ -206,6 +196,47 @@ export function makeRag(cfg, options) {
|
|
|
206
196
|
timeoutMs: cfg.timeoutMs,
|
|
207
197
|
});
|
|
208
198
|
}
|
|
199
|
+
if (cfg.type === 'hana-vector') {
|
|
200
|
+
if (!cfg.collectionName) {
|
|
201
|
+
throw new Error('collectionName is required for hana-vector RAG type');
|
|
202
|
+
}
|
|
203
|
+
const embedder = resolveEmbedder(cfg, options);
|
|
204
|
+
return resolveRag('hana-vector', {
|
|
205
|
+
connectionString: cfg.connectionString,
|
|
206
|
+
host: cfg.host,
|
|
207
|
+
port: cfg.port,
|
|
208
|
+
user: cfg.user,
|
|
209
|
+
password: cfg.password,
|
|
210
|
+
schema: cfg.schema,
|
|
211
|
+
collectionName: cfg.collectionName,
|
|
212
|
+
dimension: cfg.dimension,
|
|
213
|
+
autoCreateSchema: cfg.autoCreateSchema,
|
|
214
|
+
poolMax: cfg.poolMax,
|
|
215
|
+
connectTimeout: cfg.connectTimeout,
|
|
216
|
+
embedder,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (cfg.type === 'pg-vector') {
|
|
220
|
+
if (!cfg.collectionName) {
|
|
221
|
+
throw new Error('collectionName is required for pg-vector RAG type');
|
|
222
|
+
}
|
|
223
|
+
const embedder = resolveEmbedder(cfg, options);
|
|
224
|
+
return resolveRag('pg-vector', {
|
|
225
|
+
connectionString: cfg.connectionString,
|
|
226
|
+
host: cfg.host,
|
|
227
|
+
port: cfg.port,
|
|
228
|
+
user: cfg.user,
|
|
229
|
+
password: cfg.password,
|
|
230
|
+
database: cfg.database,
|
|
231
|
+
schema: cfg.schema,
|
|
232
|
+
collectionName: cfg.collectionName,
|
|
233
|
+
dimension: cfg.dimension,
|
|
234
|
+
autoCreateSchema: cfg.autoCreateSchema,
|
|
235
|
+
poolMax: cfg.poolMax,
|
|
236
|
+
connectTimeout: cfg.connectTimeout,
|
|
237
|
+
embedder,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
209
240
|
if (cfg.type === 'openai') {
|
|
210
241
|
const embedder = resolveEmbedder({ ...cfg, embedder: cfg.embedder ?? 'openai' }, options);
|
|
211
242
|
return new VectorRag(embedder, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/smart-agent/providers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/smart-agent/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { IEmbedder, IRag } 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
|
+
//# sourceMappingURL=rag-factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-factories.d.ts","sourceRoot":"","sources":["../../src/smart-agent/rag-factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/D,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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { MissingProviderError } from '@mcp-abap-adt/llm-agent';
|
|
2
|
+
const PACKAGE_BY_NAME = {
|
|
3
|
+
qdrant: '@mcp-abap-adt/qdrant-rag',
|
|
4
|
+
'hana-vector': '@mcp-abap-adt/hana-vector-rag',
|
|
5
|
+
'pg-vector': '@mcp-abap-adt/pg-vector-rag',
|
|
6
|
+
};
|
|
7
|
+
const EXPORT_BY_NAME = {
|
|
8
|
+
qdrant: 'QdrantRag',
|
|
9
|
+
'hana-vector': 'HanaVectorRag',
|
|
10
|
+
'pg-vector': 'PgVectorRag',
|
|
11
|
+
};
|
|
12
|
+
const prefetched = new Map();
|
|
13
|
+
/**
|
|
14
|
+
* Load peer packages for the RAG backend names given. Call once at server
|
|
15
|
+
* startup before any synchronous resolveRag calls. Missing peer throws
|
|
16
|
+
* MissingProviderError up front so startup fails fast.
|
|
17
|
+
*/
|
|
18
|
+
export async function prefetchRagFactories(names) {
|
|
19
|
+
for (const name of names) {
|
|
20
|
+
if (prefetched.has(name))
|
|
21
|
+
continue;
|
|
22
|
+
const pkg = PACKAGE_BY_NAME[name];
|
|
23
|
+
if (!pkg)
|
|
24
|
+
throw new MissingProviderError('(unknown)', name);
|
|
25
|
+
try {
|
|
26
|
+
const mod = (await import(pkg));
|
|
27
|
+
prefetched.set(name, mod);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
throw new MissingProviderError(pkg, name);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Sync resolve. Caller MUST have awaited prefetchRagFactories(names) first. */
|
|
35
|
+
export function resolveRag(name, opts) {
|
|
36
|
+
const mod = prefetched.get(name);
|
|
37
|
+
if (!mod) {
|
|
38
|
+
const pkg = PACKAGE_BY_NAME[name] ?? '(unknown)';
|
|
39
|
+
throw new MissingProviderError(pkg, name);
|
|
40
|
+
}
|
|
41
|
+
const exportName = EXPORT_BY_NAME[name];
|
|
42
|
+
const Cls = mod[exportName];
|
|
43
|
+
if (!Cls) {
|
|
44
|
+
throw new MissingProviderError(PACKAGE_BY_NAME[name] ?? '(unknown)', name);
|
|
45
|
+
}
|
|
46
|
+
return new Cls(opts);
|
|
47
|
+
}
|
|
48
|
+
/** Test-only: reset the prefetched map. */
|
|
49
|
+
export function _resetPrefetchedRagForTests() {
|
|
50
|
+
prefetched.clear();
|
|
51
|
+
}
|
|
52
|
+
export const ragBackendNames = Object.freeze(Object.keys(PACKAGE_BY_NAME));
|
|
53
|
+
//# sourceMappingURL=rag-factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-factories.js","sourceRoot":"","sources":["../../src/smart-agent/rag-factories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAqB/D,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,0BAA0B;IAClC,aAAa,EAAE,+BAA+B;IAC9C,WAAW,EAAE,6BAA6B;CAC3C,CAAC;AAEF,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,WAAW;IACnB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;CAC3B,CAAC;AAIF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAwB;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAA4B,CAAC;YAC3D,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAoB;IAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;QACjD,MAAM,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAwB,CAAC;IACnD,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,IAA0C,CAAC,CAAC;AAC7D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,2BAA2B;IACzC,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CACR,CAAC"}
|
|
@@ -15,7 +15,7 @@ export interface SmartServerLlmConfig {
|
|
|
15
15
|
classifierTemperature?: number;
|
|
16
16
|
}
|
|
17
17
|
export interface SmartServerRagConfig {
|
|
18
|
-
type?: 'ollama' | 'openai' | 'in-memory' | 'qdrant';
|
|
18
|
+
type?: 'ollama' | 'openai' | 'in-memory' | 'qdrant' | 'hana-vector' | 'pg-vector';
|
|
19
19
|
/**
|
|
20
20
|
* Embedder name — resolved from the embedder factory registry.
|
|
21
21
|
* Built-in: 'ollama', 'openai'. Consumers can register custom factories.
|
|
@@ -28,6 +28,24 @@ export interface SmartServerRagConfig {
|
|
|
28
28
|
dedupThreshold?: number;
|
|
29
29
|
vectorWeight?: number;
|
|
30
30
|
keywordWeight?: number;
|
|
31
|
+
connectionString?: string;
|
|
32
|
+
host?: string;
|
|
33
|
+
port?: number;
|
|
34
|
+
user?: string;
|
|
35
|
+
password?: string;
|
|
36
|
+
database?: string;
|
|
37
|
+
schema?: string;
|
|
38
|
+
dimension?: number;
|
|
39
|
+
autoCreateSchema?: boolean;
|
|
40
|
+
poolMax?: number;
|
|
41
|
+
connectTimeout?: number;
|
|
42
|
+
/** SAP AI Core resource group (used when embedder is 'sap-ai-core' / 'sap-aicore'). */
|
|
43
|
+
resourceGroup?: string;
|
|
44
|
+
/**
|
|
45
|
+
* SAP AI Core scenario for the embedding model deployment.
|
|
46
|
+
* `'orchestration'` (default) uses the SAP SDK; `'foundation-models'` calls the REST inference API.
|
|
47
|
+
*/
|
|
48
|
+
scenario?: 'orchestration' | 'foundation-models';
|
|
31
49
|
}
|
|
32
50
|
export interface SmartServerMcpConfig {
|
|
33
51
|
type: 'http' | 'stdio';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-server.d.ts","sourceRoot":"","sources":["../../src/smart-agent/smart-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,UAAU,EAEV,cAAc,EACd,aAAa,EAGd,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAexD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"smart-server.d.ts","sourceRoot":"","sources":["../../src/smart-agent/smart-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,6 +158,32 @@ export class SmartServer {
|
|
|
158
158
|
builder = builder.setToolsRag(makeRag(this.cfg.rag, ragOptions));
|
|
159
159
|
builder = builder.setHistoryRag(makeRag({ ...this.cfg.rag }, ragOptions));
|
|
160
160
|
}
|
|
161
|
+
// Wire pipeline.rag.{name} stores into the builder so multi-store YAML
|
|
162
|
+
// configs behave the same as the flat `rag:` block: `tools` and `history`
|
|
163
|
+
// map to the agent's built-in slots; everything else is registered as a
|
|
164
|
+
// named collection that the registry projection exposes via ragStores[name].
|
|
165
|
+
if (pipeline?.rag) {
|
|
166
|
+
const ragOptions = {
|
|
167
|
+
injectedEmbedder: this.cfg.embedder,
|
|
168
|
+
extraFactories: mergedEmbedderFactories,
|
|
169
|
+
};
|
|
170
|
+
for (const [name, storeCfg] of Object.entries(pipeline.rag)) {
|
|
171
|
+
const rag = makeRag(storeCfg, ragOptions);
|
|
172
|
+
if (name === 'tools') {
|
|
173
|
+
builder = builder.setToolsRag(rag);
|
|
174
|
+
}
|
|
175
|
+
else if (name === 'history') {
|
|
176
|
+
builder = builder.setHistoryRag(rag);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
builder = builder.addRagCollection({
|
|
180
|
+
name,
|
|
181
|
+
rag,
|
|
182
|
+
meta: { displayName: name, scope: 'global' },
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
161
187
|
if (this.cfg.circuitBreaker) {
|
|
162
188
|
builder = builder.withCircuitBreaker(this.cfg.circuitBreaker);
|
|
163
189
|
}
|