@mcp-abap-adt/llm-agent-server 10.0.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 (566) hide show
  1. package/README.md +13 -0
  2. package/bin/llm-agent +2 -0
  3. package/bin/llm-agent-check +2 -0
  4. package/dist/agent.d.ts +49 -0
  5. package/dist/agent.d.ts.map +1 -0
  6. package/dist/agent.js +97 -0
  7. package/dist/agent.js.map +1 -0
  8. package/dist/agents/anthropic-agent.d.ts +33 -0
  9. package/dist/agents/anthropic-agent.d.ts.map +1 -0
  10. package/dist/agents/anthropic-agent.js +138 -0
  11. package/dist/agents/anthropic-agent.js.map +1 -0
  12. package/dist/agents/base.d.ts +90 -0
  13. package/dist/agents/base.d.ts.map +1 -0
  14. package/dist/agents/base.js +107 -0
  15. package/dist/agents/base.js.map +1 -0
  16. package/dist/agents/deepseek-agent.d.ts +31 -0
  17. package/dist/agents/deepseek-agent.d.ts.map +1 -0
  18. package/dist/agents/deepseek-agent.js +121 -0
  19. package/dist/agents/deepseek-agent.js.map +1 -0
  20. package/dist/agents/index.d.ts +10 -0
  21. package/dist/agents/index.d.ts.map +1 -0
  22. package/dist/agents/index.js +10 -0
  23. package/dist/agents/index.js.map +1 -0
  24. package/dist/agents/openai-agent.d.ts +32 -0
  25. package/dist/agents/openai-agent.d.ts.map +1 -0
  26. package/dist/agents/openai-agent.js +122 -0
  27. package/dist/agents/openai-agent.js.map +1 -0
  28. package/dist/agents/prompt-based-agent.d.ts +29 -0
  29. package/dist/agents/prompt-based-agent.d.ts.map +1 -0
  30. package/dist/agents/prompt-based-agent.js +67 -0
  31. package/dist/agents/prompt-based-agent.js.map +1 -0
  32. package/dist/agents/sap-core-ai-agent.d.ts +41 -0
  33. package/dist/agents/sap-core-ai-agent.d.ts.map +1 -0
  34. package/dist/agents/sap-core-ai-agent.js +151 -0
  35. package/dist/agents/sap-core-ai-agent.js.map +1 -0
  36. package/dist/cli.d.ts +53 -0
  37. package/dist/cli.d.ts.map +1 -0
  38. package/dist/cli.js +338 -0
  39. package/dist/cli.js.map +1 -0
  40. package/dist/generated/version.d.ts +2 -0
  41. package/dist/generated/version.d.ts.map +1 -0
  42. package/dist/generated/version.js +3 -0
  43. package/dist/generated/version.js.map +1 -0
  44. package/dist/index.d.ts +75 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +78 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/llm-providers/anthropic.d.ts +25 -0
  49. package/dist/llm-providers/anthropic.d.ts.map +1 -0
  50. package/dist/llm-providers/anthropic.js +202 -0
  51. package/dist/llm-providers/anthropic.js.map +1 -0
  52. package/dist/llm-providers/base.d.ts +33 -0
  53. package/dist/llm-providers/base.d.ts.map +1 -0
  54. package/dist/llm-providers/base.js +18 -0
  55. package/dist/llm-providers/base.js.map +1 -0
  56. package/dist/llm-providers/deepseek.d.ts +24 -0
  57. package/dist/llm-providers/deepseek.d.ts.map +1 -0
  58. package/dist/llm-providers/deepseek.js +60 -0
  59. package/dist/llm-providers/deepseek.js.map +1 -0
  60. package/dist/llm-providers/index.d.ts +13 -0
  61. package/dist/llm-providers/index.d.ts.map +1 -0
  62. package/dist/llm-providers/index.js +15 -0
  63. package/dist/llm-providers/index.js.map +1 -0
  64. package/dist/llm-providers/openai.d.ts +34 -0
  65. package/dist/llm-providers/openai.d.ts.map +1 -0
  66. package/dist/llm-providers/openai.js +193 -0
  67. package/dist/llm-providers/openai.js.map +1 -0
  68. package/dist/llm-providers/sap-core-ai.d.ts +90 -0
  69. package/dist/llm-providers/sap-core-ai.d.ts.map +1 -0
  70. package/dist/llm-providers/sap-core-ai.js +394 -0
  71. package/dist/llm-providers/sap-core-ai.js.map +1 -0
  72. package/dist/mcp/client.d.ts +133 -0
  73. package/dist/mcp/client.d.ts.map +1 -0
  74. package/dist/mcp/client.js +314 -0
  75. package/dist/mcp/client.js.map +1 -0
  76. package/dist/smart-agent/adapters/cline-client-adapter.d.ts +18 -0
  77. package/dist/smart-agent/adapters/cline-client-adapter.d.ts.map +1 -0
  78. package/dist/smart-agent/adapters/cline-client-adapter.js +21 -0
  79. package/dist/smart-agent/adapters/cline-client-adapter.js.map +1 -0
  80. package/dist/smart-agent/adapters/index.d.ts +3 -0
  81. package/dist/smart-agent/adapters/index.d.ts.map +1 -0
  82. package/dist/smart-agent/adapters/index.js +3 -0
  83. package/dist/smart-agent/adapters/index.js.map +1 -0
  84. package/dist/smart-agent/adapters/llm-adapter.d.ts +24 -0
  85. package/dist/smart-agent/adapters/llm-adapter.d.ts.map +1 -0
  86. package/dist/smart-agent/adapters/llm-adapter.js +345 -0
  87. package/dist/smart-agent/adapters/llm-adapter.js.map +1 -0
  88. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts +16 -0
  89. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts.map +1 -0
  90. package/dist/smart-agent/adapters/mcp-client-adapter.js +95 -0
  91. package/dist/smart-agent/adapters/mcp-client-adapter.js.map +1 -0
  92. package/dist/smart-agent/adapters/non-streaming-llm.d.ts +18 -0
  93. package/dist/smart-agent/adapters/non-streaming-llm.d.ts.map +1 -0
  94. package/dist/smart-agent/adapters/non-streaming-llm.js +44 -0
  95. package/dist/smart-agent/adapters/non-streaming-llm.js.map +1 -0
  96. package/dist/smart-agent/agent.d.ts +229 -0
  97. package/dist/smart-agent/agent.d.ts.map +1 -0
  98. package/dist/smart-agent/agent.js +1538 -0
  99. package/dist/smart-agent/agent.js.map +1 -0
  100. package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts +10 -0
  101. package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts.map +1 -0
  102. package/dist/smart-agent/api-adapters/anthropic-adapter.js +356 -0
  103. package/dist/smart-agent/api-adapters/anthropic-adapter.js.map +1 -0
  104. package/dist/smart-agent/api-adapters/index.d.ts +3 -0
  105. package/dist/smart-agent/api-adapters/index.d.ts.map +1 -0
  106. package/dist/smart-agent/api-adapters/index.js +3 -0
  107. package/dist/smart-agent/api-adapters/index.js.map +1 -0
  108. package/dist/smart-agent/api-adapters/openai-adapter.d.ts +10 -0
  109. package/dist/smart-agent/api-adapters/openai-adapter.d.ts.map +1 -0
  110. package/dist/smart-agent/api-adapters/openai-adapter.js +277 -0
  111. package/dist/smart-agent/api-adapters/openai-adapter.js.map +1 -0
  112. package/dist/smart-agent/builder.d.ts +281 -0
  113. package/dist/smart-agent/builder.d.ts.map +1 -0
  114. package/dist/smart-agent/builder.js +942 -0
  115. package/dist/smart-agent/builder.js.map +1 -0
  116. package/dist/smart-agent/cache/index.d.ts +4 -0
  117. package/dist/smart-agent/cache/index.d.ts.map +1 -0
  118. package/dist/smart-agent/cache/index.js +3 -0
  119. package/dist/smart-agent/cache/index.js.map +1 -0
  120. package/dist/smart-agent/cache/noop-tool-cache.d.ts +7 -0
  121. package/dist/smart-agent/cache/noop-tool-cache.d.ts.map +1 -0
  122. package/dist/smart-agent/cache/noop-tool-cache.js +8 -0
  123. package/dist/smart-agent/cache/noop-tool-cache.js.map +1 -0
  124. package/dist/smart-agent/cache/tool-cache.d.ts +14 -0
  125. package/dist/smart-agent/cache/tool-cache.d.ts.map +1 -0
  126. package/dist/smart-agent/cache/tool-cache.js +32 -0
  127. package/dist/smart-agent/cache/tool-cache.js.map +1 -0
  128. package/dist/smart-agent/cache/types.d.ts +7 -0
  129. package/dist/smart-agent/cache/types.d.ts.map +1 -0
  130. package/dist/smart-agent/cache/types.js +2 -0
  131. package/dist/smart-agent/cache/types.js.map +1 -0
  132. package/dist/smart-agent/check-models-cli.d.ts +14 -0
  133. package/dist/smart-agent/check-models-cli.d.ts.map +1 -0
  134. package/dist/smart-agent/check-models-cli.js +237 -0
  135. package/dist/smart-agent/check-models-cli.js.map +1 -0
  136. package/dist/smart-agent/classifier/index.d.ts +3 -0
  137. package/dist/smart-agent/classifier/index.d.ts.map +1 -0
  138. package/dist/smart-agent/classifier/index.js +2 -0
  139. package/dist/smart-agent/classifier/index.js.map +1 -0
  140. package/dist/smart-agent/classifier/llm-classifier.d.ts +20 -0
  141. package/dist/smart-agent/classifier/llm-classifier.d.ts.map +1 -0
  142. package/dist/smart-agent/classifier/llm-classifier.js +128 -0
  143. package/dist/smart-agent/classifier/llm-classifier.js.map +1 -0
  144. package/dist/smart-agent/cli.d.ts +65 -0
  145. package/dist/smart-agent/cli.d.ts.map +1 -0
  146. package/dist/smart-agent/cli.js +199 -0
  147. package/dist/smart-agent/cli.js.map +1 -0
  148. package/dist/smart-agent/config/config-watcher.d.ts +54 -0
  149. package/dist/smart-agent/config/config-watcher.d.ts.map +1 -0
  150. package/dist/smart-agent/config/config-watcher.js +107 -0
  151. package/dist/smart-agent/config/config-watcher.js.map +1 -0
  152. package/dist/smart-agent/config/index.d.ts +2 -0
  153. package/dist/smart-agent/config/index.d.ts.map +1 -0
  154. package/dist/smart-agent/config/index.js +2 -0
  155. package/dist/smart-agent/config/index.js.map +1 -0
  156. package/dist/smart-agent/config.d.ts +35 -0
  157. package/dist/smart-agent/config.d.ts.map +1 -0
  158. package/dist/smart-agent/config.js +360 -0
  159. package/dist/smart-agent/config.js.map +1 -0
  160. package/dist/smart-agent/context/context-assembler.d.ts +49 -0
  161. package/dist/smart-agent/context/context-assembler.d.ts.map +1 -0
  162. package/dist/smart-agent/context/context-assembler.js +184 -0
  163. package/dist/smart-agent/context/context-assembler.js.map +1 -0
  164. package/dist/smart-agent/context/index.d.ts +3 -0
  165. package/dist/smart-agent/context/index.d.ts.map +1 -0
  166. package/dist/smart-agent/context/index.js +2 -0
  167. package/dist/smart-agent/context/index.js.map +1 -0
  168. package/dist/smart-agent/health/health-checker.d.ts +21 -0
  169. package/dist/smart-agent/health/health-checker.d.ts.map +1 -0
  170. package/dist/smart-agent/health/health-checker.js +52 -0
  171. package/dist/smart-agent/health/health-checker.js.map +1 -0
  172. package/dist/smart-agent/health/index.d.ts +3 -0
  173. package/dist/smart-agent/health/index.d.ts.map +1 -0
  174. package/dist/smart-agent/health/index.js +2 -0
  175. package/dist/smart-agent/health/index.js.map +1 -0
  176. package/dist/smart-agent/health/types.d.ts +25 -0
  177. package/dist/smart-agent/health/types.d.ts.map +1 -0
  178. package/dist/smart-agent/health/types.js +2 -0
  179. package/dist/smart-agent/health/types.js.map +1 -0
  180. package/dist/smart-agent/history/history-memory.d.ts +12 -0
  181. package/dist/smart-agent/history/history-memory.d.ts.map +1 -0
  182. package/dist/smart-agent/history/history-memory.js +26 -0
  183. package/dist/smart-agent/history/history-memory.js.map +1 -0
  184. package/dist/smart-agent/history/history-summarizer.d.ts +10 -0
  185. package/dist/smart-agent/history/history-summarizer.d.ts.map +1 -0
  186. package/dist/smart-agent/history/history-summarizer.js +27 -0
  187. package/dist/smart-agent/history/history-summarizer.js.map +1 -0
  188. package/dist/smart-agent/history/index.d.ts +3 -0
  189. package/dist/smart-agent/history/index.d.ts.map +1 -0
  190. package/dist/smart-agent/history/index.js +3 -0
  191. package/dist/smart-agent/history/index.js.map +1 -0
  192. package/dist/smart-agent/interfaces/api-adapter.d.ts +36 -0
  193. package/dist/smart-agent/interfaces/api-adapter.d.ts.map +1 -0
  194. package/dist/smart-agent/interfaces/api-adapter.js +9 -0
  195. package/dist/smart-agent/interfaces/api-adapter.js.map +1 -0
  196. package/dist/smart-agent/interfaces/client-adapter.d.ts +23 -0
  197. package/dist/smart-agent/interfaces/client-adapter.d.ts.map +1 -0
  198. package/dist/smart-agent/interfaces/client-adapter.js +10 -0
  199. package/dist/smart-agent/interfaces/client-adapter.js.map +1 -0
  200. package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts +27 -0
  201. package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts.map +1 -0
  202. package/dist/smart-agent/interfaces/mcp-connection-strategy.js +2 -0
  203. package/dist/smart-agent/interfaces/mcp-connection-strategy.js.map +1 -0
  204. package/dist/smart-agent/interfaces/model-resolver.d.ts +9 -0
  205. package/dist/smart-agent/interfaces/model-resolver.d.ts.map +1 -0
  206. package/dist/smart-agent/interfaces/model-resolver.js +2 -0
  207. package/dist/smart-agent/interfaces/model-resolver.js.map +1 -0
  208. package/dist/smart-agent/interfaces/pipeline.d.ts +125 -0
  209. package/dist/smart-agent/interfaces/pipeline.d.ts.map +1 -0
  210. package/dist/smart-agent/interfaces/pipeline.js +13 -0
  211. package/dist/smart-agent/interfaces/pipeline.js.map +1 -0
  212. package/dist/smart-agent/logger/console-logger.d.ts +7 -0
  213. package/dist/smart-agent/logger/console-logger.d.ts.map +1 -0
  214. package/dist/smart-agent/logger/console-logger.js +12 -0
  215. package/dist/smart-agent/logger/console-logger.js.map +1 -0
  216. package/dist/smart-agent/logger/default-request-logger.d.ts +17 -0
  217. package/dist/smart-agent/logger/default-request-logger.d.ts.map +1 -0
  218. package/dist/smart-agent/logger/default-request-logger.js +86 -0
  219. package/dist/smart-agent/logger/default-request-logger.js.map +1 -0
  220. package/dist/smart-agent/logger/index.d.ts +3 -0
  221. package/dist/smart-agent/logger/index.d.ts.map +1 -0
  222. package/dist/smart-agent/logger/index.js +2 -0
  223. package/dist/smart-agent/logger/index.js.map +1 -0
  224. package/dist/smart-agent/logger/noop-request-logger.d.ts +11 -0
  225. package/dist/smart-agent/logger/noop-request-logger.d.ts.map +1 -0
  226. package/dist/smart-agent/logger/noop-request-logger.js +20 -0
  227. package/dist/smart-agent/logger/noop-request-logger.js.map +1 -0
  228. package/dist/smart-agent/logger/session-logger.d.ts +10 -0
  229. package/dist/smart-agent/logger/session-logger.d.ts.map +1 -0
  230. package/dist/smart-agent/logger/session-logger.js +40 -0
  231. package/dist/smart-agent/logger/session-logger.js.map +1 -0
  232. package/dist/smart-agent/logger/types.d.ts +63 -0
  233. package/dist/smart-agent/logger/types.d.ts.map +1 -0
  234. package/dist/smart-agent/logger/types.js +2 -0
  235. package/dist/smart-agent/logger/types.js.map +1 -0
  236. package/dist/smart-agent/mcp-client-factory.d.ts +3 -0
  237. package/dist/smart-agent/mcp-client-factory.d.ts.map +1 -0
  238. package/dist/smart-agent/mcp-client-factory.js +21 -0
  239. package/dist/smart-agent/mcp-client-factory.js.map +1 -0
  240. package/dist/smart-agent/metrics/in-memory-metrics.d.ts +58 -0
  241. package/dist/smart-agent/metrics/in-memory-metrics.d.ts.map +1 -0
  242. package/dist/smart-agent/metrics/in-memory-metrics.js +78 -0
  243. package/dist/smart-agent/metrics/in-memory-metrics.js.map +1 -0
  244. package/dist/smart-agent/metrics/index.d.ts +4 -0
  245. package/dist/smart-agent/metrics/index.d.ts.map +1 -0
  246. package/dist/smart-agent/metrics/index.js +3 -0
  247. package/dist/smart-agent/metrics/index.js.map +1 -0
  248. package/dist/smart-agent/metrics/noop-metrics.d.ts +17 -0
  249. package/dist/smart-agent/metrics/noop-metrics.d.ts.map +1 -0
  250. package/dist/smart-agent/metrics/noop-metrics.js +22 -0
  251. package/dist/smart-agent/metrics/noop-metrics.js.map +1 -0
  252. package/dist/smart-agent/metrics/types.d.ts +36 -0
  253. package/dist/smart-agent/metrics/types.d.ts.map +1 -0
  254. package/dist/smart-agent/metrics/types.js +9 -0
  255. package/dist/smart-agent/metrics/types.js.map +1 -0
  256. package/dist/smart-agent/otel/index.d.ts +2 -0
  257. package/dist/smart-agent/otel/index.d.ts.map +1 -0
  258. package/dist/smart-agent/otel/index.js +2 -0
  259. package/dist/smart-agent/otel/index.js.map +1 -0
  260. package/dist/smart-agent/otel/otel-tracer-adapter.d.ts +15 -0
  261. package/dist/smart-agent/otel/otel-tracer-adapter.d.ts.map +1 -0
  262. package/dist/smart-agent/otel/otel-tracer-adapter.js +62 -0
  263. package/dist/smart-agent/otel/otel-tracer-adapter.js.map +1 -0
  264. package/dist/smart-agent/pipeline/condition-evaluator.d.ts +35 -0
  265. package/dist/smart-agent/pipeline/condition-evaluator.d.ts.map +1 -0
  266. package/dist/smart-agent/pipeline/condition-evaluator.js +143 -0
  267. package/dist/smart-agent/pipeline/condition-evaluator.js.map +1 -0
  268. package/dist/smart-agent/pipeline/context.d.ts +121 -0
  269. package/dist/smart-agent/pipeline/context.d.ts.map +1 -0
  270. package/dist/smart-agent/pipeline/context.js +19 -0
  271. package/dist/smart-agent/pipeline/context.js.map +1 -0
  272. package/dist/smart-agent/pipeline/default-pipeline.d.ts +69 -0
  273. package/dist/smart-agent/pipeline/default-pipeline.d.ts.map +1 -0
  274. package/dist/smart-agent/pipeline/default-pipeline.js +278 -0
  275. package/dist/smart-agent/pipeline/default-pipeline.js.map +1 -0
  276. package/dist/smart-agent/pipeline/executor.d.ts +54 -0
  277. package/dist/smart-agent/pipeline/executor.d.ts.map +1 -0
  278. package/dist/smart-agent/pipeline/executor.js +133 -0
  279. package/dist/smart-agent/pipeline/executor.js.map +1 -0
  280. package/dist/smart-agent/pipeline/handlers/assemble.d.ts +16 -0
  281. package/dist/smart-agent/pipeline/handlers/assemble.d.ts.map +1 -0
  282. package/dist/smart-agent/pipeline/handlers/assemble.js +72 -0
  283. package/dist/smart-agent/pipeline/handlers/assemble.js.map +1 -0
  284. package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts +30 -0
  285. package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts.map +1 -0
  286. package/dist/smart-agent/pipeline/handlers/build-tool-query.js +80 -0
  287. package/dist/smart-agent/pipeline/handlers/build-tool-query.js.map +1 -0
  288. package/dist/smart-agent/pipeline/handlers/classify.d.ts +21 -0
  289. package/dist/smart-agent/pipeline/handlers/classify.d.ts.map +1 -0
  290. package/dist/smart-agent/pipeline/handlers/classify.js +60 -0
  291. package/dist/smart-agent/pipeline/handlers/classify.js.map +1 -0
  292. package/dist/smart-agent/pipeline/handlers/expand.d.ts +16 -0
  293. package/dist/smart-agent/pipeline/handlers/expand.d.ts.map +1 -0
  294. package/dist/smart-agent/pipeline/handlers/expand.js +24 -0
  295. package/dist/smart-agent/pipeline/handlers/expand.js.map +1 -0
  296. package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts +29 -0
  297. package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts.map +1 -0
  298. package/dist/smart-agent/pipeline/handlers/history-upsert.js +75 -0
  299. package/dist/smart-agent/pipeline/handlers/history-upsert.js.map +1 -0
  300. package/dist/smart-agent/pipeline/handlers/index.d.ts +31 -0
  301. package/dist/smart-agent/pipeline/handlers/index.d.ts.map +1 -0
  302. package/dist/smart-agent/pipeline/handlers/index.js +44 -0
  303. package/dist/smart-agent/pipeline/handlers/index.js.map +1 -0
  304. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts +27 -0
  305. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts.map +1 -0
  306. package/dist/smart-agent/pipeline/handlers/rag-query.js +117 -0
  307. package/dist/smart-agent/pipeline/handlers/rag-query.js.map +1 -0
  308. package/dist/smart-agent/pipeline/handlers/rerank.d.ts +16 -0
  309. package/dist/smart-agent/pipeline/handlers/rerank.d.ts.map +1 -0
  310. package/dist/smart-agent/pipeline/handlers/rerank.js +27 -0
  311. package/dist/smart-agent/pipeline/handlers/rerank.js.map +1 -0
  312. package/dist/smart-agent/pipeline/handlers/skill-select.d.ts +18 -0
  313. package/dist/smart-agent/pipeline/handlers/skill-select.d.ts.map +1 -0
  314. package/dist/smart-agent/pipeline/handlers/skill-select.js +88 -0
  315. package/dist/smart-agent/pipeline/handlers/skill-select.js.map +1 -0
  316. package/dist/smart-agent/pipeline/handlers/summarize.d.ts +17 -0
  317. package/dist/smart-agent/pipeline/handlers/summarize.d.ts.map +1 -0
  318. package/dist/smart-agent/pipeline/handlers/summarize.js +56 -0
  319. package/dist/smart-agent/pipeline/handlers/summarize.js.map +1 -0
  320. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts +32 -0
  321. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts.map +1 -0
  322. package/dist/smart-agent/pipeline/handlers/tool-loop.js +734 -0
  323. package/dist/smart-agent/pipeline/handlers/tool-loop.js.map +1 -0
  324. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts +21 -0
  325. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts.map +1 -0
  326. package/dist/smart-agent/pipeline/handlers/tool-select.js +109 -0
  327. package/dist/smart-agent/pipeline/handlers/tool-select.js.map +1 -0
  328. package/dist/smart-agent/pipeline/handlers/translate.d.ts +17 -0
  329. package/dist/smart-agent/pipeline/handlers/translate.d.ts.map +1 -0
  330. package/dist/smart-agent/pipeline/handlers/translate.js +42 -0
  331. package/dist/smart-agent/pipeline/handlers/translate.js.map +1 -0
  332. package/dist/smart-agent/pipeline/index.d.ts +14 -0
  333. package/dist/smart-agent/pipeline/index.d.ts.map +1 -0
  334. package/dist/smart-agent/pipeline/index.js +16 -0
  335. package/dist/smart-agent/pipeline/index.js.map +1 -0
  336. package/dist/smart-agent/pipeline/stage-handler.d.ts +36 -0
  337. package/dist/smart-agent/pipeline/stage-handler.d.ts.map +1 -0
  338. package/dist/smart-agent/pipeline/stage-handler.js +24 -0
  339. package/dist/smart-agent/pipeline/stage-handler.js.map +1 -0
  340. package/dist/smart-agent/pipeline/types.d.ts +116 -0
  341. package/dist/smart-agent/pipeline/types.d.ts.map +1 -0
  342. package/dist/smart-agent/pipeline/types.js +54 -0
  343. package/dist/smart-agent/pipeline/types.js.map +1 -0
  344. package/dist/smart-agent/pipeline.d.ts +82 -0
  345. package/dist/smart-agent/pipeline.d.ts.map +1 -0
  346. package/dist/smart-agent/pipeline.js +8 -0
  347. package/dist/smart-agent/pipeline.js.map +1 -0
  348. package/dist/smart-agent/plugins/index.d.ts +4 -0
  349. package/dist/smart-agent/plugins/index.d.ts.map +1 -0
  350. package/dist/smart-agent/plugins/index.js +3 -0
  351. package/dist/smart-agent/plugins/index.js.map +1 -0
  352. package/dist/smart-agent/plugins/loader.d.ts +67 -0
  353. package/dist/smart-agent/plugins/loader.d.ts.map +1 -0
  354. package/dist/smart-agent/plugins/loader.js +114 -0
  355. package/dist/smart-agent/plugins/loader.js.map +1 -0
  356. package/dist/smart-agent/plugins/types.d.ts +164 -0
  357. package/dist/smart-agent/plugins/types.d.ts.map +1 -0
  358. package/dist/smart-agent/plugins/types.js +136 -0
  359. package/dist/smart-agent/plugins/types.js.map +1 -0
  360. package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts +16 -0
  361. package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts.map +1 -0
  362. package/dist/smart-agent/policy/fallback-llm-call-strategy.js +66 -0
  363. package/dist/smart-agent/policy/fallback-llm-call-strategy.js.map +1 -0
  364. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts +5 -0
  365. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts.map +1 -0
  366. package/dist/smart-agent/policy/heuristic-injection-detector.js +36 -0
  367. package/dist/smart-agent/policy/heuristic-injection-detector.js.map +1 -0
  368. package/dist/smart-agent/policy/index.d.ts +6 -0
  369. package/dist/smart-agent/policy/index.d.ts.map +1 -0
  370. package/dist/smart-agent/policy/index.js +5 -0
  371. package/dist/smart-agent/policy/index.js.map +1 -0
  372. package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts +16 -0
  373. package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts.map +1 -0
  374. package/dist/smart-agent/policy/mixed-tool-call-handler.js +49 -0
  375. package/dist/smart-agent/policy/mixed-tool-call-handler.js.map +1 -0
  376. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts +6 -0
  377. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts.map +1 -0
  378. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js +21 -0
  379. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js.map +1 -0
  380. package/dist/smart-agent/policy/pending-tool-results-registry.d.ts +25 -0
  381. package/dist/smart-agent/policy/pending-tool-results-registry.d.ts.map +1 -0
  382. package/dist/smart-agent/policy/pending-tool-results-registry.js +50 -0
  383. package/dist/smart-agent/policy/pending-tool-results-registry.js.map +1 -0
  384. package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts +6 -0
  385. package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts.map +1 -0
  386. package/dist/smart-agent/policy/streaming-llm-call-strategy.js +7 -0
  387. package/dist/smart-agent/policy/streaming-llm-call-strategy.js.map +1 -0
  388. package/dist/smart-agent/policy/tool-availability-registry.d.ts +21 -0
  389. package/dist/smart-agent/policy/tool-availability-registry.d.ts.map +1 -0
  390. package/dist/smart-agent/policy/tool-availability-registry.js +77 -0
  391. package/dist/smart-agent/policy/tool-availability-registry.js.map +1 -0
  392. package/dist/smart-agent/policy/tool-policy-guard.d.ts +8 -0
  393. package/dist/smart-agent/policy/tool-policy-guard.d.ts.map +1 -0
  394. package/dist/smart-agent/policy/tool-policy-guard.js +40 -0
  395. package/dist/smart-agent/policy/tool-policy-guard.js.map +1 -0
  396. package/dist/smart-agent/policy/types.d.ts +51 -0
  397. package/dist/smart-agent/policy/types.d.ts.map +1 -0
  398. package/dist/smart-agent/policy/types.js +17 -0
  399. package/dist/smart-agent/policy/types.js.map +1 -0
  400. package/dist/smart-agent/providers.d.ts +98 -0
  401. package/dist/smart-agent/providers.d.ts.map +1 -0
  402. package/dist/smart-agent/providers.js +245 -0
  403. package/dist/smart-agent/providers.js.map +1 -0
  404. package/dist/smart-agent/reranker/index.d.ts +4 -0
  405. package/dist/smart-agent/reranker/index.d.ts.map +1 -0
  406. package/dist/smart-agent/reranker/index.js +3 -0
  407. package/dist/smart-agent/reranker/index.js.map +1 -0
  408. package/dist/smart-agent/reranker/llm-reranker.d.ts +10 -0
  409. package/dist/smart-agent/reranker/llm-reranker.d.ts.map +1 -0
  410. package/dist/smart-agent/reranker/llm-reranker.js +55 -0
  411. package/dist/smart-agent/reranker/llm-reranker.js.map +1 -0
  412. package/dist/smart-agent/reranker/noop-reranker.d.ts +6 -0
  413. package/dist/smart-agent/reranker/noop-reranker.d.ts.map +1 -0
  414. package/dist/smart-agent/reranker/noop-reranker.js +6 -0
  415. package/dist/smart-agent/reranker/noop-reranker.js.map +1 -0
  416. package/dist/smart-agent/reranker/types.d.ts +5 -0
  417. package/dist/smart-agent/reranker/types.d.ts.map +1 -0
  418. package/dist/smart-agent/reranker/types.js +2 -0
  419. package/dist/smart-agent/reranker/types.js.map +1 -0
  420. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts +16 -0
  421. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts.map +1 -0
  422. package/dist/smart-agent/resilience/circuit-breaker-embedder.js +47 -0
  423. package/dist/smart-agent/resilience/circuit-breaker-embedder.js.map +1 -0
  424. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts +19 -0
  425. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts.map +1 -0
  426. package/dist/smart-agent/resilience/circuit-breaker-llm.js +72 -0
  427. package/dist/smart-agent/resilience/circuit-breaker-llm.js.map +1 -0
  428. package/dist/smart-agent/resilience/circuit-breaker.d.ts +36 -0
  429. package/dist/smart-agent/resilience/circuit-breaker.d.ts.map +1 -0
  430. package/dist/smart-agent/resilience/circuit-breaker.js +60 -0
  431. package/dist/smart-agent/resilience/circuit-breaker.js.map +1 -0
  432. package/dist/smart-agent/resilience/fallback-rag.d.ts +21 -0
  433. package/dist/smart-agent/resilience/fallback-rag.d.ts.map +1 -0
  434. package/dist/smart-agent/resilience/fallback-rag.js +80 -0
  435. package/dist/smart-agent/resilience/fallback-rag.js.map +1 -0
  436. package/dist/smart-agent/resilience/index.d.ts +5 -0
  437. package/dist/smart-agent/resilience/index.d.ts.map +1 -0
  438. package/dist/smart-agent/resilience/index.js +5 -0
  439. package/dist/smart-agent/resilience/index.js.map +1 -0
  440. package/dist/smart-agent/resilience/rate-limiter-llm.d.ts +17 -0
  441. package/dist/smart-agent/resilience/rate-limiter-llm.d.ts.map +1 -0
  442. package/dist/smart-agent/resilience/rate-limiter-llm.js +30 -0
  443. package/dist/smart-agent/resilience/rate-limiter-llm.js.map +1 -0
  444. package/dist/smart-agent/resilience/retry-llm.d.ts +32 -0
  445. package/dist/smart-agent/resilience/retry-llm.d.ts.map +1 -0
  446. package/dist/smart-agent/resilience/retry-llm.js +103 -0
  447. package/dist/smart-agent/resilience/retry-llm.js.map +1 -0
  448. package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts +21 -0
  449. package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts.map +1 -0
  450. package/dist/smart-agent/resilience/token-bucket-rate-limiter.js +32 -0
  451. package/dist/smart-agent/resilience/token-bucket-rate-limiter.js.map +1 -0
  452. package/dist/smart-agent/server.d.ts +19 -0
  453. package/dist/smart-agent/server.d.ts.map +1 -0
  454. package/dist/smart-agent/server.js +349 -0
  455. package/dist/smart-agent/server.js.map +1 -0
  456. package/dist/smart-agent/session/index.d.ts +4 -0
  457. package/dist/smart-agent/session/index.d.ts.map +1 -0
  458. package/dist/smart-agent/session/index.js +3 -0
  459. package/dist/smart-agent/session/index.js.map +1 -0
  460. package/dist/smart-agent/session/noop-session-manager.d.ts +8 -0
  461. package/dist/smart-agent/session/noop-session-manager.d.ts.map +1 -0
  462. package/dist/smart-agent/session/noop-session-manager.js +11 -0
  463. package/dist/smart-agent/session/noop-session-manager.js.map +1 -0
  464. package/dist/smart-agent/session/session-manager.d.ts +13 -0
  465. package/dist/smart-agent/session/session-manager.d.ts.map +1 -0
  466. package/dist/smart-agent/session/session-manager.js +20 -0
  467. package/dist/smart-agent/session/session-manager.js.map +1 -0
  468. package/dist/smart-agent/session/types.d.ts +7 -0
  469. package/dist/smart-agent/session/types.d.ts.map +1 -0
  470. package/dist/smart-agent/session/types.js +2 -0
  471. package/dist/smart-agent/session/types.js.map +1 -0
  472. package/dist/smart-agent/skills/claude-skill-manager.d.ts +24 -0
  473. package/dist/smart-agent/skills/claude-skill-manager.d.ts.map +1 -0
  474. package/dist/smart-agent/skills/claude-skill-manager.js +81 -0
  475. package/dist/smart-agent/skills/claude-skill-manager.js.map +1 -0
  476. package/dist/smart-agent/skills/codex-skill-manager.d.ts +20 -0
  477. package/dist/smart-agent/skills/codex-skill-manager.d.ts.map +1 -0
  478. package/dist/smart-agent/skills/codex-skill-manager.js +75 -0
  479. package/dist/smart-agent/skills/codex-skill-manager.js.map +1 -0
  480. package/dist/smart-agent/skills/filesystem-skill-manager.d.ts +17 -0
  481. package/dist/smart-agent/skills/filesystem-skill-manager.d.ts.map +1 -0
  482. package/dist/smart-agent/skills/filesystem-skill-manager.js +48 -0
  483. package/dist/smart-agent/skills/filesystem-skill-manager.js.map +1 -0
  484. package/dist/smart-agent/skills/filesystem-skill.d.ts +25 -0
  485. package/dist/smart-agent/skills/filesystem-skill.d.ts.map +1 -0
  486. package/dist/smart-agent/skills/filesystem-skill.js +110 -0
  487. package/dist/smart-agent/skills/filesystem-skill.js.map +1 -0
  488. package/dist/smart-agent/skills/index.d.ts +9 -0
  489. package/dist/smart-agent/skills/index.d.ts.map +1 -0
  490. package/dist/smart-agent/skills/index.js +9 -0
  491. package/dist/smart-agent/skills/index.js.map +1 -0
  492. package/dist/smart-agent/skills/skill-utils.d.ts +15 -0
  493. package/dist/smart-agent/skills/skill-utils.d.ts.map +1 -0
  494. package/dist/smart-agent/skills/skill-utils.js +46 -0
  495. package/dist/smart-agent/skills/skill-utils.js.map +1 -0
  496. package/dist/smart-agent/smart-server.d.ts +150 -0
  497. package/dist/smart-agent/smart-server.d.ts.map +1 -0
  498. package/dist/smart-agent/smart-server.js +903 -0
  499. package/dist/smart-agent/smart-server.js.map +1 -0
  500. package/dist/smart-agent/strategies/index.d.ts +4 -0
  501. package/dist/smart-agent/strategies/index.d.ts.map +1 -0
  502. package/dist/smart-agent/strategies/index.js +4 -0
  503. package/dist/smart-agent/strategies/index.js.map +1 -0
  504. package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts +15 -0
  505. package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts.map +1 -0
  506. package/dist/smart-agent/strategies/lazy-connection-strategy.js +82 -0
  507. package/dist/smart-agent/strategies/lazy-connection-strategy.js.map +1 -0
  508. package/dist/smart-agent/strategies/noop-connection-strategy.d.ts +6 -0
  509. package/dist/smart-agent/strategies/noop-connection-strategy.d.ts.map +1 -0
  510. package/dist/smart-agent/strategies/noop-connection-strategy.js +6 -0
  511. package/dist/smart-agent/strategies/noop-connection-strategy.js.map +1 -0
  512. package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts +13 -0
  513. package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts.map +1 -0
  514. package/dist/smart-agent/strategies/periodic-connection-strategy.js +40 -0
  515. package/dist/smart-agent/strategies/periodic-connection-strategy.js.map +1 -0
  516. package/dist/smart-agent/testing/index.d.ts +121 -0
  517. package/dist/smart-agent/testing/index.d.ts.map +1 -0
  518. package/dist/smart-agent/testing/index.js +354 -0
  519. package/dist/smart-agent/testing/index.js.map +1 -0
  520. package/dist/smart-agent/tracer/index.d.ts +3 -0
  521. package/dist/smart-agent/tracer/index.d.ts.map +1 -0
  522. package/dist/smart-agent/tracer/index.js +2 -0
  523. package/dist/smart-agent/tracer/index.js.map +1 -0
  524. package/dist/smart-agent/tracer/noop-tracer.d.ts +5 -0
  525. package/dist/smart-agent/tracer/noop-tracer.d.ts.map +1 -0
  526. package/dist/smart-agent/tracer/noop-tracer.js +16 -0
  527. package/dist/smart-agent/tracer/noop-tracer.js.map +1 -0
  528. package/dist/smart-agent/tracer/types.d.ts +17 -0
  529. package/dist/smart-agent/tracer/types.d.ts.map +1 -0
  530. package/dist/smart-agent/tracer/types.js +2 -0
  531. package/dist/smart-agent/tracer/types.js.map +1 -0
  532. package/dist/smart-agent/utils/external-tools-normalizer.d.ts +15 -0
  533. package/dist/smart-agent/utils/external-tools-normalizer.d.ts.map +1 -0
  534. package/dist/smart-agent/utils/external-tools-normalizer.js +146 -0
  535. package/dist/smart-agent/utils/external-tools-normalizer.js.map +1 -0
  536. package/dist/smart-agent/utils/lazy.d.ts +51 -0
  537. package/dist/smart-agent/utils/lazy.d.ts.map +1 -0
  538. package/dist/smart-agent/utils/lazy.js +127 -0
  539. package/dist/smart-agent/utils/lazy.js.map +1 -0
  540. package/dist/smart-agent/utils/parse-frontmatter.d.ts +15 -0
  541. package/dist/smart-agent/utils/parse-frontmatter.d.ts.map +1 -0
  542. package/dist/smart-agent/utils/parse-frontmatter.js +22 -0
  543. package/dist/smart-agent/utils/parse-frontmatter.js.map +1 -0
  544. package/dist/smart-agent/utils/tool-call-deltas.d.ts +4 -0
  545. package/dist/smart-agent/utils/tool-call-deltas.d.ts.map +1 -0
  546. package/dist/smart-agent/utils/tool-call-deltas.js +25 -0
  547. package/dist/smart-agent/utils/tool-call-deltas.js.map +1 -0
  548. package/dist/smart-agent/validator/index.d.ts +3 -0
  549. package/dist/smart-agent/validator/index.d.ts.map +1 -0
  550. package/dist/smart-agent/validator/index.js +2 -0
  551. package/dist/smart-agent/validator/index.js.map +1 -0
  552. package/dist/smart-agent/validator/noop-validator.d.ts +6 -0
  553. package/dist/smart-agent/validator/noop-validator.d.ts.map +1 -0
  554. package/dist/smart-agent/validator/noop-validator.js +6 -0
  555. package/dist/smart-agent/validator/noop-validator.js.map +1 -0
  556. package/dist/smart-agent/validator/types.d.ts +17 -0
  557. package/dist/smart-agent/validator/types.d.ts.map +1 -0
  558. package/dist/smart-agent/validator/types.js +8 -0
  559. package/dist/smart-agent/validator/types.js.map +1 -0
  560. package/dist/smoke-adapters.d.ts +17 -0
  561. package/dist/smoke-adapters.d.ts.map +1 -0
  562. package/dist/smoke-adapters.js +178 -0
  563. package/dist/smoke-adapters.js.map +1 -0
  564. package/package.json +89 -0
  565. package/tools/claude-via-agent.ps1 +83 -0
  566. package/tools/claude-via-agent.sh +96 -0
