@mcp-abap-adt/llm-agent 2.3.0 → 2.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 (164) hide show
  1. package/dist/index.d.ts +23 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +22 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/smart-agent/agent.d.ts +24 -1
  6. package/dist/smart-agent/agent.d.ts.map +1 -1
  7. package/dist/smart-agent/agent.js +138 -23
  8. package/dist/smart-agent/agent.js.map +1 -1
  9. package/dist/smart-agent/builder.d.ts +38 -4
  10. package/dist/smart-agent/builder.d.ts.map +1 -1
  11. package/dist/smart-agent/builder.js +113 -14
  12. package/dist/smart-agent/builder.js.map +1 -1
  13. package/dist/smart-agent/cache/index.d.ts +4 -0
  14. package/dist/smart-agent/cache/index.d.ts.map +1 -0
  15. package/dist/smart-agent/cache/index.js +3 -0
  16. package/dist/smart-agent/cache/index.js.map +1 -0
  17. package/dist/smart-agent/cache/noop-tool-cache.d.ts +7 -0
  18. package/dist/smart-agent/cache/noop-tool-cache.d.ts.map +1 -0
  19. package/dist/smart-agent/cache/noop-tool-cache.js +8 -0
  20. package/dist/smart-agent/cache/noop-tool-cache.js.map +1 -0
  21. package/dist/smart-agent/cache/tool-cache.d.ts +14 -0
  22. package/dist/smart-agent/cache/tool-cache.d.ts.map +1 -0
  23. package/dist/smart-agent/cache/tool-cache.js +32 -0
  24. package/dist/smart-agent/cache/tool-cache.js.map +1 -0
  25. package/dist/smart-agent/cache/types.d.ts +7 -0
  26. package/dist/smart-agent/cache/types.d.ts.map +1 -0
  27. package/dist/smart-agent/cache/types.js +2 -0
  28. package/dist/smart-agent/cache/types.js.map +1 -0
  29. package/dist/smart-agent/config/config-watcher.d.ts +53 -0
  30. package/dist/smart-agent/config/config-watcher.d.ts.map +1 -0
  31. package/dist/smart-agent/config/config-watcher.js +105 -0
  32. package/dist/smart-agent/config/config-watcher.js.map +1 -0
  33. package/dist/smart-agent/config/index.d.ts +2 -0
  34. package/dist/smart-agent/config/index.d.ts.map +1 -0
  35. package/dist/smart-agent/config/index.js +2 -0
  36. package/dist/smart-agent/config/index.js.map +1 -0
  37. package/dist/smart-agent/config.d.ts +3 -1
  38. package/dist/smart-agent/config.d.ts.map +1 -1
  39. package/dist/smart-agent/config.js +9 -1
  40. package/dist/smart-agent/config.js.map +1 -1
  41. package/dist/smart-agent/health/health-checker.d.ts +21 -0
  42. package/dist/smart-agent/health/health-checker.d.ts.map +1 -0
  43. package/dist/smart-agent/health/health-checker.js +52 -0
  44. package/dist/smart-agent/health/health-checker.js.map +1 -0
  45. package/dist/smart-agent/health/index.d.ts +3 -0
  46. package/dist/smart-agent/health/index.d.ts.map +1 -0
  47. package/dist/smart-agent/health/index.js +2 -0
  48. package/dist/smart-agent/health/index.js.map +1 -0
  49. package/dist/smart-agent/health/types.d.ts +25 -0
  50. package/dist/smart-agent/health/types.d.ts.map +1 -0
  51. package/dist/smart-agent/health/types.js +2 -0
  52. package/dist/smart-agent/health/types.js.map +1 -0
  53. package/dist/smart-agent/interfaces/index.d.ts +6 -0
  54. package/dist/smart-agent/interfaces/index.d.ts.map +1 -1
  55. package/dist/smart-agent/interfaces/index.js.map +1 -1
  56. package/dist/smart-agent/metrics/in-memory-metrics.d.ts +58 -0
  57. package/dist/smart-agent/metrics/in-memory-metrics.d.ts.map +1 -0
  58. package/dist/smart-agent/metrics/in-memory-metrics.js +78 -0
  59. package/dist/smart-agent/metrics/in-memory-metrics.js.map +1 -0
  60. package/dist/smart-agent/metrics/index.d.ts +4 -0
  61. package/dist/smart-agent/metrics/index.d.ts.map +1 -0
  62. package/dist/smart-agent/metrics/index.js +3 -0
  63. package/dist/smart-agent/metrics/index.js.map +1 -0
  64. package/dist/smart-agent/metrics/noop-metrics.d.ts +17 -0
  65. package/dist/smart-agent/metrics/noop-metrics.d.ts.map +1 -0
  66. package/dist/smart-agent/metrics/noop-metrics.js +22 -0
  67. package/dist/smart-agent/metrics/noop-metrics.js.map +1 -0
  68. package/dist/smart-agent/metrics/types.d.ts +36 -0
  69. package/dist/smart-agent/metrics/types.d.ts.map +1 -0
  70. package/dist/smart-agent/metrics/types.js +9 -0
  71. package/dist/smart-agent/metrics/types.js.map +1 -0
  72. package/dist/smart-agent/pipeline.d.ts +6 -4
  73. package/dist/smart-agent/pipeline.d.ts.map +1 -1
  74. package/dist/smart-agent/pipeline.js +26 -0
  75. package/dist/smart-agent/pipeline.js.map +1 -1
  76. package/dist/smart-agent/rag/inverted-index.d.ts +26 -0
  77. package/dist/smart-agent/rag/inverted-index.d.ts.map +1 -0
  78. package/dist/smart-agent/rag/inverted-index.js +61 -0
  79. package/dist/smart-agent/rag/inverted-index.js.map +1 -0
  80. package/dist/smart-agent/rag/qdrant-rag.d.ts +26 -0
  81. package/dist/smart-agent/rag/qdrant-rag.d.ts.map +1 -0
  82. package/dist/smart-agent/rag/qdrant-rag.js +175 -0
  83. package/dist/smart-agent/rag/qdrant-rag.js.map +1 -0
  84. package/dist/smart-agent/rag/query-expander.d.ts +14 -0
  85. package/dist/smart-agent/rag/query-expander.d.ts.map +1 -0
  86. package/dist/smart-agent/rag/query-expander.js +40 -0
  87. package/dist/smart-agent/rag/query-expander.js.map +1 -0
  88. package/dist/smart-agent/rag/vector-rag.d.ts +10 -3
  89. package/dist/smart-agent/rag/vector-rag.d.ts.map +1 -1
  90. package/dist/smart-agent/rag/vector-rag.js +29 -16
  91. package/dist/smart-agent/rag/vector-rag.js.map +1 -1
  92. package/dist/smart-agent/reranker/index.d.ts +4 -0
  93. package/dist/smart-agent/reranker/index.d.ts.map +1 -0
  94. package/dist/smart-agent/reranker/index.js +3 -0
  95. package/dist/smart-agent/reranker/index.js.map +1 -0
  96. package/dist/smart-agent/reranker/llm-reranker.d.ts +10 -0
  97. package/dist/smart-agent/reranker/llm-reranker.d.ts.map +1 -0
  98. package/dist/smart-agent/reranker/llm-reranker.js +55 -0
  99. package/dist/smart-agent/reranker/llm-reranker.js.map +1 -0
  100. package/dist/smart-agent/reranker/noop-reranker.d.ts +6 -0
  101. package/dist/smart-agent/reranker/noop-reranker.d.ts.map +1 -0
  102. package/dist/smart-agent/reranker/noop-reranker.js +6 -0
  103. package/dist/smart-agent/reranker/noop-reranker.js.map +1 -0
  104. package/dist/smart-agent/reranker/types.d.ts +5 -0
  105. package/dist/smart-agent/reranker/types.d.ts.map +1 -0
  106. package/dist/smart-agent/reranker/types.js +2 -0
  107. package/dist/smart-agent/reranker/types.js.map +1 -0
  108. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts +16 -0
  109. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts.map +1 -0
  110. package/dist/smart-agent/resilience/circuit-breaker-embedder.js +30 -0
  111. package/dist/smart-agent/resilience/circuit-breaker-embedder.js.map +1 -0
  112. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts +18 -0
  113. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts.map +1 -0
  114. package/dist/smart-agent/resilience/circuit-breaker-llm.js +65 -0
  115. package/dist/smart-agent/resilience/circuit-breaker-llm.js.map +1 -0
  116. package/dist/smart-agent/resilience/circuit-breaker.d.ts +36 -0
  117. package/dist/smart-agent/resilience/circuit-breaker.d.ts.map +1 -0
  118. package/dist/smart-agent/resilience/circuit-breaker.js +60 -0
  119. package/dist/smart-agent/resilience/circuit-breaker.js.map +1 -0
  120. package/dist/smart-agent/resilience/fallback-rag.d.ts +21 -0
  121. package/dist/smart-agent/resilience/fallback-rag.d.ts.map +1 -0
  122. package/dist/smart-agent/resilience/fallback-rag.js +35 -0
  123. package/dist/smart-agent/resilience/fallback-rag.js.map +1 -0
  124. package/dist/smart-agent/resilience/index.d.ts +5 -0
  125. package/dist/smart-agent/resilience/index.d.ts.map +1 -0
  126. package/dist/smart-agent/resilience/index.js +5 -0
  127. package/dist/smart-agent/resilience/index.js.map +1 -0
  128. package/dist/smart-agent/session/index.d.ts +4 -0
  129. package/dist/smart-agent/session/index.d.ts.map +1 -0
  130. package/dist/smart-agent/session/index.js +3 -0
  131. package/dist/smart-agent/session/index.js.map +1 -0
  132. package/dist/smart-agent/session/noop-session-manager.d.ts +8 -0
  133. package/dist/smart-agent/session/noop-session-manager.d.ts.map +1 -0
  134. package/dist/smart-agent/session/noop-session-manager.js +11 -0
  135. package/dist/smart-agent/session/noop-session-manager.js.map +1 -0
  136. package/dist/smart-agent/session/session-manager.d.ts +13 -0
  137. package/dist/smart-agent/session/session-manager.d.ts.map +1 -0
  138. package/dist/smart-agent/session/session-manager.js +20 -0
  139. package/dist/smart-agent/session/session-manager.js.map +1 -0
  140. package/dist/smart-agent/session/types.d.ts +7 -0
  141. package/dist/smart-agent/session/types.d.ts.map +1 -0
  142. package/dist/smart-agent/session/types.js +2 -0
  143. package/dist/smart-agent/session/types.js.map +1 -0
  144. package/dist/smart-agent/smart-server.d.ts +15 -1
  145. package/dist/smart-agent/smart-server.d.ts.map +1 -1
  146. package/dist/smart-agent/smart-server.js +73 -4
  147. package/dist/smart-agent/smart-server.js.map +1 -1
  148. package/dist/smart-agent/testing/index.d.ts +32 -0
  149. package/dist/smart-agent/testing/index.d.ts.map +1 -1
  150. package/dist/smart-agent/testing/index.js +70 -0
  151. package/dist/smart-agent/testing/index.js.map +1 -1
  152. package/dist/smart-agent/validator/index.d.ts +3 -0
  153. package/dist/smart-agent/validator/index.d.ts.map +1 -0
  154. package/dist/smart-agent/validator/index.js +2 -0
  155. package/dist/smart-agent/validator/index.js.map +1 -0
  156. package/dist/smart-agent/validator/noop-validator.d.ts +6 -0
  157. package/dist/smart-agent/validator/noop-validator.d.ts.map +1 -0
  158. package/dist/smart-agent/validator/noop-validator.js +6 -0
  159. package/dist/smart-agent/validator/noop-validator.js.map +1 -0
  160. package/dist/smart-agent/validator/types.d.ts +18 -0
  161. package/dist/smart-agent/validator/types.d.ts.map +1 -0
  162. package/dist/smart-agent/validator/types.js +8 -0
  163. package/dist/smart-agent/validator/types.js.map +1 -0
  164. package/package.json +14 -2
