@mcp-abap-adt/llm-agent-libs 12.0.2 → 12.0.3

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 (361) hide show
  1. package/dist/adapters/index.d.ts +4 -0
  2. package/dist/adapters/index.d.ts.map +1 -0
  3. package/dist/adapters/index.js +4 -0
  4. package/dist/adapters/index.js.map +1 -0
  5. package/dist/adapters/llm-adapter.d.ts +24 -0
  6. package/dist/adapters/llm-adapter.d.ts.map +1 -0
  7. package/dist/adapters/llm-adapter.js +345 -0
  8. package/dist/adapters/llm-adapter.js.map +1 -0
  9. package/dist/adapters/llm-provider-bridge.d.ts +30 -0
  10. package/dist/adapters/llm-provider-bridge.d.ts.map +1 -0
  11. package/dist/adapters/llm-provider-bridge.js +122 -0
  12. package/dist/adapters/llm-provider-bridge.js.map +1 -0
  13. package/dist/adapters/non-streaming-llm.d.ts +18 -0
  14. package/dist/adapters/non-streaming-llm.d.ts.map +1 -0
  15. package/dist/adapters/non-streaming-llm.js +44 -0
  16. package/dist/adapters/non-streaming-llm.js.map +1 -0
  17. package/dist/agent.d.ts +227 -0
  18. package/dist/agent.d.ts.map +1 -0
  19. package/dist/agent.js +1534 -0
  20. package/dist/agent.js.map +1 -0
  21. package/dist/builder.d.ts +260 -0
  22. package/dist/builder.d.ts.map +1 -0
  23. package/dist/builder.js +949 -0
  24. package/dist/builder.js.map +1 -0
  25. package/dist/classifier/index.d.ts +3 -0
  26. package/dist/classifier/index.d.ts.map +1 -0
  27. package/dist/classifier/index.js +2 -0
  28. package/dist/classifier/index.js.map +1 -0
  29. package/dist/classifier/llm-classifier.d.ts +20 -0
  30. package/dist/classifier/llm-classifier.d.ts.map +1 -0
  31. package/dist/classifier/llm-classifier.js +128 -0
  32. package/dist/classifier/llm-classifier.js.map +1 -0
  33. package/dist/config/config-watcher.d.ts +54 -0
  34. package/dist/config/config-watcher.d.ts.map +1 -0
  35. package/dist/config/config-watcher.js +107 -0
  36. package/dist/config/config-watcher.js.map +1 -0
  37. package/dist/config/index.d.ts +2 -0
  38. package/dist/config/index.d.ts.map +1 -0
  39. package/dist/config/index.js +2 -0
  40. package/dist/config/index.js.map +1 -0
  41. package/dist/context/context-assembler.d.ts +49 -0
  42. package/dist/context/context-assembler.d.ts.map +1 -0
  43. package/dist/context/context-assembler.js +184 -0
  44. package/dist/context/context-assembler.js.map +1 -0
  45. package/dist/context/index.d.ts +3 -0
  46. package/dist/context/index.d.ts.map +1 -0
  47. package/dist/context/index.js +2 -0
  48. package/dist/context/index.js.map +1 -0
  49. package/dist/health/health-checker.d.ts +21 -0
  50. package/dist/health/health-checker.d.ts.map +1 -0
  51. package/dist/health/health-checker.js +52 -0
  52. package/dist/health/health-checker.js.map +1 -0
  53. package/dist/health/index.d.ts +3 -0
  54. package/dist/health/index.d.ts.map +1 -0
  55. package/dist/health/index.js +2 -0
  56. package/dist/health/index.js.map +1 -0
  57. package/dist/health/types.d.ts +2 -0
  58. package/dist/health/types.d.ts.map +1 -0
  59. package/dist/health/types.js +2 -0
  60. package/dist/health/types.js.map +1 -0
  61. package/dist/history/history-memory.d.ts +12 -0
  62. package/dist/history/history-memory.d.ts.map +1 -0
  63. package/dist/history/history-memory.js +26 -0
  64. package/dist/history/history-memory.js.map +1 -0
  65. package/dist/history/history-summarizer.d.ts +10 -0
  66. package/dist/history/history-summarizer.d.ts.map +1 -0
  67. package/dist/history/history-summarizer.js +27 -0
  68. package/dist/history/history-summarizer.js.map +1 -0
  69. package/dist/history/index.d.ts +3 -0
  70. package/dist/history/index.d.ts.map +1 -0
  71. package/dist/history/index.js +3 -0
  72. package/dist/history/index.js.map +1 -0
  73. package/dist/index.d.ts +37 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +86 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/interfaces/mcp-connection-strategy.d.ts +2 -0
  78. package/dist/interfaces/mcp-connection-strategy.d.ts.map +1 -0
  79. package/dist/interfaces/mcp-connection-strategy.js +2 -0
  80. package/dist/interfaces/mcp-connection-strategy.js.map +1 -0
  81. package/dist/interfaces/model-resolver.d.ts +2 -0
  82. package/dist/interfaces/model-resolver.d.ts.map +1 -0
  83. package/dist/interfaces/model-resolver.js +2 -0
  84. package/dist/interfaces/model-resolver.js.map +1 -0
  85. package/dist/interfaces/pipeline.d.ts +123 -0
  86. package/dist/interfaces/pipeline.d.ts.map +1 -0
  87. package/dist/interfaces/pipeline.js +13 -0
  88. package/dist/interfaces/pipeline.js.map +1 -0
  89. package/dist/logger/console-logger.d.ts +7 -0
  90. package/dist/logger/console-logger.d.ts.map +1 -0
  91. package/dist/logger/console-logger.js +12 -0
  92. package/dist/logger/console-logger.js.map +1 -0
  93. package/dist/logger/default-request-logger.d.ts +17 -0
  94. package/dist/logger/default-request-logger.d.ts.map +1 -0
  95. package/dist/logger/default-request-logger.js +86 -0
  96. package/dist/logger/default-request-logger.js.map +1 -0
  97. package/dist/logger/index.d.ts +3 -0
  98. package/dist/logger/index.d.ts.map +1 -0
  99. package/dist/logger/index.js +2 -0
  100. package/dist/logger/index.js.map +1 -0
  101. package/dist/logger/noop-request-logger.d.ts +11 -0
  102. package/dist/logger/noop-request-logger.d.ts.map +1 -0
  103. package/dist/logger/noop-request-logger.js +20 -0
  104. package/dist/logger/noop-request-logger.js.map +1 -0
  105. package/dist/logger/session-logger.d.ts +10 -0
  106. package/dist/logger/session-logger.d.ts.map +1 -0
  107. package/dist/logger/session-logger.js +40 -0
  108. package/dist/logger/session-logger.js.map +1 -0
  109. package/dist/metrics/in-memory-metrics.d.ts +36 -0
  110. package/dist/metrics/in-memory-metrics.d.ts.map +1 -0
  111. package/dist/metrics/in-memory-metrics.js +87 -0
  112. package/dist/metrics/in-memory-metrics.js.map +1 -0
  113. package/dist/metrics/index.d.ts +4 -0
  114. package/dist/metrics/index.d.ts.map +1 -0
  115. package/dist/metrics/index.js +3 -0
  116. package/dist/metrics/index.js.map +1 -0
  117. package/dist/metrics/noop-metrics.d.ts +17 -0
  118. package/dist/metrics/noop-metrics.d.ts.map +1 -0
  119. package/dist/metrics/noop-metrics.js +22 -0
  120. package/dist/metrics/noop-metrics.js.map +1 -0
  121. package/dist/metrics/types.d.ts +2 -0
  122. package/dist/metrics/types.d.ts.map +1 -0
  123. package/dist/metrics/types.js +2 -0
  124. package/dist/metrics/types.js.map +1 -0
  125. package/dist/otel/index.d.ts +2 -0
  126. package/dist/otel/index.d.ts.map +1 -0
  127. package/dist/otel/index.js +2 -0
  128. package/dist/otel/index.js.map +1 -0
  129. package/dist/otel/otel-tracer-adapter.d.ts +15 -0
  130. package/dist/otel/otel-tracer-adapter.d.ts.map +1 -0
  131. package/dist/otel/otel-tracer-adapter.js +62 -0
  132. package/dist/otel/otel-tracer-adapter.js.map +1 -0
  133. package/dist/pipeline/condition-evaluator.d.ts +35 -0
  134. package/dist/pipeline/condition-evaluator.d.ts.map +1 -0
  135. package/dist/pipeline/condition-evaluator.js +143 -0
  136. package/dist/pipeline/condition-evaluator.js.map +1 -0
  137. package/dist/pipeline/context.d.ts +119 -0
  138. package/dist/pipeline/context.d.ts.map +1 -0
  139. package/dist/pipeline/context.js +19 -0
  140. package/dist/pipeline/context.js.map +1 -0
  141. package/dist/pipeline/default-pipeline.d.ts +69 -0
  142. package/dist/pipeline/default-pipeline.d.ts.map +1 -0
  143. package/dist/pipeline/default-pipeline.js +276 -0
  144. package/dist/pipeline/default-pipeline.js.map +1 -0
  145. package/dist/pipeline/executor.d.ts +54 -0
  146. package/dist/pipeline/executor.d.ts.map +1 -0
  147. package/dist/pipeline/executor.js +133 -0
  148. package/dist/pipeline/executor.js.map +1 -0
  149. package/dist/pipeline/handlers/assemble.d.ts +16 -0
  150. package/dist/pipeline/handlers/assemble.d.ts.map +1 -0
  151. package/dist/pipeline/handlers/assemble.js +72 -0
  152. package/dist/pipeline/handlers/assemble.js.map +1 -0
  153. package/dist/pipeline/handlers/build-tool-query.d.ts +30 -0
  154. package/dist/pipeline/handlers/build-tool-query.d.ts.map +1 -0
  155. package/dist/pipeline/handlers/build-tool-query.js +80 -0
  156. package/dist/pipeline/handlers/build-tool-query.js.map +1 -0
  157. package/dist/pipeline/handlers/classify.d.ts +21 -0
  158. package/dist/pipeline/handlers/classify.d.ts.map +1 -0
  159. package/dist/pipeline/handlers/classify.js +60 -0
  160. package/dist/pipeline/handlers/classify.js.map +1 -0
  161. package/dist/pipeline/handlers/expand.d.ts +16 -0
  162. package/dist/pipeline/handlers/expand.d.ts.map +1 -0
  163. package/dist/pipeline/handlers/expand.js +24 -0
  164. package/dist/pipeline/handlers/expand.js.map +1 -0
  165. package/dist/pipeline/handlers/history-upsert.d.ts +29 -0
  166. package/dist/pipeline/handlers/history-upsert.d.ts.map +1 -0
  167. package/dist/pipeline/handlers/history-upsert.js +75 -0
  168. package/dist/pipeline/handlers/history-upsert.js.map +1 -0
  169. package/dist/pipeline/handlers/index.d.ts +31 -0
  170. package/dist/pipeline/handlers/index.d.ts.map +1 -0
  171. package/dist/pipeline/handlers/index.js +44 -0
  172. package/dist/pipeline/handlers/index.js.map +1 -0
  173. package/dist/pipeline/handlers/rag-query.d.ts +27 -0
  174. package/dist/pipeline/handlers/rag-query.d.ts.map +1 -0
  175. package/dist/pipeline/handlers/rag-query.js +117 -0
  176. package/dist/pipeline/handlers/rag-query.js.map +1 -0
  177. package/dist/pipeline/handlers/rerank.d.ts +16 -0
  178. package/dist/pipeline/handlers/rerank.d.ts.map +1 -0
  179. package/dist/pipeline/handlers/rerank.js +27 -0
  180. package/dist/pipeline/handlers/rerank.js.map +1 -0
  181. package/dist/pipeline/handlers/skill-select.d.ts +18 -0
  182. package/dist/pipeline/handlers/skill-select.d.ts.map +1 -0
  183. package/dist/pipeline/handlers/skill-select.js +88 -0
  184. package/dist/pipeline/handlers/skill-select.js.map +1 -0
  185. package/dist/pipeline/handlers/summarize.d.ts +17 -0
  186. package/dist/pipeline/handlers/summarize.d.ts.map +1 -0
  187. package/dist/pipeline/handlers/summarize.js +56 -0
  188. package/dist/pipeline/handlers/summarize.js.map +1 -0
  189. package/dist/pipeline/handlers/tool-loop.d.ts +32 -0
  190. package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -0
  191. package/dist/pipeline/handlers/tool-loop.js +734 -0
  192. package/dist/pipeline/handlers/tool-loop.js.map +1 -0
  193. package/dist/pipeline/handlers/tool-select.d.ts +21 -0
  194. package/dist/pipeline/handlers/tool-select.d.ts.map +1 -0
  195. package/dist/pipeline/handlers/tool-select.js +109 -0
  196. package/dist/pipeline/handlers/tool-select.js.map +1 -0
  197. package/dist/pipeline/handlers/translate.d.ts +17 -0
  198. package/dist/pipeline/handlers/translate.d.ts.map +1 -0
  199. package/dist/pipeline/handlers/translate.js +42 -0
  200. package/dist/pipeline/handlers/translate.js.map +1 -0
  201. package/dist/pipeline/index.d.ts +14 -0
  202. package/dist/pipeline/index.d.ts.map +1 -0
  203. package/dist/pipeline/index.js +16 -0
  204. package/dist/pipeline/index.js.map +1 -0
  205. package/dist/pipeline/stage-handler.d.ts +27 -0
  206. package/dist/pipeline/stage-handler.d.ts.map +1 -0
  207. package/dist/pipeline/stage-handler.js +25 -0
  208. package/dist/pipeline/stage-handler.js.map +1 -0
  209. package/dist/pipeline/types.d.ts +5 -0
  210. package/dist/pipeline/types.d.ts.map +1 -0
  211. package/dist/pipeline/types.js +2 -0
  212. package/dist/pipeline/types.js.map +1 -0
  213. package/dist/plugins/index.d.ts +4 -0
  214. package/dist/plugins/index.d.ts.map +1 -0
  215. package/dist/plugins/index.js +3 -0
  216. package/dist/plugins/index.js.map +1 -0
  217. package/dist/plugins/loader.d.ts +67 -0
  218. package/dist/plugins/loader.d.ts.map +1 -0
  219. package/dist/plugins/loader.js +114 -0
  220. package/dist/plugins/loader.js.map +1 -0
  221. package/dist/plugins/types.d.ts +24 -0
  222. package/dist/plugins/types.d.ts.map +1 -0
  223. package/dist/plugins/types.js +86 -0
  224. package/dist/plugins/types.js.map +1 -0
  225. package/dist/policy/heuristic-injection-detector.d.ts +5 -0
  226. package/dist/policy/heuristic-injection-detector.d.ts.map +1 -0
  227. package/dist/policy/heuristic-injection-detector.js +36 -0
  228. package/dist/policy/heuristic-injection-detector.js.map +1 -0
  229. package/dist/policy/index.d.ts +6 -0
  230. package/dist/policy/index.d.ts.map +1 -0
  231. package/dist/policy/index.js +5 -0
  232. package/dist/policy/index.js.map +1 -0
  233. package/dist/policy/mixed-tool-call-handler.d.ts +15 -0
  234. package/dist/policy/mixed-tool-call-handler.d.ts.map +1 -0
  235. package/dist/policy/mixed-tool-call-handler.js +49 -0
  236. package/dist/policy/mixed-tool-call-handler.js.map +1 -0
  237. package/dist/policy/pending-tool-results-registry.d.ts +25 -0
  238. package/dist/policy/pending-tool-results-registry.d.ts.map +1 -0
  239. package/dist/policy/pending-tool-results-registry.js +50 -0
  240. package/dist/policy/pending-tool-results-registry.js.map +1 -0
  241. package/dist/policy/tool-availability-registry.d.ts +21 -0
  242. package/dist/policy/tool-availability-registry.d.ts.map +1 -0
  243. package/dist/policy/tool-availability-registry.js +77 -0
  244. package/dist/policy/tool-availability-registry.js.map +1 -0
  245. package/dist/policy/tool-policy-guard.d.ts +8 -0
  246. package/dist/policy/tool-policy-guard.d.ts.map +1 -0
  247. package/dist/policy/tool-policy-guard.js +40 -0
  248. package/dist/policy/tool-policy-guard.js.map +1 -0
  249. package/dist/policy/types.d.ts +51 -0
  250. package/dist/policy/types.d.ts.map +1 -0
  251. package/dist/policy/types.js +17 -0
  252. package/dist/policy/types.js.map +1 -0
  253. package/dist/providers.d.ts +48 -0
  254. package/dist/providers.d.ts.map +1 -0
  255. package/dist/providers.js +192 -0
  256. package/dist/providers.js.map +1 -0
  257. package/dist/reranker/index.d.ts +4 -0
  258. package/dist/reranker/index.d.ts.map +1 -0
  259. package/dist/reranker/index.js +3 -0
  260. package/dist/reranker/index.js.map +1 -0
  261. package/dist/reranker/llm-reranker.d.ts +10 -0
  262. package/dist/reranker/llm-reranker.d.ts.map +1 -0
  263. package/dist/reranker/llm-reranker.js +55 -0
  264. package/dist/reranker/llm-reranker.js.map +1 -0
  265. package/dist/reranker/noop-reranker.d.ts +6 -0
  266. package/dist/reranker/noop-reranker.d.ts.map +1 -0
  267. package/dist/reranker/noop-reranker.js +6 -0
  268. package/dist/reranker/noop-reranker.js.map +1 -0
  269. package/dist/reranker/types.d.ts +2 -0
  270. package/dist/reranker/types.d.ts.map +1 -0
  271. package/dist/reranker/types.js +2 -0
  272. package/dist/reranker/types.js.map +1 -0
  273. package/dist/resilience/rate-limiter-llm.d.ts +17 -0
  274. package/dist/resilience/rate-limiter-llm.d.ts.map +1 -0
  275. package/dist/resilience/rate-limiter-llm.js +30 -0
  276. package/dist/resilience/rate-limiter-llm.js.map +1 -0
  277. package/dist/resilience/retry-llm.d.ts +32 -0
  278. package/dist/resilience/retry-llm.d.ts.map +1 -0
  279. package/dist/resilience/retry-llm.js +103 -0
  280. package/dist/resilience/retry-llm.js.map +1 -0
  281. package/dist/resilience/token-bucket-rate-limiter.d.ts +21 -0
  282. package/dist/resilience/token-bucket-rate-limiter.d.ts.map +1 -0
  283. package/dist/resilience/token-bucket-rate-limiter.js +32 -0
  284. package/dist/resilience/token-bucket-rate-limiter.js.map +1 -0
  285. package/dist/session/index.d.ts +4 -0
  286. package/dist/session/index.d.ts.map +1 -0
  287. package/dist/session/index.js +3 -0
  288. package/dist/session/index.js.map +1 -0
  289. package/dist/session/noop-session-manager.d.ts +8 -0
  290. package/dist/session/noop-session-manager.d.ts.map +1 -0
  291. package/dist/session/noop-session-manager.js +11 -0
  292. package/dist/session/noop-session-manager.js.map +1 -0
  293. package/dist/session/session-manager.d.ts +13 -0
  294. package/dist/session/session-manager.d.ts.map +1 -0
  295. package/dist/session/session-manager.js +20 -0
  296. package/dist/session/session-manager.js.map +1 -0
  297. package/dist/session/types.d.ts +2 -0
  298. package/dist/session/types.d.ts.map +1 -0
  299. package/dist/session/types.js +2 -0
  300. package/dist/session/types.js.map +1 -0
  301. package/dist/skills/claude-skill-manager.d.ts +24 -0
  302. package/dist/skills/claude-skill-manager.d.ts.map +1 -0
  303. package/dist/skills/claude-skill-manager.js +81 -0
  304. package/dist/skills/claude-skill-manager.js.map +1 -0
  305. package/dist/skills/codex-skill-manager.d.ts +20 -0
  306. package/dist/skills/codex-skill-manager.d.ts.map +1 -0
  307. package/dist/skills/codex-skill-manager.js +75 -0
  308. package/dist/skills/codex-skill-manager.js.map +1 -0
  309. package/dist/skills/filesystem-skill-manager.d.ts +17 -0
  310. package/dist/skills/filesystem-skill-manager.d.ts.map +1 -0
  311. package/dist/skills/filesystem-skill-manager.js +48 -0
  312. package/dist/skills/filesystem-skill-manager.js.map +1 -0
  313. package/dist/skills/filesystem-skill.d.ts +25 -0
  314. package/dist/skills/filesystem-skill.d.ts.map +1 -0
  315. package/dist/skills/filesystem-skill.js +110 -0
  316. package/dist/skills/filesystem-skill.js.map +1 -0
  317. package/dist/skills/index.d.ts +9 -0
  318. package/dist/skills/index.d.ts.map +1 -0
  319. package/dist/skills/index.js +9 -0
  320. package/dist/skills/index.js.map +1 -0
  321. package/dist/skills/skill-utils.d.ts +15 -0
  322. package/dist/skills/skill-utils.d.ts.map +1 -0
  323. package/dist/skills/skill-utils.js +46 -0
  324. package/dist/skills/skill-utils.js.map +1 -0
  325. package/dist/testing/index.d.ts +118 -0
  326. package/dist/testing/index.d.ts.map +1 -0
  327. package/dist/testing/index.js +351 -0
  328. package/dist/testing/index.js.map +1 -0
  329. package/dist/tracer/index.d.ts +3 -0
  330. package/dist/tracer/index.d.ts.map +1 -0
  331. package/dist/tracer/index.js +2 -0
  332. package/dist/tracer/index.js.map +1 -0
  333. package/dist/tracer/noop-tracer.d.ts +5 -0
  334. package/dist/tracer/noop-tracer.d.ts.map +1 -0
  335. package/dist/tracer/noop-tracer.js +16 -0
  336. package/dist/tracer/noop-tracer.js.map +1 -0
  337. package/dist/tracer/types.d.ts +2 -0
  338. package/dist/tracer/types.d.ts.map +1 -0
  339. package/dist/tracer/types.js +2 -0
  340. package/dist/tracer/types.js.map +1 -0
  341. package/dist/utils/lazy.d.ts +51 -0
  342. package/dist/utils/lazy.d.ts.map +1 -0
  343. package/dist/utils/lazy.js +127 -0
  344. package/dist/utils/lazy.js.map +1 -0
  345. package/dist/utils/parse-frontmatter.d.ts +15 -0
  346. package/dist/utils/parse-frontmatter.d.ts.map +1 -0
  347. package/dist/utils/parse-frontmatter.js +22 -0
  348. package/dist/utils/parse-frontmatter.js.map +1 -0
  349. package/dist/validator/index.d.ts +3 -0
  350. package/dist/validator/index.d.ts.map +1 -0
  351. package/dist/validator/index.js +2 -0
  352. package/dist/validator/index.js.map +1 -0
  353. package/dist/validator/noop-validator.d.ts +6 -0
  354. package/dist/validator/noop-validator.d.ts.map +1 -0
  355. package/dist/validator/noop-validator.js +6 -0
  356. package/dist/validator/noop-validator.js.map +1 -0
  357. package/dist/validator/types.d.ts +3 -0
  358. package/dist/validator/types.d.ts.map +1 -0
  359. package/dist/validator/types.js +2 -0
  360. package/dist/validator/types.js.map +1 -0
  361. package/package.json +8 -8
