@mcp-abap-adt/llm-agent-server-libs 20.0.0 → 20.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/builders/controller-skill-pipeline-builder.d.ts +57 -0
  2. package/dist/builders/controller-skill-pipeline-builder.d.ts.map +1 -0
  3. package/dist/builders/controller-skill-pipeline-builder.js +175 -0
  4. package/dist/builders/controller-skill-pipeline-builder.js.map +1 -0
  5. package/dist/generated/version.d.ts +1 -1
  6. package/dist/generated/version.js +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/pipelines/controller.d.ts.map +1 -1
  12. package/dist/pipelines/controller.js +19 -3
  13. package/dist/pipelines/controller.js.map +1 -1
  14. package/dist/pipelines/coordinator-resolvers.d.ts +68 -0
  15. package/dist/pipelines/coordinator-resolvers.d.ts.map +1 -0
  16. package/dist/pipelines/coordinator-resolvers.js +97 -0
  17. package/dist/pipelines/coordinator-resolvers.js.map +1 -0
  18. package/dist/pipelines/parsers.d.ts +1 -1
  19. package/dist/pipelines/parsers.d.ts.map +1 -1
  20. package/dist/pipelines/parsers.js +5 -4
  21. package/dist/pipelines/parsers.js.map +1 -1
  22. package/dist/pipelines/register-skill-sources.d.ts.map +1 -1
  23. package/dist/pipelines/register-skill-sources.js +5 -0
  24. package/dist/pipelines/register-skill-sources.js.map +1 -1
  25. package/dist/smart-agent/build-stepper-root.d.ts +3 -2
  26. package/dist/smart-agent/build-stepper-root.d.ts.map +1 -1
  27. package/dist/smart-agent/build-stepper-root.js +2 -1
  28. package/dist/smart-agent/build-stepper-root.js.map +1 -1
  29. package/dist/smart-agent/config-reload-watcher.d.ts +30 -0
  30. package/dist/smart-agent/config-reload-watcher.d.ts.map +1 -0
  31. package/dist/smart-agent/config-reload-watcher.js +101 -0
  32. package/dist/smart-agent/config-reload-watcher.js.map +1 -0
  33. package/dist/smart-agent/config-validator.d.ts +21 -0
  34. package/dist/smart-agent/config-validator.d.ts.map +1 -0
  35. package/dist/smart-agent/config-validator.js +196 -0
  36. package/dist/smart-agent/config-validator.js.map +1 -0
  37. package/dist/smart-agent/config.d.ts +16 -254
  38. package/dist/smart-agent/config.d.ts.map +1 -1
  39. package/dist/smart-agent/config.js +17 -904
  40. package/dist/smart-agent/config.js.map +1 -1
  41. package/dist/smart-agent/controller/board.d.ts +6 -3
  42. package/dist/smart-agent/controller/board.d.ts.map +1 -1
  43. package/dist/smart-agent/controller/board.js +21 -0
  44. package/dist/smart-agent/controller/board.js.map +1 -1
  45. package/dist/smart-agent/controller/controller-coordinator-handler.d.ts +6 -48
  46. package/dist/smart-agent/controller/controller-coordinator-handler.d.ts.map +1 -1
  47. package/dist/smart-agent/controller/controller-coordinator-handler.js +68 -357
  48. package/dist/smart-agent/controller/controller-coordinator-handler.js.map +1 -1
  49. package/dist/smart-agent/controller/finalizer.d.ts +5 -0
  50. package/dist/smart-agent/controller/finalizer.d.ts.map +1 -1
  51. package/dist/smart-agent/controller/finalizer.js +12 -5
  52. package/dist/smart-agent/controller/finalizer.js.map +1 -1
  53. package/dist/smart-agent/controller/parser.d.ts +11 -0
  54. package/dist/smart-agent/controller/parser.d.ts.map +1 -0
  55. package/dist/smart-agent/controller/parser.js +77 -0
  56. package/dist/smart-agent/controller/parser.js.map +1 -0
  57. package/dist/smart-agent/controller/planner.js +1 -1
  58. package/dist/smart-agent/controller/planner.js.map +1 -1
  59. package/dist/smart-agent/controller/recall.d.ts +48 -0
  60. package/dist/smart-agent/controller/recall.d.ts.map +1 -0
  61. package/dist/smart-agent/controller/recall.js +196 -0
  62. package/dist/smart-agent/controller/recall.js.map +1 -0
  63. package/dist/smart-agent/controller/reviewer.d.ts.map +1 -1
  64. package/dist/smart-agent/controller/reviewer.js +1 -1
  65. package/dist/smart-agent/controller/reviewer.js.map +1 -1
  66. package/dist/smart-agent/controller/usage-logging.d.ts +16 -0
  67. package/dist/smart-agent/controller/usage-logging.d.ts.map +1 -0
  68. package/dist/smart-agent/controller/usage-logging.js +39 -0
  69. package/dist/smart-agent/controller/usage-logging.js.map +1 -0
  70. package/dist/smart-agent/http/adapter-route-handler.d.ts +13 -0
  71. package/dist/smart-agent/http/adapter-route-handler.d.ts.map +1 -0
  72. package/dist/smart-agent/http/adapter-route-handler.js +76 -0
  73. package/dist/smart-agent/http/adapter-route-handler.js.map +1 -0
  74. package/dist/smart-agent/http/chat-route-handler.d.ts +15 -0
  75. package/dist/smart-agent/http/chat-route-handler.d.ts.map +1 -0
  76. package/dist/smart-agent/http/chat-route-handler.js +327 -0
  77. package/dist/smart-agent/http/chat-route-handler.js.map +1 -0
  78. package/dist/smart-agent/http/config-route-handler.d.ts +21 -0
  79. package/dist/smart-agent/http/config-route-handler.d.ts.map +1 -0
  80. package/dist/smart-agent/http/config-route-handler.js +149 -0
  81. package/dist/smart-agent/http/config-route-handler.js.map +1 -0
  82. package/dist/smart-agent/http/health-route-handler.d.ts +12 -0
  83. package/dist/smart-agent/http/health-route-handler.d.ts.map +1 -0
  84. package/dist/smart-agent/http/health-route-handler.js +19 -0
  85. package/dist/smart-agent/http/health-route-handler.js.map +1 -0
  86. package/dist/smart-agent/http/models-route-handler.d.ts +17 -0
  87. package/dist/smart-agent/http/models-route-handler.d.ts.map +1 -0
  88. package/dist/smart-agent/http/models-route-handler.js +65 -0
  89. package/dist/smart-agent/http/models-route-handler.js.map +1 -0
  90. package/dist/smart-agent/http/response-helpers.d.ts +31 -0
  91. package/dist/smart-agent/http/response-helpers.d.ts.map +1 -0
  92. package/dist/smart-agent/http/response-helpers.js +59 -0
  93. package/dist/smart-agent/http/response-helpers.js.map +1 -0
  94. package/dist/smart-agent/http/route-table.d.ts +44 -0
  95. package/dist/smart-agent/http/route-table.d.ts.map +1 -0
  96. package/dist/smart-agent/http/route-table.js +35 -0
  97. package/dist/smart-agent/http/route-table.js.map +1 -0
  98. package/dist/smart-agent/http/session-cookie.d.ts +10 -0
  99. package/dist/smart-agent/http/session-cookie.d.ts.map +1 -0
  100. package/dist/smart-agent/http/session-cookie.js +16 -0
  101. package/dist/smart-agent/http/session-cookie.js.map +1 -0
  102. package/dist/smart-agent/http/sessions-route-handler.d.ts +8 -0
  103. package/dist/smart-agent/http/sessions-route-handler.d.ts.map +1 -0
  104. package/dist/smart-agent/http/sessions-route-handler.js +54 -0
  105. package/dist/smart-agent/http/sessions-route-handler.js.map +1 -0
  106. package/dist/smart-agent/http/usage-route-handler.d.ts +12 -0
  107. package/dist/smart-agent/http/usage-route-handler.d.ts.map +1 -0
  108. package/dist/smart-agent/http/usage-route-handler.js +28 -0
  109. package/dist/smart-agent/http/usage-route-handler.js.map +1 -0
  110. package/dist/smart-agent/knowledge/make-knowledge-backend.d.ts +13 -0
  111. package/dist/smart-agent/knowledge/make-knowledge-backend.d.ts.map +1 -0
  112. package/dist/smart-agent/knowledge/make-knowledge-backend.js +18 -0
  113. package/dist/smart-agent/knowledge/make-knowledge-backend.js.map +1 -0
  114. package/dist/smart-agent/llm/role-llm-resolver.d.ts +30 -0
  115. package/dist/smart-agent/llm/role-llm-resolver.d.ts.map +1 -0
  116. package/dist/smart-agent/llm/role-llm-resolver.js +44 -0
  117. package/dist/smart-agent/llm/role-llm-resolver.js.map +1 -0
  118. package/dist/smart-agent/llm-config-map.d.ts +38 -0
  119. package/dist/smart-agent/llm-config-map.d.ts.map +1 -0
  120. package/dist/smart-agent/llm-config-map.js +75 -0
  121. package/dist/smart-agent/llm-config-map.js.map +1 -0
  122. package/dist/smart-agent/mcp-readiness-monitor.d.ts +38 -0
  123. package/dist/smart-agent/mcp-readiness-monitor.d.ts.map +1 -0
  124. package/dist/smart-agent/mcp-readiness-monitor.js +81 -0
  125. package/dist/smart-agent/mcp-readiness-monitor.js.map +1 -0
  126. package/dist/smart-agent/mcp-readiness-registry.d.ts +37 -0
  127. package/dist/smart-agent/mcp-readiness-registry.d.ts.map +1 -0
  128. package/dist/smart-agent/mcp-readiness-registry.js +55 -0
  129. package/dist/smart-agent/mcp-readiness-registry.js.map +1 -0
  130. package/dist/smart-agent/resolve-config-sections.d.ts +15 -0
  131. package/dist/smart-agent/resolve-config-sections.d.ts.map +1 -0
  132. package/dist/smart-agent/resolve-config-sections.js +212 -0
  133. package/dist/smart-agent/resolve-config-sections.js.map +1 -0
  134. package/dist/smart-agent/session-lifecycle/index.d.ts +117 -0
  135. package/dist/smart-agent/session-lifecycle/index.d.ts.map +1 -0
  136. package/dist/smart-agent/session-lifecycle/index.js +152 -0
  137. package/dist/smart-agent/session-lifecycle/index.js.map +1 -0
  138. package/dist/smart-agent/skill-plugins-config.d.ts +9 -1
  139. package/dist/smart-agent/skill-plugins-config.d.ts.map +1 -1
  140. package/dist/smart-agent/skill-plugins-config.js +27 -1
  141. package/dist/smart-agent/skill-plugins-config.js.map +1 -1
  142. package/dist/smart-agent/skill-plugins-host-factory.d.ts +14 -2
  143. package/dist/smart-agent/skill-plugins-host-factory.d.ts.map +1 -1
  144. package/dist/smart-agent/skill-plugins-host-factory.js +16 -4
  145. package/dist/smart-agent/skill-plugins-host-factory.js.map +1 -1
  146. package/dist/smart-agent/smart-server.d.ts +151 -222
  147. package/dist/smart-agent/smart-server.d.ts.map +1 -1
  148. package/dist/smart-agent/smart-server.js +527 -1384
  149. package/dist/smart-agent/smart-server.js.map +1 -1
  150. package/dist/smart-agent/stepper-config.d.ts +138 -0
  151. package/dist/smart-agent/stepper-config.d.ts.map +1 -0
  152. package/dist/smart-agent/stepper-config.js +216 -0
  153. package/dist/smart-agent/stepper-config.js.map +1 -0
  154. package/dist/smart-agent/tools-rag-handle.d.ts +10 -0
  155. package/dist/smart-agent/tools-rag-handle.d.ts.map +1 -0
  156. package/dist/smart-agent/tools-rag-handle.js +76 -0
  157. package/dist/smart-agent/tools-rag-handle.js.map +1 -0
  158. package/dist/smart-agent/workers/worker-registry.d.ts +159 -0
  159. package/dist/smart-agent/workers/worker-registry.d.ts.map +1 -0
  160. package/dist/smart-agent/workers/worker-registry.js +203 -0
  161. package/dist/smart-agent/workers/worker-registry.js.map +1 -0
  162. package/dist/smart-agent/yaml-loader.d.ts +7 -0
  163. package/dist/smart-agent/yaml-loader.d.ts.map +1 -0
  164. package/dist/smart-agent/yaml-loader.js +146 -0
  165. package/dist/smart-agent/yaml-loader.js.map +1 -0
  166. package/package.json +7 -7
