@mcp-abap-adt/llm-agent-libs 20.0.0 → 20.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/adapters/llm-adapter.d.ts.map +1 -1
  2. package/dist/adapters/llm-adapter.js +16 -7
  3. package/dist/adapters/llm-adapter.js.map +1 -1
  4. package/dist/agent/rag-helpers.d.ts +20 -0
  5. package/dist/agent/rag-helpers.d.ts.map +1 -0
  6. package/dist/agent/rag-helpers.js +61 -0
  7. package/dist/agent/rag-helpers.js.map +1 -0
  8. package/dist/agent/rag-orchestrator-types.d.ts +53 -0
  9. package/dist/agent/rag-orchestrator-types.d.ts.map +1 -0
  10. package/dist/agent/rag-orchestrator-types.js +2 -0
  11. package/dist/agent/rag-orchestrator-types.js.map +1 -0
  12. package/dist/agent/rag-orchestrator.d.ts +14 -0
  13. package/dist/agent/rag-orchestrator.d.ts.map +1 -0
  14. package/dist/agent/rag-orchestrator.js +352 -0
  15. package/dist/agent/rag-orchestrator.js.map +1 -0
  16. package/dist/agent.d.ts +13 -9
  17. package/dist/agent.d.ts.map +1 -1
  18. package/dist/agent.js +168 -831
  19. package/dist/agent.js.map +1 -1
  20. package/dist/builder-types.d.ts +64 -0
  21. package/dist/builder-types.d.ts.map +1 -0
  22. package/dist/builder-types.js +18 -0
  23. package/dist/builder-types.js.map +1 -0
  24. package/dist/builder.d.ts +27 -51
  25. package/dist/builder.d.ts.map +1 -1
  26. package/dist/builder.js +86 -224
  27. package/dist/builder.js.map +1 -1
  28. package/dist/coordinator/planning/one-shot.d.ts.map +1 -1
  29. package/dist/coordinator/planning/one-shot.js +13 -2
  30. package/dist/coordinator/planning/one-shot.js.map +1 -1
  31. package/dist/health/agent-health.d.ts +13 -0
  32. package/dist/health/agent-health.d.ts.map +1 -0
  33. package/dist/health/agent-health.js +82 -0
  34. package/dist/health/agent-health.js.map +1 -0
  35. package/dist/health/health-checker.d.ts.map +1 -1
  36. package/dist/health/health-checker.js +4 -4
  37. package/dist/health/health-checker.js.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interfaces/pipeline.d.ts +5 -1
  43. package/dist/interfaces/pipeline.d.ts.map +1 -1
  44. package/dist/mcp/tool-registry.d.ts +22 -0
  45. package/dist/mcp/tool-registry.d.ts.map +1 -0
  46. package/dist/mcp/tool-registry.js +57 -0
  47. package/dist/mcp/tool-registry.js.map +1 -0
  48. package/dist/mcp/vectorize-mcp-tools.d.ts +11 -0
  49. package/dist/mcp/vectorize-mcp-tools.d.ts.map +1 -0
  50. package/dist/mcp/vectorize-mcp-tools.js +191 -0
  51. package/dist/mcp/vectorize-mcp-tools.js.map +1 -0
  52. package/dist/pipeline/context/tool-loop-context/index.d.ts +7 -0
  53. package/dist/pipeline/context/tool-loop-context/index.d.ts.map +1 -0
  54. package/dist/pipeline/context/tool-loop-context/index.js +5 -0
  55. package/dist/pipeline/context/tool-loop-context/index.js.map +1 -0
  56. package/dist/pipeline/context/tool-loop-context/legacy-accumulate-context-strategy.d.ts +10 -0
  57. package/dist/pipeline/context/tool-loop-context/legacy-accumulate-context-strategy.d.ts.map +1 -0
  58. package/dist/pipeline/context/tool-loop-context/legacy-accumulate-context-strategy.js +25 -0
  59. package/dist/pipeline/context/tool-loop-context/legacy-accumulate-context-strategy.js.map +1 -0
  60. package/dist/pipeline/context/tool-loop-context/legacy-transcript-context-strategy.d.ts +15 -0
  61. package/dist/pipeline/context/tool-loop-context/legacy-transcript-context-strategy.d.ts.map +1 -0
  62. package/dist/pipeline/context/tool-loop-context/legacy-transcript-context-strategy.js +34 -0
  63. package/dist/pipeline/context/tool-loop-context/legacy-transcript-context-strategy.js.map +1 -0
  64. package/dist/pipeline/context/tool-loop-context/rag-recall-context-strategy.d.ts +22 -0
  65. package/dist/pipeline/context/tool-loop-context/rag-recall-context-strategy.d.ts.map +1 -0
  66. package/dist/pipeline/context/tool-loop-context/rag-recall-context-strategy.js +51 -0
  67. package/dist/pipeline/context/tool-loop-context/rag-recall-context-strategy.js.map +1 -0
  68. package/dist/pipeline/context/tool-loop-context/window-context-strategy.d.ts +15 -0
  69. package/dist/pipeline/context/tool-loop-context/window-context-strategy.d.ts.map +1 -0
  70. package/dist/pipeline/context/tool-loop-context/window-context-strategy.js +38 -0
  71. package/dist/pipeline/context/tool-loop-context/window-context-strategy.js.map +1 -0
  72. package/dist/pipeline/context.d.ts +5 -1
  73. package/dist/pipeline/context.d.ts.map +1 -1
  74. package/dist/pipeline/default-pipeline.d.ts.map +1 -1
  75. package/dist/pipeline/default-pipeline.js +2 -0
  76. package/dist/pipeline/default-pipeline.js.map +1 -1
  77. package/dist/pipeline/handlers/escalate-if-unavailable.d.ts +33 -0
  78. package/dist/pipeline/handlers/escalate-if-unavailable.d.ts.map +1 -0
  79. package/dist/pipeline/handlers/escalate-if-unavailable.js +22 -0
  80. package/dist/pipeline/handlers/escalate-if-unavailable.js.map +1 -0
  81. package/dist/pipeline/handlers/pass-through.d.ts +3 -0
  82. package/dist/pipeline/handlers/pass-through.d.ts.map +1 -0
  83. package/dist/pipeline/handlers/pass-through.js +77 -0
  84. package/dist/pipeline/handlers/pass-through.js.map +1 -0
  85. package/dist/pipeline/handlers/tool-loop-core.d.ts +103 -0
  86. package/dist/pipeline/handlers/tool-loop-core.d.ts.map +1 -0
  87. package/dist/pipeline/handlers/tool-loop-core.js +265 -0
  88. package/dist/pipeline/handlers/tool-loop-core.js.map +1 -0
  89. package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -1
  90. package/dist/pipeline/handlers/tool-loop.js +155 -249
  91. package/dist/pipeline/handlers/tool-loop.js.map +1 -1
  92. package/dist/pipeline/pipeline-to-stream.d.ts +5 -0
  93. package/dist/pipeline/pipeline-to-stream.d.ts.map +1 -0
  94. package/dist/pipeline/pipeline-to-stream.js +49 -0
  95. package/dist/pipeline/pipeline-to-stream.js.map +1 -0
  96. package/dist/skills/plugin-host/github-transport.d.ts +35 -0
  97. package/dist/skills/plugin-host/github-transport.d.ts.map +1 -0
  98. package/dist/skills/plugin-host/github-transport.js +124 -0
  99. package/dist/skills/plugin-host/github-transport.js.map +1 -0
  100. package/dist/skills/plugin-host/index.d.ts +1 -0
  101. package/dist/skills/plugin-host/index.d.ts.map +1 -1
  102. package/dist/skills/plugin-host/index.js +1 -0
  103. package/dist/skills/plugin-host/index.js.map +1 -1
  104. package/package.json +14 -14