package/dist/index.d.ts CHANGED
@@ -14,7 +14,30 @@ export { type DeepSeekConfig, DeepSeekProvider, } from './llm-providers/deepseek
14
14
  export { type OpenAIConfig, OpenAIProvider } from './llm-providers/openai.js';
15
15
  export { type SapCoreAIConfig, SapCoreAIProvider, } from './llm-providers/sap-core-ai.js';
16
16
  export { type MCPClientConfig, MCPClientWrapper, type TransportType, } from './mcp/client.js';
17
+ export { NoopToolCache } from './smart-agent/cache/noop-tool-cache.js';
18
+ export { ToolCache } from './smart-agent/cache/tool-cache.js';
19
+ export type { IToolCache } from './smart-agent/cache/types.js';
20
+ export { ConfigWatcher, type ConfigWatcherOptions, type HotReloadableConfig, } from './smart-agent/config/config-watcher.js';
21
+ export { HealthChecker, type HealthCheckerDeps, } from './smart-agent/health/health-checker.js';
22
+ export type { CircuitBreakerStatus, HealthComponentStatus, HealthStatus, } from './smart-agent/health/types.js';
23
+ export { type CounterSnapshot, type HistogramSnapshot, InMemoryMetrics, type MetricsSnapshot, } from './smart-agent/metrics/in-memory-metrics.js';
24
+ export { NoopMetrics } from './smart-agent/metrics/noop-metrics.js';
25
+ export type { ICounter, IHistogram, IMetrics, } from './smart-agent/metrics/types.js';
26
+ export { QdrantRag, type QdrantRagConfig, } from './smart-agent/rag/qdrant-rag.js';
27
+ export { type IQueryExpander, LlmQueryExpander, NoopQueryExpander, } from './smart-agent/rag/query-expander.js';
28
+ export { LlmReranker } from './smart-agent/reranker/llm-reranker.js';
29
+ export { NoopReranker } from './smart-agent/reranker/noop-reranker.js';
30
+ export type { IReranker } from './smart-agent/reranker/types.js';
31
+ export { CircuitBreaker, type CircuitBreakerConfig, type CircuitState, } from './smart-agent/resilience/circuit-breaker.js';
32
+ export { CircuitBreakerEmbedder } from './smart-agent/resilience/circuit-breaker-embedder.js';
33
+ export { CircuitBreakerLlm } from './smart-agent/resilience/circuit-breaker-llm.js';
34
+ export { FallbackRag } from './smart-agent/resilience/fallback-rag.js';
35
+ export { NoopSessionManager } from './smart-agent/session/noop-session-manager.js';
36
+ export { SessionManager } from './smart-agent/session/session-manager.js';
37
+ export type { ISessionManager } from './smart-agent/session/types.js';
17
38
  export { NoopTracer } from './smart-agent/tracer/noop-tracer.js';
