@mcp-abap-adt/llm-agent-server-libs 20.8.0 → 20.9.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.
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pipelines/controller.d.ts.map +1 -1
- package/dist/pipelines/controller.js +9 -1
- package/dist/pipelines/controller.js.map +1 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts +14 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts.map +1 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.js +48 -7
- package/dist/smart-agent/controller/controller-coordinator-handler.js.map +1 -1
- package/dist/smart-agent/controller/types.d.ts +4 -0
- package/dist/smart-agent/controller/types.d.ts.map +1 -1
- package/dist/smart-agent/embedder-knowledge-index.d.ts.map +1 -1
- package/dist/smart-agent/embedder-knowledge-index.js +8 -0
- package/dist/smart-agent/embedder-knowledge-index.js.map +1 -1
- package/dist/smart-agent/http/adapter-route-handler.d.ts +2 -2
- package/dist/smart-agent/http/adapter-route-handler.d.ts.map +1 -1
- package/dist/smart-agent/http/adapter-route-handler.js +12 -4
- package/dist/smart-agent/http/adapter-route-handler.js.map +1 -1
- package/dist/smart-agent/http/chat-route-handler.d.ts.map +1 -1
- package/dist/smart-agent/http/chat-route-handler.js +87 -79
- package/dist/smart-agent/http/chat-route-handler.js.map +1 -1
- package/dist/smart-agent/http/sse-heartbeat.d.ts +24 -0
- package/dist/smart-agent/http/sse-heartbeat.d.ts.map +1 -0
- package/dist/smart-agent/http/sse-heartbeat.js +62 -0
- package/dist/smart-agent/http/sse-heartbeat.js.map +1 -0
- package/dist/smart-agent/mcp/build-session-mcp-clients.d.ts +8 -6
- package/dist/smart-agent/mcp/build-session-mcp-clients.d.ts.map +1 -1
- package/dist/smart-agent/mcp/build-session-mcp-clients.js +20 -7
- package/dist/smart-agent/mcp/build-session-mcp-clients.js.map +1 -1
- package/dist/smart-agent/mcp/mcp-clients-with-descriptors.d.ts +16 -0
- package/dist/smart-agent/mcp/mcp-clients-with-descriptors.d.ts.map +1 -0
- package/dist/smart-agent/mcp/mcp-clients-with-descriptors.js +2 -0
- package/dist/smart-agent/mcp/mcp-clients-with-descriptors.js.map +1 -0
- package/dist/smart-agent/mcp/namespaced-bridge.d.ts +41 -0
- package/dist/smart-agent/mcp/namespaced-bridge.d.ts.map +1 -0
- package/dist/smart-agent/mcp/namespaced-bridge.js +90 -0
- package/dist/smart-agent/mcp/namespaced-bridge.js.map +1 -0
- package/dist/smart-agent/resolve-config-sections.d.ts.map +1 -1
- package/dist/smart-agent/resolve-config-sections.js +34 -3
- package/dist/smart-agent/resolve-config-sections.js.map +1 -1
- package/dist/smart-agent/session-lifecycle/index.d.ts +20 -5
- package/dist/smart-agent/session-lifecycle/index.d.ts.map +1 -1
- package/dist/smart-agent/session-lifecycle/index.js +20 -0
- package/dist/smart-agent/session-lifecycle/index.js.map +1 -1
- package/dist/smart-agent/smart-server.d.ts +149 -5
- package/dist/smart-agent/smart-server.d.ts.map +1 -1
- package/dist/smart-agent/smart-server.js +296 -16
- package/dist/smart-agent/smart-server.js.map +1 -1
- package/dist/smart-agent/tools-rag-handle.d.ts +4 -2
- package/dist/smart-agent/tools-rag-handle.d.ts.map +1 -1
- package/dist/smart-agent/tools-rag-handle.js +24 -13
- package/dist/smart-agent/tools-rag-handle.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { bindToolCallName } from '@mcp-abap-adt/llm-agent';
|
|
2
|
+
import { DefaultMcpFailureClassifier } from '@mcp-abap-adt/llm-agent-mcp';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the client that currently owns a given provenance `slotIndex`: the
|
|
5
|
+
* client whose descriptor carries that `slotIndex` (descriptors are index-
|
|
6
|
+
* aligned with `clients`), or — when no descriptors were supplied — the
|
|
7
|
+
* client at that array index directly. Returns `undefined` when nothing
|
|
8
|
+
* matches (fewer session clients than provenance slots, e.g. a slot that
|
|
9
|
+
* never (re)connected).
|
|
10
|
+
*/
|
|
11
|
+
function resolveSlotClient(slotIndex, clients, descriptors) {
|
|
12
|
+
if (!descriptors)
|
|
13
|
+
return clients[slotIndex];
|
|
14
|
+
const idx = descriptors.findIndex((d) => d.slotIndex === slotIndex);
|
|
15
|
+
return idx === -1 ? undefined : clients[idx];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Rebind a namespaced-tools `provenance` map (exposed name → { slotIndex,
|
|
19
|
+
* originalName }, built once against the SHARED tool catalog's connections)
|
|
20
|
+
* onto a FRESH set of per-session `clients` (#244). Per-session MCP isolation
|
|
21
|
+
* (#213) constructs new client instances per request, so the catalog-time
|
|
22
|
+
* `toolClientMap` — bound to the original clients — cannot be reused as-is;
|
|
23
|
+
* this walks the stable provenance instead and re-resolves each exposed name
|
|
24
|
+
* against the current session's clients.
|
|
25
|
+
*
|
|
26
|
+
* Mirrors `buildNamespacedTools` (`packages/llm-agent/src/interfaces/build-namespaced-tools.ts`):
|
|
27
|
+
* the real client when the exposed name was NOT namespaced (bare — unique
|
|
28
|
+
* tool), the `bindToolCallName` wrapper when it WAS (so `callTool` still
|
|
29
|
+
* targets the tool's original, pre-namespace name on the wire). The
|
|
30
|
+
* discriminator is purely `exposedName === originalName` — this NEVER
|
|
31
|
+
* re-`listTools()` to "discover" a bare name.
|
|
32
|
+
*
|
|
33
|
+
* When no client matches a provenance slot, the entry is SKIPPED (no map
|
|
34
|
+
* key) rather than thrown — a later `map.get` miss surfaces as an ordinary
|
|
35
|
+
* "Tool not found" from `buildNamespacedMcpBridge`, never a hard failure at
|
|
36
|
+
* rebind time.
|
|
37
|
+
*/
|
|
38
|
+
export function rebindProvenanceToClients(provenance, clients, descriptors) {
|
|
39
|
+
const map = new Map();
|
|
40
|
+
for (const [exposedName, { slotIndex, originalName }] of provenance) {
|
|
41
|
+
const client = resolveSlotClient(slotIndex, clients, descriptors);
|
|
42
|
+
if (!client)
|
|
43
|
+
continue;
|
|
44
|
+
map.set(exposedName, exposedName === originalName
|
|
45
|
+
? client
|
|
46
|
+
: bindToolCallName(client, originalName));
|
|
47
|
+
}
|
|
48
|
+
return map;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Shared MCP bridge over a pre-resolved exposed-name → owning-client map
|
|
52
|
+
* (#244 addendum §3c). Unlike `buildMcpBridge` (`smart-server.ts`), the owner
|
|
53
|
+
* is already known from `toolClientMap` — no per-call `listTools()` ownership
|
|
54
|
+
* scan is needed, since namespacing has already resolved which client answers
|
|
55
|
+
* for which exposed name at rebind time.
|
|
56
|
+
*
|
|
57
|
+
* The probe + classify/throw-vs-isError branches are otherwise IDENTICAL to
|
|
58
|
+
* `buildMcpBridge`: an availability failure (per the classifier, using the
|
|
59
|
+
* owning client's `healthCheck` as the probe) fails loud — throws — so a
|
|
60
|
+
* transient outage is never mistaken for tool feedback; a tool-level error
|
|
61
|
+
* comes back as `{ isError: true, text: error.message }` for the LLM to see.
|
|
62
|
+
*/
|
|
63
|
+
export function buildNamespacedMcpBridge(toolClientMap, classifier = new DefaultMcpFailureClassifier()) {
|
|
64
|
+
return async (name, args, signal) => {
|
|
65
|
+
const client = toolClientMap.get(name);
|
|
66
|
+
if (!client)
|
|
67
|
+
return { text: `Tool not found: ${name}`, isError: true };
|
|
68
|
+
const safeArgs = args != null && typeof args === 'object' && !Array.isArray(args)
|
|
69
|
+
? args
|
|
70
|
+
: {};
|
|
71
|
+
const opts = signal ? { signal } : undefined;
|
|
72
|
+
const probe = client.healthCheck
|
|
73
|
+
? () => client.healthCheck(opts).then((r) => (r.ok ? r.value : false))
|
|
74
|
+
: undefined;
|
|
75
|
+
const result = await client.callTool(name, safeArgs, opts);
|
|
76
|
+
if (!result.ok) {
|
|
77
|
+
// Availability failure → fail loud; a tool-level error → LLM feedback
|
|
78
|
+
// text WITH isError:true so the caller can see it failed (#213).
|
|
79
|
+
if ((await classifier.classify(result.error, probe)) === 'unavailable')
|
|
80
|
+
throw result.error;
|
|
81
|
+
return { text: result.error.message, isError: true };
|
|
82
|
+
}
|
|
83
|
+
const { content, isError } = result.value;
|
|
84
|
+
return {
|
|
85
|
+
text: typeof content === 'string' ? content : JSON.stringify(content),
|
|
86
|
+
isError: isError ?? false,
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=namespaced-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespaced-bridge.js","sourceRoot":"","sources":["../../../src/smart-agent/mcp/namespaced-bridge.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,OAA8B,EAC9B,WAA4C;IAE5C,IAAI,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACpE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAA4E,EAC5E,OAA8B,EAC9B,WAA4C;IAE5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC1C,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,GAAG,CAAC,GAAG,CACL,WAAW,EACX,WAAW,KAAK,YAAY;YAC1B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA8C,EAC9C,aAAoC,IAAI,2BAA2B,EAAE;IAMrE,OAAO,KAAK,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEvE,MAAM,QAAQ,GACZ,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9D,CAAC,CAAE,IAAgC;YACnC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW;YAC9B,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,aAAa;gBACpE,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACrE,OAAO,EAAE,OAAO,IAAI,KAAK;SAC1B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-config-sections.d.ts","sourceRoot":"","sources":["../../src/smart-agent/resolve-config-sections.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"resolve-config-sections.d.ts","sourceRoot":"","sources":["../../src/smart-agent/resolve-config-sections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAAC,KAAK,CAAC,CAqB1B;AAwBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,iBAAiB,CAAC,KAAK,CAAC,CAqC1B;AA8BD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,iBAAiB,CAAC,KAAK,CAAC,CA4C1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,sBAAsB,CAyIxB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,GACf,iBAAiB,CAAC,SAAS,CAAC,CA2B9B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG;IAC1D,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;CAC1C,CAsBA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Per-section config builders extracted from resolveSmartServerConfig.
|
|
3
3
|
* Internal module — not re-exported by the package barrel.
|
|
4
4
|
*/
|
|
5
|
+
import { normalizeHeartbeatMs } from '@mcp-abap-adt/llm-agent-libs';
|
|
5
6
|
import { get } from './yaml-loader.js';
|
|
6
7
|
export function resolveLlmSection(yaml, apiKey) {
|
|
7
8
|
return get(yaml, 'llm')
|
|
@@ -61,9 +62,35 @@ export function resolveRagSection(yaml, args) {
|
|
|
61
62
|
}
|
|
62
63
|
: undefined;
|
|
63
64
|
}
|
|
65
|
+
/** Namespace-prefix label charset — mirrors IToolNamespace's exposed-name
|
|
66
|
+
* validation so a bad label fails at config parse, not at tool-listing time. */
|
|
67
|
+
const MCP_NAME_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
68
|
+
/**
|
|
69
|
+
* Validate `mcp[].name`: non-empty charset `^[a-zA-Z0-9_-]+$`, unique across
|
|
70
|
+
* all configured servers. Servers without a `name` are left alone — the
|
|
71
|
+
* namespace strategy falls back to `s${slotIndex}` for them.
|
|
72
|
+
*/
|
|
73
|
+
function validateMcpNames(entries) {
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
entries.forEach((entry, index) => {
|
|
76
|
+
const name = entry.name;
|
|
77
|
+
if (name === undefined)
|
|
78
|
+
return;
|
|
79
|
+
if (typeof name !== 'string' || !MCP_NAME_PATTERN.test(name)) {
|
|
80
|
+
throw new Error(`Invalid mcp[${index}].name: ${JSON.stringify(name)} — must be non-empty and match ^[a-zA-Z0-9_-]+$`);
|
|
81
|
+
}
|
|
82
|
+
if (seen.has(name)) {
|
|
83
|
+
throw new Error(`Duplicate mcp[].name: "${name}" is used by more than one server — labels must be unique.`);
|
|
84
|
+
}
|
|
85
|
+
seen.add(name);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
64
88
|
export function resolveMcpSection(yaml, args) {
|
|
65
89
|
const rawMcp = yaml.mcp;
|
|
66
90
|
const mcpIsArray = Array.isArray(rawMcp);
|
|
91
|
+
if (mcpIsArray) {
|
|
92
|
+
validateMcpNames(rawMcp);
|
|
93
|
+
}
|
|
67
94
|
const mcpUrl = get(yaml, 'mcp', 'url');
|
|
68
95
|
const mcpCommand = get(yaml, 'mcp', 'command');
|
|
69
96
|
const mcpTypeRaw = mcpIsArray
|
|
@@ -159,9 +186,13 @@ export function resolveAgentSection(yaml, args) {
|
|
|
159
186
|
}
|
|
160
187
|
: {}),
|
|
161
188
|
...(get(yaml, 'agent', 'heartbeatIntervalMs') !== undefined
|
|
162
|
-
? {
|
|
163
|
-
|
|
164
|
-
|
|
189
|
+
? (() => {
|
|
190
|
+
const n = Number(get(yaml, 'agent', 'heartbeatIntervalMs'));
|
|
191
|
+
if (normalizeHeartbeatMs(n) === null) {
|
|
192
|
+
console.warn(`[config] agent.heartbeatIntervalMs=${get(yaml, 'agent', 'heartbeatIntervalMs')} is invalid or <= 0 — SSE keep-alive and tool-loop heartbeat are DISABLED.`);
|
|
193
|
+
}
|
|
194
|
+
return { heartbeatIntervalMs: n };
|
|
195
|
+
})()
|
|
165
196
|
: {}),
|
|
166
197
|
...(get(yaml, 'agent', 'healthTimeoutMs') !== undefined
|
|
167
198
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-config-sections.js","sourceRoot":"","sources":["../../src/smart-agent/resolve-config-sections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve-config-sections.js","sourceRoot":"","sources":["../../src/smart-agent/resolve-config-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* extracted handlers. `_withSession` (which touches `SmartServer` instance state)
|
|
7
7
|
* stays in smart-server.ts and calls these helpers via import.
|
|
8
8
|
*/
|
|
9
|
-
import type { IKnowledgeRagHandle, ILogger, IMcpClient, IRag, IRagRegistry } from '@mcp-abap-adt/llm-agent';
|
|
9
|
+
import type { IKnowledgeRagHandle, ILogger, IMcpClient, IRag, IRagRegistry, McpClientDescriptor } from '@mcp-abap-adt/llm-agent';
|
|
10
10
|
import { type SessionAgentParts, type SessionGraph, SessionRegistry, type SmartAgent } from '@mcp-abap-adt/llm-agent-libs';
|
|
11
11
|
import { resolveSessionIdentity } from '../session-identity-resolver.js';
|
|
12
12
|
import type { ISessionMetaStore, SessionMetaRow } from '../session-meta-store.js';
|
|
@@ -31,6 +31,17 @@ export interface SessionLifecycleOptions {
|
|
|
31
31
|
maxSessions: number;
|
|
32
32
|
cookieName: string;
|
|
33
33
|
mcpClients: IMcpClient[];
|
|
34
|
+
/**
|
|
35
|
+
* Per-slot descriptors paired with `mcpClients` (#244) — the shared/global
|
|
36
|
+
* set's provenance. Forwarded into `SessionAgentParts` on the shared
|
|
37
|
+
* (isolation-OFF or no-per-session-builder) branch so a FILTERED global
|
|
38
|
+
* client set (e.g. `LazyConnectionStrategy` dropped an unhealthy slot,
|
|
39
|
+
* active slots `[0,2]`) still carries the ORIGINAL `slotIndex` values
|
|
40
|
+
* instead of losing them to array-index re-derivation.
|
|
41
|
+
*/
|
|
42
|
+
mcpClientDescriptors?: readonly McpClientDescriptor[];
|
|
43
|
+
/** Total configured `mcp[]` slots, paired with `mcpClientDescriptors` (#244). */
|
|
44
|
+
configuredSlotCount?: number;
|
|
34
45
|
toolsRag: IRag | undefined;
|
|
35
46
|
ragRegistry: IRagRegistry;
|
|
36
47
|
buildAgent: (parts: SessionAgentParts) => Promise<SmartAgent | undefined>;
|
|
@@ -44,13 +55,17 @@ export interface SessionLifecycleOptions {
|
|
|
44
55
|
onDispose?: (sessionId: string) => Promise<void>;
|
|
45
56
|
/**
|
|
46
57
|
* When present AND `!mcpSharedClient`, called once per session to build a
|
|
47
|
-
* fresh per-session MCP client set (`{ clients, close }
|
|
48
|
-
* `
|
|
49
|
-
*
|
|
50
|
-
*
|
|
58
|
+
* fresh per-session MCP client set (`{ clients, close }`, optionally
|
|
59
|
+
* `clientDescriptors`/`configuredSlotCount` — #244, e.g. the
|
|
60
|
+
* `buildSessionMcpClients` result). The returned `close` is tracked by
|
|
61
|
+
* `sessionId` and invoked during session disposal (before `onDispose`).
|
|
62
|
+
* When absent, or when `mcpSharedClient` is `true`, the shared `mcpClients`
|
|
63
|
+
* (+ `mcpClientDescriptors`) array is used for every session.
|
|
51
64
|
*/
|
|
52
65
|
buildPerSessionMcpClients?: () => {
|
|
53
66
|
clients: IMcpClient[];
|
|
67
|
+
clientDescriptors?: readonly McpClientDescriptor[];
|
|
68
|
+
configuredSlotCount?: number;
|
|
54
69
|
close: () => Promise<void>;
|
|
55
70
|
};
|
|
56
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/session-lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,IAAI,EACJ,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/session-lifecycle/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,26 @@ export function buildSessionLifecycle(opts) {
|
|
|
37
37
|
closeBySession.set(identity.sessionId, built.close);
|
|
38
38
|
return built.clients;
|
|
39
39
|
},
|
|
40
|
+
// Descriptor-aware seam (#244): mirrors `mcpClientFactory` above but also
|
|
41
|
+
// threads `clientDescriptors`/`configuredSlotCount` through, so downstream
|
|
42
|
+
// `SessionAgentParts` carry the STABLE slotIndex pairing on every branch —
|
|
43
|
+
// isolated per-session AND shared/global (including a FILTERED global set).
|
|
44
|
+
mcpClientFactoryWithDescriptors: (identity) => {
|
|
45
|
+
if (!usePerSession || !opts.buildPerSessionMcpClients) {
|
|
46
|
+
return {
|
|
47
|
+
clients: opts.mcpClients,
|
|
48
|
+
clientDescriptors: opts.mcpClientDescriptors,
|
|
49
|
+
configuredSlotCount: opts.configuredSlotCount,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const built = opts.buildPerSessionMcpClients();
|
|
53
|
+
closeBySession.set(identity.sessionId, built.close);
|
|
54
|
+
return {
|
|
55
|
+
clients: built.clients,
|
|
56
|
+
clientDescriptors: built.clientDescriptors,
|
|
57
|
+
configuredSlotCount: built.configuredSlotCount,
|
|
58
|
+
};
|
|
59
|
+
},
|
|
40
60
|
toolsRag: opts.toolsRag,
|
|
41
61
|
ragRegistry: opts.ragRegistry,
|
|
42
62
|
buildAgent: opts.buildAgent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smart-agent/session-lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smart-agent/session-lifecycle/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SmartServer — embeddable OpenAI-compatible HTTP server backed by SmartAgent.
|
|
3
3
|
*/
|
|
4
|
-
import type { EmbedderFactory, IClientAdapter, IEmbedder, ILlm, ILlmApiAdapter, IMcpClient, IModelResolver, IRequestLogger, ISkillManager, ISkillPluginHost, ISmartAgent, McpCallResult } from '@mcp-abap-adt/llm-agent';
|
|
4
|
+
import type { EmbedderFactory, IClientAdapter, IEmbedder, ILlm, ILlmApiAdapter, IMcpClient, IModelResolver, IRequestLogger, ISkillManager, ISkillPluginHost, ISmartAgent, IToolNamespace, McpCallResult } from '@mcp-abap-adt/llm-agent';
|
|
5
5
|
import { type IAuxiliaryMcpTools, type IMcpFailureClassifier, type IRunExecutionControl, type IStepExecutionControl, type IWaitStrategy, type ToolLoopContextStrategyFactory } from '@mcp-abap-adt/llm-agent';
|
|
6
6
|
import type { IPluginLoader } from '@mcp-abap-adt/llm-agent-libs';
|
|
7
7
|
import type { EmbedderResolutionConfig, EmbedderResolutionOptions } from '@mcp-abap-adt/llm-agent-rag';
|
|
@@ -69,6 +69,8 @@ export interface SmartServerMcpConfig {
|
|
|
69
69
|
/** Per-tool MCP request-timeout overrides in ms, keyed by tool name.
|
|
70
70
|
* Takes precedence over timeout. */
|
|
71
71
|
toolTimeouts?: Record<string, number>;
|
|
72
|
+
/** Stable, human-readable label used as the namespace prefix for this server's colliding tools. */
|
|
73
|
+
name?: string;
|
|
72
74
|
}
|
|
73
75
|
export interface SmartServerAgentConfig {
|
|
74
76
|
externalToolsValidationMode?: 'permissive' | 'strict';
|
|
@@ -97,6 +99,9 @@ export interface SmartServerAgentConfig {
|
|
|
97
99
|
/** Opt out of per-session MCP client isolation (default: per-session).
|
|
98
100
|
* `true` → reuse one shared MCP client across all sessions (pre-#213 behavior). */
|
|
99
101
|
mcpSharedClient?: boolean;
|
|
102
|
+
/** SSE keep-alive / tool-loop heartbeat interval (ms). Default 5000; `<= 0` or
|
|
103
|
+
* invalid disables. Already populated from yaml by resolveAgentSection. */
|
|
104
|
+
heartbeatIntervalMs?: number;
|
|
100
105
|
}
|
|
101
106
|
export interface SmartServerPromptsConfig {
|
|
102
107
|
system?: string;
|
|
@@ -227,6 +232,17 @@ export interface BuildAgentDeps {
|
|
|
227
232
|
buildSkillHost?: (cfg: SkillPluginsConfig, deps: BuildSkillHostDeps) => Promise<ISkillPluginHost>;
|
|
228
233
|
skillHost?: ISkillPluginHost;
|
|
229
234
|
connectMcp?: (mcpCfg: SmartServerMcpConfig | SmartServerMcpConfig[] | undefined | null) => Promise<IMcpClient[]>;
|
|
235
|
+
/**
|
|
236
|
+
* Descriptor-producing sibling of `connectMcp` (#244) — same `mcpCfg`
|
|
237
|
+
* argument shape, but returns the connected clients PAIRED with stable
|
|
238
|
+
* per-slot descriptors (`clientDescriptors` + `configuredSlotCount`), which
|
|
239
|
+
* the namespacing layer needs to label colliding tools. When present it
|
|
240
|
+
* takes precedence over a bare `connectMcp` (see provisioning precedence at
|
|
241
|
+
* the seam call sites). NOT defaulted — stays `undefined` unless the
|
|
242
|
+
* consumer injects it, so the injected-seam vs YAML-builder distinction is
|
|
243
|
+
* preserved.
|
|
244
|
+
*/
|
|
245
|
+
connectMcpWithDescriptors?: (mcpCfg: SmartServerMcpConfig | SmartServerMcpConfig[] | undefined | null) => Promise<McpClientsWithDescriptors>;
|
|
230
246
|
/**
|
|
231
247
|
* Ready-to-use MCP clients — parallel to `skillHost` (NOT an
|
|
232
248
|
* `IMcpConnectionStrategy`). When present they are used DIRECTLY and take
|
|
@@ -260,6 +276,16 @@ export interface BuildAgentDeps {
|
|
|
260
276
|
* Threaded onto `IPipelineContext.waitStrategy`; the controller pipeline
|
|
261
277
|
* falls back to `DefaultWaitStrategy` when absent. */
|
|
262
278
|
waitStrategy?: IWaitStrategy;
|
|
279
|
+
/**
|
|
280
|
+
* Consumer-swappable tool-namespacing strategy (#244) — decides how a
|
|
281
|
+
* colliding MCP tool name is renamed for LLM/RAG exposure. Threaded onto
|
|
282
|
+
* the startup builder (`withToolNamespace`) so the YAML-builder-connect
|
|
283
|
+
* path's own namespaced snapshot honors it, AND reused by the server's own
|
|
284
|
+
* `resolveAuthoritativeSnapshot()` fallback build (seam / consumer-builder
|
|
285
|
+
* path) so both snapshot sources agree on the SAME naming rule. Default:
|
|
286
|
+
* {@link defaultToolNamespace}.
|
|
287
|
+
*/
|
|
288
|
+
toolNamespace?: IToolNamespace;
|
|
263
289
|
}
|
|
264
290
|
/**
|
|
265
291
|
* A nested sub-agent declared via the top-level `subagents:` YAML block.
|
|
@@ -282,6 +308,7 @@ export interface SmartServerHandle {
|
|
|
282
308
|
close(): Promise<void>;
|
|
283
309
|
requestLogger: IRequestLogger;
|
|
284
310
|
}
|
|
311
|
+
import type { McpClientsWithDescriptors } from './mcp/mcp-clients-with-descriptors.js';
|
|
285
312
|
import type { SkillPluginsConfig } from './skill-plugins-config.js';
|
|
286
313
|
import type { BuildSkillHostDeps } from './skill-plugins-host-factory.js';
|
|
287
314
|
export { generateConfigTemplate, loadYamlConfig, type ResolveConfigArgs, resolveCoordinatorActivation, resolveCoordinatorDispatch, resolveCoordinatorPlanning, resolveEnvVars, resolveSmartServerConfig, resolveToolSelectionStrategy, YAML_TEMPLATE, type YamlConfig, } from './config.js';
|
|
@@ -303,7 +330,9 @@ export { buildSessionLifecycle, handleDeleteSession, handleListSessions, handleR
|
|
|
303
330
|
* Exported for testability — tests can call this with a fake IMcpClient list.
|
|
304
331
|
*/
|
|
305
332
|
/**
|
|
306
|
-
* Connect MCP clients from a YAML `mcp:` config block (single or array)
|
|
333
|
+
* Connect MCP clients from a YAML `mcp:` config block (single or array),
|
|
334
|
+
* pairing each connected client with a stable per-slot descriptor
|
|
335
|
+
* (`{ slotIndex: i, label: cfg[i].name }`, #244).
|
|
307
336
|
*
|
|
308
337
|
* Mirrors the builder's connection logic (builder.ts ~lines 897-920) so the
|
|
309
338
|
* Stepper path gets the same clients that the builder would have connected
|
|
@@ -313,6 +342,13 @@ export { buildSessionLifecycle, handleDeleteSession, handleListSessions, handleR
|
|
|
313
342
|
* `pipeline.mcp` or `this.cfg.mcp`). Accepts the union so callers can pass
|
|
314
343
|
* either directly without pre-normalising.
|
|
315
344
|
*/
|
|
345
|
+
export declare function connectMcpClientsWithDescriptorsFromConfig(mcpCfg: SmartServerMcpConfig | SmartServerMcpConfig[] | undefined | null): Promise<McpClientsWithDescriptors>;
|
|
346
|
+
/**
|
|
347
|
+
* Compat wrapper preserving the original bare-array export: delegates to
|
|
348
|
+
* `connectMcpClientsWithDescriptorsFromConfig` and returns only `.clients`.
|
|
349
|
+
* Kept so existing callers/tests that depend on `Promise<IMcpClient[]>` are
|
|
350
|
+
* unaffected by the #244 descriptor-producing seam.
|
|
351
|
+
*/
|
|
316
352
|
export declare function connectMcpClientsFromConfig(mcpCfg: SmartServerMcpConfig | SmartServerMcpConfig[] | undefined | null): Promise<IMcpClient[]>;
|
|
317
353
|
export declare function buildMcpBridge(clients: IMcpClient[], classifier?: IMcpFailureClassifier): (name: string, args: unknown, signal?: AbortSignal) => Promise<McpCallResult>;
|
|
318
354
|
export declare class SmartServer {
|
|
@@ -388,14 +424,23 @@ export declare class SmartServer {
|
|
|
388
424
|
*/
|
|
389
425
|
private _stepperMcpClients?;
|
|
390
426
|
/**
|
|
391
|
-
* True when the consumer injected an MCP seam (`BuildAgentDeps.mcpClients
|
|
392
|
-
* `connectMcp`). In that case MCP is provisioned
|
|
427
|
+
* True when the consumer injected an MCP seam (`BuildAgentDeps.mcpClients`,
|
|
428
|
+
* `connectMcp`, or `connectMcpWithDescriptors`). In that case MCP is provisioned
|
|
429
|
+
* ONLY through the seam (the
|
|
393
430
|
* embeddable path must never force a real connect / builder self-connect). When
|
|
394
431
|
* false (default), the YAML `mcp:` path keeps the builder-owned connect so the
|
|
395
432
|
* builder VECTORIZES the tools into `toolsRag` (the ToolSelect ranking contract;
|
|
396
433
|
* see mcp-yaml-vectorization.test.ts).
|
|
397
434
|
*/
|
|
398
435
|
private readonly _mcpSeamInjected;
|
|
436
|
+
/**
|
|
437
|
+
* True when the consumer injected a BARE `connectMcp` (as opposed to it
|
|
438
|
+
* being defaulted to `connectMcpClientsFromConfig` in the constructor).
|
|
439
|
+
* Lets the provisioning precedence distinguish "consumer gave us a
|
|
440
|
+
* connector with no descriptors" (array-index descriptors synthesized)
|
|
441
|
+
* from "nothing was injected, use the descriptor-producing default" (#244).
|
|
442
|
+
*/
|
|
443
|
+
private readonly _connectMcpInjected;
|
|
399
444
|
/**
|
|
400
445
|
* The MCP clients the pipeline `callMcp` bridge dispatches over — resolved
|
|
401
446
|
* UNCONDITIONALLY in `start()` as DI/plugin clients (`mcpClients`) ?? the
|
|
@@ -403,6 +448,39 @@ export declare class SmartServer {
|
|
|
403
448
|
* stepper) gets a working `ctx.callMcp` without opening a second connection.
|
|
404
449
|
*/
|
|
405
450
|
private _sharedMcpClients?;
|
|
451
|
+
/**
|
|
452
|
+
* Per-slot descriptors paired with `_sharedMcpClients` (#244), captured
|
|
453
|
+
* from whichever provisioning path won (injected `connectMcpWithDescriptors`
|
|
454
|
+
* > injected bare `connectMcp` (array-index descriptors) > the descriptor-
|
|
455
|
+
* producing default). Consumed by Tasks 6/7 (namespacing + toolsChanged).
|
|
456
|
+
*/
|
|
457
|
+
private _sharedMcpClientDescriptors?;
|
|
458
|
+
/**
|
|
459
|
+
* Total configured `mcp[]` slots (independent of how many actually
|
|
460
|
+
* connected), captured alongside `_sharedMcpClientDescriptors` (#244).
|
|
461
|
+
*/
|
|
462
|
+
private _configuredSlotCount?;
|
|
463
|
+
/**
|
|
464
|
+
* The ONE authoritative namespaced tool catalog snapshot (#244 Task 6),
|
|
465
|
+
* fed to the tools-RAG handle (`makeToolsRagHandle`'s `namespaced` param).
|
|
466
|
+
* Populated from either source:
|
|
467
|
+
* - yaml-builder path: harvested from `agentHandle.namespacedTools` (the
|
|
468
|
+
* startup builder computed it while auto-connecting `cfg.mcp`).
|
|
469
|
+
* - seam / consumer-builder path: built ONCE by
|
|
470
|
+
* `resolveAuthoritativeSnapshot()` over `_sharedMcpClients` +
|
|
471
|
+
* `_sharedMcpClientDescriptors` (the builder never connected itself, so
|
|
472
|
+
* its handle carries no snapshot).
|
|
473
|
+
* Undefined only when neither source produced one (e.g. no MCP clients).
|
|
474
|
+
*/
|
|
475
|
+
private _namespacedTools?;
|
|
476
|
+
/**
|
|
477
|
+
* Provenance for `_namespacedTools` — exposed (namespaced) name → its
|
|
478
|
+
* originating slot + original tool name. Doubles as the memoization guard
|
|
479
|
+
* for `resolveAuthoritativeSnapshot()`: once set (from either source above)
|
|
480
|
+
* a later call is a no-op. See `_namespacedTools` field doc for the two
|
|
481
|
+
* sources.
|
|
482
|
+
*/
|
|
483
|
+
private _toolProvenance?;
|
|
406
484
|
/**
|
|
407
485
|
* The ONE shared knowledge backend for the Stepper path (set during build).
|
|
408
486
|
* Held so DELETE /v1/sessions/:id can evict a session's entries from it —
|
|
@@ -441,6 +519,15 @@ export declare class SmartServer {
|
|
|
441
519
|
private readonly _runExecutionControl?;
|
|
442
520
|
private readonly _auxiliaryMcpTools?;
|
|
443
521
|
private readonly _waitStrategy?;
|
|
522
|
+
/**
|
|
523
|
+
* Tool-namespacing strategy (#244) — DI'd via `BuildAgentDeps.toolNamespace`,
|
|
524
|
+
* default `defaultToolNamespace`. Threaded onto the startup builder
|
|
525
|
+
* (`buildBaseBuilder` → `.withToolNamespace`) so its own namespaced snapshot
|
|
526
|
+
* (yaml-builder path) honors it, and reused verbatim by
|
|
527
|
+
* `resolveAuthoritativeSnapshot()`'s fallback build (seam path) so both
|
|
528
|
+
* snapshot sources agree on the same naming rule.
|
|
529
|
+
*/
|
|
530
|
+
private readonly _toolNamespace;
|
|
444
531
|
/**
|
|
445
532
|
* Defaulted construction deps (the BuildAgentDeps DI seam). Required members
|
|
446
533
|
* always resolve to the real implementation when not injected; `skillHost`
|
|
@@ -489,7 +576,11 @@ export declare class SmartServer {
|
|
|
489
576
|
* path).
|
|
490
577
|
* Mirrors EXACTLY what the session lifecycle passes to `buildSessionAgent`:
|
|
491
578
|
* the global mcpClients + the global ragRegistry + the global tools store,
|
|
492
|
-
* with a fresh per-(embedded-)session request logger.
|
|
579
|
+
* with a fresh per-(embedded-)session request logger. Also threads
|
|
580
|
+
* `_sharedMcpClientDescriptors`/`_configuredSlotCount` (#244) — the shared
|
|
581
|
+
* set's per-slot provenance, captured by whichever descriptor-producing
|
|
582
|
+
* seam won — so the embedded path carries the same descriptor pairing the
|
|
583
|
+
* per-session lifecycle now does.
|
|
493
584
|
*/
|
|
494
585
|
private _embeddedSessionParts;
|
|
495
586
|
private _start;
|
|
@@ -530,6 +621,15 @@ export declare class SmartServer {
|
|
|
530
621
|
* on resume via `seedSessionKnowledge`.
|
|
531
622
|
*/
|
|
532
623
|
private knowledgeRagFor;
|
|
624
|
+
/**
|
|
625
|
+
* Memoized namespaced bridge over the GLOBAL `_sharedMcpClients` (#244
|
|
626
|
+
* Task 8). Built once, lazily, from the authoritative snapshot's provenance
|
|
627
|
+
* rebound onto `_sharedMcpClients` + `_sharedMcpClientDescriptors` — the
|
|
628
|
+
* dispatch TARGET stays the server-wide shared clients (never retargeted to
|
|
629
|
+
* a session's clients here); only `buildServerCtx`'s per-session
|
|
630
|
+
* `ctx.toolClientMap` uses the session-scoped clients.
|
|
631
|
+
*/
|
|
632
|
+
private _namespacedCallMcpBridge?;
|
|
533
633
|
/** callMcp bridge over the shared connected MCP clients (empty when none). */
|
|
534
634
|
private callMcp;
|
|
535
635
|
private _mintStepperId;
|
|
@@ -550,6 +650,22 @@ export declare class SmartServer {
|
|
|
550
650
|
* fallback otherwise). Undefined toolsRag/embedder still yields a usable
|
|
551
651
|
* catalog-backed handle.
|
|
552
652
|
*/
|
|
653
|
+
/**
|
|
654
|
+
* Resolve MCP clients paired with per-slot descriptors (#244) for the YAML
|
|
655
|
+
* `mcp:` path, honoring provisioning precedence:
|
|
656
|
+
* 1. An injected `connectMcpWithDescriptors` seam wins outright — it
|
|
657
|
+
* already reports its own descriptors/configuredSlotCount.
|
|
658
|
+
* 2. Else an injected bare `connectMcp` wins next — its clients get
|
|
659
|
+
* synthesized array-index descriptors (a bare connector cannot report
|
|
660
|
+
* labels), `configuredSlotCount` = the connected count.
|
|
661
|
+
* 3. Else (neither seam injected) fall back to the descriptor-producing
|
|
662
|
+
* default, `connectMcpClientsWithDescriptorsFromConfig`, which DOES
|
|
663
|
+
* read `cfg.name` labels.
|
|
664
|
+
* Used at both seam call sites so `_sharedMcpClientDescriptors` /
|
|
665
|
+
* `_configuredSlotCount` are populated consistently regardless of which
|
|
666
|
+
* path provisioned the clients (Tasks 6/7 consume these fields).
|
|
667
|
+
*/
|
|
668
|
+
private _resolveMcpWithDescriptors;
|
|
553
669
|
private buildSharedPipelineInfra;
|
|
554
670
|
/**
|
|
555
671
|
* Build the ONE knowledge backend shared across all requests (JSONL when a
|
|
@@ -559,6 +675,28 @@ export declare class SmartServer {
|
|
|
559
675
|
* No MCP dependency — safe to call BEFORE the MCP client set is resolved.
|
|
560
676
|
*/
|
|
561
677
|
private buildKnowledgeBackend;
|
|
678
|
+
/**
|
|
679
|
+
* Resolve the ONE authoritative namespaced tool snapshot (#244 Task 6) —
|
|
680
|
+
* `this._namespacedTools` / `this._toolProvenance` — from whichever source
|
|
681
|
+
* applies:
|
|
682
|
+
* - yaml-builder path: the startup builder already computed it, harvested
|
|
683
|
+
* onto these SAME fields right after `builder.build()` (see the
|
|
684
|
+
* `agentHandle.namespacedTools`/`toolProvenance` destructure above). This
|
|
685
|
+
* method is then a no-op (memoized on `_toolProvenance`).
|
|
686
|
+
* - seam / consumer-builder path (ready clients, or an injected MCP seam):
|
|
687
|
+
* the handle carries no snapshot (the builder skipped its own connect via
|
|
688
|
+
* `withMcpClients`), so build ONE here via `buildNamespacedTools` over
|
|
689
|
+
* `_sharedMcpClients` + `_sharedMcpClientDescriptors` + the server's
|
|
690
|
+
* `_toolNamespace` — the SAME strategy instance threaded onto the
|
|
691
|
+
* startup builder, so both snapshot sources agree on the naming rule.
|
|
692
|
+
*
|
|
693
|
+
* Preserves the ORIGINAL client index on a partial `listTools()` failure:
|
|
694
|
+
* the per-client input is built index-preservingly via `settled.flatMap`
|
|
695
|
+
* aligned by position (mirroring the builder's own snapshot build), NEVER
|
|
696
|
+
* `filter().map()` — a middle-client failure must not shift later slots'
|
|
697
|
+
* `slotIndex`.
|
|
698
|
+
*/
|
|
699
|
+
private resolveAuthoritativeSnapshot;
|
|
562
700
|
/**
|
|
563
701
|
* Build `_toolsRagHandle` — a real IToolsRagHandle over the tools RAG store +
|
|
564
702
|
* MCP catalog, dispatching over the ALREADY-RESOLVED `this._sharedMcpClients`.
|
|
@@ -568,6 +706,12 @@ export declare class SmartServer {
|
|
|
568
706
|
* connection there, and `_sharedMcpClients` is harvested from its handle). For
|
|
569
707
|
* the DI/plugin path it still runs early via `buildSharedPipelineInfra`.
|
|
570
708
|
* Requires `this._sharedMcpClients` to be set by the caller.
|
|
709
|
+
*
|
|
710
|
+
* Also resolves the authoritative namespaced snapshot (#244 Task 6) via
|
|
711
|
+
* `resolveAuthoritativeSnapshot()` — a no-op when the yaml-builder path
|
|
712
|
+
* already harvested one from the handle — and passes it into
|
|
713
|
+
* `makeToolsRagHandle` so the catalog is keyed by the EXPOSED (namespaced)
|
|
714
|
+
* name.
|
|
571
715
|
*/
|
|
572
716
|
private buildToolsRagHandle;
|
|
573
717
|
/**
|