@@ -0,0 +1,265 @@
1
+ import { OrchestratorError } from '@mcp-abap-adt/llm-agent';
2
+ import { isToolContextUnavailableError, } from '../../policy/tool-availability-registry.js';
3
+ import { classifyToolResult } from './escalate-if-unavailable.js';
4
+ /** Partition tool calls into internal / valid-external / blocked / hallucinated. */
5
+ export function classifyToolCalls(toolCalls, toolClientMap, externalToolNames, toolAvailabilityRegistry, sessionId) {
6
+ const internalCalls = toolCalls.filter((tc) => toolClientMap.has(tc.name));
7
+ const validExternalCalls = toolCalls.filter((tc) => externalToolNames.has(tc.name));
8
+ const blockedToolNames = toolAvailabilityRegistry.getBlockedToolNames(sessionId);
9
+ const blockedCalls = toolCalls.filter((tc) => blockedToolNames.has(tc.name));
10
+ const hallucinations = toolCalls.filter((tc) => !blockedToolNames.has(tc.name) &&
11
+ !toolClientMap.has(tc.name) &&
12
+ !externalToolNames.has(tc.name));
13
+ return { internalCalls, validExternalCalls, blockedCalls, hallucinations };
14
+ }
15
+ /** Append the client-tool priority instruction to the system message when
16
+ * external tools are present. Returns messages unchanged otherwise. */
17
+ export function injectToolPriority(messages, externalTools) {
18
+ if (externalTools.length > 0) {
19
+ const systemIdx = messages.findIndex((m) => m.role === 'system');
20
+ if (systemIdx >= 0) {
21
+ const sys = messages[systemIdx];
22
+ const next = [...messages];
23
+ next[systemIdx] = {
24
+ ...sys,
25
+ content: `${sys.content}\n\nIMPORTANT: You have internal tools and client-provided tools (marked [client-provided] in their description). Always prefer internal tools when they can accomplish the task. Use client-provided tools only when no internal tool can do the job.`,
26
+ };
27
+ return next;
28
+ }
29
+ }
30
+ return messages;
31
+ }
32
+ /** Filter out session-blocked tools; log the blocked set when non-empty.
33
+ * Returns the allowed subset. */
34
+ export function filterAvailableTools(registry, sessionId, currentTools, iteration, options) {
35
+ const filtered = registry.filterTools(sessionId, currentTools);
36
+ if (filtered.blocked.length > 0) {
37
+ options?.sessionLogger?.logStep('active_tools_filtered_in_iteration', {
38
+ iteration: iteration + 1,
39
+ blocked: filtered.blocked,
40
+ });
41
+ }
42
+ return filtered.allowed;
43
+ }
44
+ /** Inject pending internal tool results from a prior mixed-call request. */
45
+ export async function injectPendingResults(messages, pendingToolResults, sessionId, options) {
46
+ if (pendingToolResults.has(sessionId)) {
47
+ const pending = await pendingToolResults.consume(sessionId);
48
+ if (pending) {
49
+ const next = [
50
+ ...messages,
51
+ pending.assistantMessage,
52
+ ...pending.results.map((r) => ({
53
+ role: 'tool',
54
+ content: r.text,
55
+ tool_call_id: r.toolCallId,
56
+ })),
57
+ ];
58
+ options?.sessionLogger?.logStep('pending_tool_results_injected', {
59
+ toolNames: pending.results.map((r) => r.toolName),
60
+ });
61
+ return next;
62
+ }
63
+ }
64
+ return messages;
65
+ }
66
+ /** Build an assistant(tool_calls=blocked) + per-blocked tool-error messages;
67
+ * log the interception. Returns a `{ assistant, results }` group — the
68
+ * caller appends `group.assistant, ...group.results` to its message list. */
69
+ export function buildBlockedToolMessages(content, blockedCalls, options) {
70
+ const assistant = {
71
+ role: 'assistant',
72
+ content: content || null,
73
+ tool_calls: blockedCalls.map((tc) => ({
74
+ id: tc.id,
75
+ type: 'function',
76
+ function: { name: tc.name, arguments: JSON.stringify(tc.arguments) },
77
+ })),
78
+ };
79
+ const results = blockedCalls.map((blocked) => ({
80
+ role: 'tool',
81
+ content: `Error: Tool "${blocked.name}" is temporarily unavailable in this session.`,
82
+ tool_call_id: blocked.id,
83
+ }));
84
+ options?.sessionLogger?.logStep('blocked_tool_calls_intercepted', {
85
+ toolNames: blockedCalls.map((tc) => tc.name),
86
+ });
87
+ return { assistant, results };
88
+ }
89
+ /** Build an assistant(tool_calls=ALL calls) + per-hallucination "not found"
90
+ * tool messages. Returns a `{ assistant, results }` group — the caller
91
+ * appends `group.assistant, ...group.results` to its message list. */
92
+ export function buildHallucinatedToolMessages(content, toolCalls, hallucinations) {
93
+ const assistant = {
94
+ role: 'assistant',
95
+ content: content || null,
96
+ tool_calls: toolCalls.map((tc) => ({
97
+ id: tc.id,
98
+ type: 'function',
99
+ function: { name: tc.name, arguments: JSON.stringify(tc.arguments) },
100
+ })),
101
+ };
102
+ const results = hallucinations.map((h) => ({
103
+ role: 'tool',
104
+ content: `Error: Tool "${h.name}" not found.`,
105
+ tool_call_id: h.id,
106
+ }));
107
+ return { assistant, results };
108
+ }
109
+ /** Execute a batch of internal tool calls concurrently, yielding heartbeat
110
+ * chunks while they run; on an MCP-availability escalation yield an error
111
+ * chunk and return `{ escalated: true }`; otherwise return the updated
112
+ * currentTools / toolCallCount / tool messages. */
113
+ export async function* executeToolBatchWithHeartbeat(args) {
114
+ const { batch, toolClientMap, toolCache, tracer, metrics, parentSpan, toolAvailabilityRegistry, sessionId, externalToolNames, timingLog, heartbeatMs, options, onToolExecuted, } = args;
115
+ let currentTools = args.currentTools;
116
+ let toolCallCount = args.toolCallCount;
117
+ const toolExecPromises = batch.map(async (tc) => {
118
+ const toolStart = Date.now();
119
+ options?.sessionLogger?.logStep(`mcp_call_${tc.name}`, {
120
+ arguments: tc.arguments,
121
+ });
122
+ const client = toolClientMap.get(tc.name);
123
+ if (!client)
124
+ return { tc, text: '', res: null, duration: 0, cached: false };
125
+ const toolSpan = tracer.startSpan('smart_agent.tool_call', {
126
+ parent: parentSpan,
127
+ attributes: { 'tool.name': tc.name },
128
+ });
129
+ const cachedValue = toolCache.get(tc.name, tc.arguments);
130
+ const wasCached = !!cachedValue;
131
+ const res = cachedValue
132
+ ? (() => {
133
+ metrics.toolCacheHitCount.add();
134
+ toolSpan.setAttribute('cache', 'hit');
135
+ return { ok: true, value: cachedValue };
136
+ })()
137
+ : await (async () => {
138
+ const r = await client.callTool(tc.name, tc.arguments, options);
139
+ if (r.ok)
140
+ toolCache.set(tc.name, tc.arguments, r.value);
141
+ return r;
142
+ })();
143
+ const text = !res.ok
144
+ ? res.error.message
145
+ : typeof res.value.content === 'string'
146
+ ? res.value.content
147
+ : JSON.stringify(res.value.content);
148
+ toolSpan.setStatus(res.ok ? 'ok' : 'error', res.ok ? undefined : text);
149
+ toolSpan.end();
150
+ return {
151
+ tc,
152
+ text,
153
+ res,
154
+ duration: Date.now() - toolStart,
155
+ cached: wasCached,
156
+ };
157
+ });
158
+ const allDone = Promise.all(toolExecPromises);
159
+ const pendingTools = new Set(batch.map((tc) => tc.name));
160
+ const toolStartTime = Date.now();
161
+ let results = [];
162
+ let settled = false;
163
+ for (const [i, p] of toolExecPromises.entries()) {
164
+ p.then(() => pendingTools.delete(batch[i].name));
165
+ }
166
+ while (!settled) {
167
+ const winner = await Promise.race([
168
+ allDone.then((r) => ({ tag: 'done', results: r })),
169
+ new Promise((resolve) => setTimeout(() => resolve({ tag: 'tick' }), heartbeatMs)),
170
+ ]);
171
+ if (winner.tag === 'done') {
172
+ results = winner.results;
173
+ settled = true;
174
+ }
175
+ else {
176
+ for (const tool of pendingTools) {
177
+ yield {
178
+ ok: true,
179
+ value: {
180
+ content: '',
181
+ heartbeat: { tool, elapsed: Date.now() - toolStartTime },
182
+ },
183
+ };
184
+ }
185
+ }
186
+ }
187
+ for (const r of results) {
188
+ timingLog.push({ phase: `tool_${r.tc.name}`, duration: r.duration });
189
+ }
190
+ const toolMessages = [];
191
+ const resultMeta = [];
192
+ for (const r of results) {
193
+ const { tc, text, res } = r;
194
+ if (!res)
195
+ continue;
196
+ // FAIL LOUD on an MCP availability failure — yield an error chunk (→ the
197
+ // caller returns ok:false) instead of feeding "MCP error" to the LLM.
198
+ const tcClient = toolClientMap.get(tc.name);
199
+ const probe = tcClient?.healthCheck
200
+ ? () => tcClient.healthCheck().then((hr) => (hr.ok ? hr.value : false))
201
+ : undefined;
202
+ const decision = await classifyToolResult(res, args.mcpFailureClassifier, probe);
203
+ if (decision.escalate) {
204
+ // Emit timing BEFORE escalating so the timed-out/unavailable tool call
205
+ // appears in the timing log. onToolExecuted fires exactly once here;
206
+ // the end-of-loop call is skipped because we return early.
207
+ onToolExecuted?.(r);
208
+ yield {
209
+ ok: false,
210
+ error: new OrchestratorError(decision.escalate.message, 'MCP_UNAVAILABLE'),
211
+ };
212
+ return { escalated: true };
213
+ }
214
+ if (!res.ok &&
215
+ isToolContextUnavailableError(text) &&
216
+ !externalToolNames.has(tc.name)) {
217
+ const entry = toolAvailabilityRegistry.block(sessionId, tc.name, text);
218
+ currentTools = currentTools.filter((t) => t.name !== tc.name);
219
+ options?.sessionLogger?.logStep(`tool_blacklisted_${tc.name}`, {
220
+ reason: text,
221
+ blockedUntil: entry.blockedUntil,
222
+ });
223
+ }
224
+ options?.sessionLogger?.logStep(`mcp_result_${tc.name}`, { result: text });
225
+ toolCallCount++;
226
+ metrics.toolCallCount.add();
227
+ toolMessages.push({
228
+ role: 'tool',
229
+ content: text,
230
+ tool_call_id: tc.id,
231
+ });
232
+ resultMeta.push({
233
+ isError: !res.ok || (res.ok && !!res.value.isError),
234
+ });
235
+ onToolExecuted?.(r);
236
+ }
237
+ return {
238
+ escalated: false,
239
+ currentTools,
240
+ toolCallCount,
241
+ toolMessages,
242
+ resultMeta,
243
+ };
244
+ }
245
+ /** Validate the no-tool-call output; on invalid, append the assistant reply +
246
+ * a correction user message and signal a reprompt. Otherwise pass through. */
247
+ export async function runOutputValidationReprompt(outputValidator, content, messages, currentTools, options) {
248
+ const valResult = await outputValidator.validate(content, { messages, tools: currentTools }, options);
249
+ if (valResult.ok && !valResult.value.valid) {
250
+ const correction = valResult.value.correctedContent ?? valResult.value.reason;
251
+ return {
252
+ reprompt: true,
253
+ messages: [
254
+ ...messages,
255
+ { role: 'assistant', content },
256
+ {
257
+ role: 'user',
258
+ content: `Your previous response was rejected by validation: ${correction}. Please try again.`,
259
+ },
260
+ ],
261
+ };
262
+ }
263
+ return { reprompt: false, messages };
264
+ }
265
+ //# sourceMappingURL=tool-loop-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-loop-core.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/tool-loop-core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiBH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqDzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC;CAw3BpB"}
1
+ {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiBH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA+DzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC;CAqxBpB"}