@@ -0,0 +1,57 @@
1
+ import type { IMcpClient, ISmartAgent } from '@mcp-abap-adt/llm-agent';
2
+ import type { PlannerKind } from '../smart-agent/controller/types.js';
3
+ import type { BuildAgentDeps, SmartServerConfig } from '../smart-agent/smart-server.js';
4
+ export interface BuilderLlmInput {
5
+ provider: 'sap-ai-sdk' | 'openai' | 'anthropic' | 'deepseek' | 'ollama';
6
+ model?: string;
7
+ apiKey?: string;
8
+ url?: string;
9
+ temperature?: number;
10
+ maxTokens?: number;
11
+ }
12
+ export interface BuilderSkillSourceInput {
13
+ github: string;
14
+ enabled: readonly string[];
15
+ collection?: string;
16
+ ref?: string;
17
+ token?: string;
18
+ }
19
+ export interface BuilderEmbedderInput {
20
+ provider: string;
21
+ model?: string;
22
+ scenario?: string;
23
+ resourceGroup?: string;
24
+ }
25
+ type Role = 'evaluator' | 'planner' | 'executor';
26
+ export declare class ControllerSkillPipelineBuilder {
27
+ private _llm?;
28
+ private _roleLlm;
29
+ private _mcp;
30
+ private _mcpClients?;
31
+ private _skill?;
32
+ private _embedder?;
33
+ private _budgets;
34
+ private _targetState;
35
+ private _plannerKind;
36
+ withLlm(cfg: BuilderLlmInput): this;
37
+ withRoleLlm(role: Role, cfg: BuilderLlmInput): this;
38
+ withMcp(cfg: {
39
+ url: string;
40
+ headers?: Record<string, string>;
41
+ }): this;
42
+ withMcpClients(clients: IMcpClient[]): this;
43
+ withSkillSource(cfg: BuilderSkillSourceInput): this;
44
+ withEmbedder(cfg: BuilderEmbedderInput): this;
45
+ withBudgets(b: Record<string, unknown>): this;
46
+ withTargetState(t: Record<string, unknown>): this;
47
+ withPlanner(kind: PlannerKind): this;
48
+ toConfig(opts?: {
49
+ skipProviderRuntimeChecks?: boolean;
50
+ }): SmartServerConfig;
51
+ build(deps?: BuildAgentDeps): Promise<{
52
+ agent: ISmartAgent;
53
+ close: () => Promise<void>;
54
+ }>;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=controller-skill-pipeline-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-skill-pipeline-builder.d.ts","sourceRoot":"","sources":["../../src/builders/controller-skill-pipeline-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAGlB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,KAAK,IAAI,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAmCjD,qBAAa,8BAA8B;IACzC,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,MAAM,CAAC,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAInC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI;IAInD,OAAO,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAQrE,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAI3C,eAAe,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAInD,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI;IAI7C,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7C,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjD,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAKpC,QAAQ,CACN,IAAI,GAAE;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAO,GACjD,iBAAiB;IAyFd,KAAK,CACT,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAoB/D"}
@@ -0,0 +1,175 @@
1
+ import { resolveSmartServerConfig } from '../smart-agent/config.js';
2
+ import { buildAgent } from '../smart-agent/smart-server.js';
3
+ const KEYLESS = new Set(['sap-ai-sdk', 'ollama']);
4
+ const ENV_KEY = {
5
+ openai: 'OPENAI_API_KEY',
6
+ anthropic: 'ANTHROPIC_API_KEY',
7
+ deepseek: 'DEEPSEEK_API_KEY',
8
+ };
9
+ function toLlmConfig(input, opts = {}) {
10
+ let apiKey = input.apiKey ?? '';
11
+ if (!KEYLESS.has(input.provider) && apiKey === '') {
12
+ apiKey = process.env[ENV_KEY[input.provider] ?? ''] ?? '';
13
+ if (apiKey === '' && !opts.skipRuntime) {
14
+ throw new Error(`ControllerSkillPipelineBuilder: provider '${input.provider}' needs an apiKey — ` +
15
+ `pass it to .withLlm()/.withRoleLlm() or set ${ENV_KEY[input.provider]}`);
16
+ }
17
+ }
18
+ return {
19
+ provider: input.provider,
20
+ apiKey,
21
+ ...(input.model !== undefined ? { model: input.model } : {}),
22
+ ...(input.url !== undefined ? { url: input.url } : {}),
23
+ ...(input.temperature !== undefined
24
+ ? { temperature: input.temperature }
25
+ : {}),
26
+ ...(input.maxTokens !== undefined ? { maxTokens: input.maxTokens } : {}),
27
+ };
28
+ }
29
+ export class ControllerSkillPipelineBuilder {
30
+ _llm;
31
+ _roleLlm = {};
32
+ _mcp = [];
33
+ _mcpClients;
34
+ _skill;
35
+ _embedder;
36
+ _budgets = {};
37
+ _targetState = {};
38
+ _plannerKind = 'smart-executor';
39
+ withLlm(cfg) {
40
+ this._llm = cfg;
41
+ return this;
42
+ }
43
+ withRoleLlm(role, cfg) {
44
+ this._roleLlm[role] = cfg;
45
+ return this;
46
+ }
47
+ withMcp(cfg) {
48
+ this._mcp.push({
49
+ type: 'http',
50
+ url: cfg.url,
51
+ ...(cfg.headers ? { headers: cfg.headers } : {}),
52
+ });
53
+ return this;
54
+ }
55
+ withMcpClients(clients) {
56
+ this._mcpClients = clients;
57
+ return this;
58
+ }
59
+ withSkillSource(cfg) {
60
+ this._skill = cfg;
61
+ return this;
62
+ }
63
+ withEmbedder(cfg) {
64
+ this._embedder = cfg;
65
+ return this;
66
+ }
67
+ withBudgets(b) {
68
+ this._budgets = { ...this._budgets, ...b };
69
+ return this;
70
+ }
71
+ withTargetState(t) {
72
+ this._targetState = { ...this._targetState, ...t };
73
+ return this;
74
+ }
75
+ withPlanner(kind) {
76
+ this._plannerKind = kind;
77
+ return this;
78
+ }
79
+ toConfig(opts = {}) {
80
+ if (!this._llm && Object.keys(this._roleLlm).length === 0) {
81
+ throw new Error('ControllerSkillPipelineBuilder: call .withLlm() (or .withRoleLlm() for all roles) before building');
82
+ }
83
+ if (!this._skill) {
84
+ throw new Error('ControllerSkillPipelineBuilder: call .withSkillSource() before building');
85
+ }
86
+ if (!this._embedder) {
87
+ throw new Error('ControllerSkillPipelineBuilder: call .withEmbedder() before building (skills need an embedder)');
88
+ }
89
+ const skipRuntime = opts.skipProviderRuntimeChecks;
90
+ const base = this._llm
91
+ ? toLlmConfig(this._llm, { skipRuntime })
92
+ : undefined;
93
+ const roleCfg = (r) => {
94
+ const ovr = this._roleLlm[r];
95
+ if (ovr)
96
+ return toLlmConfig(ovr, { skipRuntime });
97
+ if (base)
98
+ return base;
99
+ throw new Error(`ControllerSkillPipelineBuilder: no LLM for role '${r}' (set .withLlm() or .withRoleLlm('${r}', …))`);
100
+ };
101
+ const collection = this._skill.collection ?? 'sap';
102
+ return {
103
+ llm: { main: base ?? roleCfg('executor') },
104
+ pipeline: {
105
+ name: this._plannerKind === 'weak-executor'
106
+ ? 'controller-weak'
107
+ : 'controller',
108
+ config: {
109
+ subagents: {
110
+ evaluator: roleCfg('evaluator'),
111
+ planner: roleCfg('planner'),
112
+ executor: roleCfg('executor'),
113
+ },
114
+ ...(Object.keys(this._targetState).length
115
+ ? { targetState: this._targetState }
116
+ : {}),
117
+ ...(Object.keys(this._budgets).length
118
+ ? { budgets: this._budgets }
119
+ : {}),
120
+ },
121
+ },
122
+ rag: {
123
+ type: 'in-memory',
124
+ embedder: this._embedder.provider,
125
+ ...(this._embedder.model ? { model: this._embedder.model } : {}),
126
+ ...(this._embedder.scenario
127
+ ? { scenario: this._embedder.scenario }
128
+ : {}),
129
+ ...(this._embedder.resourceGroup
130
+ ? { resourceGroup: this._embedder.resourceGroup }
131
+ : {}),
132
+ },
133
+ ...(this._mcp.length ? { mcp: this._mcp } : {}),
134
+ skillPlugins: {
135
+ store: { type: 'in-memory' },
136
+ // Intentionally NO `embedder` here: there is a single fluent embedder, and
137
+ // omitting `skillPlugins.embedder` makes SmartServer REUSE the already-
138
+ // resolved agent-RAG embedder (built from `rag` above with the full
139
+ // scenario/resourceGroup). Setting `skillPlugins.embedder` would force a
140
+ // SEPARATE skill-host embedder built from provider/model ONLY — dropping
141
+ // scenario/resourceGroup and causing a deployment mismatch (review P1).
142
+ controllerSkillGroup: collection,
143
+ sources: [
144
+ {
145
+ id: 'skills',
146
+ github: this._skill.github,
147
+ enabled: this._skill.enabled,
148
+ ...(this._skill.ref ? { ref: this._skill.ref } : {}),
149
+ ...(this._skill.token ? { token: this._skill.token } : {}),
150
+ strategy: 'single-collection',
151
+ strategyConfig: { collection },
152
+ },
153
+ ],
154
+ },
155
+ // RAW yaml-shaped config (carries skillPlugins / pipeline.config keys that aren't
156
+ // all on the typed SmartServerConfig surface); resolveSmartServerConfig in build()
157
+ // validates + fills defaults. Shape is covered by the translation unit tests.
158
+ };
159
+ }
160
+ async build(deps) {
161
+ // When the consumer injects BOTH the LLM factory and the embedder, the real
162
+ // provider/credentials/model are never used — skip provider-runtime config
163
+ // validation (structural checks still run).
164
+ const skipProviderRuntimeChecks = !!(deps?.makeLlm && deps?.embedder);
165
+ const normalized = resolveSmartServerConfig({}, this.toConfig({ skipProviderRuntimeChecks }), process.env, { skipProviderRuntimeChecks });
166
+ const mergedDeps = this._mcpClients || deps
167
+ ? {
168
+ ...(this._mcpClients ? { mcpClients: this._mcpClients } : {}),
169
+ ...deps,
170
+ }
171
+ : undefined;
172
+ return buildAgent(normalized, mergedDeps);
173
+ }
174
+ }
175
+ //# sourceMappingURL=controller-skill-pipeline-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-skill-pipeline-builder.js","sourceRoot":"","sources":["../../src/builders/controller-skill-pipeline-builder.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "20.0.0";
1
+ export declare const PACKAGE_VERSION = "20.4.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by scripts/generate-version.js — do not edit
2
- export const PACKAGE_VERSION = '20.0.0';
2
+ export const PACKAGE_VERSION = '20.4.0';
3
3
  //# sourceMappingURL=version.js.map
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { type BuilderEmbedderInput, type BuilderLlmInput, type BuilderSkillSourceInput, ControllerSkillPipelineBuilder, } from './builders/controller-skill-pipeline-builder.js';
1
2
  export * from './factories/index.js';
2
3
  export * from './pipelines/server-context.js';
3
4
  export * from './smart-agent/build-dag-coordinator-deps.js';
@@ -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,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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,8BAA8B,GAC/B,MAAM,iDAAiD,CAAC;AACzD,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
@@ -1,3 +1,4 @@
1
+ export { ControllerSkillPipelineBuilder, } from './builders/controller-skill-pipeline-builder.js';
1
2
  export * from './factories/index.js';
2
3
  export * from './pipelines/server-context.js';
3
4
  export * from './smart-agent/build-dag-coordinator-deps.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,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,8BAA8B,GAC/B,MAAM,iDAAiD,CAAC;AACzD,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,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C,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,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAExC,IAAI,SAAe,EACnB,WAAW,GAAE,WAA8B;IAM7C,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAsDrC,KAAK,CACT,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,gCAAgC,GACpC,OAAO,CAAC,iBAAiB,CAAC;CA2E9B"}
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,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C,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,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAExC,IAAI,SAAe,EACnB,WAAW,GAAE,WAA8B;IAM7C,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB;IAsDrC,KAAK,CACT,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,gCAAgC,GACpC,OAAO,CAAC,iBAAiB,CAAC;CAgG9B"}
@@ -66,7 +66,11 @@ export class ControllerPipelinePlugin {
66
66
  }
67
67
  async build(cfg, ctx) {
68
68
  const mcpClients = ctx.mcpClients ?? [];
69
- const mcpBridge = buildMcpBridge(mcpClients);
69
+ // Honor the consumer-injected MCP failure classifier on the `pipeline: controller`
70
+ // path (ctx carries it from SmartServer/builder DI). Without this the bridge would
71
+ // silently fall back to DefaultMcpFailureClassifier and a custom policy (e.g. mapping
72
+ // an otherwise-tool-level code to 'unavailable') would be lost for the controller.
73
+ const mcpBridge = buildMcpBridge(mcpClients, ctx.mcpFailureClassifier);
70
74
  // INTERNAL tools reach the executor/planner via SEMANTIC selection over the
71
75
  // vectorized MCP catalog (toolsRag) — relevant top-K per query, not a full
72
76
  // dump. The server vectorizes every MCP `tool:<name>` into toolsRag at
@@ -97,16 +101,28 @@ export class ControllerPipelinePlugin {
97
101
  ? { k, threshold: ctx.skillRecall.threshold }
98
102
  : { k };
99
103
  const hits = await skillRagHandle.query(goal, queryOpts, options);
100
- if (hits.length === 0)
104
+ if (hits.length === 0) {
105
+ // Make skill engagement verifiable: an empty recall means the planner
106
+ // prompt is byte-identical to the agnostic path (no skills injected).
107
+ if (process.env.DEBUG_CONTROLLER)
108
+ console.error(`[controller] skills-recall group=${group} hits=0 injected=0 chars=0 (empty — no skills in plan)`);
101
109
  return '';
110
+ }
102
111
  let block = 'Relevant skills:\n';
112
+ let injected = 0;
103
113
  for (const h of hits) {
104
114
  const next = `${block}- ${h.record.content}\n`;
105
115
  if (next.length > maxInjectChars)
106
116
  break;
107
117
  block = next;
118
+ injected++;
108
119
  }
109
- return block.trimEnd();
120
+ const out = block.trimEnd();
121
+ // The recall block is built in-memory and never persisted, so without
122
+ // this line there is no way to confirm skills actually reached the plan.
123
+ if (process.env.DEBUG_CONTROLLER)
124
+ console.error(`[controller] skills-recall group=${group} hits=${hits.length} injected=${injected} chars=${out.length}`);
125
+ return out;
110
126
  }
111
127
  : undefined;
112
128
  // The factory resolves the three role LLMs via makeRoleLlm, wraps them as
@@ -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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"}
@@ -0,0 +1,68 @@
1
+ import type { IFinalizer, ILlm, ISubAgentContextBuilder, IToolSelectionStrategy } from '@mcp-abap-adt/llm-agent';
2
+ import { AutoActivation, ExplicitActivation, HybridDispatch, OneShotPlanning, ReplanOnErrorPlanning, SelfDispatch, SkillStepsPlanning, SubAgentDispatch } from '@mcp-abap-adt/llm-agent-libs';
3
+ import { type NormalizedLlmMap } from '../smart-agent/llm-config-map.js';
4
+ import type { SmartServerLlmConfig } from '../smart-agent/smart-server.js';
5
+ export interface YamlCoordinator {
6
+ planning?: 'one-shot' | 'replan-on-error' | 'skill-steps';
7
+ dispatch?: 'subagent' | 'self' | 'hybrid';
8
+ activation?: 'auto' | 'explicit';
9
+ plannerLlm?: 'main' | 'planner' | 'helper';
10
+ maxSteps?: number;
11
+ maxRetriesPerStep?: number;
12
+ failPolicy?: 'abort' | 'continue';
13
+ maxLayer?: number;
14
+ planner?: {
15
+ type?: string;
16
+ plannerLlm?: 'main' | 'planner' | 'helper';
17
+ } | Record<string, unknown>;
18
+ interpreter?: {
19
+ type?: string;
20
+ } | Record<string, unknown>;
21
+ reviewer?: {
22
+ type?: string;
23
+ reviewerLlm?: string;
24
+ plannerLlm?: 'main' | 'planner' | 'helper';
25
+ };
26
+ finalizer?: {
27
+ type?: 'passthrough' | 'llm' | 'template';
28
+ finalizerLlm?: string;
29
+ systemPrompt?: string;
30
+ };
31
+ errorStrategy?: {
32
+ type?: string;
33
+ maxReplans?: number;
34
+ };
35
+ stateOracle?: string;
36
+ maxRoundTrips?: number;
37
+ }
38
+ export declare function resolveCoordinatorPlanning(name: string, plannerLlm: ILlm): OneShotPlanning | ReplanOnErrorPlanning | SkillStepsPlanning;
39
+ /**
40
+ * Default coordinator dispatch kind. Omitted → 'hybrid' for ALL planning kinds:
41
+ * agentless steps — the synthesized answer-directly step (#155) and skill steps
42
+ * without an explicit `agent:` — need a self-LLM fallback. Pin 'subagent'
43
+ * explicitly for strict subagent-only routing.
44
+ */
45
+ export declare function resolveCoordinatorDispatchKind(explicit?: 'subagent' | 'self' | 'hybrid'): 'subagent' | 'self' | 'hybrid';
46
+ export declare function resolveCoordinatorDispatch(name: string, fallbackLlm?: ILlm, contextBuilder?: ISubAgentContextBuilder): SubAgentDispatch | SelfDispatch | HybridDispatch;
47
+ export declare function resolveCoordinatorActivation(name: string): AutoActivation | ExplicitActivation;
48
+ export declare function resolveToolSelectionStrategy(name: string, params?: {
49
+ minScore?: number;
50
+ }): IToolSelectionStrategy;
51
+ export type FinalizerYaml = {
52
+ type?: 'passthrough' | 'llm' | 'template';
53
+ finalizerLlm?: string;
54
+ systemPrompt?: string;
55
+ };
56
+ /**
57
+ * Build the IFinalizer impl from `coordinator.finalizer:` YAML.
58
+ *
59
+ * Lookup chain for `type: llm`:
60
+ * resolveLlmConfig(llmMap, cfg.finalizerLlm, pipelineFallback)
61
+ * → top-level llm.<name> → llm.main → pipelineFallback (pipeline.llm.main)
62
+ * → ConfigError if all three are missing.
63
+ *
64
+ * Absent block / `type: passthrough` → PassthroughFinalizer.
65
+ * `type: template` → TemplateFinalizer.
66
+ */
67
+ export declare function buildFinalizer(cfg: FinalizerYaml | undefined, llmMap: NormalizedLlmMap | undefined, pipelineFallback: SmartServerLlmConfig | undefined, makeLlm: (config: SmartServerLlmConfig) => Promise<ILlm>): Promise<IFinalizer>;
68
+ //# sourceMappingURL=coordinator-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator-resolvers.d.ts","sourceRoot":"","sources":["../../src/pipelines/coordinator-resolvers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { AutoActivation, ExplicitActivation, HybridDispatch, LlmFinalizer, OneShotPlanning, PassthroughFinalizer, ReplanOnErrorPlanning, ScoreThresholdToolSelection, SelfDispatch, SkillStepsPlanning, SubAgentDispatch, TemplateFinalizer, TopKToolSelection, } from '@mcp-abap-adt/llm-agent-libs';
2
+ import { resolveLlmConfig, } from '../smart-agent/llm-config-map.js';
3
+ export function resolveCoordinatorPlanning(name, plannerLlm) {
4
+ switch (name) {
5
+ case 'one-shot':
6
+ return new OneShotPlanning(plannerLlm);
7
+ case 'replan-on-error':
8
+ return new ReplanOnErrorPlanning(plannerLlm);
9
+ case 'skill-steps':
10
+ // SkillStepsPlanning reads `ctx.activeSkillMeta` (populated by
11
+ // CoordinatorHandler from `ctx.selectedSkills`). No planner LLM
12
+ // needed — the plan comes directly from the skill's `steps:` block.
13
+ return new SkillStepsPlanning();
14
+ default:
15
+ throw new Error(`Unknown coordinator.planning strategy: '${name}'. Allowed: one-shot, replan-on-error, skill-steps.`);
16
+ }
17
+ }
18
+ /**
19
+ * Default coordinator dispatch kind. Omitted → 'hybrid' for ALL planning kinds:
20
+ * agentless steps — the synthesized answer-directly step (#155) and skill steps
21
+ * without an explicit `agent:` — need a self-LLM fallback. Pin 'subagent'
22
+ * explicitly for strict subagent-only routing.
23
+ */
24
+ export function resolveCoordinatorDispatchKind(explicit) {
25
+ return explicit ?? 'hybrid';
26
+ }
27
+ export function resolveCoordinatorDispatch(name, fallbackLlm, contextBuilder) {
28
+ switch (name) {
29
+ case 'subagent':
30
+ return new SubAgentDispatch(contextBuilder);
31
+ case 'self':
32
+ if (!fallbackLlm) {
33
+ throw new Error('coordinator.dispatch=self requires a planner or main LLM');
34
+ }
35
+ return new SelfDispatch(fallbackLlm);
36
+ case 'hybrid':
37
+ if (!fallbackLlm) {
38
+ throw new Error('coordinator.dispatch=hybrid requires a planner or main LLM');
39
+ }
40
+ return new HybridDispatch(new SubAgentDispatch(contextBuilder), new SelfDispatch(fallbackLlm));
41
+ default:
42
+ throw new Error(`Unknown coordinator.dispatch strategy: '${name}'. Allowed: subagent, self, hybrid.`);
43
+ }
44
+ }
45
+ export function resolveCoordinatorActivation(name) {
46
+ switch (name) {
47
+ case 'auto':
48
+ return new AutoActivation();
49
+ case 'explicit':
50
+ return new ExplicitActivation();
51
+ default:
52
+ throw new Error(`Unknown coordinator.activation strategy: '${name}'. Allowed: auto, explicit.`);
53
+ }
54
+ }
55
+ export function resolveToolSelectionStrategy(name, params) {
56
+ switch (name) {
57
+ case 'top-k':
58
+ return new TopKToolSelection();
59
+ case 'threshold': {
60
+ const minScore = params?.minScore;
61
+ if (typeof minScore !== 'number') {
62
+ throw new Error("agent.toolSelection.strategy 'threshold' requires a numeric 'minScore'");
63
+ }
64
+ return new ScoreThresholdToolSelection(minScore);
65
+ }
66
+ default:
67
+ throw new Error(`Unknown agent.toolSelection.strategy '${name}'. Allowed: top-k, threshold.`);
68
+ }
69
+ }
70
+ /**
71
+ * Build the IFinalizer impl from `coordinator.finalizer:` YAML.
72
+ *
73
+ * Lookup chain for `type: llm`:
74
+ * resolveLlmConfig(llmMap, cfg.finalizerLlm, pipelineFallback)
75
+ * → top-level llm.<name> → llm.main → pipelineFallback (pipeline.llm.main)
76
+ * → ConfigError if all three are missing.
77
+ *
78
+ * Absent block / `type: passthrough` → PassthroughFinalizer.
79
+ * `type: template` → TemplateFinalizer.
80
+ */
81
+ export async function buildFinalizer(cfg, llmMap, pipelineFallback, makeLlm) {
82
+ const kind = cfg?.type ?? 'passthrough';
83
+ if (kind === 'passthrough')
84
+ return new PassthroughFinalizer();
85
+ if (kind === 'template')
86
+ return new TemplateFinalizer();
87
+ // kind === 'llm'
88
+ const resolved = resolveLlmConfig(llmMap, cfg?.finalizerLlm, pipelineFallback);
89
+ if (!resolved) {
90
+ throw new Error('coordinator.finalizer (type: llm) requires an LLM config: provide top-level llm.<name>, llm.main, or pipeline.llm.main');
91
+ }
92
+ const llm = await makeLlm(resolved);
93
+ return new LlmFinalizer(llm, {
94
+ systemPrompt: cfg?.systemPrompt,
95
+ });
96
+ }
97
+ //# sourceMappingURL=coordinator-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator-resolvers.js","sourceRoot":"","sources":["../../src/pipelines/coordinator-resolvers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { parseStepperCoordinatorConfig, type StepperCoordinatorConfig, } from '../smart-agent/config.js';
1
+ export { parseStepperCoordinatorConfig, type StepperCoordinatorConfig, } from '../smart-agent/stepper-config.js';
2
2
  import type { CoordinatorHandlerDeps } from '@mcp-abap-adt/llm-agent-libs';
3
3
  import type { IServerPipelineContext } from './server-context.js';
4
4
  export declare function parseLinearConfig(cfg: Record<string, unknown>, ctx: IServerPipelineContext): Promise<CoordinatorHandlerDeps>;
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/pipelines/parsers.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,6BAA6B,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAM3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAiBjC"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/pipelines/parsers.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,6BAA6B,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAM3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAiBjC"}
@@ -1,7 +1,8 @@
1
- // PERMANENT facade: re-exports the pure parsers from config.ts (they STAY there;
2
- // build-stepper-root.ts and others import them from config.ts). Nothing is moved.
3
- export { parseStepperCoordinatorConfig, } from '../smart-agent/config.js';
4
- import { resolveCoordinatorDispatch, resolveCoordinatorDispatchKind, resolveCoordinatorPlanning, } from '../smart-agent/config.js';
1
+ // Facade: re-exports the pure stepper parser from stepper-config.ts, and uses
2
+ // the coordinator resolvers from coordinator-resolvers.ts internally.
3
+ // parseLinearConfig (below) is the only logic that lives here.
4
+ export { parseStepperCoordinatorConfig, } from '../smart-agent/stepper-config.js';
5
+ import { resolveCoordinatorDispatch, resolveCoordinatorDispatchKind, resolveCoordinatorPlanning, } from './coordinator-resolvers.js';
5
6
  export async function parseLinearConfig(cfg, ctx) {
6
7
  const plannerLlm = await ctx.resolveLlm('planner');
7
8
  const planningKind = cfg.planning ??
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/pipelines/parsers.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,OAAO,EACL,6BAA6B,GAE9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAA4B,EAC5B,GAA2B;IAE3B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GACf,GAAG,CAAC,QAA2D;QAChE,UAAU,CAAC;IACb,6EAA6E;IAC7E,sCAAsC;IACtC,MAAM,YAAY,GAAG,8BAA8B,CACjD,GAAG,CAAC,QAAsD,CAC3D,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC;QAC9D,QAAQ,EAAE,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC;QACzE,QAAQ,EAAG,GAAG,CAAC,QAAmB,IAAI,EAAE;QACxC,iBAAiB,EAAG,GAAG,CAAC,iBAA4B,IAAI,CAAC;QACzD,UAAU,EAAG,GAAG,CAAC,UAAmC,IAAI,OAAO;KAChE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/pipelines/parsers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,+DAA+D;AAC/D,OAAO,EACL,6BAA6B,GAE9B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAA4B,EAC5B,GAA2B;IAE3B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GACf,GAAG,CAAC,QAA2D;QAChE,UAAU,CAAC;IACb,6EAA6E;IAC7E,sCAAsC;IACtC,MAAM,YAAY,GAAG,8BAA8B,CACjD,GAAG,CAAC,QAAsD,CAC3D,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC;QAC9D,QAAQ,EAAE,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC;QACzE,QAAQ,EAAG,GAAG,CAAC,QAAmB,IAAI,EAAE;QACxC,iBAAiB,EAAG,GAAG,CAAC,iBAA4B,IAAI,CAAC;QACzD,UAAU,EAAG,GAAG,CAAC,UAAmC,IAAI,OAAO;KAChE,CAAC;AACJ,CAAC"}
@@ -1 +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"}
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,CAoCnB"}
@@ -50,6 +50,11 @@ export function registerSkillSources(builder, ctx) {
50
50
  displayName: 'Relevant Skills',
51
51
  scope: 'global',
52
52
  },
53
+ // The host's RAG is built once at startup; this wiring re-runs on every
54
+ // per-session pipeline build against the SHARED registry, so skip rather
55
+ // than throw when the collection is already present. Narrowly opted in here
56
+ // — ordinary addRagCollection callers keep fail-loud on duplicate names.
57
+ idempotent: true,
53
58
  });
