@mcp-abap-adt/llm-agent 8.5.0 → 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 (888) hide show
  1. package/README.md +8 -144
  2. package/dist/index.d.ts +3 -101
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4 -89
  5. package/dist/index.js.map +1 -1
  6. package/dist/interfaces/agent-contracts.d.ts.map +1 -0
  7. package/dist/interfaces/agent-contracts.js.map +1 -0
  8. package/dist/{smart-agent/interfaces → interfaces}/assembler.d.ts +1 -1
  9. package/dist/interfaces/assembler.d.ts.map +1 -0
  10. package/dist/interfaces/assembler.js.map +1 -0
  11. package/dist/interfaces/classifier.d.ts.map +1 -0
  12. package/dist/interfaces/classifier.js.map +1 -0
  13. package/dist/interfaces/history-memory.d.ts.map +1 -0
  14. package/dist/interfaces/history-memory.js.map +1 -0
  15. package/dist/interfaces/history-summarizer.d.ts.map +1 -0
  16. package/dist/interfaces/history-summarizer.js.map +1 -0
  17. package/dist/interfaces/index.d.ts +20 -0
  18. package/dist/interfaces/index.d.ts.map +1 -0
  19. package/dist/{smart-agent/interfaces → interfaces}/index.js +1 -1
  20. package/dist/interfaces/index.js.map +1 -0
  21. package/dist/{smart-agent/interfaces → interfaces}/llm-call-strategy.d.ts +1 -1
  22. package/dist/interfaces/llm-call-strategy.d.ts.map +1 -0
  23. package/dist/interfaces/llm-call-strategy.js.map +1 -0
  24. package/dist/{smart-agent/interfaces → interfaces}/llm.d.ts +1 -1
  25. package/dist/interfaces/llm.d.ts.map +1 -0
  26. package/dist/interfaces/llm.js.map +1 -0
  27. package/dist/interfaces/mcp-client.d.ts.map +1 -0
  28. package/dist/interfaces/mcp-client.js.map +1 -0
  29. package/dist/interfaces/model-provider.d.ts.map +1 -0
  30. package/dist/interfaces/model-provider.js.map +1 -0
  31. package/dist/interfaces/plugin.d.ts.map +1 -0
  32. package/dist/interfaces/plugin.js.map +1 -0
  33. package/dist/interfaces/query-embedding.d.ts.map +1 -0
  34. package/dist/interfaces/query-embedding.js.map +1 -0
  35. package/dist/interfaces/rag.d.ts +113 -0
  36. package/dist/interfaces/rag.d.ts.map +1 -0
  37. package/dist/{smart-agent/interfaces → interfaces}/rag.js +0 -3
  38. package/dist/interfaces/rag.js.map +1 -0
  39. package/dist/interfaces/rate-limiter.d.ts.map +1 -0
  40. package/dist/interfaces/rate-limiter.js.map +1 -0
  41. package/dist/interfaces/request-logger.d.ts.map +1 -0
  42. package/dist/interfaces/request-logger.js.map +1 -0
  43. package/dist/interfaces/skill.d.ts.map +1 -0
  44. package/dist/interfaces/skill.js.map +1 -0
  45. package/dist/{smart-agent/interfaces → interfaces}/types.d.ts +1 -1
  46. package/dist/interfaces/types.d.ts.map +1 -0
  47. package/dist/interfaces/types.js.map +1 -0
  48. package/dist/rag/corrections/active-filtering-rag.d.ts +11 -0
  49. package/dist/rag/corrections/active-filtering-rag.d.ts.map +1 -0
  50. package/dist/rag/corrections/active-filtering-rag.js +33 -0
  51. package/dist/rag/corrections/active-filtering-rag.js.map +1 -0
  52. package/dist/rag/corrections/errors.d.ts +23 -0
  53. package/dist/rag/corrections/errors.d.ts.map +1 -0
  54. package/dist/rag/corrections/errors.js +44 -0
  55. package/dist/rag/corrections/errors.js.map +1 -0
  56. package/dist/rag/corrections/index.d.ts +4 -0
  57. package/dist/rag/corrections/index.d.ts.map +1 -0
  58. package/dist/rag/corrections/index.js +4 -0
  59. package/dist/rag/corrections/index.js.map +1 -0
  60. package/dist/rag/corrections/metadata.d.ts +24 -0
  61. package/dist/rag/corrections/metadata.d.ts.map +1 -0
  62. package/dist/rag/corrections/metadata.js +42 -0
  63. package/dist/rag/corrections/metadata.js.map +1 -0
  64. package/dist/rag/embedder-factories.d.ts.map +1 -0
  65. package/dist/rag/embedder-factories.js.map +1 -0
  66. package/dist/{smart-agent/rag → rag}/in-memory-rag.d.ts +3 -1
  67. package/dist/rag/in-memory-rag.d.ts.map +1 -0
  68. package/dist/{smart-agent/rag → rag}/in-memory-rag.js +28 -0
  69. package/dist/rag/in-memory-rag.js.map +1 -0
  70. package/dist/{smart-agent/rag → rag}/index.d.ts +10 -0
  71. package/dist/rag/index.d.ts.map +1 -0
  72. package/dist/{smart-agent/rag → rag}/index.js +10 -0
  73. package/dist/rag/index.js.map +1 -0
  74. package/dist/{smart-agent/rag → rag}/inverted-index.d.ts +2 -0
  75. package/dist/rag/inverted-index.d.ts.map +1 -0
  76. package/dist/{smart-agent/rag → rag}/inverted-index.js +16 -0
  77. package/dist/rag/inverted-index.js.map +1 -0
  78. package/dist/rag/mcp-tools/index.d.ts +2 -0
  79. package/dist/rag/mcp-tools/index.d.ts.map +1 -0
  80. package/dist/rag/mcp-tools/index.js +2 -0
  81. package/dist/rag/mcp-tools/index.js.map +1 -0
  82. package/dist/rag/mcp-tools/rag-collection-tools.d.ts +20 -0
  83. package/dist/rag/mcp-tools/rag-collection-tools.d.ts.map +1 -0
  84. package/dist/rag/mcp-tools/rag-collection-tools.js +234 -0
  85. package/dist/rag/mcp-tools/rag-collection-tools.js.map +1 -0
  86. package/dist/rag/ollama-rag.d.ts.map +1 -0
  87. package/dist/rag/ollama-rag.js.map +1 -0
  88. package/dist/rag/openai-embedder.d.ts.map +1 -0
  89. package/dist/rag/openai-embedder.js.map +1 -0
  90. package/dist/rag/overlays/index.d.ts +3 -0
  91. package/dist/rag/overlays/index.d.ts.map +1 -0
  92. package/dist/rag/overlays/index.js +3 -0
  93. package/dist/rag/overlays/index.js.map +1 -0
  94. package/dist/rag/overlays/overlay-rag.d.ts +15 -0
  95. package/dist/rag/overlays/overlay-rag.d.ts.map +1 -0
  96. package/dist/rag/overlays/overlay-rag.js +55 -0
  97. package/dist/rag/overlays/overlay-rag.js.map +1 -0
  98. package/dist/rag/overlays/session-scoped-rag.d.ts +12 -0
  99. package/dist/rag/overlays/session-scoped-rag.d.ts.map +1 -0
  100. package/dist/rag/overlays/session-scoped-rag.js +31 -0
  101. package/dist/rag/overlays/session-scoped-rag.js.map +1 -0
  102. package/dist/rag/preprocessor.d.ts.map +1 -0
  103. package/dist/rag/preprocessor.js.map +1 -0
  104. package/dist/rag/providers/base-provider.d.ts +29 -0
  105. package/dist/rag/providers/base-provider.d.ts.map +1 -0
  106. package/dist/rag/providers/base-provider.js +30 -0
  107. package/dist/rag/providers/base-provider.js.map +1 -0
  108. package/dist/rag/providers/in-memory-rag-provider.d.ts +31 -0
  109. package/dist/rag/providers/in-memory-rag-provider.d.ts.map +1 -0
  110. package/dist/rag/providers/in-memory-rag-provider.js +26 -0
  111. package/dist/rag/providers/in-memory-rag-provider.js.map +1 -0
  112. package/dist/rag/providers/index.d.ts +6 -0
  113. package/dist/rag/providers/index.d.ts.map +1 -0
  114. package/dist/rag/providers/index.js +6 -0
  115. package/dist/rag/providers/index.js.map +1 -0
  116. package/dist/rag/providers/qdrant-rag-provider.d.ts +39 -0
  117. package/dist/rag/providers/qdrant-rag-provider.d.ts.map +1 -0
  118. package/dist/rag/providers/qdrant-rag-provider.js +93 -0
  119. package/dist/rag/providers/qdrant-rag-provider.js.map +1 -0
  120. package/dist/rag/providers/simple-provider-registry.d.ts +8 -0
  121. package/dist/rag/providers/simple-provider-registry.d.ts.map +1 -0
  122. package/dist/rag/providers/simple-provider-registry.js +16 -0
  123. package/dist/rag/providers/simple-provider-registry.js.map +1 -0
  124. package/dist/rag/providers/vector-rag-provider.d.ts +33 -0
  125. package/dist/rag/providers/vector-rag-provider.d.ts.map +1 -0
  126. package/dist/rag/providers/vector-rag-provider.js +28 -0
  127. package/dist/rag/providers/vector-rag-provider.js.map +1 -0
  128. package/dist/{smart-agent/rag → rag}/qdrant-rag.d.ts +4 -2
  129. package/dist/rag/qdrant-rag.d.ts.map +1 -0
  130. package/dist/{smart-agent/rag → rag}/qdrant-rag.js +94 -0
  131. package/dist/rag/qdrant-rag.js.map +1 -0
  132. package/dist/rag/query-embedding.d.ts.map +1 -0
  133. package/dist/rag/query-embedding.js.map +1 -0
  134. package/dist/rag/query-expander.d.ts.map +1 -0
  135. package/dist/rag/query-expander.js.map +1 -0
  136. package/dist/rag/registry/index.d.ts +2 -0
  137. package/dist/rag/registry/index.d.ts.map +1 -0
  138. package/dist/rag/registry/index.js +2 -0
  139. package/dist/rag/registry/index.js.map +1 -0
  140. package/dist/rag/registry/simple-rag-registry.d.ts +34 -0
  141. package/dist/rag/registry/simple-rag-registry.d.ts.map +1 -0
  142. package/dist/rag/registry/simple-rag-registry.js +143 -0
  143. package/dist/rag/registry/simple-rag-registry.js.map +1 -0
  144. package/dist/rag/sap-ai-core-embedder.d.ts.map +1 -0
  145. package/dist/rag/sap-ai-core-embedder.js.map +1 -0
  146. package/dist/rag/search-strategy.d.ts.map +1 -0
  147. package/dist/rag/search-strategy.js.map +1 -0
  148. package/dist/rag/strategies/edit/direct.d.ts +13 -0
  149. package/dist/rag/strategies/edit/direct.d.ts.map +1 -0
  150. package/dist/rag/strategies/edit/direct.js +31 -0
  151. package/dist/rag/strategies/edit/direct.js.map +1 -0
  152. package/dist/rag/strategies/edit/immutable.d.ts +11 -0
  153. package/dist/rag/strategies/edit/immutable.d.ts.map +1 -0
  154. package/dist/rag/strategies/edit/immutable.js +14 -0
  155. package/dist/rag/strategies/edit/immutable.js.map +1 -0
  156. package/dist/rag/strategies/edit/index.d.ts +5 -0
  157. package/dist/rag/strategies/edit/index.d.ts.map +1 -0
  158. package/dist/rag/strategies/edit/index.js +5 -0
  159. package/dist/rag/strategies/edit/index.js.map +1 -0
  160. package/dist/rag/strategies/edit/overlay.d.ts +8 -0
  161. package/dist/rag/strategies/edit/overlay.d.ts.map +1 -0
  162. package/dist/rag/strategies/edit/overlay.js +8 -0
  163. package/dist/rag/strategies/edit/overlay.js.map +1 -0
  164. package/dist/rag/strategies/edit/session-scoped.d.ts +19 -0
  165. package/dist/rag/strategies/edit/session-scoped.d.ts.map +1 -0
  166. package/dist/rag/strategies/edit/session-scoped.js +46 -0
  167. package/dist/rag/strategies/edit/session-scoped.js.map +1 -0
  168. package/dist/rag/strategies/id/caller-provided.d.ts +6 -0
  169. package/dist/rag/strategies/id/caller-provided.d.ts.map +1 -0
  170. package/dist/rag/strategies/id/caller-provided.js +10 -0
  171. package/dist/rag/strategies/id/caller-provided.js.map +1 -0
  172. package/dist/rag/strategies/id/canonical-key.d.ts +6 -0
  173. package/dist/rag/strategies/id/canonical-key.d.ts.map +1 -0
  174. package/dist/rag/strategies/id/canonical-key.js +14 -0
  175. package/dist/rag/strategies/id/canonical-key.js.map +1 -0
  176. package/dist/rag/strategies/id/global-unique.d.ts +6 -0
  177. package/dist/rag/strategies/id/global-unique.d.ts.map +1 -0
  178. package/dist/rag/strategies/id/global-unique.js +9 -0
  179. package/dist/rag/strategies/id/global-unique.js.map +1 -0
  180. package/dist/rag/strategies/id/index.d.ts +5 -0
  181. package/dist/rag/strategies/id/index.d.ts.map +1 -0
  182. package/dist/rag/strategies/id/index.js +5 -0
  183. package/dist/rag/strategies/id/index.js.map +1 -0
  184. package/dist/rag/strategies/id/session-scoped.d.ts +8 -0
  185. package/dist/rag/strategies/id/session-scoped.d.ts.map +1 -0
  186. package/dist/rag/strategies/id/session-scoped.js +14 -0
  187. package/dist/rag/strategies/id/session-scoped.js.map +1 -0
  188. package/dist/rag/tool-indexing-strategy.d.ts.map +1 -0
  189. package/dist/rag/tool-indexing-strategy.js.map +1 -0
  190. package/dist/{smart-agent/rag → rag}/vector-rag.d.ts +4 -2
  191. package/dist/rag/vector-rag.d.ts.map +1 -0
  192. package/dist/{smart-agent/rag → rag}/vector-rag.js +71 -28
  193. package/dist/rag/vector-rag.js.map +1 -0
  194. package/dist/testing/index.d.ts +16 -0
  195. package/dist/testing/index.d.ts.map +1 -0
  196. package/dist/testing/index.js +71 -0
  197. package/dist/testing/index.js.map +1 -0
  198. package/package.json +10 -103
  199. package/LICENSE +0 -22
  200. package/dist/agent.d.ts +0 -49
  201. package/dist/agent.d.ts.map +0 -1
  202. package/dist/agent.js +0 -97
  203. package/dist/agent.js.map +0 -1
  204. package/dist/agents/anthropic-agent.d.ts +0 -33
  205. package/dist/agents/anthropic-agent.d.ts.map +0 -1
  206. package/dist/agents/anthropic-agent.js +0 -138
  207. package/dist/agents/anthropic-agent.js.map +0 -1
  208. package/dist/agents/base.d.ts +0 -90
  209. package/dist/agents/base.d.ts.map +0 -1
  210. package/dist/agents/base.js +0 -107
  211. package/dist/agents/base.js.map +0 -1
  212. package/dist/agents/deepseek-agent.d.ts +0 -31
  213. package/dist/agents/deepseek-agent.d.ts.map +0 -1
  214. package/dist/agents/deepseek-agent.js +0 -121
  215. package/dist/agents/deepseek-agent.js.map +0 -1
  216. package/dist/agents/index.d.ts +0 -10
  217. package/dist/agents/index.d.ts.map +0 -1
  218. package/dist/agents/index.js +0 -10
  219. package/dist/agents/index.js.map +0 -1
  220. package/dist/agents/openai-agent.d.ts +0 -32
  221. package/dist/agents/openai-agent.d.ts.map +0 -1
  222. package/dist/agents/openai-agent.js +0 -122
  223. package/dist/agents/openai-agent.js.map +0 -1
  224. package/dist/agents/prompt-based-agent.d.ts +0 -29
  225. package/dist/agents/prompt-based-agent.d.ts.map +0 -1
  226. package/dist/agents/prompt-based-agent.js +0 -67
  227. package/dist/agents/prompt-based-agent.js.map +0 -1
  228. package/dist/agents/sap-ai-core-direct-agent.d.ts +0 -24
  229. package/dist/agents/sap-ai-core-direct-agent.d.ts.map +0 -1
  230. package/dist/agents/sap-ai-core-direct-agent.js +0 -117
  231. package/dist/agents/sap-ai-core-direct-agent.js.map +0 -1
  232. package/dist/agents/sap-core-ai-agent.d.ts +0 -41
  233. package/dist/agents/sap-core-ai-agent.d.ts.map +0 -1
  234. package/dist/agents/sap-core-ai-agent.js +0 -151
  235. package/dist/agents/sap-core-ai-agent.js.map +0 -1
  236. package/dist/cli.d.ts +0 -53
  237. package/dist/cli.d.ts.map +0 -1
  238. package/dist/cli.js +0 -338
  239. package/dist/cli.js.map +0 -1
  240. package/dist/generated/version.d.ts +0 -2
  241. package/dist/generated/version.d.ts.map +0 -1
  242. package/dist/generated/version.js +0 -3
  243. package/dist/generated/version.js.map +0 -1
  244. package/dist/llm-providers/anthropic.d.ts +0 -26
  245. package/dist/llm-providers/anthropic.d.ts.map +0 -1
  246. package/dist/llm-providers/anthropic.js +0 -202
  247. package/dist/llm-providers/anthropic.js.map +0 -1
  248. package/dist/llm-providers/base.d.ts +0 -34
  249. package/dist/llm-providers/base.d.ts.map +0 -1
  250. package/dist/llm-providers/base.js +0 -18
  251. package/dist/llm-providers/base.js.map +0 -1
  252. package/dist/llm-providers/deepseek.d.ts +0 -25
  253. package/dist/llm-providers/deepseek.d.ts.map +0 -1
  254. package/dist/llm-providers/deepseek.js +0 -60
  255. package/dist/llm-providers/deepseek.js.map +0 -1
  256. package/dist/llm-providers/index.d.ts +0 -13
  257. package/dist/llm-providers/index.d.ts.map +0 -1
  258. package/dist/llm-providers/index.js +0 -15
  259. package/dist/llm-providers/index.js.map +0 -1
  260. package/dist/llm-providers/openai.d.ts +0 -35
  261. package/dist/llm-providers/openai.d.ts.map +0 -1
  262. package/dist/llm-providers/openai.js +0 -193
  263. package/dist/llm-providers/openai.js.map +0 -1
  264. package/dist/llm-providers/sap-ai-core-direct.d.ts +0 -30
  265. package/dist/llm-providers/sap-ai-core-direct.d.ts.map +0 -1
  266. package/dist/llm-providers/sap-ai-core-direct.js +0 -178
  267. package/dist/llm-providers/sap-ai-core-direct.js.map +0 -1
  268. package/dist/llm-providers/sap-core-ai.d.ts +0 -91
  269. package/dist/llm-providers/sap-core-ai.d.ts.map +0 -1
  270. package/dist/llm-providers/sap-core-ai.js +0 -394
  271. package/dist/llm-providers/sap-core-ai.js.map +0 -1
  272. package/dist/mcp/client.d.ts +0 -133
  273. package/dist/mcp/client.d.ts.map +0 -1
  274. package/dist/mcp/client.js +0 -314
  275. package/dist/mcp/client.js.map +0 -1
  276. package/dist/smart-agent/adapters/cline-client-adapter.d.ts +0 -18
  277. package/dist/smart-agent/adapters/cline-client-adapter.d.ts.map +0 -1
  278. package/dist/smart-agent/adapters/cline-client-adapter.js +0 -21
  279. package/dist/smart-agent/adapters/cline-client-adapter.js.map +0 -1
  280. package/dist/smart-agent/adapters/index.d.ts +0 -3
  281. package/dist/smart-agent/adapters/index.d.ts.map +0 -1
  282. package/dist/smart-agent/adapters/index.js +0 -3
  283. package/dist/smart-agent/adapters/index.js.map +0 -1
  284. package/dist/smart-agent/adapters/llm-adapter.d.ts +0 -26
  285. package/dist/smart-agent/adapters/llm-adapter.d.ts.map +0 -1
  286. package/dist/smart-agent/adapters/llm-adapter.js +0 -345
  287. package/dist/smart-agent/adapters/llm-adapter.js.map +0 -1
  288. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts +0 -16
  289. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts.map +0 -1
  290. package/dist/smart-agent/adapters/mcp-client-adapter.js +0 -95
  291. package/dist/smart-agent/adapters/mcp-client-adapter.js.map +0 -1
  292. package/dist/smart-agent/adapters/non-streaming-llm.d.ts +0 -20
  293. package/dist/smart-agent/adapters/non-streaming-llm.d.ts.map +0 -1
  294. package/dist/smart-agent/adapters/non-streaming-llm.js +0 -44
  295. package/dist/smart-agent/adapters/non-streaming-llm.js.map +0 -1
  296. package/dist/smart-agent/agent.d.ts +0 -231
  297. package/dist/smart-agent/agent.d.ts.map +0 -1
  298. package/dist/smart-agent/agent.js +0 -1503
  299. package/dist/smart-agent/agent.js.map +0 -1
  300. package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts +0 -11
  301. package/dist/smart-agent/api-adapters/anthropic-adapter.d.ts.map +0 -1
  302. package/dist/smart-agent/api-adapters/anthropic-adapter.js +0 -356
  303. package/dist/smart-agent/api-adapters/anthropic-adapter.js.map +0 -1
  304. package/dist/smart-agent/api-adapters/index.d.ts +0 -3
  305. package/dist/smart-agent/api-adapters/index.d.ts.map +0 -1
  306. package/dist/smart-agent/api-adapters/index.js +0 -3
  307. package/dist/smart-agent/api-adapters/index.js.map +0 -1
  308. package/dist/smart-agent/api-adapters/openai-adapter.d.ts +0 -11
  309. package/dist/smart-agent/api-adapters/openai-adapter.d.ts.map +0 -1
  310. package/dist/smart-agent/api-adapters/openai-adapter.js +0 -277
  311. package/dist/smart-agent/api-adapters/openai-adapter.js.map +0 -1
  312. package/dist/smart-agent/builder.d.ts +0 -263
  313. package/dist/smart-agent/builder.d.ts.map +0 -1
  314. package/dist/smart-agent/builder.js +0 -842
  315. package/dist/smart-agent/builder.js.map +0 -1
  316. package/dist/smart-agent/cache/index.d.ts +0 -4
  317. package/dist/smart-agent/cache/index.d.ts.map +0 -1
  318. package/dist/smart-agent/cache/index.js +0 -3
  319. package/dist/smart-agent/cache/index.js.map +0 -1
  320. package/dist/smart-agent/cache/noop-tool-cache.d.ts +0 -7
  321. package/dist/smart-agent/cache/noop-tool-cache.d.ts.map +0 -1
  322. package/dist/smart-agent/cache/noop-tool-cache.js +0 -8
  323. package/dist/smart-agent/cache/noop-tool-cache.js.map +0 -1
  324. package/dist/smart-agent/cache/tool-cache.d.ts +0 -14
  325. package/dist/smart-agent/cache/tool-cache.d.ts.map +0 -1
  326. package/dist/smart-agent/cache/tool-cache.js +0 -32
  327. package/dist/smart-agent/cache/tool-cache.js.map +0 -1
  328. package/dist/smart-agent/cache/types.d.ts +0 -7
  329. package/dist/smart-agent/cache/types.d.ts.map +0 -1
  330. package/dist/smart-agent/cache/types.js +0 -2
  331. package/dist/smart-agent/cache/types.js.map +0 -1
  332. package/dist/smart-agent/check-models-cli.d.ts +0 -14
  333. package/dist/smart-agent/check-models-cli.d.ts.map +0 -1
  334. package/dist/smart-agent/check-models-cli.js +0 -237
  335. package/dist/smart-agent/check-models-cli.js.map +0 -1
  336. package/dist/smart-agent/classifier/index.d.ts +0 -3
  337. package/dist/smart-agent/classifier/index.d.ts.map +0 -1
  338. package/dist/smart-agent/classifier/index.js +0 -2
  339. package/dist/smart-agent/classifier/index.js.map +0 -1
  340. package/dist/smart-agent/classifier/llm-classifier.d.ts +0 -22
  341. package/dist/smart-agent/classifier/llm-classifier.d.ts.map +0 -1
  342. package/dist/smart-agent/classifier/llm-classifier.js +0 -128
  343. package/dist/smart-agent/classifier/llm-classifier.js.map +0 -1
  344. package/dist/smart-agent/cli.d.ts +0 -65
  345. package/dist/smart-agent/cli.d.ts.map +0 -1
  346. package/dist/smart-agent/cli.js +0 -199
  347. package/dist/smart-agent/cli.js.map +0 -1
  348. package/dist/smart-agent/config/config-watcher.d.ts +0 -54
  349. package/dist/smart-agent/config/config-watcher.d.ts.map +0 -1
  350. package/dist/smart-agent/config/config-watcher.js +0 -107
  351. package/dist/smart-agent/config/config-watcher.js.map +0 -1
  352. package/dist/smart-agent/config/index.d.ts +0 -2
  353. package/dist/smart-agent/config/index.d.ts.map +0 -1
  354. package/dist/smart-agent/config/index.js +0 -2
  355. package/dist/smart-agent/config/index.js.map +0 -1
  356. package/dist/smart-agent/config.d.ts +0 -35
  357. package/dist/smart-agent/config.d.ts.map +0 -1
  358. package/dist/smart-agent/config.js +0 -360
  359. package/dist/smart-agent/config.js.map +0 -1
  360. package/dist/smart-agent/context/context-assembler.d.ts +0 -50
  361. package/dist/smart-agent/context/context-assembler.d.ts.map +0 -1
  362. package/dist/smart-agent/context/context-assembler.js +0 -184
  363. package/dist/smart-agent/context/context-assembler.js.map +0 -1
  364. package/dist/smart-agent/context/index.d.ts +0 -3
  365. package/dist/smart-agent/context/index.d.ts.map +0 -1
  366. package/dist/smart-agent/context/index.js +0 -2
  367. package/dist/smart-agent/context/index.js.map +0 -1
  368. package/dist/smart-agent/health/health-checker.d.ts +0 -21
  369. package/dist/smart-agent/health/health-checker.d.ts.map +0 -1
  370. package/dist/smart-agent/health/health-checker.js +0 -52
  371. package/dist/smart-agent/health/health-checker.js.map +0 -1
  372. package/dist/smart-agent/health/index.d.ts +0 -3
  373. package/dist/smart-agent/health/index.d.ts.map +0 -1
  374. package/dist/smart-agent/health/index.js +0 -2
  375. package/dist/smart-agent/health/index.js.map +0 -1
  376. package/dist/smart-agent/health/types.d.ts +0 -25
  377. package/dist/smart-agent/health/types.d.ts.map +0 -1
  378. package/dist/smart-agent/health/types.js +0 -2
  379. package/dist/smart-agent/health/types.js.map +0 -1
  380. package/dist/smart-agent/history/history-memory.d.ts +0 -12
  381. package/dist/smart-agent/history/history-memory.d.ts.map +0 -1
  382. package/dist/smart-agent/history/history-memory.js +0 -26
  383. package/dist/smart-agent/history/history-memory.js.map +0 -1
  384. package/dist/smart-agent/history/history-summarizer.d.ts +0 -12
  385. package/dist/smart-agent/history/history-summarizer.d.ts.map +0 -1
  386. package/dist/smart-agent/history/history-summarizer.js +0 -27
  387. package/dist/smart-agent/history/history-summarizer.js.map +0 -1
  388. package/dist/smart-agent/history/index.d.ts +0 -3
  389. package/dist/smart-agent/history/index.d.ts.map +0 -1
  390. package/dist/smart-agent/history/index.js +0 -3
  391. package/dist/smart-agent/history/index.js.map +0 -1
  392. package/dist/smart-agent/interfaces/agent-contracts.d.ts.map +0 -1
  393. package/dist/smart-agent/interfaces/agent-contracts.js.map +0 -1
  394. package/dist/smart-agent/interfaces/api-adapter.d.ts +0 -38
  395. package/dist/smart-agent/interfaces/api-adapter.d.ts.map +0 -1
  396. package/dist/smart-agent/interfaces/api-adapter.js +0 -9
  397. package/dist/smart-agent/interfaces/api-adapter.js.map +0 -1
  398. package/dist/smart-agent/interfaces/assembler.d.ts.map +0 -1
  399. package/dist/smart-agent/interfaces/assembler.js.map +0 -1
  400. package/dist/smart-agent/interfaces/classifier.d.ts.map +0 -1
  401. package/dist/smart-agent/interfaces/classifier.js.map +0 -1
  402. package/dist/smart-agent/interfaces/client-adapter.d.ts +0 -23
  403. package/dist/smart-agent/interfaces/client-adapter.d.ts.map +0 -1
  404. package/dist/smart-agent/interfaces/client-adapter.js +0 -10
  405. package/dist/smart-agent/interfaces/client-adapter.js.map +0 -1
  406. package/dist/smart-agent/interfaces/history-memory.d.ts.map +0 -1
  407. package/dist/smart-agent/interfaces/history-memory.js.map +0 -1
  408. package/dist/smart-agent/interfaces/history-summarizer.d.ts.map +0 -1
  409. package/dist/smart-agent/interfaces/history-summarizer.js.map +0 -1
  410. package/dist/smart-agent/interfaces/index.d.ts +0 -25
  411. package/dist/smart-agent/interfaces/index.d.ts.map +0 -1
  412. package/dist/smart-agent/interfaces/index.js.map +0 -1
  413. package/dist/smart-agent/interfaces/llm-call-strategy.d.ts.map +0 -1
  414. package/dist/smart-agent/interfaces/llm-call-strategy.js.map +0 -1
  415. package/dist/smart-agent/interfaces/llm.d.ts.map +0 -1
  416. package/dist/smart-agent/interfaces/llm.js.map +0 -1
  417. package/dist/smart-agent/interfaces/mcp-client.d.ts.map +0 -1
  418. package/dist/smart-agent/interfaces/mcp-client.js.map +0 -1
  419. package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts +0 -28
  420. package/dist/smart-agent/interfaces/mcp-connection-strategy.d.ts.map +0 -1
  421. package/dist/smart-agent/interfaces/mcp-connection-strategy.js +0 -2
  422. package/dist/smart-agent/interfaces/mcp-connection-strategy.js.map +0 -1
  423. package/dist/smart-agent/interfaces/model-provider.d.ts.map +0 -1
  424. package/dist/smart-agent/interfaces/model-provider.js.map +0 -1
  425. package/dist/smart-agent/interfaces/model-resolver.d.ts +0 -9
  426. package/dist/smart-agent/interfaces/model-resolver.d.ts.map +0 -1
  427. package/dist/smart-agent/interfaces/model-resolver.js +0 -2
  428. package/dist/smart-agent/interfaces/model-resolver.js.map +0 -1
  429. package/dist/smart-agent/interfaces/pipeline.d.ts +0 -133
  430. package/dist/smart-agent/interfaces/pipeline.d.ts.map +0 -1
  431. package/dist/smart-agent/interfaces/pipeline.js +0 -13
  432. package/dist/smart-agent/interfaces/pipeline.js.map +0 -1
  433. package/dist/smart-agent/interfaces/plugin.d.ts.map +0 -1
  434. package/dist/smart-agent/interfaces/plugin.js.map +0 -1
  435. package/dist/smart-agent/interfaces/query-embedding.d.ts.map +0 -1
  436. package/dist/smart-agent/interfaces/query-embedding.js.map +0 -1
  437. package/dist/smart-agent/interfaces/rag.d.ts +0 -51
  438. package/dist/smart-agent/interfaces/rag.d.ts.map +0 -1
  439. package/dist/smart-agent/interfaces/rag.js.map +0 -1
  440. package/dist/smart-agent/interfaces/rate-limiter.d.ts.map +0 -1
  441. package/dist/smart-agent/interfaces/rate-limiter.js.map +0 -1
  442. package/dist/smart-agent/interfaces/request-logger.d.ts.map +0 -1
  443. package/dist/smart-agent/interfaces/request-logger.js.map +0 -1
  444. package/dist/smart-agent/interfaces/skill.d.ts.map +0 -1
  445. package/dist/smart-agent/interfaces/skill.js.map +0 -1
  446. package/dist/smart-agent/interfaces/tool-result-compactor.d.ts +0 -11
  447. package/dist/smart-agent/interfaces/tool-result-compactor.d.ts.map +0 -1
  448. package/dist/smart-agent/interfaces/tool-result-compactor.js +0 -2
  449. package/dist/smart-agent/interfaces/tool-result-compactor.js.map +0 -1
  450. package/dist/smart-agent/interfaces/types.d.ts.map +0 -1
  451. package/dist/smart-agent/interfaces/types.js.map +0 -1
  452. package/dist/smart-agent/logger/console-logger.d.ts +0 -7
  453. package/dist/smart-agent/logger/console-logger.d.ts.map +0 -1
  454. package/dist/smart-agent/logger/console-logger.js +0 -12
  455. package/dist/smart-agent/logger/console-logger.js.map +0 -1
  456. package/dist/smart-agent/logger/default-request-logger.d.ts +0 -17
  457. package/dist/smart-agent/logger/default-request-logger.d.ts.map +0 -1
  458. package/dist/smart-agent/logger/default-request-logger.js +0 -86
  459. package/dist/smart-agent/logger/default-request-logger.js.map +0 -1
  460. package/dist/smart-agent/logger/index.d.ts +0 -3
  461. package/dist/smart-agent/logger/index.d.ts.map +0 -1
  462. package/dist/smart-agent/logger/index.js +0 -2
  463. package/dist/smart-agent/logger/index.js.map +0 -1
  464. package/dist/smart-agent/logger/noop-request-logger.d.ts +0 -11
  465. package/dist/smart-agent/logger/noop-request-logger.d.ts.map +0 -1
  466. package/dist/smart-agent/logger/noop-request-logger.js +0 -20
  467. package/dist/smart-agent/logger/noop-request-logger.js.map +0 -1
  468. package/dist/smart-agent/logger/session-logger.d.ts +0 -10
  469. package/dist/smart-agent/logger/session-logger.d.ts.map +0 -1
  470. package/dist/smart-agent/logger/session-logger.js +0 -40
  471. package/dist/smart-agent/logger/session-logger.js.map +0 -1
  472. package/dist/smart-agent/logger/types.d.ts +0 -63
  473. package/dist/smart-agent/logger/types.d.ts.map +0 -1
  474. package/dist/smart-agent/logger/types.js +0 -2
  475. package/dist/smart-agent/logger/types.js.map +0 -1
  476. package/dist/smart-agent/mcp-client-factory.d.ts +0 -3
  477. package/dist/smart-agent/mcp-client-factory.d.ts.map +0 -1
  478. package/dist/smart-agent/mcp-client-factory.js +0 -21
  479. package/dist/smart-agent/mcp-client-factory.js.map +0 -1
  480. package/dist/smart-agent/metrics/in-memory-metrics.d.ts +0 -58
  481. package/dist/smart-agent/metrics/in-memory-metrics.d.ts.map +0 -1
  482. package/dist/smart-agent/metrics/in-memory-metrics.js +0 -78
  483. package/dist/smart-agent/metrics/in-memory-metrics.js.map +0 -1
  484. package/dist/smart-agent/metrics/index.d.ts +0 -4
  485. package/dist/smart-agent/metrics/index.d.ts.map +0 -1
  486. package/dist/smart-agent/metrics/index.js +0 -3
  487. package/dist/smart-agent/metrics/index.js.map +0 -1
  488. package/dist/smart-agent/metrics/noop-metrics.d.ts +0 -17
  489. package/dist/smart-agent/metrics/noop-metrics.d.ts.map +0 -1
  490. package/dist/smart-agent/metrics/noop-metrics.js +0 -22
  491. package/dist/smart-agent/metrics/noop-metrics.js.map +0 -1
  492. package/dist/smart-agent/metrics/types.d.ts +0 -36
  493. package/dist/smart-agent/metrics/types.d.ts.map +0 -1
  494. package/dist/smart-agent/metrics/types.js +0 -9
  495. package/dist/smart-agent/metrics/types.js.map +0 -1
  496. package/dist/smart-agent/otel/index.d.ts +0 -2
  497. package/dist/smart-agent/otel/index.d.ts.map +0 -1
  498. package/dist/smart-agent/otel/index.js +0 -2
  499. package/dist/smart-agent/otel/index.js.map +0 -1
  500. package/dist/smart-agent/otel/otel-tracer-adapter.d.ts +0 -15
  501. package/dist/smart-agent/otel/otel-tracer-adapter.d.ts.map +0 -1
  502. package/dist/smart-agent/otel/otel-tracer-adapter.js +0 -62
  503. package/dist/smart-agent/otel/otel-tracer-adapter.js.map +0 -1
  504. package/dist/smart-agent/pipeline/condition-evaluator.d.ts +0 -35
  505. package/dist/smart-agent/pipeline/condition-evaluator.d.ts.map +0 -1
  506. package/dist/smart-agent/pipeline/condition-evaluator.js +0 -143
  507. package/dist/smart-agent/pipeline/condition-evaluator.js.map +0 -1
  508. package/dist/smart-agent/pipeline/context.d.ts +0 -132
  509. package/dist/smart-agent/pipeline/context.d.ts.map +0 -1
  510. package/dist/smart-agent/pipeline/context.js +0 -19
  511. package/dist/smart-agent/pipeline/context.js.map +0 -1
  512. package/dist/smart-agent/pipeline/default-pipeline.d.ts +0 -69
  513. package/dist/smart-agent/pipeline/default-pipeline.d.ts.map +0 -1
  514. package/dist/smart-agent/pipeline/default-pipeline.js +0 -276
  515. package/dist/smart-agent/pipeline/default-pipeline.js.map +0 -1
  516. package/dist/smart-agent/pipeline/executor.d.ts +0 -54
  517. package/dist/smart-agent/pipeline/executor.d.ts.map +0 -1
  518. package/dist/smart-agent/pipeline/executor.js +0 -133
  519. package/dist/smart-agent/pipeline/executor.js.map +0 -1
  520. package/dist/smart-agent/pipeline/handlers/assemble.d.ts +0 -16
  521. package/dist/smart-agent/pipeline/handlers/assemble.d.ts.map +0 -1
  522. package/dist/smart-agent/pipeline/handlers/assemble.js +0 -72
  523. package/dist/smart-agent/pipeline/handlers/assemble.js.map +0 -1
  524. package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts +0 -30
  525. package/dist/smart-agent/pipeline/handlers/build-tool-query.d.ts.map +0 -1
  526. package/dist/smart-agent/pipeline/handlers/build-tool-query.js +0 -80
  527. package/dist/smart-agent/pipeline/handlers/build-tool-query.js.map +0 -1
  528. package/dist/smart-agent/pipeline/handlers/classify.d.ts +0 -21
  529. package/dist/smart-agent/pipeline/handlers/classify.d.ts.map +0 -1
  530. package/dist/smart-agent/pipeline/handlers/classify.js +0 -60
  531. package/dist/smart-agent/pipeline/handlers/classify.js.map +0 -1
  532. package/dist/smart-agent/pipeline/handlers/expand.d.ts +0 -16
  533. package/dist/smart-agent/pipeline/handlers/expand.d.ts.map +0 -1
  534. package/dist/smart-agent/pipeline/handlers/expand.js +0 -24
  535. package/dist/smart-agent/pipeline/handlers/expand.js.map +0 -1
  536. package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts +0 -32
  537. package/dist/smart-agent/pipeline/handlers/history-upsert.d.ts.map +0 -1
  538. package/dist/smart-agent/pipeline/handlers/history-upsert.js +0 -69
  539. package/dist/smart-agent/pipeline/handlers/history-upsert.js.map +0 -1
  540. package/dist/smart-agent/pipeline/handlers/index.d.ts +0 -31
  541. package/dist/smart-agent/pipeline/handlers/index.d.ts.map +0 -1
  542. package/dist/smart-agent/pipeline/handlers/index.js +0 -44
  543. package/dist/smart-agent/pipeline/handlers/index.js.map +0 -1
  544. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts +0 -27
  545. package/dist/smart-agent/pipeline/handlers/rag-query.d.ts.map +0 -1
  546. package/dist/smart-agent/pipeline/handlers/rag-query.js +0 -117
  547. package/dist/smart-agent/pipeline/handlers/rag-query.js.map +0 -1
  548. package/dist/smart-agent/pipeline/handlers/rag-upsert.d.ts +0 -18
  549. package/dist/smart-agent/pipeline/handlers/rag-upsert.d.ts.map +0 -1
  550. package/dist/smart-agent/pipeline/handlers/rag-upsert.js +0 -45
  551. package/dist/smart-agent/pipeline/handlers/rag-upsert.js.map +0 -1
  552. package/dist/smart-agent/pipeline/handlers/rerank.d.ts +0 -16
  553. package/dist/smart-agent/pipeline/handlers/rerank.d.ts.map +0 -1
  554. package/dist/smart-agent/pipeline/handlers/rerank.js +0 -27
  555. package/dist/smart-agent/pipeline/handlers/rerank.js.map +0 -1
  556. package/dist/smart-agent/pipeline/handlers/skill-select.d.ts +0 -18
  557. package/dist/smart-agent/pipeline/handlers/skill-select.d.ts.map +0 -1
  558. package/dist/smart-agent/pipeline/handlers/skill-select.js +0 -88
  559. package/dist/smart-agent/pipeline/handlers/skill-select.js.map +0 -1
  560. package/dist/smart-agent/pipeline/handlers/summarize.d.ts +0 -17
  561. package/dist/smart-agent/pipeline/handlers/summarize.d.ts.map +0 -1
  562. package/dist/smart-agent/pipeline/handlers/summarize.js +0 -56
  563. package/dist/smart-agent/pipeline/handlers/summarize.js.map +0 -1
  564. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts +0 -32
  565. package/dist/smart-agent/pipeline/handlers/tool-loop.d.ts.map +0 -1
  566. package/dist/smart-agent/pipeline/handlers/tool-loop.js +0 -734
  567. package/dist/smart-agent/pipeline/handlers/tool-loop.js.map +0 -1
  568. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts +0 -21
  569. package/dist/smart-agent/pipeline/handlers/tool-select.d.ts.map +0 -1
  570. package/dist/smart-agent/pipeline/handlers/tool-select.js +0 -109
  571. package/dist/smart-agent/pipeline/handlers/tool-select.js.map +0 -1
  572. package/dist/smart-agent/pipeline/handlers/translate.d.ts +0 -17
  573. package/dist/smart-agent/pipeline/handlers/translate.d.ts.map +0 -1
  574. package/dist/smart-agent/pipeline/handlers/translate.js +0 -42
  575. package/dist/smart-agent/pipeline/handlers/translate.js.map +0 -1
  576. package/dist/smart-agent/pipeline/index.d.ts +0 -14
  577. package/dist/smart-agent/pipeline/index.d.ts.map +0 -1
  578. package/dist/smart-agent/pipeline/index.js +0 -16
  579. package/dist/smart-agent/pipeline/index.js.map +0 -1
  580. package/dist/smart-agent/pipeline/stage-handler.d.ts +0 -36
  581. package/dist/smart-agent/pipeline/stage-handler.d.ts.map +0 -1
  582. package/dist/smart-agent/pipeline/stage-handler.js +0 -24
  583. package/dist/smart-agent/pipeline/stage-handler.js.map +0 -1
  584. package/dist/smart-agent/pipeline/types.d.ts +0 -116
  585. package/dist/smart-agent/pipeline/types.d.ts.map +0 -1
  586. package/dist/smart-agent/pipeline/types.js +0 -54
  587. package/dist/smart-agent/pipeline/types.js.map +0 -1
  588. package/dist/smart-agent/pipeline.d.ts +0 -82
  589. package/dist/smart-agent/pipeline.d.ts.map +0 -1
  590. package/dist/smart-agent/pipeline.js +0 -8
  591. package/dist/smart-agent/pipeline.js.map +0 -1
  592. package/dist/smart-agent/plugins/index.d.ts +0 -4
  593. package/dist/smart-agent/plugins/index.d.ts.map +0 -1
  594. package/dist/smart-agent/plugins/index.js +0 -3
  595. package/dist/smart-agent/plugins/index.js.map +0 -1
  596. package/dist/smart-agent/plugins/loader.d.ts +0 -67
  597. package/dist/smart-agent/plugins/loader.d.ts.map +0 -1
  598. package/dist/smart-agent/plugins/loader.js +0 -114
  599. package/dist/smart-agent/plugins/loader.js.map +0 -1
  600. package/dist/smart-agent/plugins/types.d.ts +0 -167
  601. package/dist/smart-agent/plugins/types.d.ts.map +0 -1
  602. package/dist/smart-agent/plugins/types.js +0 -136
  603. package/dist/smart-agent/plugins/types.js.map +0 -1
  604. package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts +0 -19
  605. package/dist/smart-agent/policy/fallback-llm-call-strategy.d.ts.map +0 -1
  606. package/dist/smart-agent/policy/fallback-llm-call-strategy.js +0 -66
  607. package/dist/smart-agent/policy/fallback-llm-call-strategy.js.map +0 -1
  608. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts +0 -5
  609. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts.map +0 -1
  610. package/dist/smart-agent/policy/heuristic-injection-detector.js +0 -36
  611. package/dist/smart-agent/policy/heuristic-injection-detector.js.map +0 -1
  612. package/dist/smart-agent/policy/index.d.ts +0 -6
  613. package/dist/smart-agent/policy/index.d.ts.map +0 -1
  614. package/dist/smart-agent/policy/index.js +0 -5
  615. package/dist/smart-agent/policy/index.js.map +0 -1
  616. package/dist/smart-agent/policy/llm-tool-result-compactor.d.ts +0 -23
  617. package/dist/smart-agent/policy/llm-tool-result-compactor.d.ts.map +0 -1
  618. package/dist/smart-agent/policy/llm-tool-result-compactor.js +0 -57
  619. package/dist/smart-agent/policy/llm-tool-result-compactor.js.map +0 -1
  620. package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts +0 -17
  621. package/dist/smart-agent/policy/mixed-tool-call-handler.d.ts.map +0 -1
  622. package/dist/smart-agent/policy/mixed-tool-call-handler.js +0 -49
  623. package/dist/smart-agent/policy/mixed-tool-call-handler.js.map +0 -1
  624. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts +0 -9
  625. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.d.ts.map +0 -1
  626. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js +0 -21
  627. package/dist/smart-agent/policy/non-streaming-llm-call-strategy.js.map +0 -1
  628. package/dist/smart-agent/policy/pending-tool-results-registry.d.ts +0 -25
  629. package/dist/smart-agent/policy/pending-tool-results-registry.d.ts.map +0 -1
  630. package/dist/smart-agent/policy/pending-tool-results-registry.js +0 -50
  631. package/dist/smart-agent/policy/pending-tool-results-registry.js.map +0 -1
  632. package/dist/smart-agent/policy/rag-only-tool-result-compactor.d.ts +0 -19
  633. package/dist/smart-agent/policy/rag-only-tool-result-compactor.d.ts.map +0 -1
  634. package/dist/smart-agent/policy/rag-only-tool-result-compactor.js +0 -33
  635. package/dist/smart-agent/policy/rag-only-tool-result-compactor.js.map +0 -1
  636. package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts +0 -9
  637. package/dist/smart-agent/policy/streaming-llm-call-strategy.d.ts.map +0 -1
  638. package/dist/smart-agent/policy/streaming-llm-call-strategy.js +0 -7
  639. package/dist/smart-agent/policy/streaming-llm-call-strategy.js.map +0 -1
  640. package/dist/smart-agent/policy/tool-availability-registry.d.ts +0 -21
  641. package/dist/smart-agent/policy/tool-availability-registry.d.ts.map +0 -1
  642. package/dist/smart-agent/policy/tool-availability-registry.js +0 -77
  643. package/dist/smart-agent/policy/tool-availability-registry.js.map +0 -1
  644. package/dist/smart-agent/policy/tool-policy-guard.d.ts +0 -8
  645. package/dist/smart-agent/policy/tool-policy-guard.d.ts.map +0 -1
  646. package/dist/smart-agent/policy/tool-policy-guard.js +0 -40
  647. package/dist/smart-agent/policy/tool-policy-guard.js.map +0 -1
  648. package/dist/smart-agent/policy/truncating-tool-result-compactor.d.ts +0 -19
  649. package/dist/smart-agent/policy/truncating-tool-result-compactor.d.ts.map +0 -1
  650. package/dist/smart-agent/policy/truncating-tool-result-compactor.js +0 -37
  651. package/dist/smart-agent/policy/truncating-tool-result-compactor.js.map +0 -1
  652. package/dist/smart-agent/policy/types.d.ts +0 -51
  653. package/dist/smart-agent/policy/types.d.ts.map +0 -1
  654. package/dist/smart-agent/policy/types.js +0 -17
  655. package/dist/smart-agent/policy/types.js.map +0 -1
  656. package/dist/smart-agent/providers.d.ts +0 -101
  657. package/dist/smart-agent/providers.d.ts.map +0 -1
  658. package/dist/smart-agent/providers.js +0 -249
  659. package/dist/smart-agent/providers.js.map +0 -1
  660. package/dist/smart-agent/rag/embedder-factories.d.ts.map +0 -1
  661. package/dist/smart-agent/rag/embedder-factories.js.map +0 -1
  662. package/dist/smart-agent/rag/in-memory-rag.d.ts.map +0 -1
  663. package/dist/smart-agent/rag/in-memory-rag.js.map +0 -1
  664. package/dist/smart-agent/rag/index.d.ts.map +0 -1
  665. package/dist/smart-agent/rag/index.js.map +0 -1
  666. package/dist/smart-agent/rag/inverted-index.d.ts.map +0 -1
  667. package/dist/smart-agent/rag/inverted-index.js.map +0 -1
  668. package/dist/smart-agent/rag/ollama-rag.d.ts.map +0 -1
  669. package/dist/smart-agent/rag/ollama-rag.js.map +0 -1
  670. package/dist/smart-agent/rag/openai-embedder.d.ts.map +0 -1
  671. package/dist/smart-agent/rag/openai-embedder.js.map +0 -1
  672. package/dist/smart-agent/rag/preprocessor.d.ts.map +0 -1
  673. package/dist/smart-agent/rag/preprocessor.js.map +0 -1
  674. package/dist/smart-agent/rag/qdrant-rag.d.ts.map +0 -1
  675. package/dist/smart-agent/rag/qdrant-rag.js.map +0 -1
  676. package/dist/smart-agent/rag/query-embedding.d.ts.map +0 -1
  677. package/dist/smart-agent/rag/query-embedding.js.map +0 -1
  678. package/dist/smart-agent/rag/query-expander.d.ts.map +0 -1
  679. package/dist/smart-agent/rag/query-expander.js.map +0 -1
  680. package/dist/smart-agent/rag/sap-ai-core-embedder.d.ts.map +0 -1
  681. package/dist/smart-agent/rag/sap-ai-core-embedder.js.map +0 -1
  682. package/dist/smart-agent/rag/search-strategy.d.ts.map +0 -1
  683. package/dist/smart-agent/rag/search-strategy.js.map +0 -1
  684. package/dist/smart-agent/rag/tool-indexing-strategy.d.ts.map +0 -1
  685. package/dist/smart-agent/rag/tool-indexing-strategy.js.map +0 -1
  686. package/dist/smart-agent/rag/vector-rag.d.ts.map +0 -1
  687. package/dist/smart-agent/rag/vector-rag.js.map +0 -1
  688. package/dist/smart-agent/reranker/index.d.ts +0 -4
  689. package/dist/smart-agent/reranker/index.d.ts.map +0 -1
  690. package/dist/smart-agent/reranker/index.js +0 -3
  691. package/dist/smart-agent/reranker/index.js.map +0 -1
  692. package/dist/smart-agent/reranker/llm-reranker.d.ts +0 -10
  693. package/dist/smart-agent/reranker/llm-reranker.d.ts.map +0 -1
  694. package/dist/smart-agent/reranker/llm-reranker.js +0 -55
  695. package/dist/smart-agent/reranker/llm-reranker.js.map +0 -1
  696. package/dist/smart-agent/reranker/noop-reranker.d.ts +0 -6
  697. package/dist/smart-agent/reranker/noop-reranker.d.ts.map +0 -1
  698. package/dist/smart-agent/reranker/noop-reranker.js +0 -6
  699. package/dist/smart-agent/reranker/noop-reranker.js.map +0 -1
  700. package/dist/smart-agent/reranker/types.d.ts +0 -5
  701. package/dist/smart-agent/reranker/types.d.ts.map +0 -1
  702. package/dist/smart-agent/reranker/types.js +0 -2
  703. package/dist/smart-agent/reranker/types.js.map +0 -1
  704. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts +0 -17
  705. package/dist/smart-agent/resilience/circuit-breaker-embedder.d.ts.map +0 -1
  706. package/dist/smart-agent/resilience/circuit-breaker-embedder.js +0 -48
  707. package/dist/smart-agent/resilience/circuit-breaker-embedder.js.map +0 -1
  708. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts +0 -20
  709. package/dist/smart-agent/resilience/circuit-breaker-llm.d.ts.map +0 -1
  710. package/dist/smart-agent/resilience/circuit-breaker-llm.js +0 -72
  711. package/dist/smart-agent/resilience/circuit-breaker-llm.js.map +0 -1
  712. package/dist/smart-agent/resilience/circuit-breaker.d.ts +0 -36
  713. package/dist/smart-agent/resilience/circuit-breaker.d.ts.map +0 -1
  714. package/dist/smart-agent/resilience/circuit-breaker.js +0 -60
  715. package/dist/smart-agent/resilience/circuit-breaker.js.map +0 -1
  716. package/dist/smart-agent/resilience/fallback-rag.d.ts +0 -23
  717. package/dist/smart-agent/resilience/fallback-rag.d.ts.map +0 -1
  718. package/dist/smart-agent/resilience/fallback-rag.js +0 -51
  719. package/dist/smart-agent/resilience/fallback-rag.js.map +0 -1
  720. package/dist/smart-agent/resilience/index.d.ts +0 -5
  721. package/dist/smart-agent/resilience/index.d.ts.map +0 -1
  722. package/dist/smart-agent/resilience/index.js +0 -5
  723. package/dist/smart-agent/resilience/index.js.map +0 -1
  724. package/dist/smart-agent/resilience/rate-limiter-llm.d.ts +0 -20
  725. package/dist/smart-agent/resilience/rate-limiter-llm.d.ts.map +0 -1
  726. package/dist/smart-agent/resilience/rate-limiter-llm.js +0 -30
  727. package/dist/smart-agent/resilience/rate-limiter-llm.js.map +0 -1
  728. package/dist/smart-agent/resilience/retry-llm.d.ts +0 -33
  729. package/dist/smart-agent/resilience/retry-llm.d.ts.map +0 -1
  730. package/dist/smart-agent/resilience/retry-llm.js +0 -103
  731. package/dist/smart-agent/resilience/retry-llm.js.map +0 -1
  732. package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts +0 -21
  733. package/dist/smart-agent/resilience/token-bucket-rate-limiter.d.ts.map +0 -1
  734. package/dist/smart-agent/resilience/token-bucket-rate-limiter.js +0 -32
  735. package/dist/smart-agent/resilience/token-bucket-rate-limiter.js.map +0 -1
  736. package/dist/smart-agent/server.d.ts +0 -19
  737. package/dist/smart-agent/server.d.ts.map +0 -1
  738. package/dist/smart-agent/server.js +0 -349
  739. package/dist/smart-agent/server.js.map +0 -1
  740. package/dist/smart-agent/session/index.d.ts +0 -4
  741. package/dist/smart-agent/session/index.d.ts.map +0 -1
  742. package/dist/smart-agent/session/index.js +0 -3
  743. package/dist/smart-agent/session/index.js.map +0 -1
  744. package/dist/smart-agent/session/noop-session-manager.d.ts +0 -8
  745. package/dist/smart-agent/session/noop-session-manager.d.ts.map +0 -1
  746. package/dist/smart-agent/session/noop-session-manager.js +0 -11
  747. package/dist/smart-agent/session/noop-session-manager.js.map +0 -1
  748. package/dist/smart-agent/session/session-manager.d.ts +0 -13
  749. package/dist/smart-agent/session/session-manager.d.ts.map +0 -1
  750. package/dist/smart-agent/session/session-manager.js +0 -20
  751. package/dist/smart-agent/session/session-manager.js.map +0 -1
  752. package/dist/smart-agent/session/types.d.ts +0 -7
  753. package/dist/smart-agent/session/types.d.ts.map +0 -1
  754. package/dist/smart-agent/session/types.js +0 -2
  755. package/dist/smart-agent/session/types.js.map +0 -1
  756. package/dist/smart-agent/skills/claude-skill-manager.d.ts +0 -25
  757. package/dist/smart-agent/skills/claude-skill-manager.d.ts.map +0 -1
  758. package/dist/smart-agent/skills/claude-skill-manager.js +0 -81
  759. package/dist/smart-agent/skills/claude-skill-manager.js.map +0 -1
  760. package/dist/smart-agent/skills/codex-skill-manager.d.ts +0 -21
  761. package/dist/smart-agent/skills/codex-skill-manager.d.ts.map +0 -1
  762. package/dist/smart-agent/skills/codex-skill-manager.js +0 -75
  763. package/dist/smart-agent/skills/codex-skill-manager.js.map +0 -1
  764. package/dist/smart-agent/skills/filesystem-skill-manager.d.ts +0 -18
  765. package/dist/smart-agent/skills/filesystem-skill-manager.d.ts.map +0 -1
  766. package/dist/smart-agent/skills/filesystem-skill-manager.js +0 -48
  767. package/dist/smart-agent/skills/filesystem-skill-manager.js.map +0 -1
  768. package/dist/smart-agent/skills/filesystem-skill.d.ts +0 -26
  769. package/dist/smart-agent/skills/filesystem-skill.d.ts.map +0 -1
  770. package/dist/smart-agent/skills/filesystem-skill.js +0 -110
  771. package/dist/smart-agent/skills/filesystem-skill.js.map +0 -1
  772. package/dist/smart-agent/skills/index.d.ts +0 -9
  773. package/dist/smart-agent/skills/index.d.ts.map +0 -1
  774. package/dist/smart-agent/skills/index.js +0 -9
  775. package/dist/smart-agent/skills/index.js.map +0 -1
  776. package/dist/smart-agent/skills/skill-utils.d.ts +0 -15
  777. package/dist/smart-agent/skills/skill-utils.d.ts.map +0 -1
  778. package/dist/smart-agent/skills/skill-utils.js +0 -46
  779. package/dist/smart-agent/skills/skill-utils.js.map +0 -1
  780. package/dist/smart-agent/smart-server.d.ts +0 -153
  781. package/dist/smart-agent/smart-server.d.ts.map +0 -1
  782. package/dist/smart-agent/smart-server.js +0 -903
  783. package/dist/smart-agent/smart-server.js.map +0 -1
  784. package/dist/smart-agent/strategies/index.d.ts +0 -4
  785. package/dist/smart-agent/strategies/index.d.ts.map +0 -1
  786. package/dist/smart-agent/strategies/index.js +0 -4
  787. package/dist/smart-agent/strategies/index.js.map +0 -1
  788. package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts +0 -15
  789. package/dist/smart-agent/strategies/lazy-connection-strategy.d.ts.map +0 -1
  790. package/dist/smart-agent/strategies/lazy-connection-strategy.js +0 -82
  791. package/dist/smart-agent/strategies/lazy-connection-strategy.js.map +0 -1
  792. package/dist/smart-agent/strategies/noop-connection-strategy.d.ts +0 -7
  793. package/dist/smart-agent/strategies/noop-connection-strategy.d.ts.map +0 -1
  794. package/dist/smart-agent/strategies/noop-connection-strategy.js +0 -6
  795. package/dist/smart-agent/strategies/noop-connection-strategy.js.map +0 -1
  796. package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts +0 -13
  797. package/dist/smart-agent/strategies/periodic-connection-strategy.d.ts.map +0 -1
  798. package/dist/smart-agent/strategies/periodic-connection-strategy.js +0 -40
  799. package/dist/smart-agent/strategies/periodic-connection-strategy.js.map +0 -1
  800. package/dist/smart-agent/testing/index.d.ts +0 -125
  801. package/dist/smart-agent/testing/index.d.ts.map +0 -1
  802. package/dist/smart-agent/testing/index.js +0 -331
  803. package/dist/smart-agent/testing/index.js.map +0 -1
  804. package/dist/smart-agent/tracer/index.d.ts +0 -3
  805. package/dist/smart-agent/tracer/index.d.ts.map +0 -1
  806. package/dist/smart-agent/tracer/index.js +0 -2
  807. package/dist/smart-agent/tracer/index.js.map +0 -1
  808. package/dist/smart-agent/tracer/noop-tracer.d.ts +0 -5
  809. package/dist/smart-agent/tracer/noop-tracer.d.ts.map +0 -1
  810. package/dist/smart-agent/tracer/noop-tracer.js +0 -16
  811. package/dist/smart-agent/tracer/noop-tracer.js.map +0 -1
  812. package/dist/smart-agent/tracer/types.d.ts +0 -17
  813. package/dist/smart-agent/tracer/types.d.ts.map +0 -1
  814. package/dist/smart-agent/tracer/types.js +0 -2
  815. package/dist/smart-agent/tracer/types.js.map +0 -1
  816. package/dist/smart-agent/utils/external-tools-normalizer.d.ts +0 -15
  817. package/dist/smart-agent/utils/external-tools-normalizer.d.ts.map +0 -1
  818. package/dist/smart-agent/utils/external-tools-normalizer.js +0 -146
  819. package/dist/smart-agent/utils/external-tools-normalizer.js.map +0 -1
  820. package/dist/smart-agent/utils/lazy.d.ts +0 -51
  821. package/dist/smart-agent/utils/lazy.d.ts.map +0 -1
  822. package/dist/smart-agent/utils/lazy.js +0 -127
  823. package/dist/smart-agent/utils/lazy.js.map +0 -1
  824. package/dist/smart-agent/utils/parse-frontmatter.d.ts +0 -15
  825. package/dist/smart-agent/utils/parse-frontmatter.d.ts.map +0 -1
  826. package/dist/smart-agent/utils/parse-frontmatter.js +0 -22
  827. package/dist/smart-agent/utils/parse-frontmatter.js.map +0 -1
  828. package/dist/smart-agent/utils/tool-call-deltas.d.ts +0 -4
  829. package/dist/smart-agent/utils/tool-call-deltas.d.ts.map +0 -1
  830. package/dist/smart-agent/utils/tool-call-deltas.js +0 -25
  831. package/dist/smart-agent/utils/tool-call-deltas.js.map +0 -1
  832. package/dist/smart-agent/validator/index.d.ts +0 -3
  833. package/dist/smart-agent/validator/index.d.ts.map +0 -1
  834. package/dist/smart-agent/validator/index.js +0 -2
  835. package/dist/smart-agent/validator/index.js.map +0 -1
  836. package/dist/smart-agent/validator/noop-validator.d.ts +0 -6
  837. package/dist/smart-agent/validator/noop-validator.d.ts.map +0 -1
  838. package/dist/smart-agent/validator/noop-validator.js +0 -6
  839. package/dist/smart-agent/validator/noop-validator.js.map +0 -1
  840. package/dist/smart-agent/validator/types.d.ts +0 -18
  841. package/dist/smart-agent/validator/types.d.ts.map +0 -1
  842. package/dist/smart-agent/validator/types.js +0 -8
  843. package/dist/smart-agent/validator/types.js.map +0 -1
  844. package/tools/claude-via-agent.sh +0 -96
  845. /package/dist/{smart-agent/interfaces → interfaces}/agent-contracts.d.ts +0 -0
  846. /package/dist/{smart-agent/interfaces → interfaces}/agent-contracts.js +0 -0
  847. /package/dist/{smart-agent/interfaces → interfaces}/assembler.js +0 -0
  848. /package/dist/{smart-agent/interfaces → interfaces}/classifier.d.ts +0 -0
  849. /package/dist/{smart-agent/interfaces → interfaces}/classifier.js +0 -0
  850. /package/dist/{smart-agent/interfaces → interfaces}/history-memory.d.ts +0 -0
  851. /package/dist/{smart-agent/interfaces → interfaces}/history-memory.js +0 -0
  852. /package/dist/{smart-agent/interfaces → interfaces}/history-summarizer.d.ts +0 -0
  853. /package/dist/{smart-agent/interfaces → interfaces}/history-summarizer.js +0 -0
  854. /package/dist/{smart-agent/interfaces → interfaces}/llm-call-strategy.js +0 -0
  855. /package/dist/{smart-agent/interfaces → interfaces}/llm.js +0 -0
  856. /package/dist/{smart-agent/interfaces → interfaces}/mcp-client.d.ts +0 -0
  857. /package/dist/{smart-agent/interfaces → interfaces}/mcp-client.js +0 -0
  858. /package/dist/{smart-agent/interfaces → interfaces}/model-provider.d.ts +0 -0
  859. /package/dist/{smart-agent/interfaces → interfaces}/model-provider.js +0 -0
  860. /package/dist/{smart-agent/interfaces → interfaces}/plugin.d.ts +0 -0
  861. /package/dist/{smart-agent/interfaces → interfaces}/plugin.js +0 -0
  862. /package/dist/{smart-agent/interfaces → interfaces}/query-embedding.d.ts +0 -0
  863. /package/dist/{smart-agent/interfaces → interfaces}/query-embedding.js +0 -0
  864. /package/dist/{smart-agent/interfaces → interfaces}/rate-limiter.d.ts +0 -0
  865. /package/dist/{smart-agent/interfaces → interfaces}/rate-limiter.js +0 -0
  866. /package/dist/{smart-agent/interfaces → interfaces}/request-logger.d.ts +0 -0
  867. /package/dist/{smart-agent/interfaces → interfaces}/request-logger.js +0 -0
  868. /package/dist/{smart-agent/interfaces → interfaces}/skill.d.ts +0 -0
  869. /package/dist/{smart-agent/interfaces → interfaces}/skill.js +0 -0
  870. /package/dist/{smart-agent/interfaces → interfaces}/types.js +0 -0
  871. /package/dist/{smart-agent/rag → rag}/embedder-factories.d.ts +0 -0
  872. /package/dist/{smart-agent/rag → rag}/embedder-factories.js +0 -0
  873. /package/dist/{smart-agent/rag → rag}/ollama-rag.d.ts +0 -0
  874. /package/dist/{smart-agent/rag → rag}/ollama-rag.js +0 -0
  875. /package/dist/{smart-agent/rag → rag}/openai-embedder.d.ts +0 -0
  876. /package/dist/{smart-agent/rag → rag}/openai-embedder.js +0 -0
  877. /package/dist/{smart-agent/rag → rag}/preprocessor.d.ts +0 -0
  878. /package/dist/{smart-agent/rag → rag}/preprocessor.js +0 -0
  879. /package/dist/{smart-agent/rag → rag}/query-embedding.d.ts +0 -0
  880. /package/dist/{smart-agent/rag → rag}/query-embedding.js +0 -0
  881. /package/dist/{smart-agent/rag → rag}/query-expander.d.ts +0 -0
  882. /package/dist/{smart-agent/rag → rag}/query-expander.js +0 -0
  883. /package/dist/{smart-agent/rag → rag}/sap-ai-core-embedder.d.ts +0 -0
  884. /package/dist/{smart-agent/rag → rag}/sap-ai-core-embedder.js +0 -0
  885. /package/dist/{smart-agent/rag → rag}/search-strategy.d.ts +0 -0
  886. /package/dist/{smart-agent/rag → rag}/search-strategy.js +0 -0
  887. /package/dist/{smart-agent/rag → rag}/tool-indexing-strategy.d.ts +0 -0
  888. /package/dist/{smart-agent/rag → rag}/tool-indexing-strategy.js +0 -0