18
39
  export type { ISpan, ITracer, SpanOptions, SpanStatus, } from './smart-agent/tracer/types.js';
40
+ export { NoopValidator } from './smart-agent/validator/noop-validator.js';
41
+ export type { IOutputValidator, ValidationResult, } from './smart-agent/validator/types.js';
19
42
  export type { AgentResponse, LLMProviderConfig, LLMResponse, Message, ToolCall, ToolResult, } from './types.js';
20
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,eAAe,EACpB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EACnB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG9E,OAAO,EACL,KAAK,eAAe,EACpB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,28 @@ export { OpenAIProvider } from './llm-providers/openai.js';
21
21
  export { SapCoreAIProvider, } from './llm-providers/sap-core-ai.js';
22
22
  // MCP Client
23
23
  export { MCPClientWrapper, } from './mcp/client.js';
24
+ export { NoopToolCache } from './smart-agent/cache/noop-tool-cache.js';
25
+ export { ToolCache } from './smart-agent/cache/tool-cache.js';
26
+ // Config
27
+ export { ConfigWatcher, } from './smart-agent/config/config-watcher.js';
28
+ export { HealthChecker, } from './smart-agent/health/health-checker.js';
29
+ export { InMemoryMetrics, } from './smart-agent/metrics/in-memory-metrics.js';
30
+ export { NoopMetrics } from './smart-agent/metrics/noop-metrics.js';
31
+ // Qdrant RAG
32
+ export { QdrantRag, } from './smart-agent/rag/qdrant-rag.js';
33
+ // Query Expander
34
+ export { LlmQueryExpander, NoopQueryExpander, } from './smart-agent/rag/query-expander.js';
35
+ // Reranker
36
+ export { LlmReranker } from './smart-agent/reranker/llm-reranker.js';
37
+ export { NoopReranker } from './smart-agent/reranker/noop-reranker.js';
38
+ // Resilience
39
+ export { CircuitBreaker, } from './smart-agent/resilience/circuit-breaker.js';
40
+ export { CircuitBreakerEmbedder } from './smart-agent/resilience/circuit-breaker-embedder.js';
41
+ export { CircuitBreakerLlm } from './smart-agent/resilience/circuit-breaker-llm.js';
42
+ export { FallbackRag } from './smart-agent/resilience/fallback-rag.js';
43
+ export { NoopSessionManager } from './smart-agent/session/noop-session-manager.js';
44
+ export { SessionManager } from './smart-agent/session/session-manager.js';
24
45
  // Tracer
