@mcp-abap-adt/llm-agent 18.0.0 → 18.0.2
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/interfaces/coordinator.d.ts +15 -1
- package/dist/interfaces/coordinator.d.ts.map +1 -1
- package/dist/interfaces/evaluator.d.ts +46 -0
- package/dist/interfaces/evaluator.d.ts.map +1 -0
- package/dist/interfaces/evaluator.js +2 -0
- package/dist/interfaces/evaluator.js.map +1 -0
- package/dist/interfaces/executor.d.ts +7 -0
- package/dist/interfaces/executor.d.ts.map +1 -1
- package/dist/interfaces/interpreter.d.ts +5 -0
- package/dist/interfaces/interpreter.d.ts.map +1 -1
- package/dist/interfaces/stepper-interpreter.d.ts +3 -0
- package/dist/interfaces/stepper-interpreter.d.ts.map +1 -1
- package/dist/interfaces/stepper.d.ts +5 -1
- package/dist/interfaces/stepper.d.ts.map +1 -1
- package/dist/interfaces/stepper.js.map +1 -1
- package/dist/interfaces/subagent.d.ts +6 -1
- package/dist/interfaces/subagent.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ILlm } from './llm.js';
|
|
2
2
|
import type { ISkillMeta } from './skill.js';
|
|
3
3
|
import type { ISubAgent, ISubAgentResult, SubAgentRegistry } from './subagent.js';
|
|
4
|
-
import type { LlmUsage } from './types.js';
|
|
4
|
+
import type { LlmTool, LlmUsage } from './types.js';
|
|
5
5
|
export interface PlanStep {
|
|
6
6
|
id: string;
|
|
7
7
|
goal: string;
|
|
@@ -78,6 +78,20 @@ export interface ICoordinatorContext {
|
|
|
78
78
|
stepResults: Record<string, StepResult>;
|
|
79
79
|
signal?: AbortSignal;
|
|
80
80
|
sessionId: string;
|
|
81
|
+
/**
|
|
82
|
+
* Per-request RAG-selected tools (MCP + client external) available to a
|
|
83
|
+
* self-dispatched step's tool-loop (#157). Empty/absent → the step runs a
|
|
84
|
+
* single toolless `llm.chat()` (legacy behaviour).
|
|
85
|
+
*/
|
|
86
|
+
selectedTools?: readonly LlmTool[];
|
|
87
|
+
/**
|
|
88
|
+
* Executes a tool by name and returns its textual result. Built by the
|
|
89
|
+
* coordinator handler from the connected MCP clients. With `selectedTools`,
|
|
90
|
+
* this lets a self-dispatched step actually CALL MCP (read a table, list a
|
|
91
|
+
* package, …) instead of hallucinating a toolless answer (#157). Absent →
|
|
92
|
+
* no tool-loop.
|
|
93
|
+
*/
|
|
94
|
+
callTool?: (name: string, args: unknown, signal?: AbortSignal) => Promise<string>;
|
|
81
95
|
}
|
|
82
96
|
export interface IPlanningStrategy {
|
|
83
97
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/interfaces/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/interfaces/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
|
|
2
|
+
import type { RunIdentity } from './stepper.js';
|
|
3
|
+
import type { ITaskSpec } from './task-spec.js';
|
|
4
|
+
/**
|
|
5
|
+
* The Evaluator's verdict on a (sub-)prompt — the 18.1 control spine. Distinct
|
|
6
|
+
* from the planner (decomposes the task) and the reviewer (reviews OUTPUT): the
|
|
7
|
+
* Evaluator judges the INPUT — whether the (sub-)prompt is complete/executable —
|
|
8
|
+
* WITH the RAG context, and the coordinator routes on the result.
|
|
9
|
+
*/
|
|
10
|
+
export type EvaluatorRoute = 'executable' | 'needs-work' | 'needs-consumer';
|
|
11
|
+
export interface EvaluatorVerdict {
|
|
12
|
+
route: EvaluatorRoute;
|
|
13
|
+
/**
|
|
14
|
+
* For `needs-work`: the named gaps (what to gather/do first), fed to the
|
|
15
|
+
* planner as hints. For `needs-consumer`: the question(s) to ask the consumer.
|
|
16
|
+
* Empty for `executable`.
|
|
17
|
+
*/
|
|
18
|
+
missing: string[];
|
|
19
|
+
/** One-line rationale (logged; surfaced to the consumer only on needs-consumer). */
|
|
20
|
+
reason?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Per-level task assessor. Runs in `Stepper.run` before planning and returns a
|
|
24
|
+
* verdict that drives the coordinator:
|
|
25
|
+
* - `executable` → terminal executor leaf (the recursion termination condition);
|
|
26
|
+
* - `needs-work` → plan gather/sub-steps and proceed (verdict.missing = gaps);
|
|
27
|
+
* - `needs-consumer`→ return to the consumer with clarifying questions.
|
|
28
|
+
*
|
|
29
|
+
* It MUST consult the RAG context: `knowledgeRag` (what is already known/gathered)
|
|
30
|
+
* and `toolsRag` (what CAN be obtained) — the needs-work vs needs-consumer split
|
|
31
|
+
* hinges on whether a listed tool could obtain the missing fact. "What
|
|
32
|
+
* completeness means" is agnostic: it comes from the consumer's RAG skills.
|
|
33
|
+
*/
|
|
34
|
+
export interface IEvaluator {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly model?: string;
|
|
37
|
+
evaluate(input: {
|
|
38
|
+
prompt: string;
|
|
39
|
+
knowledgeRag: IKnowledgeRagHandle;
|
|
40
|
+
toolsRag: IToolsRagHandle;
|
|
41
|
+
taskSpec?: ITaskSpec;
|
|
42
|
+
identity: RunIdentity;
|
|
43
|
+
signal?: AbortSignal;
|
|
44
|
+
}): Promise<EvaluatorVerdict>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/interfaces/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC;QACtB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/interfaces/evaluator.ts"],"names":[],"mappings":""}
|
|
@@ -9,6 +9,13 @@ export interface IExecutor {
|
|
|
9
9
|
execute(input: {
|
|
10
10
|
prompt: string;
|
|
11
11
|
tools: readonly LlmTool[];
|
|
12
|
+
/**
|
|
13
|
+
* Client-provided external tools (OpenAI-style function tools sent in the
|
|
14
|
+
* request, e.g. create_file / rag_add) that the CONSUMER executes. They are
|
|
15
|
+
* MERGED with the seeded MCP tools and offered to the model so a step can
|
|
16
|
+
* emit a tool call the client fulfils (issue #167). Absent → only MCP tools.
|
|
17
|
+
*/
|
|
18
|
+
externalTools?: readonly LlmTool[];
|
|
12
19
|
knowledgeRag: IKnowledgeRagHandle;
|
|
13
20
|
toolsRag: IToolsRagHandle;
|
|
14
21
|
needResolver?: INeedResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/interfaces/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;QAC1B,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,wFAAwF;QACxF,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,WAAW,CAAC;QACtB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;KAC3C,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,kBAAkB,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/interfaces/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;QAC1B;;;;;WAKG;QACH,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;QACnC,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,wFAAwF;QACxF,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,WAAW,CAAC;QACtB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;KAC3C,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,kBAAkB,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC,CAAC;CACJ"}
|
|
@@ -3,6 +3,7 @@ import type { DagPlan } from './dag-plan.js';
|
|
|
3
3
|
import type { IErrorStrategy } from './error-strategy.js';
|
|
4
4
|
import type { OnPartial } from './streaming.js';
|
|
5
5
|
import type { ISubAgent } from './subagent.js';
|
|
6
|
+
import type { LlmTool } from './types.js';
|
|
6
7
|
export interface IInterpreter<TInput, TOutput> {
|
|
7
8
|
readonly name: string;
|
|
8
9
|
interpret(input: TInput, ctx: InterpretContext): Promise<TOutput>;
|
|
@@ -31,6 +32,10 @@ export interface InterpretContext {
|
|
|
31
32
|
* interpreter annotates `nodeId` before calling and emits
|
|
32
33
|
* `node-start` / `node-end` itself. */
|
|
33
34
|
onPartial?: OnPartial;
|
|
35
|
+
/** Client external (consumer-executed) tools, threaded into each worker
|
|
36
|
+
* dispatch so a worker can emit a tool call the client fulfils (issue #167).
|
|
37
|
+
* Absent → workers see only their own MCP tools. */
|
|
38
|
+
externalTools?: readonly LlmTool[];
|
|
34
39
|
}
|
|
35
40
|
export interface NodeResult {
|
|
36
41
|
nodeId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/interfaces/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/interfaces/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,YAAY,CAAC,MAAM,EAAE,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;kDAC8C;IAC9C,aAAa,EAAE,cAAc,CAAC;IAC9B;qEACiE;IACjE,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B;oFACgF;IAChF,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KAC5C,CAAC;IACF;;4CAEwC;IACxC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;yDAEqD;IACrD,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;sDACkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mEAAmE;IACnE,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC"}
|
|
@@ -4,6 +4,7 @@ import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
|
|
|
4
4
|
import type { Budget, IStepper, IStepperResult, RunIdentity } from './stepper.js';
|
|
5
5
|
import type { StreamChunk } from './streaming.js';
|
|
6
6
|
import type { ITaskSpec } from './task-spec.js';
|
|
7
|
+
import type { LlmTool } from './types.js';
|
|
7
8
|
export interface IStepperInterpreter {
|
|
8
9
|
readonly name: string;
|
|
9
10
|
interpret(plan: DagPlan, ctx: {
|
|
@@ -15,6 +16,8 @@ export interface IStepperInterpreter {
|
|
|
15
16
|
budget: Budget;
|
|
16
17
|
identity: RunIdentity;
|
|
17
18
|
taskSpec?: ITaskSpec;
|
|
19
|
+
/** Client external tools, threaded to each executor (issue #167). */
|
|
20
|
+
externalTools?: readonly LlmTool[];
|
|
18
21
|
maxParallelSteps: number;
|
|
19
22
|
mintStepperId: () => string;
|
|
20
23
|
signal?: AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper-interpreter.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"stepper-interpreter.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CACP,IAAI,EAAE,OAAO,EACb,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,WAAW,CAAC;QACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,qEAAqE;QACrE,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;QACnC,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;KAC3C,GACA,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
|
|
2
2
|
import type { StreamChunk } from './streaming.js';
|
|
3
3
|
import type { ITaskSpec } from './task-spec.js';
|
|
4
|
-
import type { LlmUsage } from './types.js';
|
|
4
|
+
import type { LlmTool, LlmUsage } from './types.js';
|
|
5
5
|
/** Identity carried through every layer so executors can stamp
|
|
6
6
|
* KnowledgeEntryMetadata and the coordinator can attribute streaming
|
|
7
7
|
* + usage. Minted at the coordinator boundary; the interpreter rewrites
|
|
@@ -46,6 +46,10 @@ export interface IStepperInput {
|
|
|
46
46
|
/** Formalized overall task (optional). Threaded down to every planner and
|
|
47
47
|
* executor as a compact anchor. Absent → behaves as before. */
|
|
48
48
|
taskSpec?: ITaskSpec;
|
|
49
|
+
/** Client-provided external tools (consumer-executed function tools from the
|
|
50
|
+
* request, e.g. create_file). Threaded down to every executor and merged
|
|
51
|
+
* with the seeded MCP tools (issue #167). Absent → only MCP tools. */
|
|
52
|
+
externalTools?: readonly LlmTool[];
|
|
49
53
|
signal?: AbortSignal;
|
|
50
54
|
sessionLogger?: {
|
|
51
55
|
logStep(name: string, data: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD;;;kDAGkD;AAClD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;uBAUuB;AACvB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,SAAS,IAAI,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB;uCACmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB;uCACmC;IACnC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,CAAC;IACtB;oEACgE;IAChE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;2EAEuE;IACvE,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,kBAAkB,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACpD;AAED;mCACmC;AACnC,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,UAAU,CAAS;gBACf,KAAK,EAAE,MAAM;IAGzB,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;CAGrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"AAwEA;mCACmC;AACnC,MAAM,OAAO,WAAW;IACd,UAAU,CAAS;IAC3B,YAAY,KAAa;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,KAAe;QACnB,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EpicFailTrace } from './coordinator.js';
|
|
2
2
|
import type { OnPartial } from './streaming.js';
|
|
3
|
-
import type { LlmToolCall, LlmUsage } from './types.js';
|
|
3
|
+
import type { LlmTool, LlmToolCall, LlmUsage } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Typed metadata that the planner/validator can read without invoking the
|
|
6
6
|
* agent. Used to decide whether to call the context builder before dispatch.
|
|
@@ -44,6 +44,11 @@ export interface ISubAgentInput {
|
|
|
44
44
|
* Fire-and-forget — implementations must never let the callback throw
|
|
45
45
|
* break the run. Absence preserves today's silent behaviour. */
|
|
46
46
|
onPartial?: OnPartial;
|
|
47
|
+
/** Client-provided external (consumer-executed) tools from the request, e.g.
|
|
48
|
+
* create_file / rag_add. Threaded from the coordinator into the worker's
|
|
49
|
+
* nested pipeline so the worker can emit a tool call the client fulfils
|
|
50
|
+
* (issue #167). Absent → the worker sees only its own MCP tools. */
|
|
51
|
+
externalTools?: readonly LlmTool[];
|
|
47
52
|
}
|
|
48
53
|
export interface ISubAgentResult {
|
|
49
54
|
output: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/interfaces/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../src/interfaces/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,aAAa,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;iEAC6D;IAC7D,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B;;;0EAGsE;IACtE,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KAC5C,CAAC;IACF;;qEAEiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;yEAGqE;IACrE,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC"}
|
package/package.json
CHANGED