54
59
  }
55
60
  return out;
@@ -1 +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
+ {"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;YACD,wEAAwE;YACxE,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type IKnowledgeRagHandle, type ILlm, type IStepper, type ITaskFormalizer, type LlmCallEntry, TokenLedger } from '@mcp-abap-adt/llm-agent';
2
2
  import { RootFinalizer, Stepper } from '@mcp-abap-adt/llm-agent-libs';
3
- import { type NormalizedLlmMap, type StepperCompositionSpec, type StepperCoordinatorConfig } from './config.js';
3
+ import { type NormalizedLlmMap } from './config.js';
4
4
  import type { SmartServerLlmConfig } from './smart-server.js';
5
+ import { type StepperCompositionSpec, type StepperCoordinatorConfig } from './stepper-config.js';
5
6
  export interface BuildStepperRootInput {
6
7
  /** Raw coordinator config object (e.g. the `coordinator:` YAML block). */
7
8
  coordCfg: Record<string, unknown>;
@@ -65,7 +66,7 @@ export interface BuiltStepperRoot {
65
66
  */
66
67
  taskFormalizer?: ITaskFormalizer;
67
68
  }
68
- export type { CompositionNode, StepperCompositionSpec } from './config.js';
69
+ export type { CompositionNode, StepperCompositionSpec, } from './stepper-config.js';
69
70
  /** Build-time dependencies (everything not part of the composition itself). */
70
71
  export interface BuildFromCompositionDeps {
71
72
  /**