25
46
  export { NoopTracer } from './smart-agent/tracer/noop-tracer.js';
47
+ export { NoopValidator } from './smart-agent/validator/noop-validator.js';
26
48
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,8DAA8D;AAC9D,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAA0B,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,gBAAgB,GAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,GAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAEL,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,gBAAgB;AAChB,2DAA2D;AAC3D,OAAO,EAEL,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAEL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AACzB,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAwB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,8DAA8D;AAC9D,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAA0B,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACL,gBAAgB,GAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,GAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAEL,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC9E,gBAAgB;AAChB,2DAA2D;AAC3D,OAAO,EAEL,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAEL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,SAAS;AACT,OAAO,EACL,aAAa,GAGd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,GAEd,MAAM,wCAAwC,CAAC;AAOhD,OAAO,EAGL,eAAe,GAEhB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAOpE,aAAa;AACb,OAAO,EACL,SAAS,GAEV,MAAM,iCAAiC,CAAC;AACzC,iBAAiB;AACjB,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,aAAa;AACb,OAAO,EACL,cAAc,GAGf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAOjE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Message } from '../types.js';
2
+ import type { IToolCache } from './cache/types.js';
2
3
  import type { IContextAssembler } from './interfaces/assembler.js';
3
4
  import type { ISubpromptClassifier } from './interfaces/classifier.js';