package/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # @mcp-abap-adt/llm-agent-server
2
+
3
+ Default SmartAgent implementation plus LLM providers, MCP client, HTTP server, and CLI. Depends on `@mcp-abap-adt/llm-agent` (core).
4
+
5
+ Install this package when you want the out-of-the-box agent without writing your own pipeline. Install only `@mcp-abap-adt/llm-agent` when you're writing a custom agent on our interfaces.
6
+
7
+ ## CLIs shipped
8
+
9
+ - `llm-agent` — primary runtime (`llm-agent --config smart-server.yaml`).
10
+ - `llm-agent-check` — diagnostics CLI.
11
+ - `claude-via-agent` — dev convenience wrapper that launches the Claude CLI through a SmartServer.
12
+
13
+ See the repo root for design specs, migration notes (`docs/MIGRATION-v10.md`), and architectural docs.
package/bin/llm-agent ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/smart-agent/cli.js');
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/smart-agent/check-models-cli.js');
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Core Agent Orchestrator
3
+ *
4
+ * Coordinates between LLM provider and MCP tools
5
+ */
6
+ import type { AgentResponse, Message } from '@mcp-abap-adt/llm-agent';
7
+ import type { LLMProvider } from './llm-providers/base.js';
8
+ import { type MCPClientConfig, MCPClientWrapper } from './mcp/client.js';
9
+ export interface AgentConfig {
10
+ llmProvider: LLMProvider;
11
+ /**
12
+ * MCP client instance (if provided, will be used directly)
13
+ * If not provided, will be created from mcpConfig
14
+ */
15
+ mcpClient?: MCPClientWrapper;
16
+ /**
17
+ * Direct MCP configuration (used if mcpClient is not provided)
18
+ * If both mcpClient and mcpConfig are provided, mcpClient takes precedence
19
+ */
20
+ mcpConfig?: MCPClientConfig;
21
+ maxIterations?: number;
22
+ }
23
+ export declare class Agent {
24
+ private llmProvider;
25
+ private mcpClient;
26
+ private conversationHistory;
27
+ constructor(config: AgentConfig);
28
+ /**
29
+ * Initialize MCP client connection (call this before using the agent)
30
+ */
31
+ connect(): Promise<void>;
32
+ /**
33
+ * Process a user message and return agent response
34
+ */
35
+ process(userMessage: string): Promise<AgentResponse>;
36
+ /**
37
+ * Build system message with tool definitions
38
+ */
39
+ private buildSystemMessage;
40
+ /**
41
+ * Clear conversation history
42
+ */
43
+ clearHistory(): void;
44
+ /**
45
+ * Get conversation history
46
+ */
47
+ getHistory(): Message[];
48
+ }
49
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAAiB;gBAEhC,MAAM,EAAE,WAAW;IAe/B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2C1D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,OAAO,EAAE;CAGxB"}
package/dist/agent.js ADDED
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Core Agent Orchestrator
3
+ *
4
+ * Coordinates between LLM provider and MCP tools
5
+ */
6
+ import { MCPClientWrapper } from './mcp/client.js';
7
+ export class Agent {
8
+ llmProvider;
9
+ mcpClient;
10
+ conversationHistory = [];
11
+ constructor(config) {
12
+ this.llmProvider = config.llmProvider;
13
+ // Initialize MCP client
14
+ if (config.mcpClient) {
15
+ this.mcpClient = config.mcpClient;
16
+ }
17
+ else if (config.mcpConfig) {
18
+ this.mcpClient = new MCPClientWrapper(config.mcpConfig);
19
+ }
20
+ else {
21
+ throw new Error('MCP client configuration required. Provide either mcpClient or mcpConfig.');
22
+ }
23
+ }
24
+ /**
25
+ * Initialize MCP client connection (call this before using the agent)
26
+ */
27
+ async connect() {
28
+ await this.mcpClient.connect();
29
+ }
30
+ /**
31
+ * Process a user message and return agent response
32
+ */
33
+ async process(userMessage) {
34
+ try {
35
+ // Add user message to history
36
+ this.conversationHistory.push({
37
+ role: 'user',
38
+ content: userMessage,
39
+ });
40
+ // Get available tools from MCP
41
+ const tools = await this.mcpClient.listTools();
42
+ // Build system message with tool definitions
43
+ const systemMessage = this.buildSystemMessage(tools);
44
+ // Prepare messages for LLM
45
+ const messages = [
46
+ { role: 'system', content: systemMessage },
47
+ ...this.conversationHistory,
48
+ ];
49
+ // Get LLM response
50
+ const llmResponse = await this.llmProvider.chat(messages);
51
+ // Add assistant response to history
52
+ this.conversationHistory.push({
53
+ role: 'assistant',
54
+ content: llmResponse.content,
55
+ });
56
+ return {
57
+ message: llmResponse.content,
58
+ raw: llmResponse.raw,
59
+ };
60
+ }
61
+ catch (error) {
62
+ const errorMessage = error instanceof Error ? error.message : String(error);
63
+ return {
64
+ message: '',
65
+ error: errorMessage || 'Agent processing failed',
66
+ };
67
+ }
68
+ }
69
+ /**
70
+ * Build system message with tool definitions
71
+ */
72
+ buildSystemMessage(tools) {
73
+ const toolDescriptions = tools
74
+ .map((tool) => {
75
+ return `- ${tool.name}: ${tool.description || 'No description'}`;
76
+ })
77
+ .join('\n');
78
+ return `You are a helpful assistant with access to the following tools:
79
+
80
+ ${toolDescriptions}
81
+
82
+ If using a tool is required, describe the tool call and its parameters in your response.`;
83
+ }
84
+ /**
85
+ * Clear conversation history
86
+ */
87
+ clearHistory() {
88
+ this.conversationHistory = [];
89
+ }
90
+ /**
91
+ * Get conversation history
92
+ */
93
+ getHistory() {
94
+ return [...this.conversationHistory];
95
+ }
96
+ }
97
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAwB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAiBzE,MAAM,OAAO,KAAK;IACR,WAAW,CAAc;IACzB,SAAS,CAAmB;IAC5B,mBAAmB,GAAc,EAAE,CAAC;IAE5C,YAAY,MAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,wBAAwB;QACxB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACpC,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,+BAA+B;YAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAE/C,6CAA6C;YAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAErD,2BAA2B;YAC3B,MAAM,QAAQ,GAAc;gBAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;gBAC1C,GAAG,IAAI,CAAC,mBAAmB;aAC5B,CAAC;YAEF,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1D,oCAAoC;YACpC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,GAAG,EAAE,WAAW,CAAC,GAAG;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,YAAY,IAAI,yBAAyB;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,KAAqD;QAErD,MAAM,gBAAgB,GAAG,KAAK;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,gBAAgB,EAAE,CAAC;QACnE,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;;EAET,gBAAgB;;yFAEuE,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Anthropic Agent - Uses Anthropic tools API for tool integration
3
+ *
4
+ * Anthropic (Claude) supports tools via the `tools` parameter and returns
5
+ * tool use blocks in the response content.
6
+ */
7
+ import type { AgentStreamChunk, Message } from '@mcp-abap-adt/llm-agent';
8
+ import type { AnthropicProvider } from '../llm-providers/anthropic.js';
9
+ import { type AgentCallOptions, BaseAgent, type BaseAgentConfig } from './base.js';
10
+ export interface AnthropicAgentConfig extends BaseAgentConfig {
11
+ llmProvider: AnthropicProvider;
12
+ }
13
+ export declare class AnthropicAgent extends BaseAgent {
14
+ private llmProvider;
15
+ constructor(config: AnthropicAgentConfig);
16
+ /**
17
+ * Call Anthropic with tools using tools API
18
+ */
19
+ protected callLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): Promise<{
20
+ content: string;
21
+ raw?: unknown;
22
+ }>;
23
+ /**
24
+ * Stream Anthropic response via real SSE streaming.
25
+ * Delegates to provider.streamChat() and parses raw chunks for tool calls.
26
+ */
27
+ protected streamLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): AsyncGenerator<AgentStreamChunk, void, unknown>;
28
+ /**
29
+ * Convert MCP tools to Anthropic tool format
30
+ */
31
+ private convertToolsToAnthropicTools;
32
+ }
33
+ //# sourceMappingURL=anthropic-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-agent.d.ts","sourceRoot":"","sources":["../../src/agents/anthropic-agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,KAAK,gBAAgB,EACrB,SAAS,EACT,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,WAAW,CAAoB;gBAE3B,MAAM,EAAE,oBAAoB;IAKxC;;OAEG;cACa,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAgB9C;;;OAGG;cACc,kBAAkB,CACjC,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;IAsGlD;;OAEG;IACH,OAAO,CAAC,4BAA4B;CAmBrC"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Anthropic Agent - Uses Anthropic tools API for tool integration
3
+ *
4
+ * Anthropic (Claude) supports tools via the `tools` parameter and returns
5
+ * tool use blocks in the response content.
6
+ */
7
+ import { BaseAgent, } from './base.js';
8
+ export class AnthropicAgent extends BaseAgent {
9
+ llmProvider;
10
+ constructor(config) {
11
+ super(config);
12
+ this.llmProvider = config.llmProvider;
13
+ }
14
+ /**
15
+ * Call Anthropic with tools using tools API
16
+ */
17
+ async callLLMWithTools(messages, tools, options) {
18
+ const anthropicTools = this.convertToolsToAnthropicTools(tools);
19
+ // Pass all messages (including system) — provider handles system message separation
20
+ const response = await this.llmProvider.chat(messages, anthropicTools.length > 0 ? anthropicTools : undefined, options);
21
+ return {
22
+ content: response.content,
23
+ raw: response.raw,
24
+ };
25
+ }
26
+ /**
27
+ * Stream Anthropic response via real SSE streaming.
28
+ * Delegates to provider.streamChat() and parses raw chunks for tool calls.
29
+ */
30
+ async *streamLLMWithTools(messages, tools, options) {
31
+ const anthropicTools = this.convertToolsToAnthropicTools(tools);
32
+ const toolCallMap = new Map();
33
+ let finishReason = 'stop';
34
+ let blockIndex = 0;
35
+ for await (const chunk of this.llmProvider.streamChat(messages, anthropicTools.length > 0 ? anthropicTools : undefined, options)) {
36
+ // Yield text deltas
37
+ if (chunk.content) {
38
+ yield { type: 'text', delta: chunk.content };
39
+ }
40
+ if (chunk.raw && typeof chunk.raw === 'object') {
41
+ const raw = chunk.raw;
42
+ // content_block_start — detect tool_use blocks
43
+ if (raw.type === 'content_block_start' && raw.content_block) {
44
+ const block = raw.content_block;
45
+ if (block.type === 'tool_use') {
46
+ toolCallMap.set(blockIndex, {
47
+ id: block.id ?? '',
48
+ name: block.name ?? '',
49
+ arguments: '',
50
+ });
51
+ }
52
+ blockIndex++;
53
+ }
54
+ // content_block_delta — accumulate tool input JSON
55
+ if (raw.type === 'content_block_delta' && raw.delta) {
56
+ const delta = raw.delta;
57
+ if (delta.type === 'input_json_delta' && delta.partial_json) {
58
+ const current = toolCallMap.get(blockIndex - 1);
59
+ if (current)
60
+ current.arguments += delta.partial_json;
61
+ }
62
+ }
63
+ // message_delta — finish reason
64
+ if (raw.type === 'message_delta' && raw.delta) {
65
+ const delta = raw.delta;
66
+ const reason = delta.stop_reason;
67
+ if (reason === 'tool_use')
68
+ finishReason = 'tool_calls';
69
+ else if (reason === 'max_tokens')
70
+ finishReason = 'length';
71
+ else if (reason === 'end_turn' || reason === 'stop_sequence')
72
+ finishReason = 'stop';
73
+ }
74
+ // message_start — usage
75
+ if (raw.type === 'message_start' && raw.message) {
76
+ const msg = raw.message;
77
+ const usage = msg.usage;
78
+ if (usage) {
79
+ yield {
80
+ type: 'usage',
81
+ promptTokens: usage.input_tokens ?? 0,
82
+ completionTokens: usage.output_tokens ?? 0,
83
+ };
84
+ }
85
+ }
86
+ }
87
+ // Track finish reason from provider
88
+ if (chunk.finishReason) {
89
+ if (chunk.finishReason === 'tool_use')
90
+ finishReason = 'tool_calls';
91
+ else if (chunk.finishReason === 'max_tokens')
92
+ finishReason = 'length';
93
+ else
94
+ finishReason = 'stop';
95
+ }
96
+ }
97
+ // Emit accumulated tool calls
98
+ if (toolCallMap.size > 0) {
99
+ const toolCalls = [...toolCallMap.entries()]
100
+ .sort(([a], [b]) => a - b)
101
+ .filter(([, tc]) => tc.name)
102
+ .map(([, tc]) => ({
103
+ id: tc.id,
104
+ name: tc.name,
105
+ arguments: (() => {
106
+ try {
107
+ return JSON.parse(tc.arguments);
108
+ }
109
+ catch {
110
+ return {};
111
+ }
112
+ })(),
113
+ }));
114
+ if (toolCalls.length > 0) {
115
+ yield { type: 'tool_calls', toolCalls };
116
+ finishReason = 'tool_calls';
117
+ }
118
+ }
119
+ yield { type: 'done', finishReason };
120
+ }
121
+ /**
122
+ * Convert MCP tools to Anthropic tool format
123
+ */
124
+ convertToolsToAnthropicTools(tools) {
125
+ return tools.map((rawTool) => {
126
+ const tool = rawTool;
127
+ return {
128
+ name: tool.name,
129
+ description: tool.description || '',
130
+ input_schema: tool.inputSchema || {
131
+ type: 'object',
132
+ properties: {},
133
+ },
134
+ };
135
+ });
136
+ }
137
+ }
138
+ //# sourceMappingURL=anthropic-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-agent.js","sourceRoot":"","sources":["../../src/agents/anthropic-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Base Agent - Abstract class for LLM-specific agent implementations
3
+ *
4
+ * Each LLM provider has different ways of handling tools:
5
+ * - OpenAI: function calling via tools parameter
6
+ * - Anthropic: tools in messages
7
+ * - DeepSeek: function calling or prompt-based
8
+ *
9
+ * This base class provides common logic, subclasses implement LLM-specific tool handling.
10
+ */
11
+ import type { AgentResponse, AgentStreamChunk, Message } from '@mcp-abap-adt/llm-agent';
12
+ import { type MCPClientConfig, MCPClientWrapper } from '../mcp/client.js';
13
+ export interface BaseAgentConfig {
14
+ /**
15
+ * MCP client instance (if provided, will be used directly)
16
+ * If not provided, will be created from mcpConfig
17
+ */
18
+ mcpClient?: MCPClientWrapper;
19
+ /**
20
+ * Direct MCP configuration (used if mcpClient is not provided)
21
+ */
22
+ mcpConfig?: MCPClientConfig;
23
+ }
24
+ export interface AgentCallOptions {
25
+ temperature?: number;
26
+ maxTokens?: number;
27
+ topP?: number;
28
+ stop?: string[];
29
+ model?: string;
30
+ }
31
+ export interface BaseAgentLlmBridge {
32
+ callWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): Promise<{
33
+ content: string;
34
+ raw?: unknown;
35
+ }>;
36
+ streamWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): AsyncGenerator<AgentStreamChunk, void, unknown>;
37
+ }
38
+ /**
39
+ * Base Agent class - provides common logic for all agent implementations
40
+ */
41
+ export declare abstract class BaseAgent implements BaseAgentLlmBridge {
42
+ protected mcpClient: MCPClientWrapper;
43
+ protected conversationHistory: Message[];
44
+ protected tools: unknown[];
45
+ constructor(config: BaseAgentConfig);
46
+ /**
47
+ * Initialize MCP client connection (call this before using the agent)
48
+ * If connection fails, agent will work in LLM-only mode (no tools)
49
+ */
50
+ connect(): Promise<void>;
51
+ /**
52
+ * Process a user message and return agent response
53
+ * Subclasses handle provider-specific tool formatting only.
54
+ * Tool execution is left to the consumer of this library.
55
+ */
56
+ process(userMessage: string): Promise<AgentResponse>;
57
+ /**
58
+ * Call LLM with tools - LLM-specific implementation
59
+ * Subclasses must implement this to handle their specific tool format
60
+ */
61
+ protected abstract callLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): Promise<{
62
+ content: string;
63
+ raw?: unknown;
64
+ }>;
65
+ /**
66
+ * Stream LLM with tools - LLM-specific implementation
67
+ */
68
+ protected abstract streamLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): AsyncGenerator<AgentStreamChunk, void, unknown>;
69
+ /**
70
+ * Public typed bridge for adapter layer. Keeps provider-specific logic in
71
+ * protected methods while removing adapter-side `any` access.
72
+ */
73
+ callWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): Promise<{
74
+ content: string;
75
+ raw?: unknown;
76
+ }>;
77
+ /**
78
+ * Public typed bridge for streaming adapter layer.
79
+ */
80
+ streamWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): AsyncGenerator<AgentStreamChunk, void, unknown>;
81
+ /**
82
+ * Clear conversation history
83
+ */
84
+ clearHistory(): void;
85
+ /**
86
+ * Get conversation history
87
+ */
88
+ getHistory(): Message[];
89
+ }
90
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,OAAO,EACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CACX,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/C,eAAe,CACb,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,8BAAsB,SAAU,YAAW,kBAAkB;IAC3D,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,SAAS,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAM;IAC9C,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAM;gBAEpB,MAAM,EAAE,eAAe;IAanC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B;;;;OAIG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiC1D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;IAElD;;;OAGG;IACG,aAAa,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAI9C;;OAEG;IACH,eAAe,CACb,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;IAIlD;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,OAAO,EAAE;CAGxB"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Base Agent - Abstract class for LLM-specific agent implementations
3
+ *
4
+ * Each LLM provider has different ways of handling tools:
5
+ * - OpenAI: function calling via tools parameter
6
+ * - Anthropic: tools in messages
7
+ * - DeepSeek: function calling or prompt-based
8
+ *
9
+ * This base class provides common logic, subclasses implement LLM-specific tool handling.
10
+ */
11
+ import { MCPClientWrapper } from '../mcp/client.js';
12
+ /**
13
+ * Base Agent class - provides common logic for all agent implementations
14
+ */
15
+ export class BaseAgent {
16
+ mcpClient;
17
+ conversationHistory = [];
18
+ tools = [];
19
+ constructor(config) {
20
+ // Initialize MCP client
21
+ if (config.mcpClient) {
22
+ this.mcpClient = config.mcpClient;
23
+ }
24
+ else if (config.mcpConfig) {
25
+ this.mcpClient = new MCPClientWrapper(config.mcpConfig);
26
+ }
27
+ else {
28
+ throw new Error('MCP client configuration required. Provide either mcpClient or mcpConfig.');
29
+ }
30
+ }
31
+ /**
32
+ * Initialize MCP client connection (call this before using the agent)
33
+ * If connection fails, agent will work in LLM-only mode (no tools)
34
+ */
35
+ async connect() {
36
+ try {
37
+ await this.mcpClient.connect();
38
+ // Load tools once connected
39
+ this.tools = await this.mcpClient.listTools();
40
+ }
41
+ catch (error) {
42
+ // If connection fails, agent will work without tools (LLM-only mode)
43
+ // Set empty tools array to ensure agent can still process messages
44
+ this.tools = [];
45
+ // Re-throw to let caller know connection failed
46
+ // Caller can decide whether to continue or fail
47
+ throw error;
48
+ }
49
+ }
50
+ /**
51
+ * Process a user message and return agent response
52
+ * Subclasses handle provider-specific tool formatting only.
53
+ * Tool execution is left to the consumer of this library.
54
+ */
55
+ async process(userMessage) {
56
+ try {
57
+ // Add user message to history
58
+ this.conversationHistory.push({
59
+ role: 'user',
60
+ content: userMessage,
61
+ });
62
+ // Get LLM response with tools (LLM-specific implementation)
63
+ const llmResponse = await this.callLLMWithTools(this.conversationHistory, this.tools);
64
+ this.conversationHistory.push({
65
+ role: 'assistant',
66
+ content: llmResponse.content,
67
+ });
68
+ return {
69
+ message: llmResponse.content,
70
+ raw: llmResponse.raw,
71
+ };
72
+ }
73
+ catch (error) {
74
+ const errorMessage = error instanceof Error ? error.message : String(error);
75
+ return {
76
+ message: '',
77
+ error: errorMessage || 'Agent processing failed',
78
+ };
79
+ }
80
+ }
81
+ /**
82
+ * Public typed bridge for adapter layer. Keeps provider-specific logic in
83
+ * protected methods while removing adapter-side `any` access.
84
+ */
85
+ async callWithTools(messages, tools, options) {
86
+ return this.callLLMWithTools(messages, tools, options);
87
+ }
88
+ /**
89
+ * Public typed bridge for streaming adapter layer.
90
+ */
91
+ streamWithTools(messages, tools, options) {
92
+ return this.streamLLMWithTools(messages, tools, options);
93
+ }
94
+ /**
95
+ * Clear conversation history
96
+ */
97
+ clearHistory() {
98
+ this.conversationHistory = [];
99
+ }
100
+ /**
101
+ * Get conversation history
102
+ */
103
+ getHistory() {
104
+ return [...this.conversationHistory];
105
+ }
106
+ }
107
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAwB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmC1E;;GAEG;AACH,MAAM,OAAgB,SAAS;IACnB,SAAS,CAAmB;IAC5B,mBAAmB,GAAc,EAAE,CAAC;IACpC,KAAK,GAAc,EAAE,CAAC;IAEhC,YAAY,MAAuB;QACjC,wBAAwB;QACxB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACpC,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/B,4BAA4B;YAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,gDAAgD;YAChD,gDAAgD;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,4DAA4D;YAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC7C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,KAAK,CACX,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,GAAG,EAAE,WAAW,CAAC,GAAG;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,YAAY,IAAI,yBAAyB;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAqBD;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,QAAmB,EACnB,KAAgB,EAChB,OAA0B;QAE1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,eAAe,CACb,QAAmB,EACnB,KAAgB,EAChB,OAA0B;QAE1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * DeepSeek Agent - Uses DeepSeek function calling (similar to OpenAI)
3
+ *
4
+ * DeepSeek supports function calling similar to OpenAI via the `tools` parameter.
5
+ */
6
+ import type { AgentStreamChunk, Message } from '@mcp-abap-adt/llm-agent';
7
+ import type { DeepSeekProvider } from '../llm-providers/deepseek.js';
8
+ import { type AgentCallOptions, BaseAgent, type BaseAgentConfig } from './base.js';
9
+ export interface DeepSeekAgentConfig extends BaseAgentConfig {
10
+ llmProvider: DeepSeekProvider;
11
+ }
12
+ export declare class DeepSeekAgent extends BaseAgent {
13
+ private llmProvider;
14
+ constructor(config: DeepSeekAgentConfig);
15
+ /**
16
+ * Call DeepSeek with tools using function calling (similar to OpenAI)
17
+ */
18
+ protected callLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): Promise<{
19
+ content: string;
20
+ raw?: unknown;
21
+ }>;
22
+ /**
23
+ * Stream DeepSeek response
24
+ */
25
+ protected streamLLMWithTools(messages: Message[], tools: unknown[], options?: AgentCallOptions): AsyncGenerator<AgentStreamChunk, void, unknown>;
26
+ /**
27
+ * Convert MCP tools to DeepSeek function format
28
+ */
29
+ private convertToolsToFunctions;
30
+ }
31
+ //# sourceMappingURL=deepseek-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek-agent.d.ts","sourceRoot":"","sources":["../../src/agents/deepseek-agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACL,KAAK,gBAAgB,EACrB,SAAS,EACT,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,WAAW,CAAmB;gBAE1B,MAAM,EAAE,mBAAmB;IAKvC;;OAEG;cACa,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAe9C;;OAEG;cACc,kBAAkB,CACjC,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC;IAoGlD;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAsBhC"}