@mcp-abap-adt/llm-agent-server-libs 26.0.0 → 27.0.1

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 (158) hide show
  1. package/dist/builders/controller-skill-pipeline-builder.d.ts +6 -5
  2. package/dist/builders/controller-skill-pipeline-builder.d.ts.map +1 -1
  3. package/dist/builders/controller-skill-pipeline-builder.js +49 -54
  4. package/dist/builders/controller-skill-pipeline-builder.js.map +1 -1
  5. package/dist/factories/controller-factory.d.ts +13 -10
  6. package/dist/factories/controller-factory.d.ts.map +1 -1
  7. package/dist/factories/controller-factory.js +33 -12
  8. package/dist/factories/controller-factory.js.map +1 -1
  9. package/dist/generated/version.d.ts +1 -1
  10. package/dist/generated/version.js +1 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/pipelines/controller-subagents.d.ts +11 -0
  16. package/dist/pipelines/controller-subagents.d.ts.map +1 -0
  17. package/dist/pipelines/controller-subagents.js +77 -0
  18. package/dist/pipelines/controller-subagents.js.map +1 -0
  19. package/dist/pipelines/controller.d.ts +11 -10
  20. package/dist/pipelines/controller.d.ts.map +1 -1
  21. package/dist/pipelines/controller.js +14 -65
  22. package/dist/pipelines/controller.js.map +1 -1
  23. package/dist/pipelines/coordinator-resolvers.d.ts +6 -11
  24. package/dist/pipelines/coordinator-resolvers.d.ts.map +1 -1
  25. package/dist/pipelines/coordinator-resolvers.js +7 -17
  26. package/dist/pipelines/coordinator-resolvers.js.map +1 -1
  27. package/dist/pipelines/dag.d.ts +9 -9
  28. package/dist/pipelines/dag.d.ts.map +1 -1
  29. package/dist/pipelines/dag.js +11 -22
  30. package/dist/pipelines/dag.js.map +1 -1
  31. package/dist/pipelines/flat.d.ts +4 -7
  32. package/dist/pipelines/flat.d.ts.map +1 -1
  33. package/dist/pipelines/flat.js +3 -8
  34. package/dist/pipelines/flat.js.map +1 -1
  35. package/dist/pipelines/linear.d.ts +8 -10
  36. package/dist/pipelines/linear.d.ts.map +1 -1
  37. package/dist/pipelines/linear.js +18 -11
  38. package/dist/pipelines/linear.js.map +1 -1
  39. package/dist/pipelines/parsers.d.ts +0 -3
  40. package/dist/pipelines/parsers.d.ts.map +1 -1
  41. package/dist/pipelines/parsers.js +4 -19
  42. package/dist/pipelines/parsers.js.map +1 -1
  43. package/dist/pipelines/server-context.d.ts +0 -5
  44. package/dist/pipelines/server-context.d.ts.map +1 -1
  45. package/dist/pipelines/server-context.js.map +1 -1
  46. package/dist/pipelines/stepper.d.ts +5 -4
  47. package/dist/pipelines/stepper.d.ts.map +1 -1
  48. package/dist/pipelines/stepper.js +5 -4
  49. package/dist/pipelines/stepper.js.map +1 -1
  50. package/dist/smart-agent/build-dag-coordinator-deps.d.ts +11 -22
  51. package/dist/smart-agent/build-dag-coordinator-deps.d.ts.map +1 -1
  52. package/dist/smart-agent/build-dag-coordinator-deps.js +21 -78
  53. package/dist/smart-agent/build-dag-coordinator-deps.js.map +1 -1
  54. package/dist/smart-agent/build-stepper-root.d.ts.map +1 -1
  55. package/dist/smart-agent/build-stepper-root.js +0 -1
  56. package/dist/smart-agent/build-stepper-root.js.map +1 -1
  57. package/dist/smart-agent/config-validator.d.ts +8 -1
  58. package/dist/smart-agent/config-validator.d.ts.map +1 -1
  59. package/dist/smart-agent/config-validator.js +200 -62
  60. package/dist/smart-agent/config-validator.js.map +1 -1
  61. package/dist/smart-agent/config.d.ts +7 -7
  62. package/dist/smart-agent/config.d.ts.map +1 -1
  63. package/dist/smart-agent/config.js +24 -11
  64. package/dist/smart-agent/config.js.map +1 -1
  65. package/dist/smart-agent/controller/types.d.ts +22 -15
  66. package/dist/smart-agent/controller/types.d.ts.map +1 -1
  67. package/dist/smart-agent/controller/types.js.map +1 -1
  68. package/dist/smart-agent/http/config-route-handler.d.ts +2 -0
  69. package/dist/smart-agent/http/config-route-handler.d.ts.map +1 -1
  70. package/dist/smart-agent/http/config-route-handler.js +20 -0
  71. package/dist/smart-agent/http/config-route-handler.js.map +1 -1
  72. package/dist/smart-agent/llm/role-llm-resolver.d.ts +23 -11
  73. package/dist/smart-agent/llm/role-llm-resolver.d.ts.map +1 -1
  74. package/dist/smart-agent/llm/role-llm-resolver.js +65 -37
  75. package/dist/smart-agent/llm/role-llm-resolver.js.map +1 -1
  76. package/dist/smart-agent/llm-config-map.d.ts +9 -1
  77. package/dist/smart-agent/llm-config-map.d.ts.map +1 -1
  78. package/dist/smart-agent/llm-config-map.js +27 -5
  79. package/dist/smart-agent/llm-config-map.js.map +1 -1
  80. package/dist/smart-agent/pipeline-settings.d.ts +50 -0
  81. package/dist/smart-agent/pipeline-settings.d.ts.map +1 -0
  82. package/dist/smart-agent/pipeline-settings.js +174 -0
  83. package/dist/smart-agent/pipeline-settings.js.map +1 -0
  84. package/dist/smart-agent/pipeline.d.ts +3 -63
  85. package/dist/smart-agent/pipeline.d.ts.map +1 -1
  86. package/dist/smart-agent/pipeline.js +3 -2
  87. package/dist/smart-agent/pipeline.js.map +1 -1
  88. package/dist/smart-agent/rag-config.d.ts +155 -0
  89. package/dist/smart-agent/rag-config.d.ts.map +1 -0
  90. package/dist/smart-agent/rag-config.js +62 -0
  91. package/dist/smart-agent/rag-config.js.map +1 -0
  92. package/dist/smart-agent/resolve-agent-embedder.d.ts +11 -10
  93. package/dist/smart-agent/resolve-agent-embedder.d.ts.map +1 -1
  94. package/dist/smart-agent/resolve-agent-embedder.js +37 -36
  95. package/dist/smart-agent/resolve-agent-embedder.js.map +1 -1
  96. package/dist/smart-agent/resolve-config-sections.d.ts +1 -1
  97. package/dist/smart-agent/resolve-config-sections.d.ts.map +1 -1
  98. package/dist/smart-agent/resolve-config-sections.js +124 -30
  99. package/dist/smart-agent/resolve-config-sections.js.map +1 -1
  100. package/dist/smart-agent/select-pipeline-plugin.d.ts +8 -0
  101. package/dist/smart-agent/select-pipeline-plugin.d.ts.map +1 -0
  102. package/dist/smart-agent/select-pipeline-plugin.js +26 -0
  103. package/dist/smart-agent/select-pipeline-plugin.js.map +1 -0
  104. package/dist/smart-agent/session-lifecycle/index.d.ts +38 -4
  105. package/dist/smart-agent/session-lifecycle/index.d.ts.map +1 -1
  106. package/dist/smart-agent/session-lifecycle/index.js +11 -1
  107. package/dist/smart-agent/session-lifecycle/index.js.map +1 -1
  108. package/dist/smart-agent/session-lifecycle/session-rag-registry.d.ts +39 -0
  109. package/dist/smart-agent/session-lifecycle/session-rag-registry.d.ts.map +1 -0
  110. package/dist/smart-agent/session-lifecycle/session-rag-registry.js +109 -0
  111. package/dist/smart-agent/session-lifecycle/session-rag-registry.js.map +1 -0
  112. package/dist/smart-agent/skill-plugins-config.d.ts +3 -2
  113. package/dist/smart-agent/skill-plugins-config.d.ts.map +1 -1
  114. package/dist/smart-agent/skill-plugins-config.js +12 -1
  115. package/dist/smart-agent/skill-plugins-config.js.map +1 -1
  116. package/dist/smart-agent/skill-plugins-host-factory.d.ts +9 -0
  117. package/dist/smart-agent/skill-plugins-host-factory.d.ts.map +1 -1
  118. package/dist/smart-agent/skill-plugins-host-factory.js +12 -6
  119. package/dist/smart-agent/skill-plugins-host-factory.js.map +1 -1
  120. package/dist/smart-agent/smart-server.d.ts +90 -78
  121. package/dist/smart-agent/smart-server.d.ts.map +1 -1
  122. package/dist/smart-agent/smart-server.js +201 -152
  123. package/dist/smart-agent/smart-server.js.map +1 -1
  124. package/dist/smart-agent/worker-llm.d.ts +18 -0
  125. package/dist/smart-agent/worker-llm.d.ts.map +1 -0
  126. package/dist/smart-agent/worker-llm.js +59 -0
  127. package/dist/smart-agent/worker-llm.js.map +1 -0
  128. package/dist/smart-agent/workers/worker-registry.d.ts +6 -14
  129. package/dist/smart-agent/workers/worker-registry.d.ts.map +1 -1
  130. package/dist/smart-agent/workers/worker-registry.js +2 -11
  131. package/dist/smart-agent/workers/worker-registry.js.map +1 -1
  132. package/dist/smart-agent/yaml-loader.d.ts +1 -1
  133. package/dist/smart-agent/yaml-loader.d.ts.map +1 -1
  134. package/dist/smart-agent/yaml-loader.js +20 -17
  135. package/dist/smart-agent/yaml-loader.js.map +1 -1
  136. package/package.json +8 -7
  137. package/dist/smart-agent/mcp/mcp-content.d.ts +0 -19
  138. package/dist/smart-agent/mcp/mcp-content.d.ts.map +0 -1
  139. package/dist/smart-agent/mcp/mcp-content.js +0 -31
  140. package/dist/smart-agent/mcp/mcp-content.js.map +0 -1
  141. package/dist/smart-agent/mcp/require-mcp-timeout.d.ts +0 -20
  142. package/dist/smart-agent/mcp/require-mcp-timeout.d.ts.map +0 -1
  143. package/dist/smart-agent/mcp/require-mcp-timeout.js +0 -23
  144. package/dist/smart-agent/mcp/require-mcp-timeout.js.map +0 -1
  145. package/dist/smart-agent/mcp-readiness-monitor.d.ts +0 -38
  146. package/dist/smart-agent/mcp-readiness-monitor.d.ts.map +0 -1
  147. package/dist/smart-agent/mcp-readiness-monitor.js +0 -81
  148. package/dist/smart-agent/mcp-readiness-monitor.js.map +0 -1
  149. package/dist/smart-agent/mcp-readiness-registry.d.ts +0 -37
  150. package/dist/smart-agent/mcp-readiness-registry.d.ts.map +0 -1
  151. package/dist/smart-agent/mcp-readiness-registry.js +0 -55
  152. package/dist/smart-agent/mcp-readiness-registry.js.map +0 -1
  153. package/dist/smart-agent/skill-plugins-config.test.d.ts +0 -2
  154. package/dist/smart-agent/skill-plugins-config.test.d.ts.map +0 -1
  155. package/dist/smart-agent/skill-plugins-config.test.js.map +0 -1
  156. package/dist/smart-agent/skill-plugins-host-factory.test.d.ts +0 -2
  157. package/dist/smart-agent/skill-plugins-host-factory.test.d.ts.map +0 -1
  158. package/dist/smart-agent/skill-plugins-host-factory.test.js.map +0 -1