4
5
  import type { ILlm } from './interfaces/llm.js';
@@ -6,8 +7,13 @@ import type { IMcpClient } from './interfaces/mcp-client.js';
6
7
  import type { IRag } from './interfaces/rag.js';
7
8
  import { type CallOptions, type LlmStreamChunk, type Result, SmartAgentError } from './interfaces/types.js';
8
9
  import type { ILogger } from './logger/index.js';
10
+ import type { IMetrics } from './metrics/types.js';
9
11
  import type { IPromptInjectionDetector, IToolPolicy, SessionPolicy } from './policy/types.js';
12
+ import { type IQueryExpander } from './rag/query-expander.js';
13
+ import type { IReranker } from './reranker/types.js';
14
+ import type { ISessionManager } from './session/types.js';
10
15
  import type { ITracer } from './tracer/types.js';
16
+ import type { IOutputValidator } from './validator/types.js';
11
17
  export declare class OrchestratorError extends SmartAgentError {
12
18
  constructor(message: string, code?: string);
13
19
  }
@@ -23,10 +29,16 @@ export interface SmartAgentDeps {
23
29
  ragStores: SmartAgentRagStores;
24
30
  classifier: ISubpromptClassifier;
25
31
  assembler: IContextAssembler;
32
+ reranker?: IReranker;
33
+ queryExpander?: IQueryExpander;
26
34
  logger?: ILogger;
27
35
  toolPolicy?: IToolPolicy;
28
36
  injectionDetector?: IPromptInjectionDetector;
29
37
  tracer?: ITracer;
38
+ metrics?: IMetrics;
39
+ toolCache?: IToolCache;
40
+ outputValidator?: IOutputValidator;
41
+ sessionManager?: ISessionManager;
30
42
  }
