@mcp-abap-adt/llm-agent-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/agent/rag-orchestrator.d.ts.map +1 -1
- package/dist/agent/rag-orchestrator.js +4 -5
- package/dist/agent/rag-orchestrator.js.map +1 -1
- package/dist/agent.d.ts +6 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +13 -11
- package/dist/agent.js.map +1 -1
- package/dist/builder-types.d.ts +2 -0
- package/dist/builder-types.d.ts.map +1 -1
- package/dist/builder-types.js.map +1 -1
- package/dist/builder.d.ts +17 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +107 -4
- package/dist/builder.js.map +1 -1
- package/dist/coordinator/stepper/cyclic-react-executor.d.ts.map +1 -1
- package/dist/coordinator/stepper/cyclic-react-executor.js +7 -6
- package/dist/coordinator/stepper/cyclic-react-executor.js.map +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/interfaces/mcp-connection-strategy.d.ts +1 -1
- package/dist/interfaces/mcp-connection-strategy.d.ts.map +1 -1
- package/dist/interfaces/pipeline.d.ts +13 -1
- package/dist/interfaces/pipeline.d.ts.map +1 -1
- package/dist/mcp/tool-registry.d.ts +14 -2
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +46 -22
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/mcp/vectorize-mcp-tools.d.ts +25 -2
- package/dist/mcp/vectorize-mcp-tools.d.ts.map +1 -1
- package/dist/mcp/vectorize-mcp-tools.js +169 -59
- package/dist/mcp/vectorize-mcp-tools.js.map +1 -1
- package/dist/pipeline/context.d.ts +16 -1
- package/dist/pipeline/context.d.ts.map +1 -1
- package/dist/pipeline/default-pipeline.d.ts.map +1 -1
- package/dist/pipeline/default-pipeline.js +2 -0
- package/dist/pipeline/default-pipeline.js.map +1 -1
- package/dist/pipeline/handlers/normalize-heartbeat-ms.d.ts +11 -0
- package/dist/pipeline/handlers/normalize-heartbeat-ms.d.ts.map +1 -0
- package/dist/pipeline/handlers/normalize-heartbeat-ms.js +24 -0
- package/dist/pipeline/handlers/normalize-heartbeat-ms.js.map +1 -0
- package/dist/pipeline/handlers/tool-loop-core.d.ts +1 -1
- package/dist/pipeline/handlers/tool-loop-core.d.ts.map +1 -1
- package/dist/pipeline/handlers/tool-loop-core.js +25 -18
- package/dist/pipeline/handlers/tool-loop-core.js.map +1 -1
- package/dist/pipeline/handlers/tool-loop.d.ts +1 -1
- package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -1
- package/dist/pipeline/handlers/tool-loop.js +23 -22
- package/dist/pipeline/handlers/tool-loop.js.map +1 -1
- package/dist/pipeline/handlers/tool-select.d.ts.map +1 -1
- package/dist/pipeline/handlers/tool-select.js +18 -14
- package/dist/pipeline/handlers/tool-select.js.map +1 -1
- package/dist/resilience/retry-llm.d.ts.map +1 -1
- package/dist/resilience/retry-llm.js +5 -3
- package/dist/resilience/retry-llm.js.map +1 -1
- package/dist/session/session-graph-factory.d.ts +24 -1
- package/dist/session/session-graph-factory.d.ts.map +1 -1
- package/dist/session/session-graph-factory.js +14 -1
- package/dist/session/session-graph-factory.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,11 +1,26 @@
|
|
|
1
|
+
import { assertClientDescriptors, buildNamespacedTools, defaultToolNamespace, } from '@mcp-abap-adt/llm-agent';
|
|
2
|
+
import { isDebugArea } from '../logger/debug-areas.js';
|
|
3
|
+
import { NoopRequestLogger } from '../logger/noop-request-logger.js';
|
|
4
|
+
import { vectorizeMcpTools } from './vectorize-mcp-tools.js';
|
|
1
5
|
export class McpToolRegistry {
|
|
2
6
|
connectionStrategy;
|
|
3
7
|
ragStores;
|
|
4
8
|
activeClients;
|
|
5
|
-
|
|
9
|
+
activeClientDescriptors = [];
|
|
10
|
+
configuredSlotCount;
|
|
11
|
+
requestLogger;
|
|
12
|
+
logger;
|
|
13
|
+
toolRecordKey;
|
|
14
|
+
toolNamespace;
|
|
15
|
+
constructor(initialClients, connectionStrategy, ragStores, deps) {
|
|
6
16
|
this.connectionStrategy = connectionStrategy;
|
|
7
17
|
this.ragStores = ragStores;
|
|
8
18
|
this.activeClients = [...initialClients];
|
|
19
|
+
this.configuredSlotCount = this.activeClients.length;
|
|
20
|
+
this.requestLogger = deps?.requestLogger ?? new NoopRequestLogger();
|
|
21
|
+
this.logger = deps?.logger;
|
|
22
|
+
this.toolRecordKey = deps?.toolRecordKey;
|
|
23
|
+
this.toolNamespace = deps?.toolNamespace ?? defaultToolNamespace;
|
|
9
24
|
}
|
|
10
25
|
getActiveClients() {
|
|
11
26
|
return this.activeClients;
|
|
@@ -15,6 +30,15 @@ export class McpToolRegistry {
|
|
|
15
30
|
return;
|
|
16
31
|
const result = await this.connectionStrategy.resolve(this.activeClients, opts);
|
|
17
32
|
this.activeClients = result.clients;
|
|
33
|
+
assertClientDescriptors(result.clients, result.clientDescriptors, result.configuredSlotCount);
|
|
34
|
+
this.activeClientDescriptors =
|
|
35
|
+
result.clientDescriptors ??
|
|
36
|
+
this.activeClients.map((_, i) => ({ slotIndex: i }));
|
|
37
|
+
this.configuredSlotCount =
|
|
38
|
+
result.configuredSlotCount ?? this.activeClients.length;
|
|
39
|
+
if (isDebugArea('mcp')) {
|
|
40
|
+
console.error(`[mcp] tool-registry: resolved ${this.activeClients.length} active of ${this.configuredSlotCount} configured slot(s)`);
|
|
41
|
+
}
|
|
18
42
|
if (result.toolsChanged) {
|
|
19
43
|
await this.revectorizeTools(result.clients, opts);
|
|
20
44
|
}
|
|
@@ -23,34 +47,34 @@ export class McpToolRegistry {
|
|
|
23
47
|
const toolsRag = this.ragStores.tools ?? Object.values(this.ragStores)[0];
|
|
24
48
|
if (!toolsRag)
|
|
25
49
|
return;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
50
|
+
// Reuse the single startup vectorization path so reconnect gets the same
|
|
51
|
+
// IToolRecordKey, the name stored in metadata, and batch/bulk writing —
|
|
52
|
+
// rather than a second hand-rolled loop that hardcoded `tool:${name}` and
|
|
53
|
+
// reintroduced the #240 collision on multi-server reconnects. `opts` carries
|
|
54
|
+
// the request signal so an aborted reconnect stops promptly.
|
|
55
|
+
await vectorizeMcpTools(clients, toolsRag, this.requestLogger, this.logger, this.toolRecordKey, opts, {
|
|
56
|
+
descriptors: this.activeClientDescriptors,
|
|
57
|
+
configuredSlotCount: this.configuredSlotCount,
|
|
58
|
+
toolNamespace: this.toolNamespace,
|
|
59
|
+
});
|
|
35
60
|
}
|
|
36
61
|
async resolve(opts) {
|
|
37
62
|
await this.resolveActiveClients(opts);
|
|
38
|
-
const tools = [];
|
|
39
|
-
const toolClientMap = new Map();
|
|
40
63
|
const settled = await Promise.allSettled(this.activeClients.map(async (client) => ({
|
|
41
64
|
client,
|
|
42
65
|
result: await client.listTools(opts),
|
|
43
66
|
})));
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
const perClient = settled.flatMap((e, i) => e.status === 'fulfilled' && e.value.result.ok
|
|
68
|
+
? [
|
|
69
|
+
{
|
|
70
|
+
slotIndex: this.activeClientDescriptors[i]?.slotIndex ?? i,
|
|
71
|
+
label: this.activeClientDescriptors[i]?.label,
|
|
72
|
+
client: e.value.client,
|
|
73
|
+
tools: e.value.result.value,
|
|
74
|
+
},
|
|
75
|
+
]
|
|
76
|
+
: []);
|
|
77
|
+
const { tools, toolClientMap } = buildNamespacedTools(perClient, this.toolNamespace);
|
|
54
78
|
return { tools, toolClientMap };
|
|
55
79
|
}
|
|
56
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/mcp/tool-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/mcp/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Pure coordinators of catalog components — no builder state, no private fields.
|
|
11
11
|
*/
|
|
12
|
-
import type { ILogger, IMcpClient, IRag, IRequestLogger, ISkillManager, ToolCatalogStatus } from '@mcp-abap-adt/llm-agent';
|
|
12
|
+
import type { CallOptions, ILogger, IMcpClient, IRag, IRequestLogger, ISkillManager, IToolNamespace, IToolRecordKey, LlmTool, McpClientDescriptor, ToolCatalogStatus } from '@mcp-abap-adt/llm-agent';
|
|
13
13
|
/**
|
|
14
14
|
* Alias of ToolCatalogStatus, which is declared in `@mcp-abap-adt/llm-agent`
|
|
15
15
|
* so the leaf contracts package need not depend on this one.
|
|
@@ -20,6 +20,29 @@ import type { ILogger, IMcpClient, IRag, IRequestLogger, ISkillManager, ToolCata
|
|
|
20
20
|
* failed to be written
|
|
21
21
|
*/
|
|
22
22
|
export type ToolVectorizationSummary = ToolCatalogStatus;
|
|
23
|
-
export declare function vectorizeMcpTools(clients: IMcpClient[], toolsRag: IRag | undefined, requestLogger: IRequestLogger, logger: ILogger | undefined
|
|
23
|
+
export declare function vectorizeMcpTools(clients: IMcpClient[], toolsRag: IRag | undefined, requestLogger: IRequestLogger, logger: ILogger | undefined, toolRecordKey?: IToolRecordKey, options?: CallOptions, ns?: {
|
|
24
|
+
descriptors?: readonly McpClientDescriptor[];
|
|
25
|
+
configuredSlotCount?: number;
|
|
26
|
+
toolNamespace?: IToolNamespace;
|
|
27
|
+
/**
|
|
28
|
+
* A snapshot already built by the caller (the builder's single
|
|
29
|
+
* `listTools()` pass, #244 addendum) — when present, this function skips
|
|
30
|
+
* its own Phase-1 listing + `buildNamespacedTools` call entirely and
|
|
31
|
+
* iterates this view instead, so the catalog is never listed twice and
|
|
32
|
+
* never diverges from what the caller (and the pipeline/registry) already
|
|
33
|
+
* agreed on. `clientFailures`/`total` seed the accounting below so
|
|
34
|
+
* `summary.complete` still reflects a partial-catalog failure instead of
|
|
35
|
+
* being hardcoded true.
|
|
36
|
+
*/
|
|
37
|
+
prebuiltView?: {
|
|
38
|
+
tools: readonly LlmTool[];
|
|
39
|
+
provenance: ReadonlyMap<string, {
|
|
40
|
+
slotIndex: number;
|
|
41
|
+
originalName: string;
|
|
42
|
+
}>;
|
|
43
|
+
clientFailures: number;
|
|
44
|
+
total: number;
|
|
45
|
+
};
|
|
46
|
+
}): Promise<ToolVectorizationSummary | undefined>;
|
|
24
47
|
export declare function vectorizeSkills(skillManager: ISkillManager, toolsRag: IRag, requestLogger: IRequestLogger, logger: ILogger | undefined): Promise<void>;
|
|
25
48
|
//# sourceMappingURL=vectorize-mcp-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectorize-mcp-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/vectorize-mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"vectorize-mcp-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/vectorize-mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,OAAO,EACP,UAAU,EACV,IAAI,EAEJ,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,OAAO,EACP,mBAAmB,EAGnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAUjC;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAiEzD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,aAAa,GAAE,cAAqC,EACpD,OAAO,CAAC,EAAE,WAAW,EACrB,EAAE,CAAC,EAAE;IACH,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;QAC1B,UAAU,EAAE,WAAW,CACrB,MAAM,EACN;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAC5C,CAAC;QACF,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,GACA,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAgR/C;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,aAAa,EAC3B,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,OAAO,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
|
@@ -9,11 +9,14 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Pure coordinators of catalog components — no builder state, no private fields.
|
|
11
11
|
*/
|
|
12
|
-
import { isBatchEmbedder } from '@mcp-abap-adt/llm-agent';
|
|
12
|
+
import { assertClientDescriptors, buildNamespacedTools, DefaultWaitStrategy, defaultToolNamespace, defaultToolRecordKey, isBatchEmbedder, } from '@mcp-abap-adt/llm-agent';
|
|
13
13
|
const MAX_NAMES_IN_LOG = 10;
|
|
14
14
|
/** Preserved from the previous implementation — see the write loop below. */
|
|
15
15
|
const SEQUENTIAL_PACING_EVERY = 5;
|
|
16
16
|
const SEQUENTIAL_PACING_MS = 500;
|
|
17
|
+
// Stateless; honours signal, including one already aborted (unlike a raw
|
|
18
|
+
// addEventListener, which never fires for an event that already dispatched).
|
|
19
|
+
const pacingWait = new DefaultWaitStrategy();
|
|
17
20
|
function toolText(name, description) {
|
|
18
21
|
return `Tool: ${name} — ${description}`;
|
|
19
22
|
}
|
|
@@ -27,11 +30,11 @@ function toolText(name, description) {
|
|
|
27
30
|
* one aggregated record for the whole `embedBatch`; logging here as well would
|
|
28
31
|
* produce N+1 records and inflate reported token usage.
|
|
29
32
|
*/
|
|
30
|
-
async function writeOne(writer, id, text, vector, requestLogger, detail) {
|
|
33
|
+
async function writeOne(writer, id, text, vector, requestLogger, detail, metadata = {}, options) {
|
|
31
34
|
const start = Date.now();
|
|
32
35
|
const result = vector && writer.upsertPrecomputedRaw
|
|
33
|
-
? await writer.upsertPrecomputedRaw(id, text, vector,
|
|
34
|
-
: await writer.upsertRaw(id, text,
|
|
36
|
+
? await writer.upsertPrecomputedRaw(id, text, vector, metadata, options)
|
|
37
|
+
: await writer.upsertRaw(id, text, metadata, options);
|
|
35
38
|
const ok = result?.ok === true;
|
|
36
39
|
if (ok && vector === undefined) {
|
|
37
40
|
const est = Math.ceil(text.length / 4);
|
|
@@ -49,80 +52,184 @@ async function writeOne(writer, id, text, vector, requestLogger, detail) {
|
|
|
49
52
|
}
|
|
50
53
|
return ok;
|
|
51
54
|
}
|
|
52
|
-
export async function vectorizeMcpTools(clients, toolsRag, requestLogger, logger) {
|
|
55
|
+
export async function vectorizeMcpTools(clients, toolsRag, requestLogger, logger, toolRecordKey = defaultToolRecordKey, options, ns) {
|
|
53
56
|
const writer = toolsRag?.writer?.();
|
|
54
57
|
// No store, or a deliberately read-only one: nothing is attempted, and the
|
|
55
58
|
// status stays unknown rather than reporting a permanently incomplete
|
|
56
59
|
// catalog for a configuration that never intended to write.
|
|
57
60
|
if (!toolsRag || !writer)
|
|
58
61
|
return undefined;
|
|
59
|
-
|
|
62
|
+
// Fail-fast on a malformed connection result (a buggy custom strategy)
|
|
63
|
+
// before any listing/writing starts. A no-op when descriptors are absent.
|
|
64
|
+
assertClientDescriptors(clients, ns?.descriptors, ns?.configuredSlotCount);
|
|
65
|
+
const toolNamespace = ns?.toolNamespace ?? defaultToolNamespace;
|
|
66
|
+
// Cancellable: reconnect revectorization carries a request signal, so an
|
|
67
|
+
// aborted request must stop listing, embedding and writing rather than run to
|
|
68
|
+
// completion in the background.
|
|
69
|
+
if (options?.signal?.aborted)
|
|
70
|
+
return undefined;
|
|
71
|
+
const acc = {
|
|
72
|
+
total: ns?.prebuiltView?.total ?? 0,
|
|
73
|
+
vectorized: 0,
|
|
74
|
+
failed: [],
|
|
75
|
+
clientFailures: ns?.prebuiltView?.clientFailures ?? 0,
|
|
76
|
+
};
|
|
60
77
|
// Why the batch path was abandoned, if it was. Reported once, inside the
|
|
61
78
|
// summary line: swallowing it entirely would hide exactly the provider
|
|
62
79
|
// message that made #236 diagnosable in the first place.
|
|
63
80
|
let batchFailure;
|
|
64
81
|
// biome-ignore lint/suspicious/noExplicitAny: reading the store's private embedder for batch optimisation
|
|
65
82
|
const storeEmbedder = toolsRag.embedder;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
83
|
+
let tools;
|
|
84
|
+
let provenance;
|
|
85
|
+
if (ns?.prebuiltView) {
|
|
86
|
+
// The caller already listed every client and namespaced the full exposed
|
|
87
|
+
// set (index-preservingly) — reuse it verbatim rather than relisting.
|
|
88
|
+
tools = ns.prebuiltView.tools;
|
|
89
|
+
provenance = ns.prebuiltView.provenance;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// ---- Phase 1: list every client BEFORE any namespacing/collision decision.
|
|
93
|
+
// Collision detection needs the FULL cross-client tool set — deciding
|
|
94
|
+
// per-client (the previous single-pass loop) could never see a name used
|
|
95
|
+
// by a client listed later, so it could not namespace at all.
|
|
96
|
+
const perClient = [];
|
|
97
|
+
for (let clientIndex = 0; clientIndex < clients.length; clientIndex++) {
|
|
98
|
+
if (options?.signal?.aborted)
|
|
99
|
+
break;
|
|
100
|
+
const adapter = clients[clientIndex];
|
|
101
|
+
const descriptor = ns?.descriptors?.[clientIndex];
|
|
102
|
+
// Only listing is guarded at client level. A write that throws must NOT be
|
|
103
|
+
// charged to the client, must not abort the remaining tools, and must land
|
|
104
|
+
// in `failed` — see the per-tool try/catch below.
|
|
105
|
+
let clientTools;
|
|
106
|
+
try {
|
|
107
|
+
const toolsResult = await adapter.listTools(options);
|
|
108
|
+
if (!toolsResult.ok) {
|
|
109
|
+
acc.clientFailures++;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
clientTools = toolsResult.value;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
74
115
|
acc.clientFailures++;
|
|
75
116
|
continue;
|
|
76
117
|
}
|
|
77
|
-
|
|
118
|
+
acc.total += clientTools.length;
|
|
119
|
+
perClient.push({
|
|
120
|
+
// Stable slotIndex from the connection result, not this loop's own
|
|
121
|
+
// index — a filtered active set must not re-map ids (#244).
|
|
122
|
+
slotIndex: descriptor?.slotIndex ?? clientIndex,
|
|
123
|
+
label: descriptor?.label,
|
|
124
|
+
client: adapter,
|
|
125
|
+
tools: clientTools,
|
|
126
|
+
});
|
|
78
127
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
128
|
+
// ---- Phase 2: namespace the FULL exposed set, then embed/write it flat.
|
|
129
|
+
// `provenance` carries each exposed name's ORIGINAL name + stable slotIndex,
|
|
130
|
+
// which the record key needs (a flat index into `tools` would mis-map once
|
|
131
|
+
// a client exposes more than one tool).
|
|
132
|
+
const built = buildNamespacedTools(perClient, toolNamespace);
|
|
133
|
+
tools = built.tools;
|
|
134
|
+
provenance = built.provenance;
|
|
135
|
+
}
|
|
136
|
+
const configuredCount = ns?.configuredSlotCount ?? clients.length;
|
|
137
|
+
const keyFor = (originalName, slotIndex) => {
|
|
138
|
+
const id = toolRecordKey.key({
|
|
139
|
+
toolName: originalName,
|
|
140
|
+
clientIndex: slotIndex,
|
|
141
|
+
clientCount: configuredCount,
|
|
142
|
+
});
|
|
143
|
+
// Enforce the IToolRecordKey contract at write time: a key without the
|
|
144
|
+
// `tool:` prefix would be written and counted as vectorized, but every
|
|
145
|
+
// retrieval path (toolNameFromRecord) would ignore it — a silent
|
|
146
|
+
// unretrievable record. Fail fast instead.
|
|
147
|
+
if (!id.startsWith('tool:')) {
|
|
148
|
+
throw new Error(`IToolRecordKey produced "${id}" for tool "${originalName}"; a tool record id must start with "tool:" so retrieval can tell it apart from skills.`);
|
|
82
149
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
150
|
+
return id;
|
|
151
|
+
};
|
|
152
|
+
// Text and metadata.name use the EXPOSED name (`t.name`, already renamed by
|
|
153
|
+
// buildNamespacedTools above); the record id uses the ORIGINAL name +
|
|
154
|
+
// stable slotIndex from provenance.
|
|
155
|
+
const texts = tools.map((t) => toolText(t.name, t.description));
|
|
156
|
+
// Computed once, outside any per-tool try/catch, so an invalid key strategy
|
|
157
|
+
// fails the boot fast rather than landing every tool in `failed`.
|
|
158
|
+
const ids = tools.map((t) => {
|
|
159
|
+
const p = provenance.get(t.name);
|
|
160
|
+
if (!p)
|
|
161
|
+
throw new Error(`vectorizeMcpTools: no provenance entry for exposed tool "${t.name}"`);
|
|
162
|
+
return keyFor(p.originalName, p.slotIndex);
|
|
163
|
+
});
|
|
164
|
+
let vectors;
|
|
165
|
+
if (storeEmbedder &&
|
|
166
|
+
isBatchEmbedder(storeEmbedder) &&
|
|
167
|
+
writer.upsertPrecomputedRaw !== undefined) {
|
|
168
|
+
const start = Date.now();
|
|
169
|
+
try {
|
|
170
|
+
const results = await storeEmbedder.embedBatch(texts, options);
|
|
171
|
+
vectors = results.map((r) => r.vector);
|
|
172
|
+
const real = results.reduce((a, r) => r.usage
|
|
173
|
+
? {
|
|
174
|
+
p: (a?.p ?? 0) + r.usage.promptTokens,
|
|
175
|
+
t: (a?.t ?? 0) + r.usage.totalTokens,
|
|
176
|
+
}
|
|
177
|
+
: a, null);
|
|
178
|
+
const est = texts.reduce((s, t) => s + Math.ceil(t.length / 4), 0);
|
|
179
|
+
// The ONLY usage record for the batch path; writeOne stays silent when
|
|
180
|
+
// it receives a precomputed vector.
|
|
181
|
+
requestLogger.logLlmCall({
|
|
182
|
+
component: 'embedding',
|
|
183
|
+
model: 'embedder',
|
|
184
|
+
promptTokens: real?.p ?? est,
|
|
185
|
+
completionTokens: 0,
|
|
186
|
+
totalTokens: real?.t ?? est,
|
|
187
|
+
durationMs: Date.now() - start,
|
|
188
|
+
estimated: real === null,
|
|
189
|
+
scope: 'initialization',
|
|
190
|
+
detail: 'tools',
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
// Falls through to the sequential path below. Chunking and retry
|
|
195
|
+
// already ran inside the embedder, so reaching here means the
|
|
196
|
+
// provider is genuinely unusable for batch work.
|
|
197
|
+
vectors = undefined;
|
|
198
|
+
batchFailure ??= err instanceof Error ? err.message : String(err);
|
|
121
199
|
}
|
|
200
|
+
}
|
|
201
|
+
// Bulk fast path: when we have precomputed vectors AND the writer supports
|
|
202
|
+
// a native bulk upsert, write the whole catalog in one call instead of N.
|
|
203
|
+
// All-or-nothing, so on failure we fall through to the per-tool loop, which
|
|
204
|
+
// classifies exactly which record is bad.
|
|
205
|
+
let bulkWritten = false;
|
|
206
|
+
if (vectors && writer.upsertManyPrecomputedRaw) {
|
|
207
|
+
const bulk = await writer
|
|
208
|
+
.upsertManyPrecomputedRaw(tools.map((t, i) => ({
|
|
209
|
+
id: ids[i],
|
|
210
|
+
text: texts[i],
|
|
211
|
+
vector: vectors[i],
|
|
212
|
+
// Store the EXPOSED name so retrieval recovers it via
|
|
213
|
+
// toolNameFromRecord, independent of the key scheme.
|
|
214
|
+
metadata: { name: t.name },
|
|
215
|
+
})), options)
|
|
216
|
+
.catch((err) => ({
|
|
217
|
+
ok: false,
|
|
218
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
219
|
+
}));
|
|
220
|
+
if (bulk.ok) {
|
|
221
|
+
acc.vectorized += tools.length;
|
|
222
|
+
bulkWritten = true;
|
|
223
|
+
}
|
|
224
|
+
// else: fall through to the per-tool loop below.
|
|
225
|
+
}
|
|
226
|
+
if (!bulkWritten) {
|
|
122
227
|
for (let i = 0; i < tools.length; i++) {
|
|
228
|
+
if (options?.signal?.aborted)
|
|
229
|
+
break;
|
|
123
230
|
let ok = false;
|
|
124
231
|
try {
|
|
125
|
-
ok = await writeOne(writer,
|
|
232
|
+
ok = await writeOne(writer, ids[i], texts[i], vectors?.[i], requestLogger, 'tools', { name: tools[i].name }, options);
|
|
126
233
|
}
|
|
127
234
|
catch {
|
|
128
235
|
// A throwing write is this tool's failure, not the client's: the loop
|
|
@@ -142,7 +249,10 @@ export async function vectorizeMcpTools(clients, toolsRag, requestLogger, logger
|
|
|
142
249
|
if (vectors === undefined &&
|
|
143
250
|
(i + 1) % SEQUENTIAL_PACING_EVERY === 0 &&
|
|
144
251
|
i < tools.length - 1) {
|
|
145
|
-
|
|
252
|
+
// Cancellable via DefaultWaitStrategy: an already-aborted signal returns
|
|
253
|
+
// immediately, so a request aborted during the preceding write does not
|
|
254
|
+
// sit through the full pause. The next loop iteration then breaks.
|
|
255
|
+
await pacingWait.wait(SEQUENTIAL_PACING_MS, options?.signal);
|
|
146
256
|
}
|
|
147
257
|
}
|
|
148
258
|
}
|
|
@@ -195,7 +305,7 @@ export async function vectorizeSkills(skillManager, toolsRag, requestLogger, log
|
|
|
195
305
|
const text = `Skill: ${s.name}\n${s.description}`;
|
|
196
306
|
let ok = false;
|
|
197
307
|
try {
|
|
198
|
-
ok = await writeOne(writer, `skill:${s.name}`, text, undefined, requestLogger, 'skills');
|
|
308
|
+
ok = await writeOne(writer, `skill:${s.name}`, text, undefined, requestLogger, 'skills', { name: s.name });
|
|
199
309
|
}
|
|
200
310
|
catch {
|
|
201
311
|
ok = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectorize-mcp-tools.js","sourceRoot":"","sources":["../../src/mcp/vectorize-mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"vectorize-mcp-tools.js","sourceRoot":"","sources":["../../src/mcp/vectorize-mcp-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
* The `tool-loop` stage streams. It uses `ctx.yield()` to push
|
|
16
16
|
* SSE chunks back to the caller. All other stages are batch operations.
|
|
17
17
|
*/
|
|
18
|
-
import type { CallOptions, IContextAssembler, IEmbedder, IHistoryMemory, IHistorySummarizer, ILlm, ILlmCallStrategy, ILogger, IMcpClient, IMcpFailureClassifier, IQueryEmbedding, IQueryExpander, IRagProviderRegistry, IRagRegistry, IRequestLogger, ISkill, ISkillManager, ISubpromptClassifier, IToolCache, IToolSelectionStrategy, LlmStreamChunk, LlmTool, McpTool, Message, OnPartial, Plan, RagResult, Result, StepResult, SubAgentRegistry, Subprompt, TimingEntry, ToolLoopContextStrategyFactory } from '@mcp-abap-adt/llm-agent';
|
|
18
|
+
import type { CallOptions, IContextAssembler, IEmbedder, IHistoryMemory, IHistorySummarizer, ILlm, ILlmCallStrategy, ILogger, IMcpClient, IMcpFailureClassifier, IQueryEmbedding, IQueryExpander, IRagProviderRegistry, IRagRegistry, IRequestLogger, ISkill, ISkillManager, ISubpromptClassifier, IToolCache, IToolNamespace, IToolSelectionStrategy, LlmStreamChunk, LlmTool, McpTool, Message, OnPartial, Plan, RagResult, Result, StepResult, SubAgentRegistry, Subprompt, TimingEntry, ToolLoopContextStrategyFactory } from '@mcp-abap-adt/llm-agent';
|
|
19
19
|
import type { OrchestratorError, SmartAgentConfig, SmartAgentRagStores } from '../agent.js';
|
|
20
|
+
import type { McpClientDescriptor } from '../interfaces/mcp-connection-strategy.js';
|
|
20
21
|
import type { IMetrics } from '../metrics/types.js';
|
|
21
22
|
import type { PendingToolResultsRegistry } from '../policy/pending-tool-results-registry.js';
|
|
22
23
|
import type { ToolAvailabilityRegistry } from '../policy/tool-availability-registry.js';
|
|
@@ -43,6 +44,20 @@ export interface PipelineContext {
|
|
|
43
44
|
readonly ragRegistry: IRagRegistry | undefined;
|
|
44
45
|
readonly ragProviderRegistry: IRagProviderRegistry | undefined;
|
|
45
46
|
readonly mcpClients: IMcpClient[];
|
|
47
|
+
/**
|
|
48
|
+
* Per-client stable identity (slotIndex+label), aligned with `mcpClients`
|
|
49
|
+
* from the SAME `connectionStrategy.resolve()` snapshot — never drifts
|
|
50
|
+
* relative to `mcpClients` across a reconnect. Falls back to
|
|
51
|
+
* `{slotIndex:i}` at point-of-use when absent (e.g. caller-provided
|
|
52
|
+
* clients with no connection strategy).
|
|
53
|
+
*/
|
|
54
|
+
readonly mcpClientDescriptors?: readonly McpClientDescriptor[];
|
|
55
|
+
/**
|
|
56
|
+
* Strategy that names colliding MCP tools when two+ clients expose the
|
|
57
|
+
* same bare tool name. Unset until the builder wires an override (Task
|
|
58
|
+
* 10); handlers fall back to `defaultToolNamespace` at point-of-use.
|
|
59
|
+
*/
|
|
60
|
+
readonly toolNamespace?: IToolNamespace;
|
|
46
61
|
readonly reranker: IReranker;
|
|
47
62
|
readonly queryExpander: IQueryExpander;
|
|
48
63
|
readonly toolCache: IToolCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/pipeline/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/pipeline/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,IAAI,EACJ,SAAS,EACT,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM9D,MAAM,WAAW,eAAe;IAG9B,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5C,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAI3B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAC5D,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,mHAAmH;IACnH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IACtD,wGAAwG;IACxG,QAAQ,CAAC,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;IAIzE,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4CAA4C;IAC5C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,cAAc,EAAE,eAAe,GAAG,SAAS,CAAC;IAC5C,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxC,gDAAgD;IAChD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,+DAA+D;IAC/D,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,6CAA6C;IAC7C,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,8CAA8C;IAC9C,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAIlB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,aAAa,EAAE,OAAO,CAAC;IAIvB,gDAAgD;IAChD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,kDAAkD;IAClD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAI1B;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAItB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/default-pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/default-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -318,6 +318,8 @@ export class DefaultPipeline {
|
|
|
318
318
|
ragRegistry: this.deps.ragRegistry,
|
|
319
319
|
ragProviderRegistry: this.deps.ragProviderRegistry,
|
|
320
320
|
mcpClients: this.deps.mcpClients,
|
|
321
|
+
mcpClientDescriptors: this.deps.mcpClientDescriptors,
|
|
322
|
+
toolNamespace: this.deps.toolNamespace,
|
|
321
323
|
reranker: this.resolvedReranker,
|
|
322
324
|
queryExpander: this.resolvedQueryExpander,
|
|
323
325
|
toolCache: this.resolvedToolCache,
|