@@ -1,903 +0,0 @@
1
- /**
2
- * SmartServer — embeddable OpenAI-compatible HTTP server backed by SmartAgent.
3
- */
4
- import { randomUUID } from 'node:crypto';
5
- import http from 'node:http';
6
- import { PACKAGE_VERSION } from '../generated/version.js';
7
- import { SmartAgentBuilder } from './builder.js';
8
- import { ConfigWatcher, } from './config/config-watcher.js';
9
- import { HealthChecker } from './health/health-checker.js';
10
- import { AdapterValidationError } from './interfaces/api-adapter.js';
11
- import { SessionLogger } from './logger/session-logger.js';
12
- import { FileSystemPluginLoader, getDefaultPluginDirs, } from './plugins/index.js';
13
- import { makeDefaultLlm, makeLlm, makeRag } from './providers.js';
14
- import { ClaudeSkillManager } from './skills/claude-skill-manager.js';
15
- import { CodexSkillManager } from './skills/codex-skill-manager.js';
16
- import { FileSystemSkillManager } from './skills/filesystem-skill-manager.js';
17
- import { normalizeAndValidateExternalTools, } from './utils/external-tools-normalizer.js';
18
- import { toToolCallDelta } from './utils/tool-call-deltas.js';
19
- // ---------------------------------------------------------------------------
20
- // Helpers
21
- // ---------------------------------------------------------------------------
22
- function mapStopReason(r) {
23
- if (r === 'stop')
24
- return 'stop';
25
- if (r === 'tool_calls')
26
- return 'tool_calls';
27
- return 'length';
28
- }
29
- function jsonError(message, type, code) {
30
- return JSON.stringify({
31
- error: { message, type, ...(code ? { code } : {}) },
32
- });
33
- }
34
- function jsonValidationError(message, code, param) {
35
- return JSON.stringify({
36
- error: {
37
- message,
38
- type: 'invalid_request_error',
39
- code,
40
- param,
41
- },
42
- });
43
- }
44
- function readBody(req) {
45
- return new Promise((resolve, reject) => {
46
- const chunks = [];
47
- req.on('data', (c) => chunks.push(c));
48
- req.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
49
- req.on('error', reject);
50
- });
51
- }
52
- function resolveSkillManager(cfg) {
53
- if (!cfg)
54
- return undefined;
55
- const type = cfg.type ?? 'claude';
56
- const root = cfg.projectRoot ?? process.cwd();
57
- switch (type) {
58
- case 'claude':
59
- return new ClaudeSkillManager(root);
60
- case 'codex':
61
- return new CodexSkillManager(root);
62
- case 'filesystem':
63
- return new FileSystemSkillManager(cfg.dirs ?? []);
64
- default:
65
- return undefined;
66
- }
67
- }
68
- const CORS_HEADERS = {
69
- 'Access-Control-Allow-Origin': '*',
70
- 'Access-Control-Allow-Methods': 'GET, POST, PUT, OPTIONS',
71
- 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
72
- };
73
- // ---------------------------------------------------------------------------
74
- // SmartServer
75
- // ---------------------------------------------------------------------------
76
- export { generateConfigTemplate, loadYamlConfig, resolveEnvVars, resolveSmartServerConfig, YAML_TEMPLATE, } from './config.js';
77
- export class SmartServer {
78
- cfg;
79
- noop = () => { };
80
- constructor(config) {
81
- this.cfg = config;
82
- }
83
- async start() {
84
- const log = this.cfg.log ?? this.noop;
85
- const fileLogger = {
86
- log: (e) => log(e),
87
- };
88
- const pipeline = this.cfg.pipeline;
89
- // ---- Composition root: resolve config → interfaces --------------------
90
- // LLM resolution
91
- const mainTemp = Number(pipeline?.llm?.main?.temperature ?? this.cfg.llm.temperature ?? 0.7);
92
- const mainLlm = pipeline?.llm?.main
93
- ? makeLlm(pipeline.llm.main, mainTemp)
94
- : makeDefaultLlm(this.cfg.llm.apiKey, this.cfg.llm.model ?? 'deepseek-chat', mainTemp);
95
- const classifierTemp = Number(pipeline?.llm?.classifier?.temperature ??
96
- this.cfg.llm.classifierTemperature ??
97
- 0.1);
98
- const classifierLlm = pipeline?.llm?.classifier
99
- ? makeLlm(pipeline.llm.classifier, classifierTemp)
100
- : pipeline?.llm?.main
101
- ? makeLlm(pipeline.llm.main, classifierTemp)
102
- : makeDefaultLlm(this.cfg.llm.apiKey, this.cfg.llm.model ?? 'deepseek-chat', classifierTemp);
103
- const helperLlm = pipeline?.llm?.helper
104
- ? makeLlm(pipeline.llm.helper, Number(pipeline.llm.helper.temperature ?? 0.1))
105
- : undefined;
106
- // ---- Plugin loader -------------------------------------------------------
107
- const pluginLoader = this.cfg.pluginLoader ??
108
- (() => {
109
- const dirs = getDefaultPluginDirs();
110
- if (this.cfg.pluginDir)
111
- dirs.push(this.cfg.pluginDir);
112
- return new FileSystemPluginLoader({
113
- dirs,
114
- log: (msg) => log({ event: 'plugin_loader', message: msg }),
115
- });
116
- })();
117
- // Pre-load to extract embedder factories (needed before RAG resolution)
118
- const plugins = await pluginLoader.load();
119
- if (plugins.loadedFiles.length > 0) {
120
- log({
121
- event: 'plugins_loaded',
122
- files: plugins.loadedFiles,
123
- stageHandlers: [...plugins.stageHandlers.keys()],
124
- embedderFactories: Object.keys(plugins.embedderFactories),
125
- hasReranker: !!plugins.reranker,
126
- hasQueryExpander: !!plugins.queryExpander,
127
- hasOutputValidator: !!plugins.outputValidator,
128
- mcpClients: plugins.mcpClients.length,
129
- });
130
- }
131
- if (plugins.errors.length > 0) {
132
- log({ event: 'plugin_errors', errors: plugins.errors });
133
- }
134
- // Merge plugin embedder factories with config-provided ones
135
- const mergedEmbedderFactories = {
136
- ...plugins.embedderFactories,
137
- ...this.cfg.embedderFactories, // config takes precedence over plugins
138
- };
139
- // ---- Build agent via Builder (interface-only) -------------------------
140
- let builder = new SmartAgentBuilder({
141
- mcp: pipeline?.mcp ?? this.cfg.mcp,
142
- agent: this.cfg.agent,
143
- prompts: this.cfg.prompts,
144
- skipModelValidation: this.cfg.skipModelValidation,
145
- })
146
- .withMainLlm(mainLlm)
147
- .withClassifierLlm(classifierLlm)
148
- .withLogger(fileLogger)
149
- .withMode(this.cfg.mode ?? 'smart');
150
- if (helperLlm) {
151
- builder = builder.withHelperLlm(helperLlm);
152
- }
153
- if (this.cfg.rag) {
154
- const ragOptions = {
155
- injectedEmbedder: this.cfg.embedder,
156
- extraFactories: mergedEmbedderFactories,
157
- };
158
- builder = builder.setToolsRag(makeRag(this.cfg.rag, ragOptions));
159
- builder = builder.setHistoryRag(makeRag({ ...this.cfg.rag }, ragOptions));
160
- }
161
- if (this.cfg.circuitBreaker) {
162
- builder = builder.withCircuitBreaker(this.cfg.circuitBreaker);
163
- }
164
- if (plugins.reranker) {
165
- builder = builder.withReranker(plugins.reranker);
166
- }
167
- if (plugins.queryExpander) {
168
- builder = builder.withQueryExpander(plugins.queryExpander);
169
- }
170
- if (plugins.outputValidator) {
171
- builder = builder.withOutputValidator(plugins.outputValidator);
172
- }
173
- // Skill manager (DI > YAML config > plugin)
174
- const skillManager = this.cfg.skillManager ??
175
- plugins.skillManager ??
176
- resolveSkillManager(this.cfg.skills);
177
- if (skillManager) {
178
- builder = builder.withSkillManager(skillManager);
179
- }
180
- // LLM call strategy (from agent config)
181
- const strategyName = this.cfg.agent?.llmCallStrategy;
182
- if (strategyName) {
183
- const { StreamingLlmCallStrategy } = await import('./policy/streaming-llm-call-strategy.js');
184
- const { NonStreamingLlmCallStrategy } = await import('./policy/non-streaming-llm-call-strategy.js');
185
- const { FallbackLlmCallStrategy } = await import('./policy/fallback-llm-call-strategy.js');
186
- const strategies = {
187
- streaming: () => new StreamingLlmCallStrategy(),
188
- 'non-streaming': () => new NonStreamingLlmCallStrategy(),
189
- fallback: () => new FallbackLlmCallStrategy(fileLogger),
190
- };
191
- const factory = strategies[strategyName];
192
- if (factory) {
193
- builder = builder.withLlmCallStrategy(factory());
194
- }
195
- }
196
- // MCP clients (DI > plugin; YAML fallback handled by builder)
197
- const mcpClients = this.cfg.mcpClients ??
198
- (plugins.mcpClients.length > 0 ? plugins.mcpClients : undefined);
199
- if (mcpClients) {
200
- builder = builder.withMcpClients(mcpClients);
201
- }
202
- // Client adapters (DI > plugin; ClineClientAdapter is always registered as default)
203
- const { ClineClientAdapter } = await import('./adapters/cline-client-adapter.js');
204
- const adapterSources = [
205
- ...(this.cfg.clientAdapters ?? []),
206
- ...plugins.clientAdapters,
207
- new ClineClientAdapter(),
208
- ];
209
- for (const adapter of adapterSources) {
210
- builder = builder.withClientAdapter(adapter);
211
- }
212
- const agentHandle = await builder.build();
213
- const { agent: smartAgent, chat, streamChat, close: closeAgent, circuitBreakers, ragStores, modelProvider, } = agentHandle;
214
- // ---- API adapter map (built-in → config DI; DI wins) --------------------
215
- const { OpenAiApiAdapter } = await import('./api-adapters/openai-adapter.js');
216
- const { AnthropicApiAdapter } = await import('./api-adapters/anthropic-adapter.js');
217
- const adapterMap = new Map();
218
- if (!this.cfg.disableBuiltInAdapters) {
219
- const openai = new OpenAiApiAdapter();
220
- const anthropic = new AnthropicApiAdapter();
221
- adapterMap.set(openai.name, openai);
222
- adapterMap.set(anthropic.name, anthropic);
223
- }
224
- if (this.cfg.apiAdapters) {
225
- for (const adapter of this.cfg.apiAdapters) {
226
- adapterMap.set(adapter.name, adapter);
227
- }
228
- }
229
- const closeFns = [closeAgent];
230
- const startTime = Date.now();
231
- const healthChecker = new HealthChecker({
232
- agent: smartAgent,
233
- startTime,
234
- version: this.cfg.version ?? PACKAGE_VERSION,
235
- circuitBreakers,
236
- });
237
- // Startup health check removed — use llm-agent-check CLI for diagnostics.
238
- // Running health check at startup wastes rate-limit budget when combined
239
- // with tool vectorization (146+ embedding calls).
240
- // ---- Config hot-reload (optional) ------------------------------------
241
- if (this.cfg.configFile) {
242
- const watcher = new ConfigWatcher(this.cfg.configFile);
243
- watcher.on('reload', (update) => {
244
- log({ event: 'config_reload', update });
245
- // Apply agent config updates
246
- const agentUpdate = {};
247
- if (update.maxIterations !== undefined)
248
- agentUpdate.maxIterations = update.maxIterations;
249
- if (update.maxToolCalls !== undefined)
250
- agentUpdate.maxToolCalls = update.maxToolCalls;
251
- if (update.ragQueryK !== undefined)
252
- agentUpdate.ragQueryK = update.ragQueryK;
253
- if (update.toolUnavailableTtlMs !== undefined)
254
- agentUpdate.toolUnavailableTtlMs = update.toolUnavailableTtlMs;
255
- if (update.showReasoning !== undefined)
256
- agentUpdate.showReasoning = update.showReasoning;
257
- if (update.historyAutoSummarizeLimit !== undefined)
258
- agentUpdate.historyAutoSummarizeLimit =
259
- update.historyAutoSummarizeLimit;
260
- if (update.prompts?.ragTranslate !== undefined)
261
- agentUpdate.ragTranslatePrompt = update.prompts.ragTranslate;
262
- if (update.prompts?.historySummary !== undefined)
263
- agentUpdate.historySummaryPrompt = update.prompts.historySummary;
264
- if (update.classificationEnabled !== undefined)
265
- agentUpdate.classificationEnabled = update.classificationEnabled;
266
- if (Object.keys(agentUpdate).length > 0) {
267
- smartAgent.applyConfigUpdate(agentUpdate);
268
- }
269
- // Apply RAG weight updates
270
- if (update.vectorWeight !== undefined ||
271
- update.keywordWeight !== undefined) {
272
- for (const store of Object.values(ragStores)) {
273
- if (store &&
274
- typeof store.updateWeights === 'function') {
275
- store.updateWeights({
276
- vectorWeight: update.vectorWeight,
277
- keywordWeight: update.keywordWeight,
278
- });
279
- }
280
- }
281
- }
282
- });
283
- watcher.on('error', (err) => {
284
- log({ event: 'config_reload_error', error: String(err) });
285
- });
286
- watcher.start();
287
- closeFns.push(() => watcher.stop());
288
- }
289
- const { requestLogger } = agentHandle;
290
- const server = http.createServer((req, res) => this._handle(req, res, requestLogger, smartAgent, chat, streamChat, log, healthChecker, modelProvider, adapterMap).catch((err) => {
291
- if (!res.headersSent) {
292
- res.writeHead(500, { 'Content-Type': 'application/json' });
293
- res.end(jsonError(String(err), 'server_error'));
294
- }
295
- }));
296
- return new Promise((resolve, reject) => {
297
- const port = this.cfg.port ?? 4004;
298
- const host = this.cfg.host ?? '0.0.0.0';
299
- server.on('error', reject);
300
- server.listen(port, host, () => {
301
- const addr = server.address();
302
- const actualPort = typeof addr === 'object' && addr !== null ? addr.port : port;
303
- log({ event: 'server_started', port: actualPort, host });
304
- resolve({
305
- port: actualPort,
306
- close: async () => {
307
- for (const fn of closeFns)
308
- await fn();
309
- await new Promise((res, rej) => server.close((e) => (e ? rej(e) : res())));
310
- },
311
- requestLogger,
312
- });
313
- });
314
- });
315
- }
316
- async _handle(req, res, requestLogger, smartAgent, chat, streamChat, log, healthChecker, modelProvider, adapterMap) {
317
- const rawUrl = req.url ?? '/';
318
- const urlPath = rawUrl.split('?')[0].replace(/\/$/, '') || '/';
319
- for (const [k, v] of Object.entries(CORS_HEADERS))
320
- res.setHeader(k, v);
321
- if (req.method === 'OPTIONS') {
322
- res.writeHead(204);
323
- res.end();
324
- return;
325
- }
326
- log({
327
- event: 'http_request',
328
- method: req.method,
329
- url: rawUrl,
330
- normalizedPath: urlPath,
331
- });
332
- if (req.method === 'GET' &&
333
- (urlPath === '/v1/models' || urlPath === '/models')) {
334
- const queryString = rawUrl.includes('?') ? rawUrl.split('?')[1] : '';
335
- const queryParams = new URLSearchParams(queryString);
336
- const excludeEmbedding = queryParams.get('exclude_embedding') === 'true';
337
- let data = [
338
- { id: 'smart-agent', object: 'model', owned_by: 'smart-agent' },
339
- ];
340
- if (modelProvider) {
341
- const result = await modelProvider.getModels({ excludeEmbedding });
342
- if (result.ok) {
343
- data = result.value.map((m) => ({
344
- id: m.id,
345
- object: 'model',
346
- owned_by: m.owned_by ?? 'unknown',
347
- ...(m.displayName ? { display_name: m.displayName } : {}),
348
- ...(m.provider ? { provider: m.provider } : {}),
349
- ...(m.capabilities ? { capabilities: m.capabilities } : {}),
350
- ...(m.contextLength ? { context_length: m.contextLength } : {}),
351
- ...(m.streamingSupported !== undefined
352
- ? { streaming_supported: m.streamingSupported }
353
- : {}),
354
- ...(m.deprecated !== undefined ? { deprecated: m.deprecated } : {}),
355
- }));
356
- }
357
- }
358
- res.writeHead(200, { 'Content-Type': 'application/json' });
359
- res.end(JSON.stringify({ object: 'list', data }));
360
- return;
361
- }
362
- if (req.method === 'GET' &&
363
- (urlPath === '/v1/embedding-models' || urlPath === '/embedding-models')) {
364
- let data = [];
365
- if (modelProvider?.getEmbeddingModels) {
366
- const result = await modelProvider.getEmbeddingModels();
367
- if (result.ok) {
368
- data = result.value.map((m) => ({
369
- id: m.id,
370
- object: 'model',
371
- owned_by: m.owned_by ?? 'unknown',
372
- ...(m.displayName ? { display_name: m.displayName } : {}),
373
- ...(m.provider ? { provider: m.provider } : {}),
374
- ...(m.capabilities ? { capabilities: m.capabilities } : {}),
375
- ...(m.contextLength ? { context_length: m.contextLength } : {}),
376
- ...(m.streamingSupported !== undefined
377
- ? { streaming_supported: m.streamingSupported }
378
- : {}),
379
- ...(m.deprecated !== undefined ? { deprecated: m.deprecated } : {}),
380
- }));
381
- }
382
- }
383
- res.writeHead(200, { 'Content-Type': 'application/json' });
384
- res.end(JSON.stringify({ object: 'list', data }));
385
- return;
386
- }
387
- if (req.method === 'GET' && urlPath === '/v1/usage') {
388
- res.writeHead(200, { 'Content-Type': 'application/json' });
389
- res.end(JSON.stringify(requestLogger.getSummary()));
390
- return;
391
- }
392
- // /v1/config or /config
393
- if (urlPath === '/v1/config' || urlPath === '/config') {
394
- if (req.method === 'GET') {
395
- const models = smartAgent.getActiveConfig();
396
- const agent = smartAgent.getAgentConfig();
397
- const body = { models, agent };
398
- res.writeHead(200, { 'Content-Type': 'application/json' });
399
- res.end(JSON.stringify(body));
400
- return;
401
- }
402
- if (req.method === 'PUT') {
403
- await this._handleConfigUpdate(req, res, smartAgent);
404
- return;
405
- }
406
- // 405 for other methods
407
- res.setHeader('Allow', 'GET, PUT, OPTIONS');
408
- res.writeHead(405, { 'Content-Type': 'application/json' });
409
- res.end(jsonError(`Method ${req.method} not allowed on ${urlPath}`, 'invalid_request_error'));
410
- return;
411
- }
412
- if (req.method === 'GET' &&
413
- (urlPath === '/health' || urlPath === '/v1/health')) {
414
- const status = await healthChecker.check();
415
- const httpCode = status.status === 'unhealthy' ? 503 : 200;
416
- res.writeHead(httpCode, { 'Content-Type': 'application/json' });
417
- res.end(JSON.stringify(status));
418
- return;
419
- }
420
- // POST /v1/messages or /messages → Anthropic adapter
421
- if (req.method === 'POST' &&
422
- (urlPath === '/v1/messages' || urlPath === '/messages')) {
423
- const anthropicAdapter = adapterMap?.get('anthropic');
424
- if (!anthropicAdapter) {
425
- res.writeHead(404, { 'Content-Type': 'application/json' });
426
- res.end(jsonError('Anthropic adapter not registered', 'not_found'));
427
- return;
428
- }
429
- await this._handleAdapterRequest(req, res, smartAgent, anthropicAdapter);
430
- return;
431
- }
432
- if (req.method === 'POST' &&
433
- (urlPath === '/v1/chat/completions' || urlPath === '/chat/completions')) {
434
- await this._handleChat(req, res, requestLogger, smartAgent, chat, streamChat, log, modelProvider);
435
- return;
436
- }
437
- res.writeHead(404, { 'Content-Type': 'application/json' });
438
- res.end(jsonError(`Cannot ${req.method} ${urlPath}`, 'invalid_request_error'));
439
- }
440
- async _handleAdapterRequest(req, res, agent, adapter) {
441
- const raw = await readBody(req);
442
- let body;
443
- try {
444
- body = JSON.parse(raw);
445
- }
446
- catch {
447
- res.writeHead(400, { 'Content-Type': 'application/json' });
448
- res.end(jsonError('Invalid JSON', 'invalid_request_error'));
449
- return;
450
- }
451
- let normalized;
452
- try {
453
- normalized = adapter.normalizeRequest(body);
454
- }
455
- catch (err) {
456
- if (err instanceof AdapterValidationError) {
457
- res.writeHead(err.statusCode, { 'Content-Type': 'application/json' });
458
- res.end(jsonError(err.message, 'invalid_request_error'));
459
- return;
460
- }
461
- throw err;
462
- }
463
- if (normalized.stream) {
464
- res.writeHead(200, {
465
- 'Content-Type': 'text/event-stream',
466
- 'Cache-Control': 'no-cache',
467
- Connection: 'keep-alive',
468
- });
469
- for await (const event of adapter.transformStream(agent.streamProcess(normalized.messages, normalized.options), normalized.context)) {
470
- const eventLine = event.event ? `event: ${event.event}\n` : '';
471
- res.write(`${eventLine}data: ${event.data}\n\n`);
472
- }
473
- res.end();
474
- return;
475
- }
476
- // Non-streaming
477
- const result = await agent.process(normalized.messages, normalized.options);
478
- res.setHeader('Content-Type', 'application/json');
479
- if (!result.ok) {
480
- res.writeHead(500);
481
- res.end(JSON.stringify(adapter.formatError?.(result.error, normalized.context) ?? {
482
- error: {
483
- message: result.error.message,
484
- type: result.error.code,
485
- },
486
- }));
487
- return;
488
- }
489
- res.writeHead(200);
490
- res.end(JSON.stringify(adapter.formatResult(result.value, normalized.context)));
491
- }
492
- async _handleChat(req, res, _requestLogger, smartAgent, _chat, _streamChat, log, modelProvider) {
493
- const rawBody = await readBody(req);
494
- let parsed;
495
- try {
496
- parsed = JSON.parse(rawBody);
497
- }
498
- catch {
499
- res.writeHead(400, { 'Content-Type': 'application/json' });
500
- res.end(jsonError('Invalid JSON body', 'invalid_request_error'));
501
- return;
502
- }
503
- if (typeof parsed !== 'object' ||
504
- parsed === null ||
505
- !Array.isArray(parsed.messages)) {
506
- res.writeHead(400, { 'Content-Type': 'application/json' });
507
- res.end(jsonError('messages must be a non-empty array', 'invalid_request_error'));
508
- return;
509
- }
510
- const body = parsed;
511
- const extractText = (c) => {
512
- if (c === null || c === undefined)
513
- return '';
514
- if (typeof c === 'string')
515
- return c;
516
- if (!Array.isArray(c))
517
- return '';
518
- return c
519
- .filter((b) => typeof b === 'object' &&
520
- b !== null &&
521
- b.type === 'text' &&
522
- typeof b.text === 'string')
523
- .map((b) => b.text)
524
- .join('\n');
525
- };
526
- const userMessages = body.messages.filter((m) => m.role === 'user');
527
- if (userMessages.length === 0) {
528
- res.writeHead(400, { 'Content-Type': 'application/json' });
529
- res.end(jsonError('at least one message with role "user" is required', 'invalid_request_error'));
530
- return;
531
- }
532
- const traceId = randomUUID();
533
- const sessionId = req.headers['x-session-id'] || 'default';
534
- const sessionLogger = new SessionLogger(this.cfg.logDir || null, sessionId, traceId);
535
- const toolsValidationMode = this.cfg.agent?.externalToolsValidationMode ?? 'permissive';
536
- const externalToolsValidation = normalizeAndValidateExternalTools(body.tools);
537
- const externalTools = externalToolsValidation.tools;
538
- if (externalToolsValidation.errors.length > 0) {
539
- log({
540
- event: 'invalid_external_tools_detected',
541
- traceId,
542
- sessionId,
543
- mode: toolsValidationMode,
544
- count: externalToolsValidation.errors.length,
545
- errors: externalToolsValidation.errors,
546
- });
547
- sessionLogger.logStep('invalid_external_tools_detected', {
548
- mode: toolsValidationMode,
549
- count: externalToolsValidation.errors.length,
550
- errors: externalToolsValidation.errors,
551
- });
552
- if (toolsValidationMode === 'strict') {
553
- const firstError = externalToolsValidation.errors[0];
554
- res.writeHead(400, { 'Content-Type': 'application/json' });
555
- res.end(jsonValidationError(firstError.message, firstError.code, firstError.param));
556
- return;
557
- }
558
- }
559
- const t0 = Date.now();
560
- log({ event: 'request_start', stream: body.stream ?? false, traceId });
561
- const opts = {
562
- stream: body.stream,
563
- externalTools,
564
- sessionId,
565
- trace: { traceId },
566
- sessionLogger,
567
- model: body.model,
568
- ...(body.temperature !== undefined
569
- ? { temperature: body.temperature }
570
- : {}),
571
- ...(body.max_tokens !== undefined ? { maxTokens: body.max_tokens } : {}),
572
- ...(body.top_p !== undefined ? { topP: body.top_p } : {}),
573
- ...(body.stop !== undefined
574
- ? { stop: Array.isArray(body.stop) ? body.stop : [body.stop] }
575
- : {}),
576
- };
577
- const responseModel = body.model ?? modelProvider?.getModel() ?? 'smart-agent';
578
- const normalizedMessages = body.messages
579
- .map((m) => {
580
- const role = m.role;
581
- const normalizedMessage = {
582
- role,
583
- content: extractText(m.content),
584
- };
585
- if (role === 'tool') {
586
- if (typeof m.tool_call_id === 'string' && m.tool_call_id.trim()) {
587
- normalizedMessage.tool_call_id = m.tool_call_id;
588
- }
589
- else {
590
- sessionLogger.logStep('drop_orphan_tool_message', {
591
- reason: 'missing_tool_call_id',
592
- });
593
- return null;
594
- }
595
- }
596
- if (role === 'assistant' && Array.isArray(m.tool_calls)) {
597
- const toolCalls = m.tool_calls
598
- .filter((tc) => typeof tc === 'object' &&
599
- tc !== null &&
600
- typeof tc.id === 'string' &&
601
- tc.type === 'function' &&
602
- typeof tc.function
603
- ?.name === 'string' &&
604
- typeof tc.function
605
- ?.arguments === 'string')
606
- .map((tc) => ({
607
- id: tc.id,
608
- type: 'function',
609
- function: {
610
- name: tc.function.name,
611
- arguments: tc.function.arguments,
612
- },
613
- }));
614
- if (toolCalls.length > 0) {
615
- normalizedMessage.tool_calls = toolCalls;
616
- if (!normalizedMessage.content)
617
- normalizedMessage.content = null;
618
- }
619
- }
620
- return normalizedMessage;
621
- })
622
- .filter((m) => m !== null);
623
- const invalidToolsHeader = externalToolsValidation.errors.length > 0
624
- ? {
625
- 'x-smartagent-invalid-tools': String(externalToolsValidation.errors.length),
626
- }
627
- : {};
628
- if (body.stream) {
629
- res.writeHead(200, {
630
- 'Content-Type': 'text/event-stream',
631
- 'Cache-Control': 'no-cache',
632
- Connection: 'keep-alive',
633
- ...invalidToolsHeader,
634
- });
635
- const id = `chatcmpl-${randomUUID()}`;
636
- const created = Math.floor(Date.now() / 1000);
637
- const stream = smartAgent.streamProcess(normalizedMessages, opts);
638
- let firstChunk = true;
639
- let finishReasonSent = false;
640
- let lastUsage = null;
641
- for await (const chunk of stream) {
642
- if (!chunk.ok) {
643
- const errorChunk = {
644
- id,
645
- object: 'chat.completion.chunk',
646
- created,
647
- model: responseModel,
648
- choices: [
649
- {
650
- index: 0,
651
- delta: { content: `[Error] ${chunk.error.message}` },
652
- finish_reason: 'stop',
653
- },
654
- ],
655
- };
656
- res.write(`data: ${JSON.stringify(errorChunk)}\n\n`);
657
- finishReasonSent = true;
658
- break;
659
- }
660
- // SSE heartbeat comment — keeps connection alive, ignored by clients
661
- if (chunk.value.heartbeat) {
662
- const hb = chunk.value.heartbeat;
663
- res.write(`: heartbeat tool=${hb.tool} elapsed=${hb.elapsed}ms\n\n`);
664
- continue;
665
- }
666
- // SSE timing breakdown comment — sent with the final chunk
667
- if (chunk.value.timing) {
668
- const parts = chunk.value.timing.map((t) => `${t.phase}=${t.duration}ms`);
669
- res.write(`: timing ${parts.join(' ')}\n\n`);
670
- }
671
- if (chunk.value.usage) {
672
- lastUsage = {
673
- prompt_tokens: chunk.value.usage.promptTokens,
674
- completion_tokens: chunk.value.usage.completionTokens,
675
- total_tokens: chunk.value.usage.totalTokens,
676
- };
677
- }
678
- const baseResponse = {
679
- id,
680
- object: 'chat.completion.chunk',
681
- created,
682
- model: responseModel,
683
- usage: null,
684
- };
685
- if (firstChunk) {
686
- res.write(`data: ${JSON.stringify({ ...baseResponse, choices: [{ index: 0, delta: { role: 'assistant', content: chunk.value.content || '' }, finish_reason: null }] })}\n\n`);
687
- firstChunk = false;
688
- if (!chunk.value.finishReason && !chunk.value.toolCalls)
689
- continue;
690
- }
691
- if (chunk.value.content || chunk.value.toolCalls) {
692
- const delta = {};
693
- if (chunk.value.content)
694
- delta.content = chunk.value.content;
695
- if (chunk.value.toolCalls) {
696
- delta.tool_calls = chunk.value.toolCalls.map((call, index) => {
697
- const tc = toToolCallDelta(call, index);
698
- return {
699
- index: tc.index,
700
- id: tc.id,
701
- type: 'function',
702
- function: {
703
- name: tc.name,
704
- arguments: tc.arguments || '',
705
- },
706
- };
707
- });
708
- }
709
- res.write(`data: ${JSON.stringify({ ...baseResponse, choices: [{ index: 0, delta, finish_reason: null }] })}\n\n`);
710
- }
711
- if (chunk.value.finishReason) {
712
- res.write(`data: ${JSON.stringify({ ...baseResponse, choices: [{ index: 0, delta: {}, finish_reason: mapStopReason(chunk.value.finishReason) }] })}\n\n`);
713
- finishReasonSent = true;
714
- }
715
- }
716
- if (!finishReasonSent) {
717
- const baseResponse = {
718
- id,
719
- object: 'chat.completion.chunk',
720
- created,
721
- model: responseModel,
722
- usage: null,
723
- };
724
- res.write(`data: ${JSON.stringify({ ...baseResponse, choices: [{ index: 0, delta: {}, finish_reason: 'stop' }] })}\n\n`);
725
- }
726
- if ((this.cfg.reportUsage !== false ||
727
- body.stream_options?.include_usage) &&
728
- lastUsage) {
729
- res.write(`data: ${JSON.stringify({ id, object: 'chat.completion.chunk', created, model: responseModel, choices: [], usage: lastUsage })}\n\n`);
730
- }
731
- res.write('data: [DONE]\n\n');
732
- res.end();
733
- log({
734
- event: 'request_done',
735
- ok: true,
736
- stream: true,
737
- finishReason: finishReasonSent ? 'sent' : 'fallback_stop',
738
- durationMs: Date.now() - t0,
739
- });
740
- return;
741
- }
742
- const result = await smartAgent.process(normalizedMessages, opts);
743
- log({ event: 'request_done', ok: result.ok, durationMs: Date.now() - t0 });
744
- const finalContent = result.ok
745
- ? result.value.content ||
746
- (result.value.toolCalls ? null : '(no response)')
747
- : `Error: ${result.error.message}`;
748
- const finalFinishReason = result.ok
749
- ? mapStopReason(result.value.stopReason)
750
- : 'stop';
751
- let finalUsage = null;
752
- if (result.ok && result.value.usage) {
753
- finalUsage = {
754
- prompt_tokens: result.value.usage.promptTokens,
755
- completion_tokens: result.value.usage.completionTokens,
756
- total_tokens: result.value.usage.totalTokens,
757
- };
758
- }
759
- const message = {
760
- role: 'assistant',
761
- content: finalContent,
762
- };
763
- if (result.ok && result.value.toolCalls) {
764
- message.tool_calls = result.value.toolCalls;
765
- }
766
- res.writeHead(200, {
767
- 'Content-Type': 'application/json',
768
- ...invalidToolsHeader,
769
- });
770
- res.end(JSON.stringify({
771
- id: `chatcmpl-${randomUUID()}`,
772
- object: 'chat.completion',
773
- created: Math.floor(Date.now() / 1000),
774
- model: responseModel,
775
- choices: [
776
- {
777
- index: 0,
778
- message,
779
- finish_reason: finalFinishReason,
780
- },
781
- ],
782
- usage: finalUsage || {
783
- prompt_tokens: 0,
784
- completion_tokens: 0,
785
- total_tokens: 0,
786
- },
787
- }));
788
- }
789
- /** Whitelisted agent config fields allowed via PUT /v1/config. */
790
- static AGENT_CONFIG_FIELDS = new Set([
791
- 'maxIterations',
792
- 'maxToolCalls',
793
- 'ragQueryK',
794
- 'toolUnavailableTtlMs',
795
- 'showReasoning',
796
- 'historyAutoSummarizeLimit',
797
- 'classificationEnabled',
798
- ]);
799
- async _handleConfigUpdate(req, res, smartAgent) {
800
- const raw = await readBody(req);
801
- let parsed;
802
- try {
803
- parsed = JSON.parse(raw);
804
- }
805
- catch {
806
- res.writeHead(400, { 'Content-Type': 'application/json' });
807
- res.end(jsonError('Invalid JSON body', 'invalid_request_error'));
808
- return;
809
- }
810
- if (typeof parsed !== 'object' ||
811
- parsed === null ||
812
- Array.isArray(parsed)) {
813
- res.writeHead(400, { 'Content-Type': 'application/json' });
814
- res.end(jsonError('Request body must be a JSON object', 'invalid_request_error'));
815
- return;
816
- }
817
- const body = parsed;
818
- // --- Validate agent fields against whitelist ---
819
- if (body.agent !== undefined) {
820
- if (typeof body.agent !== 'object' ||
821
- body.agent === null ||
822
- Array.isArray(body.agent)) {
823
- res.writeHead(400, { 'Content-Type': 'application/json' });
824
- res.end(jsonError('"agent" must be a JSON object', 'invalid_request_error'));
825
- return;
826
- }
827
- const agentFields = body.agent;
828
- const unsupported = Object.keys(agentFields).filter((k) => !SmartServer.AGENT_CONFIG_FIELDS.has(k));
829
- if (unsupported.length > 0) {
830
- res.writeHead(400, { 'Content-Type': 'application/json' });
831
- res.end(jsonError(`Unsupported agent config fields: ${unsupported.join(', ')}`, 'invalid_request_error'));
832
- return;
833
- }
834
- }
835
- // --- Validate and resolve models (atomic: resolve ALL before mutating) ---
836
- let resolvedModels;
837
- if (body.models !== undefined) {
838
- if (typeof body.models !== 'object' ||
839
- body.models === null ||
840
- Array.isArray(body.models)) {
841
- res.writeHead(400, { 'Content-Type': 'application/json' });
842
- res.end(jsonError('"models" must be a JSON object', 'invalid_request_error'));
843
- return;
844
- }
845
- if (!this.cfg.modelResolver) {
846
- res.writeHead(400, { 'Content-Type': 'application/json' });
847
- res.end(jsonError('model resolver not configured', 'invalid_request_error'));
848
- return;
849
- }
850
- const modelFields = body.models;
851
- const validKeys = new Set([
852
- 'mainModel',
853
- 'classifierModel',
854
- 'helperModel',
855
- ]);
856
- const unknownKeys = Object.keys(modelFields).filter((k) => !validKeys.has(k));
857
- if (unknownKeys.length > 0) {
858
- res.writeHead(400, { 'Content-Type': 'application/json' });
859
- res.end(jsonError(`Unknown model fields: ${unknownKeys.join(', ')}`, 'invalid_request_error'));
860
- return;
861
- }
862
- try {
863
- const resolver = this.cfg.modelResolver;
864
- const [mainLlm, classifierLlm, helperLlm] = await Promise.all([
865
- modelFields.mainModel
866
- ? resolver.resolve(String(modelFields.mainModel), 'main')
867
- : undefined,
868
- modelFields.classifierModel
869
- ? resolver.resolve(String(modelFields.classifierModel), 'classifier')
870
- : undefined,
871
- modelFields.helperModel
872
- ? resolver.resolve(String(modelFields.helperModel), 'helper')
873
- : undefined,
874
- ]);
875
- resolvedModels = {};
876
- if (mainLlm)
877
- resolvedModels.mainLlm = mainLlm;
878
- if (classifierLlm)
879
- resolvedModels.classifierLlm = classifierLlm;
880
- if (helperLlm)
881
- resolvedModels.helperLlm = helperLlm;
882
- }
883
- catch (err) {
884
- res.writeHead(500, { 'Content-Type': 'application/json' });
885
- res.end(jsonError(String(err), 'server_error'));
886
- return;
887
- }
888
- }
889
- // --- All validation passed — apply mutations ---
890
- if (resolvedModels) {
891
- smartAgent.reconfigure(resolvedModels);
892
- }
893
- if (body.agent) {
894
- smartAgent.applyConfigUpdate(body.agent);
895
- }
896
- // --- Return updated config ---
897
- const models = smartAgent.getActiveConfig();
898
- const agent = smartAgent.getAgentConfig();
899
- res.writeHead(200, { 'Content-Type': 'application/json' });
900
- res.end(JSON.stringify({ models, agent }));
901
- }
902
- }
903
- //# sourceMappingURL=smart-server.js.map