@mcp-abap-adt/llm-agent-server-libs 20.0.0 → 20.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builders/controller-skill-pipeline-builder.d.ts +57 -0
- package/dist/builders/controller-skill-pipeline-builder.d.ts.map +1 -0
- package/dist/builders/controller-skill-pipeline-builder.js +175 -0
- package/dist/builders/controller-skill-pipeline-builder.js.map +1 -0
- 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 +19 -3
- package/dist/pipelines/controller.js.map +1 -1
- package/dist/pipelines/coordinator-resolvers.d.ts +68 -0
- package/dist/pipelines/coordinator-resolvers.d.ts.map +1 -0
- package/dist/pipelines/coordinator-resolvers.js +97 -0
- package/dist/pipelines/coordinator-resolvers.js.map +1 -0
- package/dist/pipelines/parsers.d.ts +1 -1
- package/dist/pipelines/parsers.d.ts.map +1 -1
- package/dist/pipelines/parsers.js +5 -4
- package/dist/pipelines/parsers.js.map +1 -1
- package/dist/pipelines/register-skill-sources.d.ts.map +1 -1
- package/dist/pipelines/register-skill-sources.js +5 -0
- package/dist/pipelines/register-skill-sources.js.map +1 -1
- package/dist/smart-agent/build-stepper-root.d.ts +3 -2
- package/dist/smart-agent/build-stepper-root.d.ts.map +1 -1
- package/dist/smart-agent/build-stepper-root.js +2 -1
- package/dist/smart-agent/build-stepper-root.js.map +1 -1
- package/dist/smart-agent/config-reload-watcher.d.ts +30 -0
- package/dist/smart-agent/config-reload-watcher.d.ts.map +1 -0
- package/dist/smart-agent/config-reload-watcher.js +101 -0
- package/dist/smart-agent/config-reload-watcher.js.map +1 -0
- package/dist/smart-agent/config-validator.d.ts +21 -0
- package/dist/smart-agent/config-validator.d.ts.map +1 -0
- package/dist/smart-agent/config-validator.js +196 -0
- package/dist/smart-agent/config-validator.js.map +1 -0
- package/dist/smart-agent/config.d.ts +16 -254
- package/dist/smart-agent/config.d.ts.map +1 -1
- package/dist/smart-agent/config.js +17 -904
- package/dist/smart-agent/config.js.map +1 -1
- package/dist/smart-agent/controller/board.d.ts +6 -3
- package/dist/smart-agent/controller/board.d.ts.map +1 -1
- package/dist/smart-agent/controller/board.js +21 -0
- package/dist/smart-agent/controller/board.js.map +1 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts +6 -48
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts.map +1 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.js +68 -357
- package/dist/smart-agent/controller/controller-coordinator-handler.js.map +1 -1
- package/dist/smart-agent/controller/finalizer.d.ts +5 -0
- package/dist/smart-agent/controller/finalizer.d.ts.map +1 -1
- package/dist/smart-agent/controller/finalizer.js +12 -5
- package/dist/smart-agent/controller/finalizer.js.map +1 -1
- package/dist/smart-agent/controller/parser.d.ts +11 -0
- package/dist/smart-agent/controller/parser.d.ts.map +1 -0
- package/dist/smart-agent/controller/parser.js +77 -0
- package/dist/smart-agent/controller/parser.js.map +1 -0
- package/dist/smart-agent/controller/planner.js +1 -1
- package/dist/smart-agent/controller/planner.js.map +1 -1
- package/dist/smart-agent/controller/recall.d.ts +48 -0
- package/dist/smart-agent/controller/recall.d.ts.map +1 -0
- package/dist/smart-agent/controller/recall.js +196 -0
- package/dist/smart-agent/controller/recall.js.map +1 -0
- package/dist/smart-agent/controller/reviewer.d.ts.map +1 -1
- package/dist/smart-agent/controller/reviewer.js +1 -1
- package/dist/smart-agent/controller/reviewer.js.map +1 -1
- package/dist/smart-agent/controller/usage-logging.d.ts +16 -0
- package/dist/smart-agent/controller/usage-logging.d.ts.map +1 -0
- package/dist/smart-agent/controller/usage-logging.js +39 -0
- package/dist/smart-agent/controller/usage-logging.js.map +1 -0
- package/dist/smart-agent/http/adapter-route-handler.d.ts +13 -0
- package/dist/smart-agent/http/adapter-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/adapter-route-handler.js +76 -0
- package/dist/smart-agent/http/adapter-route-handler.js.map +1 -0
- package/dist/smart-agent/http/chat-route-handler.d.ts +15 -0
- package/dist/smart-agent/http/chat-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/chat-route-handler.js +327 -0
- package/dist/smart-agent/http/chat-route-handler.js.map +1 -0
- package/dist/smart-agent/http/config-route-handler.d.ts +21 -0
- package/dist/smart-agent/http/config-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/config-route-handler.js +149 -0
- package/dist/smart-agent/http/config-route-handler.js.map +1 -0
- package/dist/smart-agent/http/health-route-handler.d.ts +12 -0
- package/dist/smart-agent/http/health-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/health-route-handler.js +19 -0
- package/dist/smart-agent/http/health-route-handler.js.map +1 -0
- package/dist/smart-agent/http/models-route-handler.d.ts +17 -0
- package/dist/smart-agent/http/models-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/models-route-handler.js +65 -0
- package/dist/smart-agent/http/models-route-handler.js.map +1 -0
- package/dist/smart-agent/http/response-helpers.d.ts +31 -0
- package/dist/smart-agent/http/response-helpers.d.ts.map +1 -0
- package/dist/smart-agent/http/response-helpers.js +59 -0
- package/dist/smart-agent/http/response-helpers.js.map +1 -0
- package/dist/smart-agent/http/route-table.d.ts +44 -0
- package/dist/smart-agent/http/route-table.d.ts.map +1 -0
- package/dist/smart-agent/http/route-table.js +35 -0
- package/dist/smart-agent/http/route-table.js.map +1 -0
- package/dist/smart-agent/http/session-cookie.d.ts +10 -0
- package/dist/smart-agent/http/session-cookie.d.ts.map +1 -0
- package/dist/smart-agent/http/session-cookie.js +16 -0
- package/dist/smart-agent/http/session-cookie.js.map +1 -0
- package/dist/smart-agent/http/sessions-route-handler.d.ts +8 -0
- package/dist/smart-agent/http/sessions-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/sessions-route-handler.js +54 -0
- package/dist/smart-agent/http/sessions-route-handler.js.map +1 -0
- package/dist/smart-agent/http/usage-route-handler.d.ts +12 -0
- package/dist/smart-agent/http/usage-route-handler.d.ts.map +1 -0
- package/dist/smart-agent/http/usage-route-handler.js +28 -0
- package/dist/smart-agent/http/usage-route-handler.js.map +1 -0
- package/dist/smart-agent/knowledge/make-knowledge-backend.d.ts +13 -0
- package/dist/smart-agent/knowledge/make-knowledge-backend.d.ts.map +1 -0
- package/dist/smart-agent/knowledge/make-knowledge-backend.js +18 -0
- package/dist/smart-agent/knowledge/make-knowledge-backend.js.map +1 -0
- package/dist/smart-agent/llm/role-llm-resolver.d.ts +30 -0
- package/dist/smart-agent/llm/role-llm-resolver.d.ts.map +1 -0
- package/dist/smart-agent/llm/role-llm-resolver.js +44 -0
- package/dist/smart-agent/llm/role-llm-resolver.js.map +1 -0
- package/dist/smart-agent/llm-config-map.d.ts +38 -0
- package/dist/smart-agent/llm-config-map.d.ts.map +1 -0
- package/dist/smart-agent/llm-config-map.js +75 -0
- package/dist/smart-agent/llm-config-map.js.map +1 -0
- package/dist/smart-agent/mcp-readiness-monitor.d.ts +38 -0
- package/dist/smart-agent/mcp-readiness-monitor.d.ts.map +1 -0
- package/dist/smart-agent/mcp-readiness-monitor.js +81 -0
- package/dist/smart-agent/mcp-readiness-monitor.js.map +1 -0
- package/dist/smart-agent/mcp-readiness-registry.d.ts +37 -0
- package/dist/smart-agent/mcp-readiness-registry.d.ts.map +1 -0
- package/dist/smart-agent/mcp-readiness-registry.js +55 -0
- package/dist/smart-agent/mcp-readiness-registry.js.map +1 -0
- package/dist/smart-agent/resolve-config-sections.d.ts +15 -0
- package/dist/smart-agent/resolve-config-sections.d.ts.map +1 -0
- package/dist/smart-agent/resolve-config-sections.js +212 -0
- package/dist/smart-agent/resolve-config-sections.js.map +1 -0
- package/dist/smart-agent/session-lifecycle/index.d.ts +117 -0
- package/dist/smart-agent/session-lifecycle/index.d.ts.map +1 -0
- package/dist/smart-agent/session-lifecycle/index.js +152 -0
- package/dist/smart-agent/session-lifecycle/index.js.map +1 -0
- package/dist/smart-agent/skill-plugins-config.d.ts +9 -1
- package/dist/smart-agent/skill-plugins-config.d.ts.map +1 -1
- package/dist/smart-agent/skill-plugins-config.js +27 -1
- package/dist/smart-agent/skill-plugins-config.js.map +1 -1
- package/dist/smart-agent/skill-plugins-host-factory.d.ts +14 -2
- package/dist/smart-agent/skill-plugins-host-factory.d.ts.map +1 -1
- package/dist/smart-agent/skill-plugins-host-factory.js +16 -4
- package/dist/smart-agent/skill-plugins-host-factory.js.map +1 -1
- package/dist/smart-agent/smart-server.d.ts +151 -222
- package/dist/smart-agent/smart-server.d.ts.map +1 -1
- package/dist/smart-agent/smart-server.js +527 -1384
- package/dist/smart-agent/smart-server.js.map +1 -1
- package/dist/smart-agent/stepper-config.d.ts +138 -0
- package/dist/smart-agent/stepper-config.d.ts.map +1 -0
- package/dist/smart-agent/stepper-config.js +216 -0
- package/dist/smart-agent/stepper-config.js.map +1 -0
- package/dist/smart-agent/tools-rag-handle.d.ts +10 -0
- package/dist/smart-agent/tools-rag-handle.d.ts.map +1 -0
- package/dist/smart-agent/tools-rag-handle.js +76 -0
- package/dist/smart-agent/tools-rag-handle.js.map +1 -0
- package/dist/smart-agent/workers/worker-registry.d.ts +159 -0
- package/dist/smart-agent/workers/worker-registry.d.ts.map +1 -0
- package/dist/smart-agent/workers/worker-registry.js +203 -0
- package/dist/smart-agent/workers/worker-registry.js.map +1 -0
- package/dist/smart-agent/yaml-loader.d.ts +7 -0
- package/dist/smart-agent/yaml-loader.d.ts.map +1 -0
- package/dist/smart-agent/yaml-loader.js +146 -0
- package/dist/smart-agent/yaml-loader.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { cosine } from '../embedder-knowledge-index.js';
|
|
2
|
+
import { resolveByPrecedence } from './outcome.js';
|
|
3
|
+
/** Top-k recalled artifacts injected into the executor context per step. */
|
|
4
|
+
/** Artifact types eligible for recall (excludes the 'controller-bundle' record
|
|
5
|
+
* that shares the same backend). */
|
|
6
|
+
export const RECALL_ARTIFACT_TYPES = ['step-result', 'mcp-result'];
|
|
7
|
+
/** Per-kind recall counts (distinct artifacts kept after dedup + cap). */
|
|
8
|
+
export const RECALL_K_STEP = 4;
|
|
9
|
+
export const RECALL_K_MCP = 4;
|
|
10
|
+
/** SEPARATE char budgets per kind, so a huge step-result cannot starve MCP context. */
|
|
11
|
+
export const RECALL_MAX_CHARS_STEP = 2000;
|
|
12
|
+
export const RECALL_MAX_CHARS_MCP = 2000;
|
|
13
|
+
/** Char budget for a single per-`requires` evidence extract handed to the reviewer. */
|
|
14
|
+
export const RECALL_EVIDENCE_CHARS = 800;
|
|
15
|
+
/** Build a bounded "Relevant prior context" block from recalled artifacts under
|
|
16
|
+
* the given char budget, or undefined when there is nothing to inject. */
|
|
17
|
+
export function buildRecallBlock(hits, maxChars) {
|
|
18
|
+
if (hits.length === 0)
|
|
19
|
+
return undefined;
|
|
20
|
+
const parts = [];
|
|
21
|
+
let used = 0;
|
|
22
|
+
for (const h of hits) {
|
|
23
|
+
const c = h.content ?? '';
|
|
24
|
+
if (c.length === 0)
|
|
25
|
+
continue;
|
|
26
|
+
if (used + c.length > maxChars) {
|
|
27
|
+
parts.push(c.slice(0, maxChars - used));
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
parts.push(c);
|
|
31
|
+
used += c.length;
|
|
32
|
+
}
|
|
33
|
+
if (parts.length === 0)
|
|
34
|
+
return undefined;
|
|
35
|
+
return `Relevant prior context:\n${parts.join('\n')}`;
|
|
36
|
+
}
|
|
37
|
+
/** Gather the run's approved results, one per seq, resolved by outcome precedence
|
|
38
|
+
* (ok/exists > partial > failed), ordered by seq. Reconstructs the complete
|
|
39
|
+
* Outcome from artifact metadata (status/note/remainder) + content. */
|
|
40
|
+
export async function collectApproved(rag, runId) {
|
|
41
|
+
const all = await rag.list({ runId, artifactType: 'step-result' });
|
|
42
|
+
const bySeq = new Map();
|
|
43
|
+
for (const e of all) {
|
|
44
|
+
const seq = e.metadata.seq ?? 0;
|
|
45
|
+
const o = {
|
|
46
|
+
status: (e.metadata.status ?? 'failed'),
|
|
47
|
+
approved: e.content,
|
|
48
|
+
remainder: e.metadata.remainder ?? '',
|
|
49
|
+
note: e.metadata.note ?? '',
|
|
50
|
+
};
|
|
51
|
+
const arr = bySeq.get(seq);
|
|
52
|
+
if (arr)
|
|
53
|
+
arr.push(o);
|
|
54
|
+
else
|
|
55
|
+
bySeq.set(seq, [o]);
|
|
56
|
+
}
|
|
57
|
+
const out = [];
|
|
58
|
+
for (const [seq, outcomes] of [...bySeq.entries()].sort((a, b) => a[0] - b[0])) {
|
|
59
|
+
const resolved = resolveByPrecedence(outcomes);
|
|
60
|
+
if (resolved && resolved.status !== 'failed')
|
|
61
|
+
out.push({ seq, content: resolved.approved });
|
|
62
|
+
}
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
/** The ONE run-scoped results-RAG recall primitive — used by BOTH the whole-step
|
|
66
|
+
* recall AND the per-`requires` evidence. EMBEDDING-based similarity via the
|
|
67
|
+
* backend's semantic query (NO homemade lexical scoring): the backend embeds the
|
|
68
|
+
* query + ranks by vector similarity, with the `runId` filter applied PRE-cap.
|
|
69
|
+
* Over-fetch `kPrime` (caller-supplied so the duplication bound is justified PER
|
|
70
|
+
* KIND), then dedup and cap to `k`. Dedup: step-results (have `seq`) →
|
|
71
|
+
* precedence-winner per seq; mcp-results → by `identityKey`. Embedding rank order
|
|
72
|
+
* is preserved through the dedup.
|
|
73
|
+
* `options` is forwarded into the embedder so recall-time embeds are metered. */
|
|
74
|
+
export async function runScopedRecall(rag, text, k, runId, kPrime, artifactType, options) {
|
|
75
|
+
const hits = await rag.query(text, {
|
|
76
|
+
k: kPrime,
|
|
77
|
+
filter: { runId, artifactType },
|
|
78
|
+
options,
|
|
79
|
+
});
|
|
80
|
+
const bestStep = new Map();
|
|
81
|
+
const bestMcp = new Map();
|
|
82
|
+
for (const e of hits) {
|
|
83
|
+
if (e.metadata.seq !== undefined && e.metadata.status !== undefined) {
|
|
84
|
+
const prev = bestStep.get(e.metadata.seq);
|
|
85
|
+
if (!prev || isBetterStep(e, prev))
|
|
86
|
+
bestStep.set(e.metadata.seq, e);
|
|
87
|
+
}
|
|
88
|
+
else if (e.metadata.identityKey) {
|
|
89
|
+
const prev = bestMcp.get(e.metadata.identityKey);
|
|
90
|
+
if (!prev || isBetterMcp(e, prev))
|
|
91
|
+
bestMcp.set(e.metadata.identityKey, e);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Walk hits in embedding-rank order; emit each (runId,seq) / identityKey once.
|
|
95
|
+
const out = [];
|
|
96
|
+
const seenSeq = new Set();
|
|
97
|
+
const seenMcp = new Set();
|
|
98
|
+
for (const e of hits) {
|
|
99
|
+
if (e.metadata.seq !== undefined && e.metadata.status !== undefined) {
|
|
100
|
+
if (seenSeq.has(e.metadata.seq))
|
|
101
|
+
continue;
|
|
102
|
+
seenSeq.add(e.metadata.seq);
|
|
103
|
+
// biome-ignore lint/style/noNonNullAssertion: bestStep has this seq (set above).
|
|
104
|
+
out.push(bestStep.get(e.metadata.seq));
|
|
105
|
+
}
|
|
106
|
+
else if (e.metadata.identityKey) {
|
|
107
|
+
if (seenMcp.has(e.metadata.identityKey))
|
|
108
|
+
continue;
|
|
109
|
+
seenMcp.add(e.metadata.identityKey);
|
|
110
|
+
// biome-ignore lint/style/noNonNullAssertion: bestMcp has this key (set above).
|
|
111
|
+
out.push(bestMcp.get(e.metadata.identityKey));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
out.push(e);
|
|
115
|
+
}
|
|
116
|
+
if (out.length >= k)
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
return out.slice(0, k);
|
|
120
|
+
}
|
|
121
|
+
/** Outcome-precedence rank for step-result dedup (ok/exists > partial > failed). */
|
|
122
|
+
function rankStatus(s) {
|
|
123
|
+
return s === 'ok' || s === 'exists'
|
|
124
|
+
? 3
|
|
125
|
+
: s === 'partial'
|
|
126
|
+
? 2
|
|
127
|
+
: s === 'failed'
|
|
128
|
+
? 1
|
|
129
|
+
: 0;
|
|
130
|
+
}
|
|
131
|
+
/** True when candidate `a` is a better winner than current `b` for step-result
|
|
132
|
+
* dedup. Latest-wins by EXECUTION IDENTITY, not by semantic-rank position:
|
|
133
|
+
* 1. Higher status rank wins; on tie →
|
|
134
|
+
* 2. Higher attempt wins; on further tie →
|
|
135
|
+
* 3. Higher writeOrdinal wins (tie-breaks same-timestamp artifacts from one run); on tie →
|
|
136
|
+
* 4. Later createdAt wins (missing = older: compare with '' as sentinel). */
|
|
137
|
+
function isBetterStep(a, b) {
|
|
138
|
+
const ra = rankStatus(a.metadata.status);
|
|
139
|
+
const rb = rankStatus(b.metadata.status);
|
|
140
|
+
if (ra !== rb)
|
|
141
|
+
return ra > rb;
|
|
142
|
+
const aa = a.metadata.attempt ?? 0;
|
|
143
|
+
const ba = b.metadata.attempt ?? 0;
|
|
144
|
+
if (aa !== ba)
|
|
145
|
+
return aa > ba;
|
|
146
|
+
const ao = a.metadata.writeOrdinal ?? -1;
|
|
147
|
+
const bo = b.metadata.writeOrdinal ?? -1;
|
|
148
|
+
if (ao !== bo)
|
|
149
|
+
return ao > bo;
|
|
150
|
+
return (a.metadata.createdAt ?? '') > (b.metadata.createdAt ?? '');
|
|
151
|
+
}
|
|
152
|
+
/** True when candidate `a` is a better winner than current `b` for mcp-result
|
|
153
|
+
* dedup. Latest-fetch wins by writeOrdinal first (handles same-timestamp), then
|
|
154
|
+
* falls back to createdAt (missing = older). */
|
|
155
|
+
function isBetterMcp(a, b) {
|
|
156
|
+
const ao = a.metadata.writeOrdinal ?? -1;
|
|
157
|
+
const bo = b.metadata.writeOrdinal ?? -1;
|
|
158
|
+
if (ao !== bo)
|
|
159
|
+
return ao > bo;
|
|
160
|
+
return (a.metadata.createdAt ?? '') > (b.metadata.createdAt ?? '');
|
|
161
|
+
}
|
|
162
|
+
const MAX_EXTRACT_WINDOWS = 64;
|
|
163
|
+
/** Return the ≤`maxChars` fragment of `content` most similar to `ref` by EMBEDDING
|
|
164
|
+
* (NOT ASCII lexical overlap). DIRECT single-pass ranking: every candidate is
|
|
165
|
+
* scored on its own. The SCORED window IS the RETURNED body: candidates are
|
|
166
|
+
* `body = maxChars - 2` chars (head+tail '…' reserved up front), so the
|
|
167
|
+
* highest-scoring fragment is never truncated by the markers. Stride is 50%
|
|
168
|
+
* overlap, widened to span the whole content within MAX_EXTRACT_WINDOWS windows
|
|
169
|
+
* (point coverage for content ≤ MAX_EXTRACT_WINDOWS×maxChars; larger thins to
|
|
170
|
+
* non-overlapping, best-effort). Embeds are SEQUENTIAL and BOUNDED to ≤
|
|
171
|
+
* MAX_EXTRACT_WINDOWS + 1 — touches NO public embedder API (batch is a deferred
|
|
172
|
+
* optimization). Result STRICTLY ≤ maxChars; tiny maxChars (< 3) → bare slice.
|
|
173
|
+
* The `requires` ref is English (planner invariant) → a normal embedder suffices. */
|
|
174
|
+
export async function relevantExtract(content, ref, maxChars, embedder, options) {
|
|
175
|
+
if (content.length <= maxChars)
|
|
176
|
+
return content;
|
|
177
|
+
if (maxChars < 3)
|
|
178
|
+
return content.slice(0, Math.max(0, maxChars));
|
|
179
|
+
const body = maxChars - 2;
|
|
180
|
+
const stride = Math.max(Math.floor(body / 2), Math.ceil(content.length / MAX_EXTRACT_WINDOWS));
|
|
181
|
+
const { vector: q } = await embedder.embed(ref, options);
|
|
182
|
+
let bestStart = 0;
|
|
183
|
+
let bestScore = Number.NEGATIVE_INFINITY;
|
|
184
|
+
for (let s = 0; s < content.length; s += stride) {
|
|
185
|
+
const { vector } = await embedder.embed(content.slice(s, s + body), options);
|
|
186
|
+
const score = cosine(q, vector);
|
|
187
|
+
if (score > bestScore) {
|
|
188
|
+
bestScore = score;
|
|
189
|
+
bestStart = s;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
const head = bestStart > 0 ? '…' : '';
|
|
193
|
+
const tail = bestStart + body < content.length ? '…' : '';
|
|
194
|
+
return head + content.slice(bestStart, bestStart + body) + tail;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=recall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../../src/smart-agent/controller/recall.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEjE,4EAA4E;AAC5E;qCACqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,YAAY,CAAU,CAAC;AAC5E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,uFAAuF;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,uFAAuF;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC;2EAC2E;AAC3E,MAAM,UAAU,gBAAgB,CAC9B,IAAoC,EACpC,QAAgB;IAEhB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC7B,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;wEAEwE;AACxE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAwB,EACxB,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,GAAY;YACjB,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAsB;YAC5D,QAAQ,EAAE,CAAC,CAAC,OAAO;YACnB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;SAC5B,CAAC;QACF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAChB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAuC,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACtB,EAAE,CAAC;QACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ;YAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;kFAQkF;AAClF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAwB,EACxB,IAAY,EACZ,CAAS,EACT,KAAyB,EACzB,MAAc,EACd,YAA+B,EAC/B,OAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,CAAC,EAAE,MAAM;QACT,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;QAC/B,OAAO;KACR,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,iFAAiF;YACjF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,SAAS;YAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpC,gFAAgF;YAChF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,SAAS;YACf,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,QAAQ;gBACd,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;;;;8EAK8E;AAC9E,SAAS,YAAY,CAAC,CAAiB,EAAE,CAAiB;IACxD,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;iDAEiD;AACjD,SAAS,WAAW,CAAC,CAAiB,EAAE,CAAiB;IACvD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B;;;;;;;;;;sFAUsF;AACtF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,GAAW,EACX,QAAgB,EAChB,QAAmB,EACnB,OAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAChD,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CACrC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAC1B,OAAO,CACR,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/controller/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/controller/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,iFAAiF;AACjF,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChD,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;+EAO+E;AAC/E,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C;kFACkF;AAClF,MAAM,WAAW,SAAS;IACxB,MAAM,CACJ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAC7B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAwBD,qBAAa,WAAY,YAAW,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE9C,MAAM,CACV,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAC7B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,YAAY,CAAC;CA8BzB;AAED;;;;6EAI6E;AAC7E,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,cAAc,SAAM,GACnB,YAAY,CAyDd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { extractJsonObject } from './
|
|
1
|
+
import { extractJsonObject } from './parser.js';
|
|
2
2
|
import { appendHint } from './prompts.js';
|
|
3
3
|
const REVIEWER_SYSTEM = 'You are the reviewer. You did NOT do the work — you JUDGE it. Given the ' +
|
|
4
4
|
"step intent, the per-reference evidence, and the executor's result, decide " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/smart-agent/controller/reviewer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/smart-agent/controller/reviewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IRequestLogger, LlmUsage } from '@mcp-abap-adt/llm-agent';
|
|
2
|
+
/**
|
|
3
|
+
* Build a request-time `logUsage(role, usage)` that writes each subagent call
|
|
4
|
+
* into the per-request `IRequestLogger` (the single aggregator), attributing the
|
|
5
|
+
* role's configured model. The role is explicit at the call site, so the shared
|
|
6
|
+
* planner/finalizer client is attributed correctly. `durationMs: 0` — the seam
|
|
7
|
+
* carries no timing (matches the rag-query precedent).
|
|
8
|
+
*/
|
|
9
|
+
export declare function makeLogUsage(requestLogger: IRequestLogger, requestId: string | undefined, models: {
|
|
10
|
+
evaluator: string;
|
|
11
|
+
planner: string;
|
|
12
|
+
executor: string;
|
|
13
|
+
reviewer?: string;
|
|
14
|
+
finalizer?: string;
|
|
15
|
+
}): (role: string, u?: LlmUsage) => void;
|
|
16
|
+
//# sourceMappingURL=usage-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-logging.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/controller/usage-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAWjC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,cAAc,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAwBtC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Debug logging — private copy (mirrors the one in controller-coordinator-handler.ts
|
|
3
|
+
// to avoid creating an inverted dependency back to the handler).
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
function dlog(msg) {
|
|
6
|
+
if (process.env.DEBUG_CONTROLLER)
|
|
7
|
+
console.error(`[controller] ${msg}`);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Build a request-time `logUsage(role, usage)` that writes each subagent call
|
|
11
|
+
* into the per-request `IRequestLogger` (the single aggregator), attributing the
|
|
12
|
+
* role's configured model. The role is explicit at the call site, so the shared
|
|
13
|
+
* planner/finalizer client is attributed correctly. `durationMs: 0` — the seam
|
|
14
|
+
* carries no timing (matches the rag-query precedent).
|
|
15
|
+
*/
|
|
16
|
+
export function makeLogUsage(requestLogger, requestId, models) {
|
|
17
|
+
return (role, u) => {
|
|
18
|
+
if (!u)
|
|
19
|
+
return;
|
|
20
|
+
const model = role === 'finalizer'
|
|
21
|
+
? (models.finalizer ?? models.planner)
|
|
22
|
+
: role === 'reviewer'
|
|
23
|
+
? (models.reviewer ?? models.planner)
|
|
24
|
+
: role === 'embedding'
|
|
25
|
+
? 'embedder'
|
|
26
|
+
: (models[role] ?? 'unknown');
|
|
27
|
+
requestLogger.logLlmCall({
|
|
28
|
+
component: role,
|
|
29
|
+
model,
|
|
30
|
+
promptTokens: u.promptTokens ?? 0,
|
|
31
|
+
completionTokens: u.completionTokens ?? 0,
|
|
32
|
+
totalTokens: u.totalTokens ?? 0,
|
|
33
|
+
durationMs: 0,
|
|
34
|
+
requestId,
|
|
35
|
+
});
|
|
36
|
+
dlog(`tokens ${role}: prompt=${u.promptTokens} completion=${u.completionTokens} total=${u.totalTokens}`);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=usage-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-logging.js","sourceRoot":"","sources":["../../../src/smart-agent/controller/usage-logging.ts"],"names":[],"mappings":"AAMA,8EAA8E;AAC9E,qFAAqF;AACrF,iEAAiE;AACjE,8EAA8E;AAE9E,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,aAA6B,EAC7B,SAA6B,EAC7B,MAMC;IAED,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,KAAK,GACT,IAAI,KAAK,WAAW;YAClB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;YACtC,CAAC,CAAC,IAAI,KAAK,UAAU;gBACnB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,IAAI,KAAK,WAAW;oBACpB,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,CAAE,MAAiC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;QAClE,aAAa,CAAC,UAAU,CAAC;YACvB,SAAS,EAAE,IAAoB;YAC/B,KAAK;YACL,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;YACjC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC;YACzC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;YAC/B,UAAU,EAAE,CAAC;YACb,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CACF,UAAU,IAAI,YAAY,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,gBAAgB,UAAU,CAAC,CAAC,WAAW,EAAE,CACnG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import { type ILlmApiAdapter } from '@mcp-abap-adt/llm-agent';
|
|
3
|
+
import type { SessionGraph, SmartAgent } from '@mcp-abap-adt/llm-agent-libs';
|
|
4
|
+
/**
|
|
5
|
+
* POST /v1/messages handler (Anthropic adapter route), extracted verbatim from
|
|
6
|
+
* SmartServer._handleAdapterRequest. Pure — no SmartServer state is touched.
|
|
7
|
+
*/
|
|
8
|
+
export declare function handleAdapterRequest(req: IncomingMessage, res: ServerResponse, agent: SmartAgent, adapter: ILlmApiAdapter, session?: {
|
|
9
|
+
sessionId: string;
|
|
10
|
+
traceId: string;
|
|
11
|
+
graph: SessionGraph;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=adapter-route-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-route-handler.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/http/adapter-route-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG7E;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAmFf"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AdapterValidationError, buildExternalResults, } from '@mcp-abap-adt/llm-agent';
|
|
2
|
+
import { jsonError, readBody } from './response-helpers.js';
|
|
3
|
+
/**
|
|
4
|
+
* POST /v1/messages handler (Anthropic adapter route), extracted verbatim from
|
|
5
|
+
* SmartServer._handleAdapterRequest. Pure — no SmartServer state is touched.
|
|
6
|
+
*/
|
|
7
|
+
export async function handleAdapterRequest(req, res, agent, adapter, session) {
|
|
8
|
+
const raw = await readBody(req);
|
|
9
|
+
let body;
|
|
10
|
+
try {
|
|
11
|
+
body = JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
15
|
+
res.end(jsonError('Invalid JSON', 'invalid_request_error'));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let normalized;
|
|
19
|
+
try {
|
|
20
|
+
normalized = adapter.normalizeRequest(body);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
if (err instanceof AdapterValidationError) {
|
|
24
|
+
res.writeHead(err.statusCode, { 'Content-Type': 'application/json' });
|
|
25
|
+
res.end(jsonError(err.message, 'invalid_request_error'));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
throw err;
|
|
29
|
+
}
|
|
30
|
+
// #171 (review#8): the adapter has already normalized Anthropic
|
|
31
|
+
// tool_use/tool_result blocks into the OpenAI-shaped Message[]
|
|
32
|
+
// (assistant.tool_calls + role:'tool' with tool_call_id). Run the same
|
|
33
|
+
// external-results extraction the OpenAI path uses so Anthropic clients get
|
|
34
|
+
// identical stateless-resume behaviour: consumed external turns are stripped
|
|
35
|
+
// and their results threaded to the agent keyed by deterministic `ext:` id.
|
|
36
|
+
const { results: externalResults, sanitizedMessages } = buildExternalResults(normalized.messages);
|
|
37
|
+
const augmentedOptions = session
|
|
38
|
+
? {
|
|
39
|
+
...normalized.options,
|
|
40
|
+
sessionId: session.sessionId,
|
|
41
|
+
trace: { traceId: session.traceId },
|
|
42
|
+
toolAvailability: session.graph.toolAvailability,
|
|
43
|
+
pendingToolResults: session.graph.pendingToolResults,
|
|
44
|
+
externalResults,
|
|
45
|
+
}
|
|
46
|
+
: { ...normalized.options, externalResults };
|
|
47
|
+
if (normalized.stream) {
|
|
48
|
+
res.writeHead(200, {
|
|
49
|
+
'Content-Type': 'text/event-stream',
|
|
50
|
+
'Cache-Control': 'no-cache',
|
|
51
|
+
Connection: 'keep-alive',
|
|
52
|
+
});
|
|
53
|
+
for await (const event of adapter.transformStream(agent.streamProcess(sanitizedMessages, augmentedOptions), normalized.context)) {
|
|
54
|
+
const eventLine = event.event ? `event: ${event.event}\n` : '';
|
|
55
|
+
res.write(`${eventLine}data: ${event.data}\n\n`);
|
|
56
|
+
}
|
|
57
|
+
res.end();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Non-streaming
|
|
61
|
+
const result = await agent.process(sanitizedMessages, augmentedOptions);
|
|
62
|
+
res.setHeader('Content-Type', 'application/json');
|
|
63
|
+
if (!result.ok) {
|
|
64
|
+
res.writeHead(500);
|
|
65
|
+
res.end(JSON.stringify(adapter.formatError?.(result.error, normalized.context) ?? {
|
|
66
|
+
error: {
|
|
67
|
+
message: result.error.message,
|
|
68
|
+
type: result.error.code,
|
|
69
|
+
},
|
|
70
|
+
}));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
res.writeHead(200);
|
|
74
|
+
res.end(JSON.stringify(adapter.formatResult(result.value, normalized.context)));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=adapter-route-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-route-handler.js","sourceRoot":"","sources":["../../../src/smart-agent/http/adapter-route-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import { type IModelProvider, type IRequestLogger } from '@mcp-abap-adt/llm-agent';
|
|
3
|
+
import { type SessionGraph, type SmartAgent, type SmartAgentHandle } from '@mcp-abap-adt/llm-agent-libs';
|
|
4
|
+
import type { SmartServerConfig } from '../smart-server.js';
|
|
5
|
+
/**
|
|
6
|
+
* POST /v1/chat/completions handler (OpenAI-compatible), extracted verbatim
|
|
7
|
+
* from SmartServer._handleChat. The only change vs. the original is that the
|
|
8
|
+
* three `this.cfg` reads are now the trailing `cfg` parameter.
|
|
9
|
+
*/
|
|
10
|
+
export declare function handleChat(req: IncomingMessage, res: ServerResponse, _requestLogger: IRequestLogger, smartAgent: SmartAgent, _chat: SmartAgentHandle['chat'], _streamChat: SmartAgentHandle['streamChat'], log: (e: Record<string, unknown>) => void, modelProvider: IModelProvider | undefined, session: {
|
|
11
|
+
sessionId: string;
|
|
12
|
+
traceId: string;
|
|
13
|
+
graph: SessionGraph;
|
|
14
|
+
} | undefined, cfg: SmartServerConfig): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=chat-route-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-route-handler.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/http/chat-route-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EAKpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQ5D;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC/B,WAAW,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAC3C,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACzC,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,OAAO,EACH;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAC3D,SAAS,EACb,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CAyZf"}
|