31
43
  export interface SmartAgentConfig {
32
44
  maxIterations: number;
@@ -42,6 +54,9 @@ export interface SmartAgentConfig {
42
54
  historySummaryPrompt?: string;
43
55
  historyAutoSummarizeLimit?: number;
44
56
  mode?: 'hard' | 'pass' | 'smart';
57
+ queryExpansionEnabled?: boolean;
58
+ toolResultCacheTtlMs?: number;
59
+ sessionTokenBudget?: number;
45
60
  }
46
61
  export type StopReason = 'stop' | 'iteration_limit' | 'tool_call_limit';
47
62
  export interface SmartAgentResponse {
@@ -57,10 +72,18 @@ export interface SmartAgentResponse {
57
72
  }
58
73
  export declare class SmartAgent {
59
74
  private readonly deps;
60
- private readonly config;
75
+ private config;
61
76
  private readonly toolAvailabilityRegistry;
62
77
  private readonly tracer;
78
+ private readonly metrics;
79
+ private readonly reranker;
80
+ private readonly queryExpander;
81
+ private readonly toolCache;
82
+ private readonly outputValidator;
83
+ private readonly sessionManager;
63
84
  constructor(deps: SmartAgentDeps, config: SmartAgentConfig);
85
+ /** Apply a partial config update at runtime (hot-reload). */
86
+ applyConfigUpdate(update: Partial<SmartAgentConfig>): void;
64
87
  healthCheck(options?: CallOptions): Promise<Result<{
65
88
  llm: boolean;
66
89
  rag: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  import { randomUUID } from 'node:crypto';
2
+ import { NoopToolCache } from './cache/noop-tool-cache.js';
2
3
  import { SmartAgentError, } from './interfaces/types.js';
4
+ import { NoopMetrics } from './metrics/noop-metrics.js';
3
5
  import { isToolContextUnavailableError, ToolAvailabilityRegistry, } from './policy/tool-availability-registry.js';
6
+ import { NoopQueryExpander, } from './rag/query-expander.js';
7
+ import { NoopReranker } from './reranker/noop-reranker.js';
8
+ import { NoopSessionManager } from './session/noop-session-manager.js';
4
9
  import { NoopTracer } from './tracer/noop-tracer.js';
5
10
  import { normalizeExternalTools } from './utils/external-tools-normalizer.js';
6
11
  import { getStreamToolCallName, toToolCallDelta, } from './utils/tool-call-deltas.js';
12
+ import { NoopValidator } from './validator/noop-validator.js';
7
13
  export class OrchestratorError extends SmartAgentError {
8
14
  constructor(message, code = 'ORCHESTRATOR_ERROR') {
9
15
  super(message, code);
@@ -33,11 +39,27 @@ export class SmartAgent {
33
39
  config;
34
40
  toolAvailabilityRegistry;
35
41
  tracer;
42
+ metrics;
43
+ reranker;
44
+ queryExpander;
45
+ toolCache;
46
+ outputValidator;
47
+ sessionManager;
36
48
  constructor(deps, config) {
37
49
  this.deps = deps;
38
50
  this.config = config;
39
51
  this.toolAvailabilityRegistry = new ToolAvailabilityRegistry(this.config.toolUnavailableTtlMs);
40
52
  this.tracer = deps.tracer ?? new NoopTracer();
53
+ this.metrics = deps.metrics ?? new NoopMetrics();
54
+ this.reranker = deps.reranker ?? new NoopReranker();
55
+ this.queryExpander = deps.queryExpander ?? new NoopQueryExpander();
56
+ this.toolCache = deps.toolCache ?? new NoopToolCache();
57
+ this.outputValidator = deps.outputValidator ?? new NoopValidator();
58
+ this.sessionManager = deps.sessionManager ?? new NoopSessionManager();
59
+ }
60
+ /** Apply a partial config update at runtime (hot-reload). */
61
+ applyConfigUpdate(update) {
62
+ this.config = { ...this.config, ...update };
41
63
  }
42
64
  async healthCheck(options) {
43
65
  const results = {
@@ -102,6 +124,8 @@ export class SmartAgent {
102
124
  };
103
125
  return;
104
126
  }
127
+ this.metrics.requestCount.add();
128
+ const requestStart = Date.now();
105
129
  const traceId = options?.trace?.traceId ?? randomUUID();
106
130
  const rootSpan = this.tracer.startSpan('smart_agent.process', {
107
131
  traceId,
@@ -145,7 +169,15 @@ export class SmartAgent {
145
169
  yield initResult;
146
170
  return;
147
171
  }
148
- const { subprompts, processedHistory, toolClientMap } = initResult.value;
172
+ let { processedHistory } = initResult.value;
173
+ const { subprompts, toolClientMap } = initResult.value;
174
+ // Token budget check — summarize if over budget
175
+ if (this.sessionManager.isOverBudget()) {
176
+ const sumResult = await this._summarizeHistory(processedHistory, opts);
177
+ if (sumResult.ok)
178
+ processedHistory = sumResult.value;
179
+ this.sessionManager.reset();
180
+ }
149
181
  // 2. Decide context and tools for the WHOLE request
150
182
  const actions = subprompts.filter((sp) => sp.type === 'action');
151
183
  const isSapRequired = actions.some((a) => a.context === 'sap-abap') || mode === 'hard';
@@ -159,7 +191,12 @@ export class SmartAgent {
159
191
  if (isSapRequired) {
160
192
  // Collect all action texts for RAG
161
193
  const combinedActionText = actions.map((a) => a.text).join(' ');
162
- const ragText = await this._toEnglishForRag(combinedActionText, opts);
194
+ let ragText = await this._toEnglishForRag(combinedActionText, opts);
195
+ if (this.config.queryExpansionEnabled) {
196
+ const expandResult = await this.queryExpander.expand(ragText, opts);
197
+ if (expandResult.ok)
198
+ ragText = expandResult.value;
199
+ }
163
200
  const k = this.config.ragQueryK ?? 10;
164
201
  const ragSpan = this.tracer.startSpan('smart_agent.rag_query', {
165
202
  parent: rootSpan,
@@ -171,8 +208,32 @@ export class SmartAgent {
171
208
  this.deps.ragStores.state.query(ragText, k, opts),
172
209
  ]);
173
210
  ragSpan.end();
211
+ this.metrics.ragQueryCount.add(1, {
212
+ store: 'facts',
213
+ hit: String(fR.ok && fR.value.length > 0),
214
+ });
215
+ this.metrics.ragQueryCount.add(1, {
216
+ store: 'feedback',
217
+ hit: String(fbR.ok && fbR.value.length > 0),
218
+ });
219
+ this.metrics.ragQueryCount.add(1, {
220
+ store: 'state',
221
+ hit: String(sR.ok && sR.value.length > 0),
222
+ });
223
+ // Rerank results
224
+ const [rerankedFacts, rerankedFeedback, rerankedState] = await Promise.all([
225
+ fR.ok
226
+ ? this.reranker.rerank(ragText, fR.value, opts)
227
+ : Promise.resolve(fR),
228
+ fbR.ok
229
+ ? this.reranker.rerank(ragText, fbR.value, opts)
230
+ : Promise.resolve(fbR),
231
+ sR.ok
232
+ ? this.reranker.rerank(ragText, sR.value, opts)
233
+ : Promise.resolve(sR),
234
+ ]);
174
235
  const { tools: mcpTools } = await this._listAllTools(opts);
175
- const facts = fR.ok ? fR.value : [];
236
+ const facts = rerankedFacts.ok ? rerankedFacts.value : [];
176
237
  const ragToolNames = new Set(facts
177
238
  .map((r) => r.metadata.id)
178
239
  .filter((id) => id?.startsWith('tool:'))
@@ -184,8 +245,8 @@ export class SmartAgent {
184
245
  : [];
185
246
  retrieved = {
186
247
  facts,
187
- feedback: fbR.ok ? fbR.value : [],
188
- state: sR.ok ? sR.value : [],
248
+ feedback: rerankedFeedback.ok ? rerankedFeedback.value : [],
249
+ state: rerankedState.ok ? rerankedState.value : [],
189
250
  tools: selectedMcpTools,
190
251
  };
191
252
  finalTools =
@@ -254,6 +315,7 @@ export class SmartAgent {
254
315
  finally {
255
316
  rootSpan.end();
256
317
  timeoutCleanup?.();
318
+ this.metrics.requestLatency.record(Date.now() - requestStart);
257
319
  }
258
320
  }
259
321
  async _preparePipeline(textOrMessages, opts, parentSpan) {
@@ -288,6 +350,9 @@ export class SmartAgent {
288
350
  subprompts: classifyResult.value,
289
351
  });
290
352
  const subprompts = classifyResult.value;
353
+ for (const sp of subprompts) {
354
+ this.metrics.classifierIntentCount.add(1, { intent: sp.type });
355
+ }
291
356
  const others = subprompts.filter((sp) => sp.type === 'fact' || sp.type === 'state' || sp.type === 'feedback');
292
357
  const ragStoreMap = new Map([
293
358
  ['fact', this.deps.ragStores.facts],
@@ -350,6 +415,8 @@ export class SmartAgent {
350
415
  parent: toolLoopSpan,
351
416
  attributes: { 'llm.iteration': iteration + 1 },
352
417
  });
418
+ this.metrics.llmCallCount.add();
419
+ const llmCallStart = Date.now();
353
420
  const stream = this.deps.mainLlm.streamChat(messages, currentTools, opts);
354
421
  let content = '';
355
422
  let finishReason;
@@ -407,10 +474,12 @@ export class SmartAgent {
407
474
  usage.promptTokens += chunk.usage.promptTokens;
408
475
  usage.completionTokens += chunk.usage.completionTokens;
409
476
  usage.totalTokens += chunk.usage.totalTokens;
477
+ this.sessionManager.addTokens(chunk.usage.totalTokens);
410
478
  }
411
479
  }
412
480
  llmSpan.setStatus('ok');
413
481
  llmSpan.end();
482
+ this.metrics.llmCallLatency.record(Date.now() - llmCallStart);
414
483
  const toolCalls = Array.from(toolCallsMap.values()).map((tc) => {
415
484
  let args = {};
416
485
  try {
@@ -427,6 +496,20 @@ export class SmartAgent {
427
496
  finishReason,
428
497
  });
429
498
  if (finishReason !== 'tool_calls' || toolCalls.length === 0) {
499
+ // Output validation
500
+ const valResult = await this.outputValidator.validate(content, { messages, tools: currentTools }, opts);
501
+ if (valResult.ok && !valResult.value.valid) {
502
+ const correction = valResult.value.correctedContent ?? valResult.value.reason;
503
+ messages = [
504
+ ...messages,
505
+ { role: 'assistant', content },
506
+ {
507
+ role: 'user',
508
+ content: `Your previous response was rejected by validation: ${correction}. Please try again.`,
509
+ },
510
+ ];
511
+ continue;
512
+ }
430
513
  opts?.sessionLogger?.logStep('final_response', { content, usage });
431
514
  toolLoopSpan.setStatus('ok');
432
515
  toolLoopSpan.end();
@@ -527,32 +610,52 @@ export class SmartAgent {
527
610
  })),
528
611
  },
529
612
  ];
530
- for (const tc of internalCalls) {
531
- if (this.config.maxToolCalls !== undefined &&
532
- toolCallCount >= this.config.maxToolCalls) {
533
- toolLoopSpan.addEvent('tool_call_limit_reached');
534
- toolLoopSpan.end();
535
- yield {
536
- ok: true,
537
- value: { content: '', finishReason: 'length', usage },
538
- };
539
- return;
540
- }
613
+ // Truncate batch to remaining budget
614
+ const remaining = this.config.maxToolCalls !== undefined
615
+ ? this.config.maxToolCalls - toolCallCount
616
+ : internalCalls.length;
617
+ if (remaining <= 0) {
618
+ toolLoopSpan.addEvent('tool_call_limit_reached');
619
+ toolLoopSpan.end();
620
+ yield {
621
+ ok: true,
622
+ value: { content: '', finishReason: 'length', usage },
623
+ };
624
+ return;
625
+ }
626
+ const batch = internalCalls.slice(0, remaining);
627
+ // Yield all progress messages before execution
628
+ for (const tc of batch) {
541
629
  yield {
542
630
  ok: true,
543
631
  value: { content: `\n\n[SmartAgent: Executing ${tc.name}...]\n` },
544
632
  };
633
+ }
634
+ // Execute all tool calls concurrently
635
+ const results = await Promise.all(batch.map(async (tc) => {
545
636
  opts?.sessionLogger?.logStep(`mcp_call_${tc.name}`, {
546
637
  arguments: tc.arguments,
547
638
  });
548
639
  const client = toolClientMap.get(tc.name);
549
640
  if (!client)
550
- continue;
641
+ return { tc, text: '', res: null };
551
642
  const toolSpan = this.tracer.startSpan('smart_agent.tool_call', {
552
643
  parent: toolLoopSpan,
553
644
  attributes: { 'tool.name': tc.name },
554
645
  });
555
- const res = await client.callTool(tc.name, tc.arguments, opts);
646
+ const cached = this.toolCache.get(tc.name, tc.arguments);
647
+ const res = cached
648
+ ? (() => {
649
+ this.metrics.toolCacheHitCount.add();
650
+ toolSpan.setAttribute('cache', 'hit');
651
+ return { ok: true, value: cached };
652
+ })()
653
+ : await (async () => {
654
+ const r = await client.callTool(tc.name, tc.arguments, opts);
655
+ if (r.ok)
656
+ this.toolCache.set(tc.name, tc.arguments, r.value);
657
+ return r;
658
+ })();
556
659
  const text = !res.ok
557
660
  ? res.error.message
558
661
  : typeof res.value.content === 'string'
@@ -560,6 +663,13 @@ export class SmartAgent {
560
663
  : JSON.stringify(res.value.content);
561
664
  toolSpan.setStatus(res.ok ? 'ok' : 'error', res.ok ? undefined : text);
562
665
  toolSpan.end();
666
+ return { tc, text, res };
667
+ }));
668
+ // Process results: update availability, metrics, messages
669
+ const toolMessages = [];
670
+ for (const { tc, text, res } of results) {
671
+ if (!res)
672
+ continue;
563
673
  if (!res.ok && isToolContextUnavailableError(text)) {
564
674
  const entry = this.toolAvailabilityRegistry.block(sessionId, tc.name, text);
565
675
  currentTools = currentTools.filter((t) => t.name !== tc.name);
@@ -568,13 +678,18 @@ export class SmartAgent {
568
678
  blockedUntil: entry.blockedUntil,
569
679
  });
570
680
  }
571
- opts?.sessionLogger?.logStep(`mcp_result_${tc.name}`, { result: text });
681
+ opts?.sessionLogger?.logStep(`mcp_result_${tc.name}`, {
682
+ result: text,
683
+ });
572
684
  toolCallCount++;
573
- messages = [
574
- ...messages,
575
- { role: 'tool', content: text, tool_call_id: tc.id },
576
- ];
685
+ this.metrics.toolCallCount.add();
686
+ toolMessages.push({
687
+ role: 'tool',
688
+ content: text,
689
+ tool_call_id: tc.id,
690
+ });
577
691
  }
692
+ messages = [...messages, ...toolMessages];
578
693
  }
579
694
  }
580
695
  async _listAllTools(opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/smart-agent/agent.ts"],"names":[],"mappings":"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"}