@@ -4,7 +4,8 @@ import type { BuildAgentDeps, SmartServerConfig } from '../smart-agent/smart-ser
4
4
  export interface BuilderLlmInput {
5
5
  provider: 'sap-ai-sdk' | 'openai' | 'anthropic' | 'deepseek' | 'ollama';
6
6
  model?: string;
7
- apiKey?: string;
7
+ /** Names the account the composition root resolves; omit for its default. */
8
+ credentialRef?: string;
8
9
  url?: string;
9
10
  temperature?: number;
10
11
  maxTokens?: number;
@@ -21,6 +22,8 @@ export interface BuilderEmbedderInput {
21
22
  model?: string;
22
23
  scenario?: string;
23
24
  resourceGroup?: string;
25
+ /** Names the embedder's account; omit for the root's default. */
26
+ credentialRef?: string;
24
27
  }
25
28
  type Role = 'evaluator' | 'planner' | 'executor';
26
29
  export declare class ControllerSkillPipelineBuilder {
@@ -45,10 +48,8 @@ export declare class ControllerSkillPipelineBuilder {
45
48
  withBudgets(b: Record<string, unknown>): this;
46
49
  withTargetState(t: Record<string, unknown>): this;
47
50
  withPlanner(kind: PlannerKind): this;
48
- toConfig(opts?: {
49
- skipProviderRuntimeChecks?: boolean;
50
- }): SmartServerConfig;
51
- build(deps?: BuildAgentDeps): Promise<{
51
+ toConfig(): SmartServerConfig;
52
+ build(deps: BuildAgentDeps): Promise<{
52
53
  agent: ISmartAgent;
53
54
  close: () => Promise<void>;
54
55
  }>;
@@ -1 +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"}
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,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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;IACvB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,KAAK,IAAI,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAmBjD,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,IAAI,iBAAiB;IAmGvB,KAAK,CACT,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAgB/D"}
@@ -1,23 +1,13 @@
1
1
  import { resolveSmartServerConfig } from '../smart-agent/config.js';
2
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
- }
3
+ // A builder reads no environment: which key a provider uses is the composition
4
+ // root's business, reached through credentialRef (§4.6.2).
5
+ function toLlmConfig(input) {
18
6
  return {
19
7
  provider: input.provider,
20
- apiKey,
8
+ ...(input.credentialRef !== undefined
9
+ ? { credentialRef: input.credentialRef }
10
+ : {}),
21
11
  ...(input.model !== undefined ? { model: input.model } : {}),
22
12
  ...(input.url !== undefined ? { url: input.url } : {}),
23
13
  ...(input.temperature !== undefined
@@ -76,7 +66,7 @@ export class ControllerSkillPipelineBuilder {
76
66
  this._plannerKind = kind;
77
67
  return this;
78
68
  }
79
- toConfig(opts = {}) {
69
+ toConfig() {
80
70
  if (!this._llm && Object.keys(this._roleLlm).length === 0) {
81
71
  throw new Error('ControllerSkillPipelineBuilder: call .withLlm() (or .withRoleLlm() for all roles) before building');
82
72
  }
@@ -86,31 +76,34 @@ export class ControllerSkillPipelineBuilder {
86
76
  if (!this._embedder) {
87
77
  throw new Error('ControllerSkillPipelineBuilder: call .withEmbedder() before building (skills need an embedder)');
88
78
  }
89
- const skipRuntime = opts.skipProviderRuntimeChecks;
90
- const base = this._llm
91
- ? toLlmConfig(this._llm, { skipRuntime })
92
- : undefined;
93
- const roleCfg = (r) => {
79
+ const base = this._llm ? toLlmConfig(this._llm) : undefined;
80
+ const llm = {};
81
+ const subagent = (r) => {
94
82
  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}', …))`);
83
+ if (!ovr) {
84
+ if (!base) {
85
+ throw new Error(`ControllerSkillPipelineBuilder: no LLM for role '${r}' (set .withLlm() or .withRoleLlm('${r}', …))`);
86
+ }
87
+ return {}; // the role's own name → llm.<role> absent → the main instance
88
+ }
89
+ llm[r] = toLlmConfig(ovr);
90
+ return { llm: r };
100
91
  };
92
+ const subagents = {
93
+ evaluator: subagent('evaluator'),
94
+ planner: subagent('planner'),
95
+ executor: subagent('executor'),
96
+ };
97
+ llm.main = base ?? llm.executor;
101
98
  const collection = this._skill.collection ?? 'sap';
102
99
  return {
103
- llm: { main: base ?? roleCfg('executor') },
100
+ llm,
104
101
  pipeline: {
105
102
  name: this._plannerKind === 'weak-executor'
106
103
  ? 'controller-weak'
107
104
  : 'controller',
108
105
  config: {
109
- subagents: {
110
- evaluator: roleCfg('evaluator'),
111
- planner: roleCfg('planner'),
112
- executor: roleCfg('executor'),
113
- },
106
+ subagents,
114
107
  ...(Object.keys(this._targetState).length
115
108
  ? { targetState: this._targetState }
116
109
  : {}),
@@ -120,15 +113,20 @@ export class ControllerSkillPipelineBuilder {
120
113
  },
121
114
  },
122
115
  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
- : {}),
116
+ store: { type: 'in-memory' },
117
+ embedder: {
118
+ provider: this._embedder.provider,
119
+ ...(this._embedder.model ? { model: this._embedder.model } : {}),
120
+ ...(this._embedder.scenario
121
+ ? { scenario: this._embedder.scenario }
122
+ : {}),
123
+ ...(this._embedder.resourceGroup
124
+ ? { resourceGroup: this._embedder.resourceGroup }
125
+ : {}),
126
+ ...(this._embedder.credentialRef
127
+ ? { credentialRef: this._embedder.credentialRef }
128
+ : {}),
129
+ },
132
130
  },
133
131
  ...(this._mcp.length ? { mcp: this._mcp } : {}),
134
132
  skillPlugins: {
@@ -158,18 +156,15 @@ export class ControllerSkillPipelineBuilder {
158
156
  };
159
157
  }
160
158
  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);
159
+ // With an injected embedder the configured embedder model is never used, so the
160
+ // provider-runtime checks (models required) are skipped; structural ones run.
161
+ // makeLlm is always the caller's now, so this is the old `makeLlm && embedder`.
162
+ const skipProviderRuntimeChecks = deps.embedder !== undefined;
163
+ const normalized = resolveSmartServerConfig({}, this.toConfig(), process.env, { skipProviderRuntimeChecks });
164
+ return buildAgent(normalized, {
165
+ ...(this._mcpClients ? { mcpClients: this._mcpClients } : {}),
166
+ ...deps,
167
+ });
173
168
  }
174
169
  }
175
170
  //# sourceMappingURL=controller-skill-pipeline-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller-skill-pipeline-builder.js","sourceRoot":"","sources":["../../src/builders/controller-skill-pipeline-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAQpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAyB5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClD,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,SAAS,WAAW,CAClB,KAAsB,EACtB,OAAkC,EAAE;IAEpC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,QAAQ,sBAAsB;gBAC/E,+CAA+C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,8BAA8B;IACjC,IAAI,CAAmB;IACvB,QAAQ,GAA2C,EAAE,CAAC;IACtD,IAAI,GAA2B,EAAE,CAAC;IAClC,WAAW,CAAgB;IAC3B,MAAM,CAA2B;IACjC,SAAS,CAAwB;IACjC,QAAQ,GAA4B,EAAE,CAAC;IACvC,YAAY,GAA4B,EAAE,CAAC;IAC3C,YAAY,GAAgB,gBAAgB,CAAC;IAErD,OAAO,CAAC,GAAoB;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAU,EAAE,GAAoB;QAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAsD;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzB,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,cAAc,CAAC,OAAqB;QAClC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,CAAC,GAA4B;QAC1C,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY,CAAC,GAAyB;QACpC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,CAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,CAAC,CAA0B;QACxC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAiB;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CACN,OAAgD,EAAE;QAElD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;YACpB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,CAAC,CAAO,EAAwB,EAAE;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,GAAG;gBAAE,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YAClD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,oDAAoD,CAAC,sCAAsC,CAAC,QAAQ,CACrG,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;QACnD,OAAO;YACL,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YAC1C,QAAQ,EAAE;gBACR,IAAI,EACF,IAAI,CAAC,YAAY,KAAK,eAAe;oBACnC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,YAAY;gBAClB,MAAM,EAAE;oBACN,SAAS,EAAE;wBACT,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;wBAC/B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;wBAC3B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;qBAC9B;oBACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;wBACvC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE;wBACpC,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;wBACnC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;wBAC5B,CAAC,CAAC,EAAE,CAAC;iBACR;aACF;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;gBACjC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;oBACzB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;oBACvC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa;oBAC9B,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;oBACjD,CAAC,CAAC,EAAE,CAAC;aACR;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC5B,2EAA2E;gBAC3E,wEAAwE;gBACxE,oEAAoE;gBACpE,yEAAyE;gBACzE,yEAAyE;gBACzE,wEAAwE;gBACxE,oBAAoB,EAAE,UAAU;gBAChC,OAAO,EAAE;oBACP;wBACE,EAAE,EAAE,QAAQ;wBACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;wBAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;wBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1D,QAAQ,EAAE,mBAAmB;wBAC7B,cAAc,EAAE,EAAE,UAAU,EAAE;qBAC/B;iBACF;aACF;YACD,kFAAkF;YAClF,mFAAmF;YACnF,8EAA8E;SAC/C,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK,CACT,IAAqB;QAErB,4EAA4E;QAC5E,2EAA2E;QAC3E,4CAA4C;QAC5C,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,wBAAwB,CACzC,EAAE,EACF,IAAI,CAAC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAe,EAC1D,OAAO,CAAC,GAAG,EACX,EAAE,yBAAyB,EAAE,CAC9B,CAAC;QACF,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,IAAI,IAAI;YACtB,CAAC,CAAC;gBACE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,IAAI;aACR;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,UAAU,CAAC,UAA+B,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;CACF"}
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,4 +1,4 @@
1
- import type { BuiltCoordinator, CallOptions, IEmbedder, IKnowledgeRagHandle, IPipelineFactory, IRunExecutionControl, IStepExecutionControl, IWaitStrategy, LlmTool, PipelineFactoryDepsBase, ToolLoopContextStrategyFactory } from '@mcp-abap-adt/llm-agent';
1
+ import type { BuiltCoordinator, CallOptions, IEmbedder, IKnowledgeRagHandle, ILlm, IPipelineContext, IPipelineFactory, IRunExecutionControl, IStepExecutionControl, IWaitStrategy, LlmTool, PipelineFactoryDepsBase, ToolLoopContextStrategyFactory } from '@mcp-abap-adt/llm-agent';
2
2
  import type { KnowledgeBackend } from '@mcp-abap-adt/llm-agent-libs';
3
3
  import type { ControllerConfig, PlannerKind } from '../smart-agent/controller/types.js';
4
4
  /**
@@ -61,16 +61,11 @@ export interface ControllerFactoryDeps extends PipelineFactoryDepsBase {
61
61
  *
62
62
  * @example
63
63
  * ```ts
64
- * import { ControllerFactory } from '@mcp-abap-adt/llm-agent-server-libs/controller';
64
+ * import { ControllerFactory, makeControllerRoleLlm } from '@mcp-abap-adt/llm-agent-server-libs/controller';
65
65
  * const { handler } = await new ControllerFactory().build(config, {
66
- * // role is typed as string by the base deps — resolve it explicitly. reviewer/
67
- * // finalizer are only requested when their subagent block is present; map them
68
- * // to config.subagents.reviewer ?? planner (likewise finalizer) for a 5-role config.
69
- * makeRoleLlm: (role) =>
70
- * makeLlm(
71
- * config.subagents[role as keyof typeof config.subagents] ??
72
- * config.subagents.planner,
73
- * ),
66
+ * // named keys resolve strictly, omitted ones by the role's own name; an
67
+ * // absent reviewer/finalizer block is never asked for — it gets the planner's
68
+ * makeRoleLlm: makeControllerRoleLlm(config.subagents, ctx),
74
69
  * callMcp, backend, knowledgeRagFor, embedder, selectTools,
75
70
  * });
76
71
  * const handle = await builder.withStepperCoordinator(handler).build();
@@ -80,4 +75,12 @@ export declare class ControllerFactory implements IPipelineFactory<ControllerCon
80
75
  readonly kind: "controller";
81
76
  build(config: ControllerConfig, deps: ControllerFactoryDeps, plannerKind?: PlannerKind): Promise<BuiltCoordinator>;
82
77
  }
78
+ /**
79
+ * The controller's `makeRoleLlm`: a role whose subagent block NAMES a key
80
+ * resolves it strictly through `ctx.resolveNamedLlm(key)`; a role whose key was
81
+ * omitted asks `ctx.resolveLlm(role)` with its own name (§4.6.7). Never the
82
+ * other way round — `resolveLlm` answers an unknown name with `main`, which
83
+ * would turn a misspelled key into a silent model change.
84
+ */
85
+ export declare function makeControllerRoleLlm(subagents: ControllerConfig['subagents'], ctx: Pick<IPipelineContext, 'resolveLlm' | 'resolveNamedLlm'>): (role: string) => Promise<ILlm>;
83
86
  //# sourceMappingURL=controller-factory.d.ts.map
@@ -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,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C;;;;;;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;IACxE;;;;;;;OAOG;IACH,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;IAChE;;0EAEsE;IACtE,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C;;qDAEiD;IACjD,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C;;mCAE+B;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;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,EAC3B,WAAW,GAAE,WAA8B,GAC1C,OAAO,CAAC,gBAAgB,CAAC;CAsF7B"}
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,IAAI,EACJ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C;;;;;;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;IACxE;;;;;;;OAOG;IACH,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;IAChE;;0EAEsE;IACtE,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C;;qDAEiD;IACjD,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C;;mCAE+B;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;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,EAC3B,WAAW,GAAE,WAA8B,GAC1C,OAAO,CAAC,gBAAgB,CAAC;CAsF7B;AAeD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,CAAC,GAC5D,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAUjC"}
@@ -13,16 +13,11 @@ import { makeSubagentClient } from '../smart-agent/controller/subagent-client.js
13
13
  *
14
14
  * @example
15
15
  * ```ts
16
- * import { ControllerFactory } from '@mcp-abap-adt/llm-agent-server-libs/controller';
16
+ * import { ControllerFactory, makeControllerRoleLlm } from '@mcp-abap-adt/llm-agent-server-libs/controller';
17
17
  * const { handler } = await new ControllerFactory().build(config, {
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.
21
- * makeRoleLlm: (role) =>
22
- * makeLlm(
23
- * config.subagents[role as keyof typeof config.subagents] ??
24
- * config.subagents.planner,
25
- * ),
18
+ * // named keys resolve strictly, omitted ones by the role's own name; an
19
+ * // absent reviewer/finalizer block is never asked for — it gets the planner's
20
+ * makeRoleLlm: makeControllerRoleLlm(config.subagents, ctx),
26
21
  * callMcp, backend, knowledgeRagFor, embedder, selectTools,
27
22
  * });
28
23
  * const handle = await builder.withStepperCoordinator(handler).build();
@@ -60,9 +55,9 @@ export class ControllerFactory {
60
55
  deps.makeRoleLlm('planner'),
61
56
  deps.makeRoleLlm('executor'),
62
57
  ]);
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.
58
+ // An ABSENT reviewer/finalizer block means the planner's instance — obtained
59
+ // through the planner's key, or its default when it named none (§4.6.7) — so
60
+ // the role is not asked for at all. A PRESENT block resolves its own role.
66
61
  const reviewerLlm = config.subagents.reviewer
67
62
  ? await deps.makeRoleLlm('reviewer')
68
63
  : plannerLlm;
@@ -110,4 +105,30 @@ export class ControllerFactory {
110
105
  return { handler };
111
106
  }
112
107
  }
108
+ const CONTROLLER_ROLES = [
109
+ 'evaluator',
110
+ 'planner',
111
+ 'executor',
112
+ 'reviewer',
113
+ 'finalizer',
114
+ ];
115
+ function isControllerRole(role) {
116
+ return CONTROLLER_ROLES.includes(role);
117
+ }
118
+ /**
119
+ * The controller's `makeRoleLlm`: a role whose subagent block NAMES a key
120
+ * resolves it strictly through `ctx.resolveNamedLlm(key)`; a role whose key was
121
+ * omitted asks `ctx.resolveLlm(role)` with its own name (§4.6.7). Never the
122
+ * other way round — `resolveLlm` answers an unknown name with `main`, which
123
+ * would turn a misspelled key into a silent model change.
124
+ */
125
+ export function makeControllerRoleLlm(subagents, ctx) {
126
+ return (role) => {
127
+ if (!isControllerRole(role)) {
128
+ return Promise.reject(new Error(`controller: unknown subagent role '${role}'`));
129
+ }
130
+ const key = subagents[role]?.llm;
131
+ return key !== undefined ? ctx.resolveNamedLlm(key) : ctx.resolveLlm(role);
132
+ };
133
+ }
113
134
  //# sourceMappingURL=controller-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller-factory.js","sourceRoot":"","sources":["../../src/factories/controller-factory.ts"],"names":[],"mappings":"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"}
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 = "26.0.0";
1
+ export declare const PACKAGE_VERSION = "27.0.1";
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 = '26.0.0';
2
+ export const PACKAGE_VERSION = '27.0.1';
3
3
  //# sourceMappingURL=version.js.map
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export * from './smart-agent/jsonl-knowledge-backend.js';
8
8
  export * from './smart-agent/mcp/mcp-clients-with-descriptors.js';
9
9
  export { makePgPool, makePgReadPool } from './smart-agent/pg-pool.js';
10
10
  export * from './smart-agent/pipeline.js';
11
+ export * from './smart-agent/pipeline-settings.js';
12
+ export * from './smart-agent/rag-config.js';
11
13
  export * from './smart-agent/resolve-agent-embedder.js';
12
14
  export * from './smart-agent/session-identity-resolver.js';
13
15
  export * from './smart-agent/session-meta-store.js';
@@ -1 +1 @@
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,cAAc,mDAAmD,CAAC;AAClE,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,cAAc,mDAAmD,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,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
@@ -8,6 +8,8 @@ export * from './smart-agent/jsonl-knowledge-backend.js';
8
8
  export * from './smart-agent/mcp/mcp-clients-with-descriptors.js';
9
9
  export { makePgPool, makePgReadPool } from './smart-agent/pg-pool.js';
10
10
  export * from './smart-agent/pipeline.js';
11
+ export * from './smart-agent/pipeline-settings.js';
12
+ export * from './smart-agent/rag-config.js';
11
13
  export * from './smart-agent/resolve-agent-embedder.js';
12
14
  export * from './smart-agent/session-identity-resolver.js';
13
15
  export * from './smart-agent/session-meta-store.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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,cAAc,mDAAmD,CAAC;AAClE,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,cAAc,mDAAmD,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ControllerConfig } from '../smart-agent/controller/types.js';
2
+ /**
3
+ * Parse `pipeline.config.subagents` for the controller (§4.6.7). Each role is
4
+ * `{}` or `{ llm?: <key>, hint?: <text> }`. evaluator/planner/executor are
5
+ * required; reviewer/finalizer stay absent when their block is absent, which the
6
+ * factory reads as "the planner's instance". Called by the server in `start()`,
7
+ * with the keys of the main file's `llm:` map, so a named key with no entry is a
8
+ * startup error rather than a silent fallback to `main`.
9
+ */
10
+ export declare function parseControllerSubagents(raw: unknown, llmKeys: ReadonlySet<string>): ControllerConfig['subagents'];
11
+ //# sourceMappingURL=controller-subagents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-subagents.d.ts","sourceRoot":"","sources":["../../src/pipelines/controller-subagents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAgE5C;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,gBAAgB,CAAC,WAAW,CAAC,CAgC/B"}
@@ -0,0 +1,77 @@
1
+ import { INLINE_LLM_CONFIG_FIELDS } from '../smart-agent/llm-config-map.js';
2
+ const REQUIRED = ['evaluator', 'planner', 'executor'];
3
+ const OPTIONAL = ['reviewer', 'finalizer'];
4
+ const ROLES = [...REQUIRED, ...OPTIONAL];
5
+ function isPlainObject(v) {
6
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
7
+ }
8
+ function parseOne(role, raw, llmKeys) {
9
+ if (!isPlainObject(raw)) {
10
+ throw new Error(`pipeline 'controller': subagents.${role} must be an object — {} or { llm: <key>, hint: <text> }`);
11
+ }
12
+ const inline = Object.keys(raw).filter((k) => INLINE_LLM_CONFIG_FIELDS.includes(k));
13
+ if (inline.length > 0) {
14
+ throw new Error(`pipeline 'controller': subagents.${role} holds an inline LLM configuration ` +
15
+ `(${inline.join(', ')}); models are configured once, in the top-level llm: map — ` +
16
+ `add an entry there and name it here with \`llm: <key>\``);
17
+ }
18
+ for (const k of Object.keys(raw)) {
19
+ if (k !== 'llm' && k !== 'hint') {
20
+ throw new Error(`pipeline 'controller': subagents.${role}: unknown field '${k}' (allowed: llm, hint)`);
21
+ }
22
+ }
23
+ const out = {};
24
+ if (raw.llm !== undefined) {
25
+ if (typeof raw.llm !== 'string' || raw.llm === '') {
26
+ throw new Error(`pipeline 'controller': subagents.${role}.llm must be a non-empty string naming an llm: entry`);
27
+ }
28
+ if (!llmKeys.has(raw.llm)) {
29
+ throw new Error(`pipeline 'controller': subagents.${role}.llm names '${raw.llm}', which has no entry ` +
30
+ `in the top-level llm: map (entries: ${[...llmKeys].join(', ')})`);
31
+ }
32
+ out.llm = raw.llm;
33
+ }
34
+ if (raw.hint !== undefined) {
35
+ if (typeof raw.hint !== 'string') {
36
+ throw new Error(`pipeline 'controller': subagents.${role}.hint must be a string`);
37
+ }
38
+ out.hint = raw.hint;
39
+ }
40
+ return out;
41
+ }
42
+ /**
43
+ * Parse `pipeline.config.subagents` for the controller (§4.6.7). Each role is
44
+ * `{}` or `{ llm?: <key>, hint?: <text> }`. evaluator/planner/executor are
45
+ * required; reviewer/finalizer stay absent when their block is absent, which the
46
+ * factory reads as "the planner's instance". Called by the server in `start()`,
47
+ * with the keys of the main file's `llm:` map, so a named key with no entry is a
48
+ * startup error rather than a silent fallback to `main`.
49
+ */
50
+ export function parseControllerSubagents(raw, llmKeys) {
51
+ if (!isPlainObject(raw)) {
52
+ throw new Error("pipeline 'controller' requires 'subagents' with evaluator, planner and executor " +
53
+ '(each {} or { llm: <key>, hint: <text> })');
54
+ }
55
+ for (const k of Object.keys(raw)) {
56
+ if (!ROLES.includes(k)) {
57
+ throw new Error(`pipeline 'controller': unknown subagent role '${k}' (roles: ${ROLES.join(', ')})`);
58
+ }
59
+ }
60
+ for (const role of REQUIRED) {
61
+ if (raw[role] === undefined) {
62
+ throw new Error(`pipeline 'controller' requires 'subagents.${role}' ({} or { llm: <key>, hint: <text> })`);
63
+ }
64
+ }
65
+ const subagents = {
66
+ evaluator: parseOne('evaluator', raw.evaluator, llmKeys),
67
+ planner: parseOne('planner', raw.planner, llmKeys),
68
+ executor: parseOne('executor', raw.executor, llmKeys),
69
+ };
70
+ for (const role of OPTIONAL) {
71
+ if (raw[role] !== undefined) {
72
+ subagents[role] = parseOne(role, raw[role], llmKeys);
73
+ }
74
+ }
75
+ return subagents;
76
+ }
77
+ //# sourceMappingURL=controller-subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-subagents.js","sourceRoot":"","sources":["../../src/pipelines/controller-subagents.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAC/D,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,WAAW,CAAU,CAAC;AACpD,MAAM,KAAK,GAAsB,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AAE5D,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CACf,IAAY,EACZ,GAAY,EACZ,OAA4B;IAE5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,yDAAyD,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,qCAAqC;YAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D;YAClF,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,oBAAoB,CAAC,wBAAwB,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,sDAAsD,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,eAAe,GAAG,CAAC,GAAG,wBAAwB;gBACpF,uCAAuC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpE,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,wBAAwB,CACjE,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAY,EACZ,OAA4B;IAE5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,kFAAkF;YAChF,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,iDAAiD,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,wCAAwC,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAkC;QAC/C,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QACxD,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;QAClD,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;KACtD,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,22 +1,23 @@
1
1
  import type { IPipelineInstance, IPipelinePlugin } from '@mcp-abap-adt/llm-agent';
2
2
  import type { ControllerConfig, PlannerKind } from '../smart-agent/controller/types.js';
3
3
  import type { IControllerServerPipelineContext } from './server-context.js';
4
- export { ControllerFactory, type ControllerFactoryDeps, } from '../factories/controller-factory.js';
4
+ export { ControllerFactory, type ControllerFactoryDeps, makeControllerRoleLlm, } from '../factories/controller-factory.js';
5
5
  export { ControllerCoordinatorHandler, type ControllerHandlerDeps, } from '../smart-agent/controller/controller-coordinator-handler.js';
6
6
  export { type ISubagentClient, makeSubagentClient, } from '../smart-agent/controller/subagent-client.js';
7
7
  export type { ControllerConfig, SessionBundle, } from '../smart-agent/controller/types.js';
8
8
  /**
9
- * Built-in `controller` pipeline plugin. Validates the controller config
10
- * dialect (three required subagent roles + defaulted target-state / session
11
- * memory / budgets), wires the {@link ControllerCoordinatorHandler} from the
12
- * server pipeline context, registers it on a fresh agent builder, and returns
13
- * the runnable agent plus a disposal hook.
9
+ * Built-in `controller` pipeline plugin. Constructed with settings the server
10
+ * parsed (`parseControllerSettings`); wires the {@link ControllerCoordinatorHandler}
11
+ * from the server pipeline context, registers it on a fresh agent builder, and
12
+ * returns the runnable agent plus a disposal hook.
14
13
  */
15
- export declare class ControllerPipelinePlugin implements IPipelinePlugin<ControllerConfig> {
14
+ export declare class ControllerPipelinePlugin implements IPipelinePlugin {
16
15
  readonly name: string;
17
16
  private readonly plannerKind;
18
- constructor(name?: string, plannerKind?: PlannerKind);
19
- parseConfig(raw: unknown): ControllerConfig;
20
- build(cfg: ControllerConfig, ctx: IControllerServerPipelineContext): Promise<IPipelineInstance>;
17
+ private readonly settings;
18
+ /** `controller` and `controller-weak` are two registry entries over this class;
19
+ * `settings` come from the server's `parseControllerSettings`. */
20
+ constructor(name: string, plannerKind: PlannerKind, settings: ControllerConfig);
21
+ build(ctx: IControllerServerPipelineContext): Promise<IPipelineInstance>;
21
22
  }
22
23
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AAyBjC,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAG5C,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;IAuErC,KAAK,CACT,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,gCAAgC,GACpC,OAAO,CAAC,iBAAiB,CAAC;CA8M9B"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/pipelines/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AA0BjC,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAM5E,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,qBAAqB,GACtB,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;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C;uEACmE;gBAEjE,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,gBAAgB;IAOtB,KAAK,CACT,GAAG,EAAE,gCAAgC,GACpC,OAAO,CAAC,iBAAiB,CAAC;CA4M9B"}