@@ -0,0 +1,123 @@
1
+ /**
2
+ * IPipeline interface and supporting types.
3
+ *
4
+ * A pipeline encapsulates the full request-processing lifecycle for a single
5
+ * SmartAgent invocation. Callers construct a pipeline once (via initialize) and
6
+ * then invoke execute() per request.
7
+ *
8
+ * The two-level architecture separates:
9
+ * - Builder — global DI of long-lived dependencies
10
+ * - IPipeline — per-request orchestration
11
+ */
12
+ import type { CallOptions, IContextAssembler, IEmbedder, IHistoryMemory, IHistorySummarizer, ILlm, ILlmCallStrategy, ILogger, IMcpClient, IQueryExpander, IRag, IRagProviderRegistry, IRagRegistry, IRequestLogger, ISkillManager, ISubpromptClassifier, IToolCache, LlmStreamChunk, LlmTool, Message, Result, TimingEntry } from '@mcp-abap-adt/llm-agent';
13
+ import type { OrchestratorError, SmartAgentConfig } from '../agent.js';
14
+ import type { IMetrics } from '../metrics/types.js';
15
+ import type { IPromptInjectionDetector, IToolPolicy } from '../policy/types.js';
16
+ import type { IReranker } from '../reranker/types.js';
17
+ import type { ISessionManager } from '../session/types.js';
18
+ import type { ITracer } from '../tracer/types.js';
19
+ import type { IOutputValidator } from '../validator/types.js';
20
+ /**
21
+ * All dependencies a pipeline needs to process requests.
22
+ * Passed once to IPipeline.initialize() during startup.
23
+ */
24
+ export interface PipelineDeps {
25
+ /** Primary LLM used for generation. */
26
+ mainLlm: ILlm;
27
+ /** Optional secondary LLM for helper tasks (translation, rewriting, etc.). */
28
+ helperLlm?: ILlm;
29
+ /** LLM used exclusively for intent classification. */
30
+ classifierLlm?: ILlm;
31
+ /** Subprompt classifier that routes requests to RAG stores. */
32
+ classifier?: ISubpromptClassifier;
33
+ /** Context assembler that formats messages for the LLM. */
34
+ assembler?: IContextAssembler;
35
+ /** Connected MCP clients. */
36
+ mcpClients: IMcpClient[];
37
+ /** Reranker applied to RAG results. */
38
+ reranker?: IReranker;
39
+ /** Query expander for multi-query RAG retrieval. */
40
+ queryExpander?: IQueryExpander;
41
+ /** Cache for tool call results. */
42
+ toolCache?: IToolCache;
43
+ /** Validates LLM output before returning it to the consumer. */
44
+ outputValidator?: IOutputValidator;
45
+ /** Manages per-session conversation state. */
46
+ sessionManager?: ISessionManager;
47
+ /** Distributed tracing provider. */
48
+ tracer?: ITracer;
49
+ /** Metrics provider for instrumentation. */
50
+ metrics?: IMetrics;
51
+ /** Optional structured logger. */
52
+ logger?: ILogger;
53
+ /** Logs all LLM calls and RAG queries for the request. */
54
+ requestLogger?: IRequestLogger;
55
+ /** Optional tool access policy. */
56
+ toolPolicy?: IToolPolicy;
57
+ /** Optional prompt injection detector. */
58
+ injectionDetector?: IPromptInjectionDetector;
59
+ /** Optional skill manager for slash-command resolution. */
60
+ skillManager?: ISkillManager;
61
+ /** Optional embedder for on-the-fly embedding operations. */
62
+ embedder?: IEmbedder;
63
+ /** Optional persistent history memory across sessions. */
64
+ historyMemory?: IHistoryMemory;
65
+ /** Optional history summarizer to compress long conversations. */
66
+ historySummarizer?: IHistorySummarizer;
67
+ /** Strategy controlling whether to use streaming or non-streaming LLM calls. */
68
+ llmCallStrategy?: ILlmCallStrategy;
69
+ /** Agent config snapshot — forwarded to pipeline context for stage handlers. */
70
+ agentConfig?: SmartAgentConfig;
71
+ /** RAG store used for tool retrieval. */
72
+ toolsRag?: IRag;
73
+ /** RAG store used for history retrieval. */
74
+ historyRag?: IRag;
75
+ /** Full record of RAG stores (tools, history, and any custom stores). */
76
+ ragStores?: Record<string, IRag>;
77
+ /** Registry of RAG collections (v9.1+). When present, ragStores is a live projection. */
78
+ ragRegistry?: IRagRegistry;
79
+ /** Registry of RAG providers for dynamic collection creation (v9.1+). */
80
+ ragProviderRegistry?: IRagProviderRegistry;
81
+ }
82
+ /**
83
+ * Outcome of a single pipeline execution.
84
+ */
85
+ export interface PipelineResult {
86
+ /** Per-phase timing breakdown collected during execution. */
87
+ timing: TimingEntry[];
88
+ /** Set when a stage aborted the pipeline with an error. */
89
+ error?: OrchestratorError;
90
+ }
91
+ /**
92
+ * Contract for request-processing pipelines.
93
+ *
94
+ * Implementations orchestrate the full lifecycle of a SmartAgent request:
95
+ * classification → RAG retrieval → context assembly → LLM call → tool loop.
96
+ *
97
+ * DefaultPipeline (Task 5) implements this interface and replaces the current
98
+ * PipelineExecutor + YAML stage tree.
99
+ */
100
+ export interface IPipeline {
101
+ /**
102
+ * Inject dependencies into the pipeline.
103
+ * Called once after construction, before the first execute() call.
104
+ */
105
+ initialize(deps: PipelineDeps): void;
106
+ /**
107
+ * Process a single request end-to-end and stream results to the caller.
108
+ *
109
+ * @param input - User input as a string or pre-built message array.
110
+ * @param history - Conversation history to include in the request.
111
+ * @param options - Per-request call options (session, signal, model, etc.).
112
+ * @param yieldChunk - Callback invoked for each streamed result chunk.
113
+ * @param externalTools - Normalized external tools to include alongside MCP tools.
114
+ * @returns Final PipelineResult with timing and optional error.
115
+ */
116
+ execute(input: string | Message[], history: Message[], options: CallOptions | undefined, yieldChunk: (chunk: Result<LlmStreamChunk, OrchestratorError>) => void, externalTools?: LlmTool[]): Promise<PipelineResult>;
117
+ /**
118
+ * Rebuild internal stage definitions.
119
+ * Called when RAG stores are added/removed at runtime.
120
+ */
121
+ rebuildStages?(): void;
122
+ }
123
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/interfaces/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * IPipeline interface and supporting types.
3
+ *
4
+ * A pipeline encapsulates the full request-processing lifecycle for a single
5
+ * SmartAgent invocation. Callers construct a pipeline once (via initialize) and
6
+ * then invoke execute() per request.
7
+ *
8
+ * The two-level architecture separates:
9
+ * - Builder — global DI of long-lived dependencies
10
+ * - IPipeline — per-request orchestration
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/interfaces/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,7 @@
1
+ import type { ILogger, LogEvent } from '@mcp-abap-adt/llm-agent';
2
+ export declare class ConsoleLogger implements ILogger {
3
+ private readonly enabled;
4
+ constructor(enabled?: boolean);
5
+ log(event: LogEvent): void;
6
+ }
7
+ //# sourceMappingURL=console-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,CAAC,EAAE,OAAO;IAI7B,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAM3B"}
@@ -0,0 +1,12 @@
1
+ export class ConsoleLogger {
2
+ enabled;
3
+ constructor(enabled) {
4
+ this.enabled = enabled ?? process.env.DEBUG_SMART_AGENT === 'true';
5
+ }
6
+ log(event) {
7
+ if (!this.enabled)
8
+ return;
9
+ process.stderr.write(`${JSON.stringify({ timestamp: new Date().toISOString(), ...event })}\n`);
10
+ }
11
+ }
12
+ //# sourceMappingURL=console-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/logger/console-logger.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACP,OAAO,CAAU;IAElC,YAAY,OAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;IACrE,CAAC;IAED,GAAG,CAAC,KAAe;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CACzE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { IRequestLogger, LlmCallEntry, RagQueryEntry, RequestSummary, ToolCallEntry } from '@mcp-abap-adt/llm-agent';
2
+ export declare class DefaultRequestLogger implements IRequestLogger {
3
+ private initLlmCalls;
4
+ private requestLlmCalls;
5
+ private ragQueryEntries;
6
+ private toolCallEntries;
7
+ private requestStartMs;
8
+ private requestDurationMs;
9
+ startRequest(): void;
10
+ endRequest(): void;
11
+ logLlmCall(entry: LlmCallEntry): void;
12
+ logRagQuery(entry: RagQueryEntry): void;
13
+ logToolCall(entry: ToolCallEntry): void;
14
+ getSummary(): RequestSummary;
15
+ reset(): void;
16
+ }
17
+ //# sourceMappingURL=default-request-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-request-logger.d.ts","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,aAAa,EACb,cAAc,EAGd,aAAa,EACd,MAAM,yBAAyB,CAAC;AAsBjC,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,YAAY,IAAI,IAAI;IAQpB,UAAU,IAAI,IAAI;IAMlB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAQrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIvC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIvC,UAAU,IAAI,cAAc;IA8B5B,KAAK,IAAI,IAAI;CAQd"}
@@ -0,0 +1,86 @@
1
+ const CATEGORY_MAP = {
2
+ 'tool-loop': 'request',
3
+ classifier: 'auxiliary',
4
+ translate: 'auxiliary',
5
+ 'query-expander': 'auxiliary',
6
+ helper: 'auxiliary',
7
+ embedding: 'initialization',
8
+ };
9
+ function emptyBucket() {
10
+ return { promptTokens: 0, completionTokens: 0, totalTokens: 0, requests: 0 };
11
+ }
12
+ function addToBucket(bucket, entry) {
13
+ bucket.promptTokens += entry.promptTokens;
14
+ bucket.completionTokens += entry.completionTokens;
15
+ bucket.totalTokens += entry.totalTokens;
16
+ bucket.requests++;
17
+ }
18
+ export class DefaultRequestLogger {
19
+ initLlmCalls = [];
20
+ requestLlmCalls = [];
21
+ ragQueryEntries = [];
22
+ toolCallEntries = [];
23
+ requestStartMs = 0;
24
+ requestDurationMs = 0;
25
+ startRequest() {
26
+ this.requestLlmCalls = [];
27
+ this.ragQueryEntries = [];
28
+ this.toolCallEntries = [];
29
+ this.requestDurationMs = 0;
30
+ this.requestStartMs = Date.now();
31
+ }
32
+ endRequest() {
33
+ this.requestDurationMs = this.requestStartMs
34
+ ? Date.now() - this.requestStartMs
35
+ : 0;
36
+ }
37
+ logLlmCall(entry) {
38
+ if (entry.scope === 'initialization') {
39
+ this.initLlmCalls.push(entry);
40
+ }
41
+ else {
42
+ this.requestLlmCalls.push(entry);
43
+ }
44
+ }
45
+ logRagQuery(entry) {
46
+ this.ragQueryEntries.push(entry);
47
+ }
48
+ logToolCall(entry) {
49
+ this.toolCallEntries.push(entry);
50
+ }
51
+ getSummary() {
52
+ const byModel = {};
53
+ const byComponent = {};
54
+ const byCategory = {};
55
+ const allCalls = [...this.initLlmCalls, ...this.requestLlmCalls];
56
+ for (const call of allCalls) {
57
+ if (!byModel[call.model])
58
+ byModel[call.model] = emptyBucket();
59
+ addToBucket(byModel[call.model], call);
60
+ if (!byComponent[call.component])
61
+ byComponent[call.component] = emptyBucket();
62
+ addToBucket(byComponent[call.component], call);
63
+ const cat = CATEGORY_MAP[call.component] ?? 'request';
64
+ if (!byCategory[cat])
65
+ byCategory[cat] = emptyBucket();
66
+ addToBucket(byCategory[cat], call);
67
+ }
68
+ return {
69
+ byModel,
70
+ byComponent,
71
+ byCategory,
72
+ ragQueries: this.ragQueryEntries.length,
73
+ toolCalls: this.toolCallEntries.length,
74
+ totalDurationMs: this.requestDurationMs,
75
+ };
76
+ }
77
+ reset() {
78
+ this.requestLlmCalls = [];
79
+ this.ragQueryEntries = [];
80
+ this.toolCallEntries = [];
81
+ this.requestStartMs = 0;
82
+ this.requestDurationMs = 0;
83
+ // NOTE: initLlmCalls is intentionally NOT reset
84
+ }
85
+ }
86
+ //# sourceMappingURL=default-request-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-request-logger.js","sourceRoot":"","sources":["../../src/logger/default-request-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { ILogger, LogEvent } from '@mcp-abap-adt/llm-agent';
2
+ export { ConsoleLogger } from './console-logger.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ConsoleLogger } from './console-logger.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IRequestLogger, LlmCallEntry, RagQueryEntry, RequestSummary, ToolCallEntry } from '@mcp-abap-adt/llm-agent';
2
+ export declare class NoopRequestLogger implements IRequestLogger {
3
+ logLlmCall(_entry: LlmCallEntry): void;
4
+ logRagQuery(_entry: RagQueryEntry): void;
5
+ logToolCall(_entry: ToolCallEntry): void;
6
+ startRequest(): void;
7
+ endRequest(): void;
8
+ getSummary(): RequestSummary;
9
+ reset(): void;
10
+ }
11
+ //# sourceMappingURL=noop-request-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-request-logger.d.ts","sourceRoot":"","sources":["../../src/logger/noop-request-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAC;AAWjC,qBAAa,iBAAkB,YAAW,cAAc;IACtD,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IACtC,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IACxC,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IACxC,YAAY,IAAI,IAAI;IACpB,UAAU,IAAI,IAAI;IAClB,UAAU,IAAI,cAAc;IAG5B,KAAK,IAAI,IAAI;CACd"}
@@ -0,0 +1,20 @@
1
+ const EMPTY_SUMMARY = {
2
+ byModel: {},
3
+ byComponent: {},
4
+ byCategory: {},
5
+ ragQueries: 0,
6
+ toolCalls: 0,
7
+ totalDurationMs: 0,
8
+ };
9
+ export class NoopRequestLogger {
10
+ logLlmCall(_entry) { }
11
+ logRagQuery(_entry) { }
12
+ logToolCall(_entry) { }
13
+ startRequest() { }
14
+ endRequest() { }
15
+ getSummary() {
16
+ return { ...EMPTY_SUMMARY, byModel: {}, byComponent: {}, byCategory: {} };
17
+ }
18
+ reset() { }
19
+ }
20
+ //# sourceMappingURL=noop-request-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-request-logger.js","sourceRoot":"","sources":["../../src/logger/noop-request-logger.ts"],"names":[],"mappings":"AAQA,MAAM,aAAa,GAAmB;IACpC,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,OAAO,iBAAiB;IAC5B,UAAU,CAAC,MAAoB,IAAS,CAAC;IACzC,WAAW,CAAC,MAAqB,IAAS,CAAC;IAC3C,WAAW,CAAC,MAAqB,IAAS,CAAC;IAC3C,YAAY,KAAU,CAAC;IACvB,UAAU,KAAU,CAAC;IACrB,UAAU;QACR,OAAO,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5E,CAAC;IACD,KAAK,KAAU,CAAC;CACjB"}
@@ -0,0 +1,10 @@
1
+ export declare class SessionLogger {
2
+ private readonly baseLogDir;
3
+ private readonly sessionId;
4
+ private readonly traceId;
5
+ private requestDir;
6
+ private fileIndex;
7
+ constructor(baseLogDir: string | null, sessionId: string, traceId: string);
8
+ logStep(name: string, data: unknown): void;
9
+ }
10
+ //# sourceMappingURL=session-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-logger.d.ts","sourceRoot":"","sources":["../../src/logger/session-logger.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAK;gBAGH,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;IAmBlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAa3C"}
@@ -0,0 +1,40 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ export class SessionLogger {
4
+ baseLogDir;
5
+ sessionId;
6
+ traceId;
7
+ requestDir = null;
8
+ fileIndex = 1;
9
+ constructor(baseLogDir, sessionId, traceId) {
10
+ this.baseLogDir = baseLogDir;
11
+ this.sessionId = sessionId;
12
+ this.traceId = traceId;
13
+ if (!this.baseLogDir)
14
+ return;
15
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
16
+ const sessionPath = path.join(this.baseLogDir, `session_${this.sessionId}`);
17
+ this.requestDir = path.join(sessionPath, `req_${timestamp}_${this.traceId}`);
18
+ try {
19
+ fs.mkdirSync(this.requestDir, { recursive: true });
20
+ }
21
+ catch (err) {
22
+ console.error(`Failed to create log directory: ${this.requestDir}`, err);
23
+ this.requestDir = null;
24
+ }
25
+ }
26
+ logStep(name, data) {
27
+ if (!this.requestDir)
28
+ return;
29
+ const fileName = `${String(this.fileIndex).padStart(2, '0')}_${name}.json`;
30
+ const filePath = path.join(this.requestDir, fileName);
31
+ try {
32
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf8');
33
+ this.fileIndex++;
34
+ }
35
+ catch (err) {
36
+ console.error(`Failed to write log file: ${filePath}`, err);
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=session-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-logger.js","sourceRoot":"","sources":["../../src/logger/session-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,aAAa;IAKL;IACA;IACA;IANX,UAAU,GAAkB,IAAI,CAAC;IACjC,SAAS,GAAG,CAAC,CAAC;IAEtB,YACmB,UAAyB,EACzB,SAAiB,EACjB,OAAe;QAFf,eAAU,GAAV,UAAU,CAAe;QACzB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QAEhC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CACzB,WAAW,EACX,OAAO,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CACnC,CAAC;QAEF,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import type { CounterSnapshot, HistogramSnapshot, ICounter, IHistogram, IMetrics, MetricsSnapshot } from '@mcp-abap-adt/llm-agent';
2
+ export type { CounterSnapshot, HistogramSnapshot, MetricsSnapshot };
3
+ declare class MemCounter implements ICounter {
4
+ private total;
5
+ private readonly byAttrs;
6
+ add(value?: number, attributes?: Record<string, string>): void;
7
+ snapshot(): CounterSnapshot;
8
+ }
9
+ declare class MemHistogram implements IHistogram {
10
+ private readonly values;
11
+ record(value: number, _attributes?: Record<string, string>): void;
12
+ snapshot(): HistogramSnapshot;
13
+ /** Return the p-th percentile (0..100). */
14
+ percentile(p: number): number;
15
+ }
16
+ /**
17
+ * In-memory metrics collector — useful for testing and diagnostics endpoints.
18
+ * Call `snapshot()` to get a point-in-time view of all metrics.
19
+ */
20
+ export declare class InMemoryMetrics implements IMetrics {
21
+ readonly requestCount: MemCounter;
22
+ readonly requestLatency: MemHistogram;
23
+ readonly toolCallCount: MemCounter;
24
+ readonly ragQueryCount: MemCounter;
25
+ readonly classifierIntentCount: MemCounter;
26
+ readonly llmCallCount: MemCounter;
27
+ readonly llmCallLatency: MemHistogram;
28
+ readonly circuitBreakerTransition: MemCounter;
29
+ readonly toolCacheHitCount: MemCounter;
30
+ snapshot(): MetricsSnapshot;
31
+ /** Convenience: get p-th percentile of request latency. */
32
+ requestLatencyPercentile(p: number): number;
33
+ /** Convenience: get p-th percentile of LLM call latency. */
34
+ llmCallLatencyPercentile(p: number): number;
35
+ }
36
+ //# sourceMappingURL=in-memory-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAMpE,cAAM,UAAW,YAAW,QAAQ;IAClC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,GAAG,CAAC,KAAK,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWzD,QAAQ,IAAI,eAAe;CAG5B;AAMD,cAAM,YAAa,YAAW,UAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjE,QAAQ,IAAI,iBAAiB;IAW7B,2CAA2C;IAC3C,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAM9B;AAMD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,YAAY,aAAoB;IACzC,QAAQ,CAAC,cAAc,eAAsB;IAC7C,QAAQ,CAAC,aAAa,aAAoB;IAC1C,QAAQ,CAAC,aAAa,aAAoB;IAC1C,QAAQ,CAAC,qBAAqB,aAAoB;IAClD,QAAQ,CAAC,YAAY,aAAoB;IACzC,QAAQ,CAAC,cAAc,eAAsB;IAC7C,QAAQ,CAAC,wBAAwB,aAAoB;IACrD,QAAQ,CAAC,iBAAiB,aAAoB;IAE9C,QAAQ,IAAI,eAAe;IAc3B,2DAA2D;IAC3D,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3C,4DAA4D;IAC5D,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAG5C"}
@@ -0,0 +1,87 @@
1
+ // ---------------------------------------------------------------------------
2
+ // In-memory counter (implementation only — types re-exported from @mcp-abap-adt/llm-agent)
3
+ // ---------------------------------------------------------------------------
4
+ class MemCounter {
5
+ total = 0;
6
+ byAttrs = new Map();
7
+ add(value = 1, attributes) {
8
+ this.total += value;
9
+ if (attributes) {
10
+ const key = Object.entries(attributes)
11
+ .sort(([a], [b]) => a.localeCompare(b))
12
+ .map(([k, v]) => `${k}=${v}`)
13
+ .join(',');
14
+ this.byAttrs.set(key, (this.byAttrs.get(key) ?? 0) + value);
15
+ }
16
+ }
17
+ snapshot() {
18
+ return { total: this.total, byAttributes: new Map(this.byAttrs) };
19
+ }
20
+ }
21
+ // ---------------------------------------------------------------------------
22
+ // In-memory histogram
23
+ // ---------------------------------------------------------------------------
24
+ class MemHistogram {
25
+ values = [];
26
+ record(value, _attributes) {
27
+ this.values.push(value);
28
+ }
29
+ snapshot() {
30
+ const sorted = [...this.values].sort((a, b) => a - b);
31
+ return {
32
+ count: sorted.length,
33
+ sum: sorted.reduce((a, b) => a + b, 0),
34
+ min: sorted.length > 0 ? sorted[0] : 0,
35
+ max: sorted.length > 0 ? sorted[sorted.length - 1] : 0,
36
+ values: sorted,
37
+ };
38
+ }
39
+ /** Return the p-th percentile (0..100). */
40
+ percentile(p) {
41
+ if (this.values.length === 0)
42
+ return 0;
43
+ const sorted = [...this.values].sort((a, b) => a - b);
44
+ const idx = Math.ceil((p / 100) * sorted.length) - 1;
45
+ return sorted[Math.max(0, idx)];
46
+ }
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // InMemoryMetrics
50
+ // ---------------------------------------------------------------------------
51
+ /**
52
+ * In-memory metrics collector — useful for testing and diagnostics endpoints.
53
+ * Call `snapshot()` to get a point-in-time view of all metrics.
54
+ */
55
+ export class InMemoryMetrics {
56
+ requestCount = new MemCounter();
57
+ requestLatency = new MemHistogram();
58
+ toolCallCount = new MemCounter();
59
+ ragQueryCount = new MemCounter();
60
+ classifierIntentCount = new MemCounter();
61
+ llmCallCount = new MemCounter();
62
+ llmCallLatency = new MemHistogram();
63
+ circuitBreakerTransition = new MemCounter();
64
+ toolCacheHitCount = new MemCounter();
65
+ snapshot() {
66
+ return {
67
+ requestCount: this.requestCount.snapshot(),
68
+ requestLatency: this.requestLatency.snapshot(),
69
+ toolCallCount: this.toolCallCount.snapshot(),
70
+ ragQueryCount: this.ragQueryCount.snapshot(),
71
+ classifierIntentCount: this.classifierIntentCount.snapshot(),
72
+ llmCallCount: this.llmCallCount.snapshot(),
73
+ llmCallLatency: this.llmCallLatency.snapshot(),
74
+ circuitBreakerTransition: this.circuitBreakerTransition.snapshot(),
75
+ toolCacheHitCount: this.toolCacheHitCount.snapshot(),
76
+ };
77
+ }
78
+ /** Convenience: get p-th percentile of request latency. */
79
+ requestLatencyPercentile(p) {
80
+ return this.requestLatency.percentile(p);
81
+ }
82
+ /** Convenience: get p-th percentile of LLM call latency. */
83
+ llmCallLatencyPercentile(p) {
84
+ return this.llmCallLatency.percentile(p);
85
+ }
86
+ }
87
+ //# sourceMappingURL=in-memory-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-metrics.js","sourceRoot":"","sources":["../../src/metrics/in-memory-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { type CounterSnapshot, type HistogramSnapshot, InMemoryMetrics, type MetricsSnapshot, } from './in-memory-metrics.js';
2
+ export { NoopMetrics } from './noop-metrics.js';
3
+ export type { ICounter, IHistogram, IMetrics } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { InMemoryMetrics, } from './in-memory-metrics.js';
2
+ export { NoopMetrics } from './noop-metrics.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ICounter, IHistogram, IMetrics } from './types.js';
2
+ /**
3
+ * No-op metrics implementation — zero overhead.
4
+ * Used as the default when no metrics provider is configured.
5
+ */
6
+ export declare class NoopMetrics implements IMetrics {
7
+ readonly requestCount: ICounter;
8
+ readonly requestLatency: IHistogram;
9
+ readonly toolCallCount: ICounter;
10
+ readonly ragQueryCount: ICounter;
11
+ readonly classifierIntentCount: ICounter;
12
+ readonly llmCallCount: ICounter;
13
+ readonly llmCallLatency: IHistogram;
14
+ readonly circuitBreakerTransition: ICounter;
15
+ readonly toolCacheHitCount: ICounter;
16
+ }
17
+ //# sourceMappingURL=noop-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/noop-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUjE;;;GAGG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAe;IAC9C,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAiB;IACpD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAe;IAC/C,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAe;IAC/C,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAe;IACvD,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAe;IAC9C,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAiB;IACpD,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAe;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAe;CACpD"}
@@ -0,0 +1,22 @@
1
+ const noopCounter = {
2
+ add() { },
3
+ };
4
+ const noopHistogram = {
5
+ record() { },
6
+ };
7
+ /**
8
+ * No-op metrics implementation — zero overhead.
9
+ * Used as the default when no metrics provider is configured.
10
+ */
11
+ export class NoopMetrics {
12
+ requestCount = noopCounter;
13
+ requestLatency = noopHistogram;
14
+ toolCallCount = noopCounter;
15
+ ragQueryCount = noopCounter;
16
+ classifierIntentCount = noopCounter;
17
+ llmCallCount = noopCounter;
18
+ llmCallLatency = noopHistogram;
19
+ circuitBreakerTransition = noopCounter;
20
+ toolCacheHitCount = noopCounter;
21
+ }
22
+ //# sourceMappingURL=noop-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-metrics.js","sourceRoot":"","sources":["../../src/metrics/noop-metrics.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAa;IAC5B,GAAG,KAAI,CAAC;CACT,CAAC;AAEF,MAAM,aAAa,GAAe;IAChC,MAAM,KAAI,CAAC;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,WAAW;IACb,YAAY,GAAa,WAAW,CAAC;IACrC,cAAc,GAAe,aAAa,CAAC;IAC3C,aAAa,GAAa,WAAW,CAAC;IACtC,aAAa,GAAa,WAAW,CAAC;IACtC,qBAAqB,GAAa,WAAW,CAAC;IAC9C,YAAY,GAAa,WAAW,CAAC;IACrC,cAAc,GAAe,aAAa,CAAC;IAC3C,wBAAwB,GAAa,WAAW,CAAC;IACjD,iBAAiB,GAAa,WAAW,CAAC;CACpD"}
@@ -0,0 +1,2 @@
1
+ export type { CounterSnapshot, HistogramSnapshot, ICounter, IHistogram, IMetrics, MetricsSnapshot, } from '@mcp-abap-adt/llm-agent';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":""}