@mcp-abap-adt/llm-agent-libs 18.0.1 → 18.1.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/agent.d.ts.map +1 -1
- package/dist/agent.js +5 -2
- package/dist/agent.js.map +1 -1
- package/dist/builder.d.ts +7 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +20 -3
- package/dist/builder.js.map +1 -1
- package/dist/coordinator/dispatch/self.d.ts +5 -0
- package/dist/coordinator/dispatch/self.d.ts.map +1 -1
- package/dist/coordinator/dispatch/self.js +80 -0
- package/dist/coordinator/dispatch/self.js.map +1 -1
- package/dist/coordinator/stepper/cyclic-react-executor.d.ts +22 -0
- package/dist/coordinator/stepper/cyclic-react-executor.d.ts.map +1 -1
- package/dist/coordinator/stepper/cyclic-react-executor.js +132 -13
- package/dist/coordinator/stepper/cyclic-react-executor.js.map +1 -1
- package/dist/coordinator/stepper/index.d.ts +1 -0
- package/dist/coordinator/stepper/index.d.ts.map +1 -1
- package/dist/coordinator/stepper/index.js +1 -0
- package/dist/coordinator/stepper/index.js.map +1 -1
- package/dist/coordinator/stepper/llm-evaluator.d.ts +29 -0
- package/dist/coordinator/stepper/llm-evaluator.d.ts.map +1 -0
- package/dist/coordinator/stepper/llm-evaluator.js +94 -0
- package/dist/coordinator/stepper/llm-evaluator.js.map +1 -0
- package/dist/coordinator/stepper/llm-stepper-planner.d.ts +1 -1
- package/dist/coordinator/stepper/llm-stepper-planner.d.ts.map +1 -1
- package/dist/coordinator/stepper/llm-stepper-planner.js +28 -8
- package/dist/coordinator/stepper/llm-stepper-planner.js.map +1 -1
- package/dist/coordinator/stepper/need-resolver.d.ts +1 -0
- package/dist/coordinator/stepper/need-resolver.d.ts.map +1 -1
- package/dist/coordinator/stepper/need-resolver.js +12 -4
- package/dist/coordinator/stepper/need-resolver.js.map +1 -1
- package/dist/coordinator/stepper/stepper-interpreter.d.ts.map +1 -1
- package/dist/coordinator/stepper/stepper-interpreter.js +61 -4
- package/dist/coordinator/stepper/stepper-interpreter.js.map +1 -1
- package/dist/coordinator/stepper/stepper.d.ts +8 -1
- package/dist/coordinator/stepper/stepper.d.ts.map +1 -1
- package/dist/coordinator/stepper/stepper.js +78 -18
- package/dist/coordinator/stepper/stepper.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/logger/default-request-logger.d.ts.map +1 -1
- package/dist/logger/default-request-logger.js +1 -0
- package/dist/logger/default-request-logger.js.map +1 -1
- package/dist/pipeline/handlers/coordinator.d.ts.map +1 -1
- package/dist/pipeline/handlers/coordinator.js +26 -0
- package/dist/pipeline/handlers/coordinator.js.map +1 -1
- package/dist/pipeline/handlers/dag-coordinator.d.ts.map +1 -1
- package/dist/pipeline/handlers/dag-coordinator.js +13 -4
- package/dist/pipeline/handlers/dag-coordinator.js.map +1 -1
- package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -1
- package/dist/pipeline/handlers/tool-loop.js +9 -2
- package/dist/pipeline/handlers/tool-loop.js.map +1 -1
- package/dist/pipeline/index.d.ts +2 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +4 -0
- package/dist/pipeline/index.js.map +1 -1
- package/dist/rag/knowledge-rag.d.ts +15 -0
- package/dist/rag/knowledge-rag.d.ts.map +1 -1
- package/dist/rag/knowledge-rag.js +47 -0
- package/dist/rag/knowledge-rag.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { renderTaskSpec } from '@mcp-abap-adt/llm-agent';
|
|
2
2
|
import { parseDagPlan } from '../dag/llm-dag-planner.js';
|
|
3
|
-
// NOTE (18.
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
3
|
+
// NOTE (18.1): the 18.0 SOFT completeness clause was REMOVED here — the dedicated
|
|
4
|
+
// Evaluator now owns prompt/plan completeness (it judges WITH the RAG context and
|
|
5
|
+
// feeds the planner the named gaps as "Prerequisites to address FIRST"), so a
|
|
6
|
+
// completeness clause here would double-judge. If a deployment disables the
|
|
7
|
+
// Evaluator (`flow.evaluator.enabled: false`), supply thoroughness via a
|
|
8
|
+
// knowledgeSeed / planner.systemPrompt override instead.
|
|
7
9
|
export const STEPPER_PLANNER_SYSTEM = `You are a planner in a recursive Stepper hierarchy. Decompose the task into a SHALLOW DAG of steps.
|
|
8
|
-
COMPLETENESS: first assess whether the task states everything needed to execute it. If a prerequisite is implied but not stated — e.g. an analysis/review needs the COMPLETE artifact (all of its parts/sub-parts), not only its top level — add explicit steps to obtain it FIRST. Use the "Known facts" to decide what "complete" means for this domain.
|
|
9
10
|
RAG-FIRST: the "Known facts" section lists what is already in the shared knowledge store. If a fact you need is already there, DO NOT add a step to re-fetch it — use it. Only add a step to obtain information that is genuinely missing.
|
|
10
|
-
|
|
11
|
+
FETCHING IS THE EXECUTOR'S JOB — plan WORK, not granular fetches. A worker reads whatever its step needs (program source, includes, tables, metadata) at EXECUTION time via the available tools; do NOT decompose a task into many tiny fetch steps. Emit a separate "gather" step ONLY when its result must be SHARED by MULTIPLE later steps — and then emit ONE gather step they all "dependsOn" (fetched once, threaded to them), NEVER several fetch steps. (Use needInfo ONLY for a fact no listed tool can obtain — see below.)
|
|
11
12
|
DECOMPOSE TO CONCRETE LEAVES: if a task is achievable by ONE tool call, emit a single-step plan whose goal is that concrete leaf call — do NOT re-emit the parent's task verbatim (that causes infinite recursion). Each node spawns a fresh worker that does NOT share your context; over-decomposition multiplies cost.
|
|
12
13
|
DELEGATION: if an "Available workers" section is listed below, you MAY set a node's "agent" to one of those worker names to delegate a SUB-GOAL to that recursive worker (it will plan and execute the sub-goal itself). Omit "agent" for a concrete leaf you want executed directly. Only delegate when the sub-goal is a distinct unit of work that benefits from its own planning — otherwise emit a direct leaf.
|
|
13
|
-
|
|
14
|
+
DEPENDENCIES — DATAFLOW + ORDERING. A step receives another step's output ONLY if that step is in its "dependsOn"; steps WITHOUT dependsOn run in PARALLEL and do NOT see each other's data. THEREFORE: NEVER place in parallel two steps that depend on, build on, or read the SAME data — that is the most common planning error. If step B uses, refines, or overlaps step A, set B."dependsOn" = [A] so they run sequentially and A's output flows into B. Emit parallel (no-dependsOn) steps ONLY for GENUINELY INDEPENDENT, DISJOINT work. Prose like "using step 1" is NOT enough — encode it as dependsOn. When unsure whether two steps are independent, CHAIN them (sequential is safe; wrong parallelism re-fetches and races).
|
|
15
|
+
ONE READ PER ARTEFACT — discovery (list/shell to find what exists) and reading the bodies are SEQUENTIAL: the read step "dependsOn" the discovery; never two parallel steps that both fetch the same object.
|
|
16
|
+
Each node: {"id","goal","agent"(optional worker name),"dependsOn"(ids of steps whose OUTPUT this step needs)}.
|
|
14
17
|
Respond with ONLY one of:
|
|
15
18
|
{"objective":"...","nodes":[...]}
|
|
16
19
|
{"needInfo":"<query>"} — ONLY for a fact that NO listed tool can obtain (e.g. a human decision, or knowledge external to the system). If a listed tool below could get it, plan a step instead.
|
|
@@ -57,6 +60,23 @@ export class LlmStepperPlanner {
|
|
|
57
60
|
catch {
|
|
58
61
|
// toolsRag unavailable — omit the section gracefully
|
|
59
62
|
}
|
|
63
|
+
// 18.1 dedup manifest: the EXACT artefacts already fetched this run (by
|
|
64
|
+
// identity, not lossy semantic top-k). The planner must NOT plan a step to
|
|
65
|
+
// re-fetch any of these — backs the "RAG-FIRST: don't re-fetch" rule with a
|
|
66
|
+
// hard lookup. Feature-detected (older handles omit it).
|
|
67
|
+
let fetchedBlock = '';
|
|
68
|
+
try {
|
|
69
|
+
const arts = (await input.knowledgeRag.listArtifacts?.()) ?? [];
|
|
70
|
+
if (arts.length > 0) {
|
|
71
|
+
fetchedBlock =
|
|
72
|
+
'Already fetched (DO NOT plan a step to re-fetch these — they are in the store):\n' +
|
|
73
|
+
arts.map((a) => `- ${a.identityKey}`).join('\n') +
|
|
74
|
+
'\n\n';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// listArtifacts unavailable / failed — omit the manifest gracefully
|
|
79
|
+
}
|
|
60
80
|
const agentsBlock = input.agents && input.agents.length > 0
|
|
61
81
|
? `Available workers (set a node's "agent" to delegate a sub-goal):\n${input.agents
|
|
62
82
|
.map((a) => `- ${a.name}: ${truncate(a.description ?? '(no description)', 200)}`)
|
|
@@ -67,7 +87,7 @@ export class LlmStepperPlanner {
|
|
|
67
87
|
const taskBlock = input.taskSpec
|
|
68
88
|
? `${renderTaskSpec(input.taskSpec)}\n\n`
|
|
69
89
|
: '';
|
|
70
|
-
const user = `${taskBlock}${factBlock}${toolsBlock}${agentsBlock}Task: ${input.prompt}`;
|
|
90
|
+
const user = `${taskBlock}${factBlock}${fetchedBlock}${toolsBlock}${agentsBlock}Task: ${input.prompt}`;
|
|
71
91
|
const res = await this.llm.chat([
|
|
72
92
|
{
|
|
73
93
|
role: 'system',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-stepper-planner.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/llm-stepper-planner.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"llm-stepper-planner.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/llm-stepper-planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare class RegexNeedResolver implements INeedResolver {
|
|
|
6
6
|
queryToolsRag: string;
|
|
7
7
|
} | undefined>;
|
|
8
8
|
}
|
|
9
|
+
export declare const CLASSIFY_SYSTEM: string;
|
|
9
10
|
/** LLM-driven need classifier. Opt-in (more accurate on paraphrase, costs a
|
|
10
11
|
* small classifier call). */
|
|
11
12
|
export declare class LlmNeedResolver implements INeedResolver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"need-resolver.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/need-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKnE;uEACuE;AACvE,qBAAa,iBAAkB,YAAW,aAAa;IAC/C,OAAO,CAAC,QAAQ,EAAE,MAAM;;;CAM/B;
|
|
1
|
+
{"version":3,"file":"need-resolver.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/need-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKnE;uEACuE;AACvE,qBAAa,iBAAkB,YAAW,aAAa;IAC/C,OAAO,CAAC,QAAQ,EAAE,MAAM;;;CAM/B;AAED,eAAO,MAAM,eAAe,QAYqD,CAAC;AAElF;8BAC8B;AAC9B,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,IAAI;IAChC,OAAO,CAAC,QAAQ,EAAE,MAAM;;;CAqB/B"}
|
|
@@ -10,10 +10,18 @@ export class RegexNeedResolver {
|
|
|
10
10
|
return { queryToolsRag: m[1].trim() };
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
const CLASSIFY_SYSTEM = '
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
13
|
+
export const CLASSIFY_SYSTEM = 'You decide whether an assistant answer is INCOMPLETE because it is missing ' +
|
|
14
|
+
'data or a capability — so the agent should obtain it and try again. Two cases ' +
|
|
15
|
+
'count as a need:\n' +
|
|
16
|
+
'1. It explicitly cannot proceed (it says it lacks a tool, access, or data).\n' +
|
|
17
|
+
'2. It DID produce an answer but TRANSPARENTLY caveats that the answer is based ' +
|
|
18
|
+
'on PARTIAL/INCOMPLETE input — e.g. a part/sub-part was missing, returned ' +
|
|
19
|
+
'"not found", was inaccessible or could not be read, or the result is "based ' +
|
|
20
|
+
'on X only". A self-flagged incompleteness IS a need, even when the assistant ' +
|
|
21
|
+
'still gave an answer.\n' +
|
|
22
|
+
'Respond with ONLY JSON: {"need":boolean,"capability":string}. capability = a ' +
|
|
23
|
+
'short description of the missing data/capability to obtain (e.g. "read the ' +
|
|
24
|
+
'include bodies of the program"), or "" when the answer is genuinely complete.';
|
|
17
25
|
/** LLM-driven need classifier. Opt-in (more accurate on paraphrase, costs a
|
|
18
26
|
* small classifier call). */
|
|
19
27
|
export class LlmNeedResolver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"need-resolver.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/need-resolver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GACX,0FAA0F,CAAC;AAE7F;uEACuE;AACvE,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzB,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"need-resolver.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/need-resolver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GACX,0FAA0F,CAAC;AAE7F;uEACuE;AACvE,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzB,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAC1B,6EAA6E;IAC7E,gFAAgF;IAChF,oBAAoB;IACpB,+EAA+E;IAC/E,iFAAiF;IACjF,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAC/E,6EAA6E;IAC7E,+EAA+E,CAAC;AAElF;8BAC8B;AAC9B,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAC1C,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE;YAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;SACpC,EACD,EAAE,CACH,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAG1C,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU;gBAClC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper-interpreter.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,
|
|
1
|
+
{"version":3,"file":"stepper-interpreter.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,mBAAmB,EACnB,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAgBjC,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,IAAI,aAAa;IAEpB,SAAS,CACb,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GACnD,OAAO,CAAC,cAAc,CAAC;CAoI3B"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/** Total cap on injected dependsOn-dataflow content per node — a backstop against
|
|
2
|
+
* context explosion. dependsOn already scopes it to predecessors (selective);
|
|
3
|
+
* this bounds a pathological accumulation. Generous: a few large include bodies
|
|
4
|
+
* fit. On overflow the block is truncated with an explicit note. */
|
|
5
|
+
const DEPS_CONTEXT_CAP = 60_000;
|
|
1
6
|
const ZERO = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
|
|
2
7
|
const addUsage = (a, b) => ({
|
|
3
8
|
promptTokens: a.promptTokens + b.promptTokens,
|
|
@@ -10,11 +15,20 @@ export class StepperInterpreter {
|
|
|
10
15
|
async interpret(plan, ctx) {
|
|
11
16
|
const done = new Set();
|
|
12
17
|
const results = new Map();
|
|
18
|
+
// node.id → the stepperId minted for it, so a dependent node can pull its
|
|
19
|
+
// predecessors' artifacts by identity (Phase 3 dataflow).
|
|
20
|
+
const stepperIdByNode = new Map();
|
|
13
21
|
let usage = ZERO;
|
|
14
22
|
let worst = 'ok';
|
|
15
23
|
const ready = () => plan.nodes.filter((n) => !done.has(n.id) && (n.dependsOn ?? []).every((d) => done.has(d)));
|
|
16
24
|
const runNode = async (node) => {
|
|
17
25
|
const childId = ctx.mintStepperId();
|
|
26
|
+
stepperIdByNode.set(node.id, childId);
|
|
27
|
+
// Phase 3 dataflow: hydrate this node's context with the FULL output of its
|
|
28
|
+
// dependsOn predecessors (by identity / stepperId — NOT lossy semantic
|
|
29
|
+
// top-k), so e.g. an `analyze` step receives the source a `gather` step
|
|
30
|
+
// already fetched and never re-fetches it.
|
|
31
|
+
const depsBlock = await gatherDepsContext(node, ctx.knowledgeRag, stepperIdByNode);
|
|
18
32
|
const childIdentity = {
|
|
19
33
|
...ctx.identity,
|
|
20
34
|
stepperId: childId,
|
|
@@ -45,7 +59,7 @@ export class StepperInterpreter {
|
|
|
45
59
|
// (review R2-F1) so spend is accounted across all branches (soft cap,
|
|
46
60
|
// bounded overshoot under parallelism — review R3-F2).
|
|
47
61
|
result = await subagent.run({
|
|
48
|
-
prompt: composeTask(node, plan),
|
|
62
|
+
prompt: composeTask(node, plan, depsBlock),
|
|
49
63
|
knowledgeRag: ctx.knowledgeRag,
|
|
50
64
|
toolsRag: ctx.toolsRag,
|
|
51
65
|
budget: {
|
|
@@ -55,6 +69,7 @@ export class StepperInterpreter {
|
|
|
55
69
|
identity: childIdentity,
|
|
56
70
|
taskSpec: ctx.taskSpec,
|
|
57
71
|
externalTools: ctx.externalTools,
|
|
72
|
+
evaluatorNeeds: ctx.evaluatorNeeds,
|
|
58
73
|
signal: ctx.signal,
|
|
59
74
|
sessionLogger: ctx.sessionLogger,
|
|
60
75
|
onProgress: ctx.onProgress,
|
|
@@ -63,9 +78,10 @@ export class StepperInterpreter {
|
|
|
63
78
|
else if (ctx.executor) {
|
|
64
79
|
// Case 2 (depth floor) + Case 3 (no agent) — terminal executor leaf
|
|
65
80
|
const r = await ctx.executor.execute({
|
|
66
|
-
prompt: composeTask(node, plan),
|
|
81
|
+
prompt: composeTask(node, plan, depsBlock),
|
|
67
82
|
tools: [],
|
|
68
83
|
externalTools: ctx.externalTools,
|
|
84
|
+
evaluatorNeeds: ctx.evaluatorNeeds,
|
|
69
85
|
knowledgeRag: ctx.knowledgeRag,
|
|
70
86
|
toolsRag: ctx.toolsRag,
|
|
71
87
|
budget: ctx.budget,
|
|
@@ -117,10 +133,51 @@ export class StepperInterpreter {
|
|
|
117
133
|
};
|
|
118
134
|
}
|
|
119
135
|
}
|
|
120
|
-
function composeTask(node, plan) {
|
|
121
|
-
|
|
136
|
+
function composeTask(node, plan, depsBlock = '') {
|
|
137
|
+
const base = plan.objective
|
|
122
138
|
? `Objective: ${plan.objective}\nTask: ${node.goal}`
|
|
123
139
|
: node.goal;
|
|
140
|
+
return depsBlock ? `${base}\n\n${depsBlock}` : base;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Phase 3 dataflow: assemble the FULL output of a node's dependsOn predecessors
|
|
144
|
+
* (their blackboard artefacts, fetched by stepperId — exact identity, NOT lossy
|
|
145
|
+
* semantic top-k) into a "Gathered inputs" block. The dependent node thus has
|
|
146
|
+
* the source/data its prerequisites produced already in context, and does not
|
|
147
|
+
* re-fetch it. Scoped to predecessors (selective) + capped (explosion backstop).
|
|
148
|
+
*/
|
|
149
|
+
async function gatherDepsContext(node, knowledgeRag, stepperIdByNode) {
|
|
150
|
+
const deps = node.dependsOn ?? [];
|
|
151
|
+
if (deps.length === 0)
|
|
152
|
+
return '';
|
|
153
|
+
const parts = [];
|
|
154
|
+
for (const depId of deps) {
|
|
155
|
+
const sid = stepperIdByNode.get(depId);
|
|
156
|
+
if (!sid)
|
|
157
|
+
continue;
|
|
158
|
+
let entries = [];
|
|
159
|
+
try {
|
|
160
|
+
entries = await knowledgeRag.list({ stepperId: sid });
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
continue; // store unavailable for this dep → skip it
|
|
164
|
+
}
|
|
165
|
+
for (const e of entries)
|
|
166
|
+
parts.push(e.content);
|
|
167
|
+
}
|
|
168
|
+
if (parts.length === 0)
|
|
169
|
+
return '';
|
|
170
|
+
let block = parts.join('\n\n');
|
|
171
|
+
let truncated = false;
|
|
172
|
+
if (block.length > DEPS_CONTEXT_CAP) {
|
|
173
|
+
block = block.slice(0, DEPS_CONTEXT_CAP);
|
|
174
|
+
truncated = true;
|
|
175
|
+
}
|
|
176
|
+
return ('Gathered inputs from prerequisite steps (use these — do NOT re-fetch them):\n' +
|
|
177
|
+
block +
|
|
178
|
+
(truncated
|
|
179
|
+
? '\n\n[…gathered inputs truncated; query the knowledge store for the rest if needed]'
|
|
180
|
+
: ''));
|
|
124
181
|
}
|
|
125
182
|
function collectMissing(results) {
|
|
126
183
|
const out = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper-interpreter.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper-interpreter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepper-interpreter.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper-interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IEvaluator, type IExecutor, type IReviewStrategy, type IStepper, type IStepperInput, type IStepperInterpreter, type IStepperPlanner, type IStepperResult } from '@mcp-abap-adt/llm-agent';
|
|
2
2
|
export interface StepperDeps {
|
|
3
3
|
name: string;
|
|
4
4
|
planner: IStepperPlanner;
|
|
@@ -12,6 +12,13 @@ export interface StepperDeps {
|
|
|
12
12
|
reviewerAtDepths: {
|
|
13
13
|
has(depth: number): boolean;
|
|
14
14
|
};
|
|
15
|
+
/** 18.1 Evaluator (optional): judges the INPUT (sub-)prompt completeness WITH
|
|
16
|
+
* the RAG context before planning. Absent → behaves as 18.0 (plan → interpret). */
|
|
17
|
+
evaluator?: IEvaluator;
|
|
18
|
+
/** Depths at which the Evaluator runs (same predicate shape as reviewer). */
|
|
19
|
+
evaluatorAtDepths?: {
|
|
20
|
+
has(depth: number): boolean;
|
|
21
|
+
};
|
|
15
22
|
depth: number;
|
|
16
23
|
maxParallelSteps: number;
|
|
17
24
|
mintStepperId: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,mBAAmB,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;mDAE+C;IAC/C,gBAAgB,EAAE;QAAE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAClD;wFACoF;IACpF,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE;QAAE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,qBAAa,OAAQ,YAAW,QAAQ;IAE1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACO,IAAI,EAAE,WAAW;IAIxC,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CA0HzD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ClarifySignal, } from '@mcp-abap-adt/llm-agent';
|
|
1
2
|
export class Stepper {
|
|
2
3
|
deps;
|
|
3
4
|
name;
|
|
@@ -6,17 +7,91 @@ export class Stepper {
|
|
|
6
7
|
this.name = deps.name;
|
|
7
8
|
}
|
|
8
9
|
async run(input) {
|
|
9
|
-
const { planner, interpreter, executor, childSteppers, reviewer, reviewerAtDepths, depth, maxParallelSteps, mintStepperId, parentPath, childAgentCatalog, } = this.deps;
|
|
10
|
-
|
|
10
|
+
const { planner, interpreter, executor, childSteppers, reviewer, reviewerAtDepths, evaluator, evaluatorAtDepths, depth, maxParallelSteps, mintStepperId, parentPath, childAgentCatalog, } = this.deps;
|
|
11
|
+
// Shared interpret context (same for the executable-terminal and the
|
|
12
|
+
// planned paths). The top-level prompt drives composeTask; plan nodes carry
|
|
13
|
+
// the decomposition.
|
|
14
|
+
const interpretCtx = {
|
|
11
15
|
prompt: input.prompt,
|
|
12
16
|
knowledgeRag: input.knowledgeRag,
|
|
13
17
|
toolsRag: input.toolsRag,
|
|
18
|
+
childSteppers,
|
|
19
|
+
executor,
|
|
20
|
+
budget: input.budget,
|
|
21
|
+
identity: input.identity,
|
|
22
|
+
taskSpec: input.taskSpec,
|
|
23
|
+
externalTools: input.externalTools,
|
|
24
|
+
evaluatorNeeds: input.evaluatorNeeds,
|
|
25
|
+
maxParallelSteps,
|
|
26
|
+
mintStepperId,
|
|
27
|
+
signal: input.signal,
|
|
28
|
+
sessionLogger: input.sessionLogger,
|
|
29
|
+
onProgress: input.onProgress,
|
|
30
|
+
};
|
|
31
|
+
// 18.1 Evaluator: assess the INPUT (sub-)prompt WITH the RAG context BEFORE
|
|
32
|
+
// planning, and route. Absent / not-at-this-depth → 18.0 behaviour.
|
|
33
|
+
let plannerPrompt = input.prompt;
|
|
34
|
+
if (evaluator && (evaluatorAtDepths?.has(depth) ?? true)) {
|
|
35
|
+
const verdict = await evaluator.evaluate({
|
|
36
|
+
prompt: input.prompt,
|
|
37
|
+
knowledgeRag: input.knowledgeRag,
|
|
38
|
+
toolsRag: input.toolsRag,
|
|
39
|
+
taskSpec: input.taskSpec,
|
|
40
|
+
identity: input.identity,
|
|
41
|
+
signal: input.signal,
|
|
42
|
+
});
|
|
43
|
+
input.sessionLogger?.logStep('evaluator_verdict', {
|
|
44
|
+
depth,
|
|
45
|
+
route: verdict.route,
|
|
46
|
+
missing: verdict.missing,
|
|
47
|
+
reason: verdict.reason,
|
|
48
|
+
});
|
|
49
|
+
if (verdict.route === 'needs-consumer') {
|
|
50
|
+
// Only the consumer can resolve this → surface a clarify up the stack
|
|
51
|
+
// (the coordinator handler turns it into a clarify response).
|
|
52
|
+
throw new ClarifySignal(verdict.missing.join('; ') ||
|
|
53
|
+
'additional information is required to proceed');
|
|
54
|
+
}
|
|
55
|
+
if (verdict.route === 'executable') {
|
|
56
|
+
// Terminal: run the prompt as ONE executor leaf; do NOT plan/recurse.
|
|
57
|
+
return interpreter.interpret({
|
|
58
|
+
objective: input.prompt,
|
|
59
|
+
nodes: [{ id: 'root', goal: input.prompt }],
|
|
60
|
+
createdAt: 0,
|
|
61
|
+
}, interpretCtx);
|
|
62
|
+
}
|
|
63
|
+
// needs-work → feed the named gaps to the planner as prerequisites AND
|
|
64
|
+
// thread them down so the executor's tool-search is keyed on the needs
|
|
65
|
+
// (needs-driven search — surfaces the right tools on the first turn).
|
|
66
|
+
if (verdict.missing.length > 0) {
|
|
67
|
+
plannerPrompt = `${input.prompt}\n\n[Prerequisites to address FIRST: ${verdict.missing.join('; ')}]`;
|
|
68
|
+
interpretCtx.evaluatorNeeds = verdict.missing;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const plan = await planner.plan({
|
|
72
|
+
prompt: plannerPrompt,
|
|
73
|
+
knowledgeRag: input.knowledgeRag,
|
|
74
|
+
toolsRag: input.toolsRag,
|
|
14
75
|
parentPath: parentPath ?? [this.name],
|
|
15
76
|
identity: input.identity,
|
|
16
77
|
agents: childAgentCatalog,
|
|
17
78
|
taskSpec: input.taskSpec,
|
|
18
79
|
signal: input.signal,
|
|
19
80
|
});
|
|
81
|
+
// Log the parsed plan GRAPH (id, goal, dependsOn, agent) so the executed DAG
|
|
82
|
+
// — including dependsOn EDGES — is observable, not just the node goals from
|
|
83
|
+
// stepper-spawned events. Edges are what the Phase 3 dataflow keys off.
|
|
84
|
+
input.sessionLogger?.logStep('coordinator_plan', {
|
|
85
|
+
depth,
|
|
86
|
+
stepperId: input.identity.stepperId,
|
|
87
|
+
objective: plan.objective,
|
|
88
|
+
nodes: plan.nodes.map((n) => ({
|
|
89
|
+
id: n.id,
|
|
90
|
+
goal: n.goal,
|
|
91
|
+
...(n.dependsOn ? { dependsOn: n.dependsOn } : {}),
|
|
92
|
+
...(n.agent ? { agent: n.agent } : {}),
|
|
93
|
+
})),
|
|
94
|
+
});
|
|
20
95
|
if (reviewer && reviewerAtDepths.has(depth)) {
|
|
21
96
|
const result = await reviewer.review({
|
|
22
97
|
prompt: input.prompt,
|
|
@@ -29,22 +104,7 @@ export class Stepper {
|
|
|
29
104
|
// v1: log and proceed if reviewer has no hard-fail contract.
|
|
30
105
|
void result;
|
|
31
106
|
}
|
|
32
|
-
return interpreter.interpret(plan,
|
|
33
|
-
prompt: input.prompt,
|
|
34
|
-
knowledgeRag: input.knowledgeRag,
|
|
35
|
-
toolsRag: input.toolsRag,
|
|
36
|
-
childSteppers,
|
|
37
|
-
executor,
|
|
38
|
-
budget: input.budget,
|
|
39
|
-
identity: input.identity,
|
|
40
|
-
taskSpec: input.taskSpec,
|
|
41
|
-
externalTools: input.externalTools,
|
|
42
|
-
maxParallelSteps,
|
|
43
|
-
mintStepperId,
|
|
44
|
-
signal: input.signal,
|
|
45
|
-
sessionLogger: input.sessionLogger,
|
|
46
|
-
onProgress: input.onProgress,
|
|
47
|
-
});
|
|
107
|
+
return interpreter.interpret(plan, interpretCtx);
|
|
48
108
|
}
|
|
49
109
|
}
|
|
50
110
|
//# sourceMappingURL=stepper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../../src/coordinator/stepper/stepper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export { NoopRequestLogger } from './logger/noop-request-logger.js';
|
|
|
22
22
|
export { SessionLogger } from './logger/session-logger.js';
|
|
23
23
|
export { type CounterSnapshot, type HistogramSnapshot, InMemoryMetrics, type MetricsSnapshot, } from './metrics/in-memory-metrics.js';
|
|
24
24
|
export { NoopMetrics } from './metrics/noop-metrics.js';
|
|
25
|
-
export { type BuiltInStageType, buildDefaultHandlerRegistry, type ControlFlowType, type DagCoordinatorHandlerDeps, DefaultPipeline, type DefaultPipelineOptions, evaluateCondition, type IStageHandler, type PipelineContext, PipelineExecutor, type StageDefinition, type StageType, } from './pipeline/index.js';
|
|
25
|
+
export { type BuiltInStageType, buildDefaultHandlerRegistry, type ControlFlowType, CoordinatorHandler, type CoordinatorHandlerDeps, DagCoordinatorHandler, type DagCoordinatorHandlerDeps, DefaultPipeline, type DefaultPipelineOptions, evaluateCondition, type IStageHandler, type PipelineContext, PipelineExecutor, type StageDefinition, type StageType, } from './pipeline/index.js';
|
|
26
26
|
export { DEFAULT_TOOL_SELECTION, ScoreThresholdToolSelection, TopKToolSelection, } from './pipeline/tool-selection/index.js';
|
|
27
27
|
export type { IPluginLoader, LoadedPlugins, PluginExports, } from './plugins/index.js';
|
|
28
28
|
export { emptyLoadedPlugins, FileSystemPluginLoader, type FileSystemPluginLoaderConfig, getDefaultPluginDirs, loadPlugins, mergePluginExports, } from './plugins/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -51,7 +51,7 @@ export { NoopMetrics } from './metrics/noop-metrics.js';
|
|
|
51
51
|
// ---------------------------------------------------------------------------
|
|
52
52
|
// Pipeline
|
|
53
53
|
// ---------------------------------------------------------------------------
|
|
54
|
-
export { buildDefaultHandlerRegistry, DefaultPipeline, evaluateCondition, PipelineExecutor, } from './pipeline/index.js';
|
|
54
|
+
export { buildDefaultHandlerRegistry, CoordinatorHandler, DagCoordinatorHandler, DefaultPipeline, evaluateCondition, PipelineExecutor, } from './pipeline/index.js';
|
|
55
55
|
export { DEFAULT_TOOL_SELECTION, ScoreThresholdToolSelection, TopKToolSelection, } from './pipeline/tool-selection/index.js';
|
|
56
56
|
// ---------------------------------------------------------------------------
|
|
57
57
|
// Plugins
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAC9E,OAAO,EAGL,UAAU,GAEX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,UAAU,GAOX,MAAM,YAAY,CAAC;AACpB,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAC9E,OAAO,EAGL,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AACtB,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAC9E,OAAO,EACL,aAAa,GAGd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAC9E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAC9E,cAAc,gCAAgC,CAAC;AAC/C,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAC9E,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMpE,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAC9E,OAAO,EAGL,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAC9E,OAAO,EAEL,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-request-logger.d.ts","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,aAAa,EACb,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"default-request-logger.d.ts","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EAEd,aAAa,EACb,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,CAa5D,CAAC;AAaF,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAQvC,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAMrC,+EAA+E;IAC/E,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAEtC,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAQrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIhE,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIhE,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc;IAuC/C,KAAK,IAAI,IAAI;CAQd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-request-logger.js","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"default-request-logger.js","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAKlB,MAAM,yBAAyB,CAAC;AAEjC,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;AAEzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;CAClC;AAED,qBAAa,kBAAmB,YAAW,aAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,sBAAsB;IAEnD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAKlB,MAAM,yBAAyB,CAAC;AAEjC,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;AAEzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;CAClC;AAED,qBAAa,kBAAmB,YAAW,aAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,sBAAsB;IAEnD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC;CAuNpB;AA4DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAEjE"}
|
|
@@ -34,6 +34,10 @@ export class CoordinatorHandler {
|
|
|
34
34
|
stepResults: {},
|
|
35
35
|
signal: ctx.options?.signal,
|
|
36
36
|
sessionId: ctx.sessionId,
|
|
37
|
+
// #157: thread the per-request RAG-selected tools + an MCP executor so a
|
|
38
|
+
// self-dispatched step runs a real tool-loop instead of a toolless chat.
|
|
39
|
+
selectedTools: ctx.activeTools ?? ctx.selectedTools,
|
|
40
|
+
callTool: buildCallTool(ctx),
|
|
37
41
|
};
|
|
38
42
|
let plan;
|
|
39
43
|
try {
|
|
@@ -229,6 +233,28 @@ function wrapError(err, code) {
|
|
|
229
233
|
return err;
|
|
230
234
|
return new OrchestratorError(err instanceof Error ? err.message : String(err), code);
|
|
231
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Build a tool executor for self-dispatched coordinator steps (#157): resolve
|
|
238
|
+
* the owning MCP client from `toolClientMap` and call it, returning the textual
|
|
239
|
+
* result (mirrors the default tool-loop's extraction). Returns undefined when no
|
|
240
|
+
* MCP clients are connected, so SelfDispatch keeps its toolless behaviour.
|
|
241
|
+
*/
|
|
242
|
+
function buildCallTool(ctx) {
|
|
243
|
+
const map = ctx.toolClientMap;
|
|
244
|
+
if (!map || map.size === 0)
|
|
245
|
+
return undefined;
|
|
246
|
+
return async (name, args) => {
|
|
247
|
+
const client = map.get(name);
|
|
248
|
+
if (!client)
|
|
249
|
+
return `Tool not found: ${name}`;
|
|
250
|
+
const r = await client.callTool(name, (args ?? {}), ctx.options);
|
|
251
|
+
if (!r.ok)
|
|
252
|
+
return r.error.message;
|
|
253
|
+
return typeof r.value.content === 'string'
|
|
254
|
+
? r.value.content
|
|
255
|
+
: JSON.stringify(r.value.content);
|
|
256
|
+
};
|
|
257
|
+
}
|
|
232
258
|
/**
|
|
233
259
|
* Helper used by DefaultPipeline / activation strategies to detect whether
|
|
234
260
|
* the active skill carries a structured `steps` block — a strong signal for
|