@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.
Files changed (57) hide show
  1. package/dist/generated/version.d.ts +1 -1
  2. package/dist/generated/version.js +1 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/pipelines/controller.d.ts.map +1 -1
  8. package/dist/pipelines/controller.js +9 -1
  9. package/dist/pipelines/controller.js.map +1 -1
  10. package/dist/smart-agent/controller/controller-coordinator-handler.d.ts +14 -1
  11. package/dist/smart-agent/controller/controller-coordinator-handler.d.ts.map +1 -1
  12. package/dist/smart-agent/controller/controller-coordinator-handler.js +48 -7
  13. package/dist/smart-agent/controller/controller-coordinator-handler.js.map +1 -1
  14. package/dist/smart-agent/controller/types.d.ts +4 -0
  15. package/dist/smart-agent/controller/types.d.ts.map +1 -1
  16. package/dist/smart-agent/embedder-knowledge-index.d.ts.map +1 -1
  17. package/dist/smart-agent/embedder-knowledge-index.js +8 -0
  18. package/dist/smart-agent/embedder-knowledge-index.js.map +1 -1
  19. package/dist/smart-agent/http/adapter-route-handler.d.ts +2 -2
  20. package/dist/smart-agent/http/adapter-route-handler.d.ts.map +1 -1
  21. package/dist/smart-agent/http/adapter-route-handler.js +12 -4
  22. package/dist/smart-agent/http/adapter-route-handler.js.map +1 -1
  23. package/dist/smart-agent/http/chat-route-handler.d.ts.map +1 -1
  24. package/dist/smart-agent/http/chat-route-handler.js +87 -79
  25. package/dist/smart-agent/http/chat-route-handler.js.map +1 -1
  26. package/dist/smart-agent/http/sse-heartbeat.d.ts +24 -0
  27. package/dist/smart-agent/http/sse-heartbeat.d.ts.map +1 -0
  28. package/dist/smart-agent/http/sse-heartbeat.js +62 -0
  29. package/dist/smart-agent/http/sse-heartbeat.js.map +1 -0
  30. package/dist/smart-agent/mcp/build-session-mcp-clients.d.ts +8 -6
  31. package/dist/smart-agent/mcp/build-session-mcp-clients.d.ts.map +1 -1
  32. package/dist/smart-agent/mcp/build-session-mcp-clients.js +20 -7
  33. package/dist/smart-agent/mcp/build-session-mcp-clients.js.map +1 -1
  34. package/dist/smart-agent/mcp/mcp-clients-with-descriptors.d.ts +16 -0
  35. package/dist/smart-agent/mcp/mcp-clients-with-descriptors.d.ts.map +1 -0
  36. package/dist/smart-agent/mcp/mcp-clients-with-descriptors.js +2 -0
  37. package/dist/smart-agent/mcp/mcp-clients-with-descriptors.js.map +1 -0
  38. package/dist/smart-agent/mcp/namespaced-bridge.d.ts +41 -0
  39. package/dist/smart-agent/mcp/namespaced-bridge.d.ts.map +1 -0
  40. package/dist/smart-agent/mcp/namespaced-bridge.js +90 -0
  41. package/dist/smart-agent/mcp/namespaced-bridge.js.map +1 -0
  42. package/dist/smart-agent/resolve-config-sections.d.ts.map +1 -1
  43. package/dist/smart-agent/resolve-config-sections.js +34 -3
  44. package/dist/smart-agent/resolve-config-sections.js.map +1 -1
  45. package/dist/smart-agent/session-lifecycle/index.d.ts +20 -5
  46. package/dist/smart-agent/session-lifecycle/index.d.ts.map +1 -1
  47. package/dist/smart-agent/session-lifecycle/index.js +20 -0
  48. package/dist/smart-agent/session-lifecycle/index.js.map +1 -1
  49. package/dist/smart-agent/smart-server.d.ts +149 -5
  50. package/dist/smart-agent/smart-server.d.ts.map +1 -1
  51. package/dist/smart-agent/smart-server.js +296 -16
  52. package/dist/smart-agent/smart-server.js.map +1 -1
  53. package/dist/smart-agent/tools-rag-handle.d.ts +4 -2
  54. package/dist/smart-agent/tools-rag-handle.d.ts.map +1 -1
  55. package/dist/smart-agent/tools-rag-handle.js +24 -13
  56. package/dist/smart-agent/tools-rag-handle.js.map +1 -1
  57. 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config-sections.d.ts","sourceRoot":"","sources":["../../src/smart-agent/resolve-config-sections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,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;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,iBAAiB,CAAC,KAAK,CAAC,CAyC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,sBAAsB,CAqIxB;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"}
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
- heartbeatIntervalMs: Number(get(yaml, 'agent', 'heartbeatIntervalMs')),
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 }`). The returned
48
- * `close` is tracked by `sessionId` and invoked during session disposal
49
- * (before `onDispose`). When absent, or when `mcpSharedClient` is `true`,
50
- * the shared `mcpClients` array is used for every session.
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":"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"}
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":"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"}
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` or
392
- * `connectMcp`). In that case MCP is provisioned ONLY through the seam (the
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
  /**