@mcp-abap-adt/llm-agent-server-libs 19.1.2 → 19.2.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/factories/controller-factory.d.ts +18 -4
- package/dist/factories/controller-factory.d.ts.map +1 -1
- package/dist/factories/controller-factory.js +50 -10
- package/dist/factories/controller-factory.js.map +1 -1
- 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 +41 -0
- package/dist/pipelines/controller.js.map +1 -1
- package/dist/pipelines/dag.d.ts.map +1 -1
- package/dist/pipelines/dag.js +2 -1
- package/dist/pipelines/dag.js.map +1 -1
- package/dist/pipelines/flat.d.ts.map +1 -1
- package/dist/pipelines/flat.js +2 -1
- package/dist/pipelines/flat.js.map +1 -1
- package/dist/pipelines/linear.d.ts.map +1 -1
- package/dist/pipelines/linear.js +2 -1
- package/dist/pipelines/linear.js.map +1 -1
- package/dist/pipelines/register-skill-sources.d.ts +21 -0
- package/dist/pipelines/register-skill-sources.d.ts.map +1 -0
- package/dist/pipelines/register-skill-sources.js +57 -0
- package/dist/pipelines/register-skill-sources.js.map +1 -0
- package/dist/pipelines/server-context.d.ts +37 -1
- package/dist/pipelines/server-context.d.ts.map +1 -1
- package/dist/pipelines/server-context.js.map +1 -1
- package/dist/smart-agent/config.d.ts.map +1 -1
- package/dist/smart-agent/config.js +4 -0
- package/dist/smart-agent/config.js.map +1 -1
- package/dist/smart-agent/controller/artifacts.d.ts +116 -0
- package/dist/smart-agent/controller/artifacts.d.ts.map +1 -0
- package/dist/smart-agent/controller/artifacts.js +192 -0
- package/dist/smart-agent/controller/artifacts.js.map +1 -0
- package/dist/smart-agent/controller/board.d.ts +73 -0
- package/dist/smart-agent/controller/board.d.ts.map +1 -0
- package/dist/smart-agent/controller/board.js +233 -0
- package/dist/smart-agent/controller/board.js.map +1 -0
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts +67 -7
- package/dist/smart-agent/controller/controller-coordinator-handler.d.ts.map +1 -1
- package/dist/smart-agent/controller/controller-coordinator-handler.js +923 -61
- package/dist/smart-agent/controller/controller-coordinator-handler.js.map +1 -1
- package/dist/smart-agent/controller/finalizer.d.ts +48 -0
- package/dist/smart-agent/controller/finalizer.d.ts.map +1 -0
- package/dist/smart-agent/controller/finalizer.js +126 -0
- package/dist/smart-agent/controller/finalizer.js.map +1 -0
- package/dist/smart-agent/controller/memorizer.d.ts +2 -2
- package/dist/smart-agent/controller/memorizer.d.ts.map +1 -1
- package/dist/smart-agent/controller/memorizer.js +2 -2
- package/dist/smart-agent/controller/memorizer.js.map +1 -1
- package/dist/smart-agent/controller/outcome.d.ts +28 -0
- package/dist/smart-agent/controller/outcome.d.ts.map +1 -0
- package/dist/smart-agent/controller/outcome.js +30 -0
- package/dist/smart-agent/controller/outcome.js.map +1 -0
- package/dist/smart-agent/controller/planner.d.ts +28 -5
- package/dist/smart-agent/controller/planner.d.ts.map +1 -1
- package/dist/smart-agent/controller/planner.js +111 -29
- package/dist/smart-agent/controller/planner.js.map +1 -1
- package/dist/smart-agent/controller/reviewer.d.ts +48 -0
- package/dist/smart-agent/controller/reviewer.d.ts.map +1 -0
- package/dist/smart-agent/controller/reviewer.js +116 -0
- package/dist/smart-agent/controller/reviewer.js.map +1 -0
- package/dist/smart-agent/controller/run-scope.d.ts +50 -0
- package/dist/smart-agent/controller/run-scope.d.ts.map +1 -0
- package/dist/smart-agent/controller/run-scope.js +99 -0
- package/dist/smart-agent/controller/run-scope.js.map +1 -0
- package/dist/smart-agent/controller/session-bundle.d.ts +5 -0
- package/dist/smart-agent/controller/session-bundle.d.ts.map +1 -1
- package/dist/smart-agent/controller/session-bundle.js +27 -0
- package/dist/smart-agent/controller/session-bundle.js.map +1 -1
- package/dist/smart-agent/controller/types.d.ts +117 -7
- package/dist/smart-agent/controller/types.d.ts.map +1 -1
- package/dist/smart-agent/controller/types.js +30 -1
- package/dist/smart-agent/controller/types.js.map +1 -1
- package/dist/smart-agent/embedder-knowledge-index.d.ts +28 -0
- package/dist/smart-agent/embedder-knowledge-index.d.ts.map +1 -0
- package/dist/smart-agent/embedder-knowledge-index.js +71 -0
- package/dist/smart-agent/embedder-knowledge-index.js.map +1 -0
- package/dist/smart-agent/jsonl-knowledge-backend.d.ts +26 -10
- package/dist/smart-agent/jsonl-knowledge-backend.d.ts.map +1 -1
- package/dist/smart-agent/jsonl-knowledge-backend.js +81 -9
- package/dist/smart-agent/jsonl-knowledge-backend.js.map +1 -1
- package/dist/smart-agent/pg-pool.d.ts +58 -0
- package/dist/smart-agent/pg-pool.d.ts.map +1 -0
- package/dist/smart-agent/pg-pool.js +149 -0
- package/dist/smart-agent/pg-pool.js.map +1 -0
- package/dist/smart-agent/skill-plugins-config.d.ts +97 -0
- package/dist/smart-agent/skill-plugins-config.d.ts.map +1 -0
- package/dist/smart-agent/skill-plugins-config.js +318 -0
- package/dist/smart-agent/skill-plugins-config.js.map +1 -0
- package/dist/smart-agent/skill-plugins-config.test.d.ts +2 -0
- package/dist/smart-agent/skill-plugins-config.test.d.ts.map +1 -0
- package/dist/smart-agent/skill-plugins-config.test.js.map +1 -0
- package/dist/smart-agent/skill-plugins-host-factory.d.ts +98 -0
- package/dist/smart-agent/skill-plugins-host-factory.d.ts.map +1 -0
- package/dist/smart-agent/skill-plugins-host-factory.js +284 -0
- package/dist/smart-agent/skill-plugins-host-factory.js.map +1 -0
- package/dist/smart-agent/skill-plugins-host-factory.test.d.ts +2 -0
- package/dist/smart-agent/skill-plugins-host-factory.test.d.ts.map +1 -0
- package/dist/smart-agent/skill-plugins-host-factory.test.js.map +1 -0
- package/dist/smart-agent/smart-server.d.ts +25 -0
- package/dist/smart-agent/smart-server.d.ts.map +1 -1
- package/dist/smart-agent/smart-server.js +139 -6
- package/dist/smart-agent/smart-server.js.map +1 -1
- package/package.json +9 -7
|
@@ -13,13 +13,22 @@ export interface ControllerFactoryDeps extends PipelineFactoryDepsBase {
|
|
|
13
13
|
backend: KnowledgeBackend;
|
|
14
14
|
/** Per-sessionId knowledge RAG factory. */
|
|
15
15
|
knowledgeRagFor: (sessionId: string) => IKnowledgeRagHandle | Promise<IKnowledgeRagHandle>;
|
|
16
|
-
/**
|
|
17
|
-
* (
|
|
16
|
+
/** ALWAYS required: results-RAG recall ranks by embedding similarity in every
|
|
17
|
+
* persistence mode (and distance target-state, if used). `build()` throws when
|
|
18
|
+
* absent — optional here only so the dep object can be assembled incrementally. */
|
|
18
19
|
embedder?: IEmbedder;
|
|
19
20
|
/** Semantic top-K tool selection over the vectorized MCP catalog. */
|
|
20
21
|
selectTools: (query: string, k?: number, options?: CallOptions) => Promise<readonly LlmTool[]>;
|
|
21
22
|
/** Optional override marking a tool as consumer-supplied (test-only). */
|
|
22
23
|
isExternalTool?: (toolName: string) => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Optional controller-own skills recall hook. When present, the planner queries
|
|
26
|
+
* it before each create-plan/replan and injects a bounded "Relevant skills"
|
|
27
|
+
* block into the prompt. The controller pipeline builds this from the skill
|
|
28
|
+
* plugin-host + configured group. Absent → the planner prompt is byte-identical
|
|
29
|
+
* to the agnostic path (the measurement toggle).
|
|
30
|
+
*/
|
|
31
|
+
skillsRecall?: (goal: string, options?: CallOptions) => Promise<string>;
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* Builder-factory for the `controller` pipeline — the code-level (no-YAML)
|
|
@@ -33,9 +42,14 @@ export interface ControllerFactoryDeps extends PipelineFactoryDepsBase {
|
|
|
33
42
|
* ```ts
|
|
34
43
|
* import { ControllerFactory } from '@mcp-abap-adt/llm-agent-server-libs/controller';
|
|
35
44
|
* const { handler } = await new ControllerFactory().build(config, {
|
|
36
|
-
* // role is typed as string by the base deps — resolve it explicitly.
|
|
45
|
+
* // role is typed as string by the base deps — resolve it explicitly. reviewer/
|
|
46
|
+
* // finalizer are only requested when their subagent block is present; map them
|
|
47
|
+
* // to config.subagents.reviewer ?? planner (likewise finalizer) for a 5-role config.
|
|
37
48
|
* makeRoleLlm: (role) =>
|
|
38
|
-
* makeLlm(
|
|
49
|
+
* makeLlm(
|
|
50
|
+
* config.subagents[role as keyof typeof config.subagents] ??
|
|
51
|
+
* config.subagents.planner,
|
|
52
|
+
* ),
|
|
39
53
|
* callMcp, backend, knowledgeRagFor, embedder, selectTools,
|
|
40
54
|
* });
|
|
41
55
|
* const handle = await builder.withStepperCoordinator(handler).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-factory.d.ts","sourceRoot":"","sources":["../../src/factories/controller-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-factory.d.ts","sourceRoot":"","sources":["../../src/factories/controller-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,uEAAuE;IACvE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,2CAA2C;IAC3C,eAAe,EAAE,CACf,SAAS,EAAE,MAAM,KACd,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD;;wFAEoF;IACpF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qEAAqE;IACrE,WAAW,EAAE,CACX,KAAK,EAAE,MAAM,EACb,CAAC,CAAC,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IACjC,yEAAyE;IACzE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBACX,YAAW,gBAAgB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAEpE,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEhC,KAAK,CACT,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;CAyE7B"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { validateBoardBudget } from '../smart-agent/controller/board.js';
|
|
1
2
|
import { ControllerCoordinatorHandler } from '../smart-agent/controller/controller-coordinator-handler.js';
|
|
3
|
+
import { LlmFinalizer } from '../smart-agent/controller/finalizer.js';
|
|
4
|
+
import { LlmReviewer } from '../smart-agent/controller/reviewer.js';
|
|
2
5
|
import { makeSubagentClient } from '../smart-agent/controller/subagent-client.js';
|
|
3
6
|
/**
|
|
4
7
|
* Builder-factory for the `controller` pipeline — the code-level (no-YAML)
|
|
@@ -12,9 +15,14 @@ import { makeSubagentClient } from '../smart-agent/controller/subagent-client.js
|
|
|
12
15
|
* ```ts
|
|
13
16
|
* import { ControllerFactory } from '@mcp-abap-adt/llm-agent-server-libs/controller';
|
|
14
17
|
* const { handler } = await new ControllerFactory().build(config, {
|
|
15
|
-
* // role is typed as string by the base deps — resolve it explicitly.
|
|
18
|
+
* // role is typed as string by the base deps — resolve it explicitly. reviewer/
|
|
19
|
+
* // finalizer are only requested when their subagent block is present; map them
|
|
20
|
+
* // to config.subagents.reviewer ?? planner (likewise finalizer) for a 5-role config.
|
|
16
21
|
* makeRoleLlm: (role) =>
|
|
17
|
-
* makeLlm(
|
|
22
|
+
* makeLlm(
|
|
23
|
+
* config.subagents[role as keyof typeof config.subagents] ??
|
|
24
|
+
* config.subagents.planner,
|
|
25
|
+
* ),
|
|
18
26
|
* callMcp, backend, knowledgeRagFor, embedder, selectTools,
|
|
19
27
|
* });
|
|
20
28
|
* const handle = await builder.withStepperCoordinator(handler).build();
|
|
@@ -23,20 +31,44 @@ import { makeSubagentClient } from '../smart-agent/controller/subagent-client.js
|
|
|
23
31
|
export class ControllerFactory {
|
|
24
32
|
kind = 'controller';
|
|
25
33
|
async build(config, deps) {
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'
|
|
34
|
+
// results-RAG recall is embedding-based in EVERY persistence mode → require an
|
|
35
|
+
// embedder AND a semantic-recall-capable backend. The embedder alone is not
|
|
36
|
+
// enough: a programmatic caller could pass an embedder PLUS a plain backend with
|
|
37
|
+
// no index, and recall would silently degrade to insertion order. Assert BOTH at
|
|
38
|
+
// the controller boundary, fail loud at build time.
|
|
39
|
+
if (!deps.embedder) {
|
|
40
|
+
throw new Error("pipeline 'controller' requires an embedder: results-RAG recall ranks by " +
|
|
41
|
+
'embedding similarity (and distance target-state, if used). Provide deps.embedder.');
|
|
34
42
|
}
|
|
43
|
+
if (!deps.backend.semanticRecallCapable) {
|
|
44
|
+
throw new Error("pipeline 'controller' requires a semantic-recall-capable knowledge backend " +
|
|
45
|
+
'(one built with an embedder-backed index); the injected backend reports ' +
|
|
46
|
+
'semanticRecallCapable=false, so recall would degrade to insertion order. ' +
|
|
47
|
+
'Build the backend via buildKnowledgeBackend (with a resolved embedder) or ' +
|
|
48
|
+
'inject a semantic-capable one.');
|
|
49
|
+
}
|
|
50
|
+
const b = config.budgets;
|
|
51
|
+
validateBoardBudget({
|
|
52
|
+
maxDigestChars: b.maxDigestChars ?? 500,
|
|
53
|
+
maxIntentChars: b.maxIntentChars ?? 120,
|
|
54
|
+
maxActiveSteps: b.maxActiveSteps ?? 16,
|
|
55
|
+
maxBoardChars: b.maxBoardChars ?? 12000,
|
|
56
|
+
keepRecentDigests: b.keepRecentDigests ?? 8,
|
|
57
|
+
});
|
|
35
58
|
const [evaluatorLlm, plannerLlm, executorLlm] = await Promise.all([
|
|
36
59
|
deps.makeRoleLlm('evaluator'),
|
|
37
60
|
deps.makeRoleLlm('planner'),
|
|
38
61
|
deps.makeRoleLlm('executor'),
|
|
39
62
|
]);
|
|
63
|
+
// reviewer/finalizer default to the planner's LLM when their subagent config is
|
|
64
|
+
// absent (3-role config); the factory only resolves a distinct role LLM when the
|
|
65
|
+
// subagent block is present, so a 3-role config needs no resolver change.
|
|
66
|
+
const reviewerLlm = config.subagents.reviewer
|
|
67
|
+
? await deps.makeRoleLlm('reviewer')
|
|
68
|
+
: plannerLlm;
|
|
69
|
+
const finalizerLlm = config.subagents.finalizer
|
|
70
|
+
? await deps.makeRoleLlm('finalizer')
|
|
71
|
+
: plannerLlm;
|
|
40
72
|
const handler = new ControllerCoordinatorHandler({
|
|
41
73
|
evaluator: makeSubagentClient(evaluatorLlm),
|
|
42
74
|
planner: makeSubagentClient(plannerLlm),
|
|
@@ -47,11 +79,19 @@ export class ControllerFactory {
|
|
|
47
79
|
callMcp: (name, args) => deps.callMcp(name, args),
|
|
48
80
|
selectTools: deps.selectTools,
|
|
49
81
|
...(deps.isExternalTool ? { isExternalTool: deps.isExternalTool } : {}),
|
|
82
|
+
...(deps.skillsRecall ? { skillsRecall: deps.skillsRecall } : {}),
|
|
83
|
+
reviewer: new LlmReviewer(makeSubagentClient(reviewerLlm)),
|
|
84
|
+
finalizer: new LlmFinalizer(makeSubagentClient(finalizerLlm), {
|
|
85
|
+
budget: 12000,
|
|
86
|
+
perResultCap: 4000,
|
|
87
|
+
}),
|
|
50
88
|
config,
|
|
51
89
|
models: {
|
|
52
90
|
evaluator: evaluatorLlm.model ?? 'unknown',
|
|
53
91
|
planner: plannerLlm.model ?? 'unknown',
|
|
54
92
|
executor: executorLlm.model ?? 'unknown',
|
|
93
|
+
reviewer: reviewerLlm.model ?? 'unknown',
|
|
94
|
+
finalizer: finalizerLlm.model ?? 'unknown',
|
|
55
95
|
},
|
|
56
96
|
});
|
|
57
97
|
return { handler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-factory.js","sourceRoot":"","sources":["../../src/factories/controller-factory.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,4BAA4B,EAAE,MAAM,6DAA6D,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-factory.js","sourceRoot":"","sources":["../../src/factories/controller-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "19.
|
|
1
|
+
export declare const PACKAGE_VERSION = "19.2.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './smart-agent/build-dag-coordinator-deps.js';
|
|
|
4
4
|
export * from './smart-agent/build-stepper-root.js';
|
|
5
5
|
export * from './smart-agent/config.js';
|
|
6
6
|
export * from './smart-agent/jsonl-knowledge-backend.js';
|
|
7
|
+
export { makePgPool, makePgReadPool } from './smart-agent/pg-pool.js';
|
|
7
8
|
export * from './smart-agent/pipeline.js';
|
|
8
9
|
export * from './smart-agent/resolve-agent-embedder.js';
|
|
9
10
|
export * from './smart-agent/session-identity-resolver.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './smart-agent/build-dag-coordinator-deps.js';
|
|
|
4
4
|
export * from './smart-agent/build-stepper-root.js';
|
|
5
5
|
export * from './smart-agent/config.js';
|
|
6
6
|
export * from './smart-agent/jsonl-knowledge-backend.js';
|
|
7
|
+
export { makePgPool, makePgReadPool } from './smart-agent/pg-pool.js';
|
|
7
8
|
export * from './smart-agent/pipeline.js';
|
|
8
9
|
export * from './smart-agent/resolve-agent-embedder.js';
|
|
9
10
|
export * from './smart-agent/session-identity-resolver.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAM5E,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,4BAA4B,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EACL,KAAK,eAAe,EACpB,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;GAMG;AACH,qBAAa,wBACX,YAAW,eAAe,CAAC,gBAAgB,CAAC;IAE5C,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAM5E,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,4BAA4B,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EACL,KAAK,eAAe,EACpB,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;GAMG;AACH,qBAAa,wBACX,YAAW,eAAe,CAAC,gBAAgB,CAAC;IAE5C,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IA+CrC,KAAK,CACT,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,gCAAgC,GACpC,OAAO,CAAC,iBAAiB,CAAC;CAuE9B"}
|
|
@@ -46,6 +46,11 @@ export class ControllerPipelinePlugin {
|
|
|
46
46
|
maxRetries: 3,
|
|
47
47
|
maxRewinds: 5,
|
|
48
48
|
maxToolCalls: 10,
|
|
49
|
+
maxDigestChars: 500,
|
|
50
|
+
maxIntentChars: 120,
|
|
51
|
+
maxActiveSteps: 16,
|
|
52
|
+
maxBoardChars: 12000,
|
|
53
|
+
keepRecentDigests: 8,
|
|
49
54
|
...budgetsRaw,
|
|
50
55
|
},
|
|
51
56
|
};
|
|
@@ -60,6 +65,41 @@ export class ControllerPipelinePlugin {
|
|
|
60
65
|
// yields [] and the loop runs with external tools only.
|
|
61
66
|
const toolsRag = ctx.toolsRag;
|
|
62
67
|
const selectTools = (query, k, options) => toolsRag ? toolsRag.query(query, k, options) : Promise.resolve([]);
|
|
68
|
+
// Controller-OWN skills recall hook (B4). The controller pipeline builds its
|
|
69
|
+
// subagent prompts itself (it does NOT use the context-assembler), so it needs
|
|
70
|
+
// its own recall: query the configured controller skill group and format a
|
|
71
|
+
// bounded "Relevant skills" block the planner injects into create-plan/replan.
|
|
72
|
+
// Wired ONLY when a host AND a controller group are present; otherwise left
|
|
73
|
+
// undefined so the planner prompt stays byte-identical to the agnostic path.
|
|
74
|
+
// `controllerSkillGroup` is an INDEPENDENT channel from `serveCollections`
|
|
75
|
+
// (assembler pipelines); the group's existence is validated at startup, so we
|
|
76
|
+
// gate purely on host + group presence and do NOT couple to serveCollections.
|
|
77
|
+
const skillHost = ctx.skillHost;
|
|
78
|
+
const group = ctx.skillRecall?.controllerSkillGroup;
|
|
79
|
+
// Resolve the recall handle ONCE (the host memoises it anyway; this is the
|
|
80
|
+
// correct shape — no per-recall rag(group) lookup, and the wrapper's dimension/
|
|
81
|
+
// verdict cache is shared across recalls).
|
|
82
|
+
const skillRagHandle = skillHost && group ? skillHost.rag(group) : undefined;
|
|
83
|
+
const skillsRecall = skillRagHandle
|
|
84
|
+
? async (goal, options) => {
|
|
85
|
+
const k = ctx.skillRecall?.k ?? 4;
|
|
86
|
+
const maxInjectChars = ctx.skillRecall?.maxInjectChars ?? 4000;
|
|
87
|
+
const queryOpts = ctx.skillRecall?.threshold !== undefined
|
|
88
|
+
? { k, threshold: ctx.skillRecall.threshold }
|
|
89
|
+
: { k };
|
|
90
|
+
const hits = await skillRagHandle.query(goal, queryOpts, options);
|
|
91
|
+
if (hits.length === 0)
|
|
92
|
+
return '';
|
|
93
|
+
let block = 'Relevant skills:\n';
|
|
94
|
+
for (const h of hits) {
|
|
95
|
+
const next = `${block}- ${h.record.content}\n`;
|
|
96
|
+
if (next.length > maxInjectChars)
|
|
97
|
+
break;
|
|
98
|
+
block = next;
|
|
99
|
+
}
|
|
100
|
+
return block.trimEnd();
|
|
101
|
+
}
|
|
102
|
+
: undefined;
|
|
63
103
|
// The factory resolves the three role LLMs via makeRoleLlm, wraps them as
|
|
64
104
|
// subagent clients, validates the embedder requirement, and builds the
|
|
65
105
|
// handler. external-tool routing is decided PER-REQUEST inside the handler
|
|
@@ -71,6 +111,7 @@ export class ControllerPipelinePlugin {
|
|
|
71
111
|
knowledgeRagFor: (sessionId) => ctx.knowledgeRagFor(sessionId),
|
|
72
112
|
embedder: ctx.embedder,
|
|
73
113
|
selectTools,
|
|
114
|
+
...(skillsRecall ? { skillsRecall } : {}),
|
|
74
115
|
};
|
|
75
116
|
const { handler } = await new ControllerFactory().build(cfg, deps);
|
|
76
117
|
const builder = await ctx.createAgentBuilder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../src/pipelines/dag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../src/pipelines/dag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,eAAe,CAAC,iBAAiB,CAAC;IAC1E,QAAQ,CAAC,IAAI,SAAS;IAEtB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB;IAQtC,KAAK,CACT,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAsB9B"}
|
package/dist/pipelines/dag.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DagCoordinatorHandler } from '@mcp-abap-adt/llm-agent-libs';
|
|
2
2
|
import { buildDagCoordinatorDeps } from '../smart-agent/build-dag-coordinator-deps.js';
|
|
3
|
+
import { registerSkillSources } from './register-skill-sources.js';
|
|
3
4
|
/**
|
|
4
5
|
* Built-in `dag` pipeline plugin. Validates the raw DAG coordinator config
|
|
5
6
|
* (requires a `planner`), assembles the coordinator deps via the shared
|
|
@@ -38,7 +39,7 @@ export class DagPipelinePlugin {
|
|
|
38
39
|
throw new Error("pipeline 'dag': buildDagCoordinatorDeps returned undefined");
|
|
39
40
|
}
|
|
40
41
|
const handler = new DagCoordinatorHandler(deps);
|
|
41
|
-
const builder = await ctx.createAgentBuilder();
|
|
42
|
+
const builder = registerSkillSources(await ctx.createAgentBuilder(), ctx);
|
|
42
43
|
const handle = await builder.withStepperCoordinator(handler).build();
|
|
43
44
|
return { agent: handle.agent, close: () => handle.close() };
|
|
44
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../../src/pipelines/dag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../../src/pipelines/dag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,KAAK,CAAC;IAEtB,WAAW,CAAC,GAAY;QACtB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;QACnD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAsB,EACtB,GAA2B;QAE3B,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC;YACzC,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,cAAc;YAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACrE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat.d.ts","sourceRoot":"","sources":["../../src/pipelines/flat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"flat.d.ts","sourceRoot":"","sources":["../../src/pipelines/flat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBACX,YAAW,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEjD,QAAQ,CAAC,IAAI,UAAU;IAEvB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAI9B,KAAK,CACT,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3B,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAK9B"}
|
package/dist/pipelines/flat.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { registerSkillSources } from './register-skill-sources.js';
|
|
1
2
|
/**
|
|
2
3
|
* Built-in `flat` pipeline plugin. No coordinator — just builds a plain
|
|
3
4
|
* {@link SmartAgent} with the base tool loop (no decomposition, planning, or
|
|
@@ -10,7 +11,7 @@ export class FlatPipelinePlugin {
|
|
|
10
11
|
return {};
|
|
11
12
|
}
|
|
12
13
|
async build(_cfg, ctx) {
|
|
13
|
-
const builder = await ctx.createAgentBuilder();
|
|
14
|
+
const builder = registerSkillSources(await ctx.createAgentBuilder(), ctx);
|
|
14
15
|
const handle = await builder.build();
|
|
15
16
|
return { agent: handle.agent, close: () => handle.close() };
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat.js","sourceRoot":"","sources":["../../src/pipelines/flat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flat.js","sourceRoot":"","sources":["../../src/pipelines/flat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAGpB,IAAI,GAAG,MAAM,CAAC;IAEvB,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,IAA2B,EAC3B,GAA2B;QAE3B,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/pipelines/linear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/pipelines/linear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,oBACX,YAAW,eAAe,CAAC,oBAAoB,CAAC;IAEhD,QAAQ,CAAC,IAAI,YAAY;IAEzB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB;IAIzC,KAAK,CACT,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAU9B"}
|
package/dist/pipelines/linear.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LinearFactory } from '../factories/index.js';
|
|
2
2
|
import { parseLinearConfig } from './parsers.js';
|
|
3
|
+
import { registerSkillSources } from './register-skill-sources.js';
|
|
3
4
|
/**
|
|
4
5
|
* Built-in `linear` pipeline plugin. The raw config is resolved into
|
|
5
6
|
* {@link CoordinatorHandlerDeps} (via {@link parseLinearConfig}) at build time
|
|
@@ -18,7 +19,7 @@ export class LinearPipelinePlugin {
|
|
|
18
19
|
makeRoleLlm: (role) => ctx.resolveLlm(role),
|
|
19
20
|
callMcp: (n, a, s) => ctx.callMcp(n, a, s).then(String),
|
|
20
21
|
});
|
|
21
|
-
const builder = await ctx.createAgentBuilder();
|
|
22
|
+
const builder = registerSkillSources(await ctx.createAgentBuilder(), ctx);
|
|
22
23
|
const handle = await builder.withStepperCoordinator(handler).build();
|
|
23
24
|
return { agent: handle.agent, close: () => handle.close() };
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/pipelines/linear.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/pipelines/linear.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAGtB,IAAI,GAAG,QAAQ,CAAC;IAEzB,WAAW,CAAC,GAAY;QACtB,OAAO,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAyB,EACzB,GAA2B;QAE3B,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;YACxD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACrE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SmartAgentBuilder } from '@mcp-abap-adt/llm-agent-libs';
|
|
2
|
+
import type { IServerPipelineContext } from './server-context.js';
|
|
3
|
+
/**
|
|
4
|
+
* Implicit assembler wiring (B3): when a skill plugin-host is present on the
|
|
5
|
+
* context, register each served skill group's RAG handle as one more
|
|
6
|
+
* {@link skillsRagSource} `IRag` source on the agent builder. Called ONCE at
|
|
7
|
+
* build time by the assembler-based pipelines (flat/default, linear) — the
|
|
8
|
+
* serving collection set is fixed at host load.
|
|
9
|
+
*
|
|
10
|
+
* Absent `ctx.skillHost` this is a NO-OP (zero behavior change).
|
|
11
|
+
*
|
|
12
|
+
* Each group is registered under its own collection name so distinct groups do
|
|
13
|
+
* not collide in the RAG registry; all derive from the same `relevant-skills`
|
|
14
|
+
* base key so the assembler renders them under one "Relevant Skills" header
|
|
15
|
+
* family. Recall sizing (`k`/`threshold`) comes from `ctx.skillRecall`, threaded
|
|
16
|
+
* from the `skillPlugins:` host config.
|
|
17
|
+
*
|
|
18
|
+
* @returns the same builder (fluent), for call-site chaining.
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerSkillSources(builder: SmartAgentBuilder, ctx: IServerPipelineContext): SmartAgentBuilder;
|
|
21
|
+
//# sourceMappingURL=register-skill-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-skill-sources.d.ts","sourceRoot":"","sources":["../../src/pipelines/register-skill-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAUlE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,sBAAsB,GAC1B,iBAAiB,CA+BnB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { skillsRagSource } from '@mcp-abap-adt/llm-agent-libs';
|
|
2
|
+
/**
|
|
3
|
+
* Section/store key under which the skills RAG source is registered. A single
|
|
4
|
+
* key (not per-group) keeps the assembler's "Relevant Skills" section stable
|
|
5
|
+
* regardless of how many groups the host serves; the title-cased key becomes
|
|
6
|
+
* the section header automatically.
|
|
7
|
+
*/
|
|
8
|
+
const SKILLS_STORE_KEY = 'relevant-skills';
|
|
9
|
+
/**
|
|
10
|
+
* Implicit assembler wiring (B3): when a skill plugin-host is present on the
|
|
11
|
+
* context, register each served skill group's RAG handle as one more
|
|
12
|
+
* {@link skillsRagSource} `IRag` source on the agent builder. Called ONCE at
|
|
13
|
+
* build time by the assembler-based pipelines (flat/default, linear) — the
|
|
14
|
+
* serving collection set is fixed at host load.
|
|
15
|
+
*
|
|
16
|
+
* Absent `ctx.skillHost` this is a NO-OP (zero behavior change).
|
|
17
|
+
*
|
|
18
|
+
* Each group is registered under its own collection name so distinct groups do
|
|
19
|
+
* not collide in the RAG registry; all derive from the same `relevant-skills`
|
|
20
|
+
* base key so the assembler renders them under one "Relevant Skills" header
|
|
21
|
+
* family. Recall sizing (`k`/`threshold`) comes from `ctx.skillRecall`, threaded
|
|
22
|
+
* from the `skillPlugins:` host config.
|
|
23
|
+
*
|
|
24
|
+
* @returns the same builder (fluent), for call-site chaining.
|
|
25
|
+
*/
|
|
26
|
+
export function registerSkillSources(builder, ctx) {
|
|
27
|
+
const host = ctx.skillHost;
|
|
28
|
+
if (!host)
|
|
29
|
+
return builder;
|
|
30
|
+
const k = ctx.skillRecall?.k ?? 4;
|
|
31
|
+
const threshold = ctx.skillRecall?.threshold;
|
|
32
|
+
// Honor the operator-configured served subset (`skillPlugins.serveCollections`):
|
|
33
|
+
// register ONLY those groups so conflicting groups are not read together. When
|
|
34
|
+
// unset, register every group the host serves (prior behavior).
|
|
35
|
+
const serve = ctx.skillRecall?.serveCollections;
|
|
36
|
+
const served = serve !== undefined ? new Set(serve) : undefined;
|
|
37
|
+
let out = builder;
|
|
38
|
+
for (const g of host.groups()) {
|
|
39
|
+
if (served && !served.has(g.group))
|
|
40
|
+
continue;
|
|
41
|
+
const name = `${SKILLS_STORE_KEY}:${g.group}`;
|
|
42
|
+
out = out.addRagCollection({
|
|
43
|
+
name,
|
|
44
|
+
rag: skillsRagSource(host.rag(g.group), {
|
|
45
|
+
group: g.group,
|
|
46
|
+
k,
|
|
47
|
+
...(threshold !== undefined ? { threshold } : {}),
|
|
48
|
+
}),
|
|
49
|
+
meta: {
|
|
50
|
+
displayName: 'Relevant Skills',
|
|
51
|
+
scope: 'global',
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=register-skill-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-skill-sources.js","sourceRoot":"","sources":["../../src/pipelines/register-skill-sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA0B,EAC1B,GAA2B;IAE3B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC;IAE1B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;IAE7C,iFAAiF;IACjF,+EAA+E;IAC/E,gEAAgE;IAChE,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAC7C,MAAM,IAAI,GAAG,GAAG,gBAAgB,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC;YACzB,IAAI;YACJ,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACtC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,CAAC;gBACD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC;YACF,IAAI,EAAE;gBACJ,WAAW,EAAE,iBAAiB;gBAC9B,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IEmbedder, ILlm, IPipelineContext, ISubAgent, IToolsRagHandle } from '@mcp-abap-adt/llm-agent';
|
|
1
|
+
import type { IEmbedder, ILlm, IPipelineContext, ISkillPluginHost, ISubAgent, IToolsRagHandle } from '@mcp-abap-adt/llm-agent';
|
|
2
2
|
import type { KnowledgeBackend, SmartAgentBuilder } from '@mcp-abap-adt/llm-agent-libs';
|
|
3
3
|
import type { NormalizedLlmMap } from '../smart-agent/config.js';
|
|
4
4
|
import type { SmartServerLlmConfig } from '../smart-agent/smart-server.js';
|
|
@@ -34,6 +34,42 @@ export interface IServerPipelineContext extends IPipelineContext {
|
|
|
34
34
|
* embedder is configured.
|
|
35
35
|
*/
|
|
36
36
|
embedder?: IEmbedder;
|
|
37
|
+
/**
|
|
38
|
+
* The live skill plugin-host, built once at startup from `skillPlugins:` config
|
|
39
|
+
* and `await host.load()`-ed before serving. Consumed by the implicit
|
|
40
|
+
* assembler wiring (B3) and the controller recall hook (B4). Undefined when no
|
|
41
|
+
* `skillPlugins:` config is present.
|
|
42
|
+
*/
|
|
43
|
+
skillHost?: ISkillPluginHost;
|
|
44
|
+
/**
|
|
45
|
+
* Skills recall knobs (`skillPlugins.k` / `skillPlugins.threshold`) threaded
|
|
46
|
+
* from the host config so the implicit assembler wiring (B3) can size each
|
|
47
|
+
* registered skills RAG source. Present iff `skillHost` is present.
|
|
48
|
+
*
|
|
49
|
+
* `controllerSkillGroup` / `maxInjectChars` (`skillPlugins.controllerSkillGroup`
|
|
50
|
+
* / `skillPlugins.maxInjectChars`) are threaded for the controller pipeline's
|
|
51
|
+
* own recall hook (B4): the controller does NOT use the context-assembler, so
|
|
52
|
+
* it builds its own `skillsRecall(goal)` that queries this group and injects a
|
|
53
|
+
* bounded "Relevant skills" block into the planner's create-plan/replan. When
|
|
54
|
+
* `controllerSkillGroup` is absent the controller stays agnostic (no hook).
|
|
55
|
+
*/
|
|
56
|
+
skillRecall?: {
|
|
57
|
+
k: number;
|
|
58
|
+
threshold?: number;
|
|
59
|
+
controllerSkillGroup?: string;
|
|
60
|
+
maxInjectChars?: number;
|
|
61
|
+
/**
|
|
62
|
+
* The operator-configured served collection subset
|
|
63
|
+
* (`skillPlugins.serveCollections`). It gates ONLY the implicit assembler
|
|
64
|
+
* wiring (B3): when set, the assembler registers ONLY these groups (a
|
|
65
|
+
* compatible subset that may be read together); when unset, all groups the
|
|
66
|
+
* host serves are registered. It does NOT gate the controller recall hook
|
|
67
|
+
* (B4): `controllerSkillGroup` is an INDEPENDENT channel — the controller
|
|
68
|
+
* recalls its configured group regardless of `serveCollections` (the factory
|
|
69
|
+
* validates only that the group exists, not membership in this set).
|
|
70
|
+
*/
|
|
71
|
+
serveCollections?: readonly string[];
|
|
72
|
+
};
|
|
37
73
|
}
|
|
38
74
|
/**
|
|
39
75
|
* Controller-pipeline view of the server context. With the durable knowledge
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../src/pipelines/server-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,sEAAsE;IACtE,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,uBAAuB,EAAE,gBAAgB,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../src/pipelines/server-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,sEAAsE;IACtE,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,uBAAuB,EAAE,gBAAgB,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE;QACZ,CAAC,EAAE,MAAM,CAAC;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;;;;;;;;;WASG;QACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACtC,CAAC;CACH;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gCAAgC,GAAG,sBAAsB,CAAC;AAEtE,iEAAiE;AACjE,eAAO,MAAM,eAAe,EAAE,eAG7B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,sBAAsB,EACtB,UAAU,CACX,GAAG;IACF,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,yBAAyB,GAC9B,sBAAsB,CAExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-context.js","sourceRoot":"","sources":["../../src/pipelines/server-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-context.js","sourceRoot":"","sources":["../../src/pipelines/server-context.ts"],"names":[],"mappings":"AA+FA,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;CACxB,CAAC;AAUF,MAAM,UAAU,2BAA2B,CACzC,IAA+B;IAE/B,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/smart-agent/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,uBAAuB,EACvB,sBAAsB,EACtB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,cAAc,EAEd,eAAe,EAEf,qBAAqB,EAErB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/smart-agent/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import fs from 'node:fs';
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { AutoActivation, ExplicitActivation, HybridDispatch, LlmFinalizer, OneShotPlanning, PassthroughFinalizer, ReplanOnErrorPlanning, ScoreThresholdToolSelection, SelfDispatch, SkillStepsPlanning, SubAgentDispatch, TemplateFinalizer, TopKToolSelection, } from '@mcp-abap-adt/llm-agent-libs';
|
|
7
7
|
import { parse as parseYaml } from 'yaml';
|
|
8
|
+
import { parseSkillPluginsConfig } from './skill-plugins-config.js';
|
|
8
9
|
/**
|
|
9
10
|
* Detect whether an object is a flat SmartServerLlmConfig shape.
|
|
10
11
|
* Flat shape is identified by the presence of ANY of the known flat-shape
|
|
@@ -800,6 +801,9 @@ export function resolveSmartServerConfig(args = {}, yaml = {}, env = process.env
|
|
|
800
801
|
},
|
|
801
802
|
}
|
|
802
803
|
: {}),
|
|
804
|
+
...(yaml.skillPlugins
|
|
805
|
+
? { skillPlugins: parseSkillPluginsConfig(yaml.skillPlugins) }
|
|
806
|
+
: {}),
|
|
803
807
|
};
|
|
804
808
|
validateResolvedConfig(resolved, yaml, env);
|
|
805
809
|
return resolved;
|