beeai-framework 0.1.20 → 0.1.22

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 (485) hide show
  1. package/dist/adapters/a2a/agents/agent.cjs +4 -4
  2. package/dist/adapters/a2a/agents/agent.cjs.map +1 -1
  3. package/dist/adapters/a2a/agents/agent.d.cts +6 -10
  4. package/dist/adapters/a2a/agents/agent.d.ts +6 -10
  5. package/dist/adapters/a2a/agents/agent.js +4 -4
  6. package/dist/adapters/a2a/agents/agent.js.map +1 -1
  7. package/dist/adapters/a2a/agents/events.d.cts +1 -1
  8. package/dist/adapters/a2a/agents/events.d.ts +1 -1
  9. package/dist/adapters/a2a/agents/types.d.cts +2 -2
  10. package/dist/adapters/a2a/agents/types.d.ts +2 -2
  11. package/dist/adapters/a2a/agents/utils.cjs +2 -2
  12. package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
  13. package/dist/adapters/a2a/agents/utils.js +2 -2
  14. package/dist/adapters/a2a/agents/utils.js.map +1 -1
  15. package/dist/adapters/a2a/serve/agent_executor.cjs +1 -3
  16. package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
  17. package/dist/adapters/a2a/serve/agent_executor.d.cts +4 -3
  18. package/dist/adapters/a2a/serve/agent_executor.d.ts +4 -3
  19. package/dist/adapters/a2a/serve/agent_executor.js +1 -3
  20. package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
  21. package/dist/adapters/a2a/serve/server.cjs +15 -0
  22. package/dist/adapters/a2a/serve/server.cjs.map +1 -1
  23. package/dist/adapters/a2a/serve/server.d.cts +4 -2
  24. package/dist/adapters/a2a/serve/server.d.ts +4 -2
  25. package/dist/adapters/a2a/serve/server.js +15 -0
  26. package/dist/adapters/a2a/serve/server.js.map +1 -1
  27. package/dist/adapters/acp/agents/agent.d.cts +6 -10
  28. package/dist/adapters/acp/agents/agent.d.ts +6 -10
  29. package/dist/adapters/acp/agents/events.d.cts +1 -1
  30. package/dist/adapters/acp/agents/events.d.ts +1 -1
  31. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.cjs +4 -4
  32. package/dist/adapters/agentstack/agents/agent.cjs.map +1 -0
  33. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.cts +18 -16
  34. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.d.ts +18 -16
  35. package/dist/adapters/{beeai_platform → agentstack}/agents/agent.js +4 -4
  36. package/dist/adapters/agentstack/agents/agent.js.map +1 -0
  37. package/dist/adapters/agentstack/agents/events.d.cts +23 -0
  38. package/dist/adapters/agentstack/agents/events.d.ts +23 -0
  39. package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.cts +4 -4
  40. package/dist/adapters/{beeai_platform → agentstack}/agents/types.d.ts +4 -4
  41. package/dist/adapters/amazon-bedrock/backend/chat.cjs +3 -2
  42. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  43. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +5 -6
  44. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +5 -6
  45. package/dist/adapters/amazon-bedrock/backend/chat.js +3 -2
  46. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  47. package/dist/adapters/amazon-bedrock/backend/embedding.cjs +2 -2
  48. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  49. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +4 -4
  50. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +4 -4
  51. package/dist/adapters/amazon-bedrock/backend/embedding.js +2 -2
  52. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  53. package/dist/adapters/anthropic/backend/chat.cjs +3 -2
  54. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  55. package/dist/adapters/anthropic/backend/chat.d.cts +5 -6
  56. package/dist/adapters/anthropic/backend/chat.d.ts +5 -6
  57. package/dist/adapters/anthropic/backend/chat.js +3 -2
  58. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  59. package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
  60. package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
  61. package/dist/adapters/azure-openai/backend/chat.cjs +3 -2
  62. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  63. package/dist/adapters/azure-openai/backend/chat.d.cts +5 -6
  64. package/dist/adapters/azure-openai/backend/chat.d.ts +5 -6
  65. package/dist/adapters/azure-openai/backend/chat.js +3 -2
  66. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  67. package/dist/adapters/azure-openai/backend/embedding.cjs +2 -2
  68. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  69. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -3
  70. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -3
  71. package/dist/adapters/azure-openai/backend/embedding.js +2 -2
  72. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  73. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  74. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  75. package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
  76. package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
  77. package/dist/adapters/google-vertex/backend/chat.cjs +3 -2
  78. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  79. package/dist/adapters/google-vertex/backend/chat.d.cts +5 -6
  80. package/dist/adapters/google-vertex/backend/chat.d.ts +5 -6
  81. package/dist/adapters/google-vertex/backend/chat.js +3 -2
  82. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  83. package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
  84. package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
  85. package/dist/adapters/groq/backend/chat.cjs +3 -2
  86. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  87. package/dist/adapters/groq/backend/chat.d.cts +5 -6
  88. package/dist/adapters/groq/backend/chat.d.ts +5 -6
  89. package/dist/adapters/groq/backend/chat.js +3 -2
  90. package/dist/adapters/groq/backend/chat.js.map +1 -1
  91. package/dist/adapters/groq/backend/embedding.d.cts +2 -2
  92. package/dist/adapters/groq/backend/embedding.d.ts +2 -2
  93. package/dist/adapters/langchain/backend/chat.cjs +6 -5
  94. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  95. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  96. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  97. package/dist/adapters/langchain/backend/chat.js +6 -5
  98. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  99. package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
  100. package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
  101. package/dist/adapters/langchain/tools.d.cts +1 -1
  102. package/dist/adapters/langchain/tools.d.ts +1 -1
  103. package/dist/adapters/ollama/backend/chat.cjs +1 -4
  104. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  105. package/dist/adapters/ollama/backend/chat.d.cts +4 -4
  106. package/dist/adapters/ollama/backend/chat.d.ts +4 -4
  107. package/dist/adapters/ollama/backend/chat.js +1 -4
  108. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  109. package/dist/adapters/ollama/backend/client.cjs +2 -2
  110. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  111. package/dist/adapters/ollama/backend/client.d.cts +1 -1
  112. package/dist/adapters/ollama/backend/client.d.ts +1 -1
  113. package/dist/adapters/ollama/backend/client.js +1 -1
  114. package/dist/adapters/ollama/backend/client.js.map +1 -1
  115. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  116. package/dist/adapters/ollama/backend/embedding.d.cts +3 -3
  117. package/dist/adapters/ollama/backend/embedding.d.ts +3 -3
  118. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  119. package/dist/adapters/openai/backend/chat.cjs +3 -2
  120. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  121. package/dist/adapters/openai/backend/chat.d.cts +5 -6
  122. package/dist/adapters/openai/backend/chat.d.ts +5 -6
  123. package/dist/adapters/openai/backend/chat.js +3 -2
  124. package/dist/adapters/openai/backend/chat.js.map +1 -1
  125. package/dist/adapters/openai/backend/client.cjs +2 -11
  126. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  127. package/dist/adapters/openai/backend/client.js +3 -12
  128. package/dist/adapters/openai/backend/client.js.map +1 -1
  129. package/dist/adapters/openai/backend/embedding.cjs +2 -2
  130. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  131. package/dist/adapters/openai/backend/embedding.d.cts +4 -4
  132. package/dist/adapters/openai/backend/embedding.d.ts +4 -4
  133. package/dist/adapters/openai/backend/embedding.js +2 -2
  134. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  135. package/dist/adapters/vercel/backend/chat.cjs +26 -21
  136. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  137. package/dist/adapters/vercel/backend/chat.d.cts +6 -4
  138. package/dist/adapters/vercel/backend/chat.d.ts +6 -4
  139. package/dist/adapters/vercel/backend/chat.js +27 -22
  140. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  141. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  142. package/dist/adapters/vercel/backend/embedding.d.cts +3 -3
  143. package/dist/adapters/vercel/backend/embedding.d.ts +3 -3
  144. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  145. package/dist/adapters/vercel/backend/utils.cjs +26 -0
  146. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  147. package/dist/adapters/vercel/backend/utils.d.cts +20 -2
  148. package/dist/adapters/vercel/backend/utils.d.ts +20 -2
  149. package/dist/adapters/vercel/backend/utils.js +25 -1
  150. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  151. package/dist/adapters/watsonx/backend/chat.cjs +10 -4
  152. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  153. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  154. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  155. package/dist/adapters/watsonx/backend/chat.js +10 -4
  156. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  157. package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
  158. package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
  159. package/dist/adapters/xai/backend/chat.cjs +3 -2
  160. package/dist/adapters/xai/backend/chat.cjs.map +1 -1
  161. package/dist/adapters/xai/backend/chat.d.cts +5 -6
  162. package/dist/adapters/xai/backend/chat.d.ts +5 -6
  163. package/dist/adapters/xai/backend/chat.js +3 -2
  164. package/dist/adapters/xai/backend/chat.js.map +1 -1
  165. package/dist/{agent-I0Saf4A1.d.cts → agent-BMfyig7X.d.cts} +5 -4
  166. package/dist/{agent-CtrCeN7o.d.ts → agent-Dxw8AGWb.d.ts} +5 -4
  167. package/dist/agents/base.cjs +5 -2
  168. package/dist/agents/base.cjs.map +1 -1
  169. package/dist/agents/base.d.cts +2 -2
  170. package/dist/agents/base.d.ts +2 -2
  171. package/dist/agents/base.js +5 -2
  172. package/dist/agents/base.js.map +1 -1
  173. package/dist/agents/experimental/replan/agent.d.cts +3 -3
  174. package/dist/agents/experimental/replan/agent.d.ts +3 -3
  175. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  176. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  177. package/dist/agents/experimental/streamlit/agent.d.cts +8 -12
  178. package/dist/agents/experimental/streamlit/agent.d.ts +8 -12
  179. package/dist/agents/react/agent.d.cts +5 -4
  180. package/dist/agents/react/agent.d.ts +5 -4
  181. package/dist/agents/react/prompts.d.cts +1 -1
  182. package/dist/agents/react/prompts.d.ts +1 -1
  183. package/dist/agents/react/runners/base.cjs.map +1 -1
  184. package/dist/agents/react/runners/base.d.cts +5 -4
  185. package/dist/agents/react/runners/base.d.ts +5 -4
  186. package/dist/agents/react/runners/base.js.map +1 -1
  187. package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
  188. package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
  189. package/dist/agents/react/runners/deep-think/runner.d.cts +6 -5
  190. package/dist/agents/react/runners/deep-think/runner.d.ts +6 -5
  191. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  192. package/dist/agents/react/runners/default/runner.d.cts +6 -5
  193. package/dist/agents/react/runners/default/runner.d.ts +6 -5
  194. package/dist/agents/react/runners/default/runner.js.map +1 -1
  195. package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
  196. package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
  197. package/dist/agents/react/runners/granite/runner.cjs +4 -2
  198. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  199. package/dist/agents/react/runners/granite/runner.d.cts +6 -5
  200. package/dist/agents/react/runners/granite/runner.d.ts +6 -5
  201. package/dist/agents/react/runners/granite/runner.js +4 -2
  202. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  203. package/dist/agents/react/types.d.cts +3 -2
  204. package/dist/agents/react/types.d.ts +3 -2
  205. package/dist/agents/requirement/agent.cjs +162 -0
  206. package/dist/agents/requirement/agent.cjs.map +1 -0
  207. package/dist/agents/requirement/agent.d.cts +29 -0
  208. package/dist/agents/requirement/agent.d.ts +29 -0
  209. package/dist/agents/requirement/agent.js +160 -0
  210. package/dist/agents/requirement/agent.js.map +1 -0
  211. package/dist/agents/requirement/prompts.cjs +95 -0
  212. package/dist/agents/requirement/prompts.cjs.map +1 -0
  213. package/dist/agents/requirement/prompts.d.cts +107 -0
  214. package/dist/agents/requirement/prompts.d.ts +107 -0
  215. package/dist/agents/requirement/prompts.js +90 -0
  216. package/dist/agents/requirement/prompts.js.map +1 -0
  217. package/dist/agents/requirement/requirements/conditional.cjs +190 -0
  218. package/dist/agents/requirement/requirements/conditional.cjs.map +1 -0
  219. package/dist/agents/requirement/requirements/conditional.d.cts +71 -0
  220. package/dist/agents/requirement/requirements/conditional.d.ts +71 -0
  221. package/dist/agents/requirement/requirements/conditional.js +188 -0
  222. package/dist/agents/requirement/requirements/conditional.js.map +1 -0
  223. package/dist/agents/requirement/requirements/requirement.cjs +107 -0
  224. package/dist/agents/requirement/requirements/requirement.cjs.map +1 -0
  225. package/dist/agents/requirement/requirements/requirement.d.cts +59 -0
  226. package/dist/agents/requirement/requirements/requirement.d.ts +59 -0
  227. package/dist/agents/requirement/requirements/requirement.js +104 -0
  228. package/dist/agents/requirement/requirements/requirement.js.map +1 -0
  229. package/dist/agents/requirement/requirements/utils.cjs +74 -0
  230. package/dist/agents/requirement/requirements/utils.cjs.map +1 -0
  231. package/dist/agents/requirement/requirements/utils.d.cts +40 -0
  232. package/dist/agents/requirement/requirements/utils.d.ts +40 -0
  233. package/dist/agents/requirement/requirements/utils.js +69 -0
  234. package/dist/agents/requirement/requirements/utils.js.map +1 -0
  235. package/dist/agents/requirement/runner.cjs +252 -0
  236. package/dist/agents/requirement/runner.cjs.map +1 -0
  237. package/dist/agents/requirement/runner.d.cts +117 -0
  238. package/dist/agents/requirement/runner.d.ts +117 -0
  239. package/dist/agents/requirement/runner.js +250 -0
  240. package/dist/agents/requirement/runner.js.map +1 -0
  241. package/dist/agents/requirement/types.cjs +40 -0
  242. package/dist/agents/requirement/types.cjs.map +1 -0
  243. package/dist/agents/requirement/types.d.cts +24 -0
  244. package/dist/agents/requirement/types.d.ts +24 -0
  245. package/dist/agents/requirement/types.js +35 -0
  246. package/dist/agents/requirement/types.js.map +1 -0
  247. package/dist/agents/requirement/utils/llm.cjs +202 -0
  248. package/dist/agents/requirement/utils/llm.cjs.map +1 -0
  249. package/dist/agents/requirement/utils/llm.d.cts +50 -0
  250. package/dist/agents/requirement/utils/llm.d.ts +50 -0
  251. package/dist/agents/requirement/utils/llm.js +199 -0
  252. package/dist/agents/requirement/utils/llm.js.map +1 -0
  253. package/dist/agents/requirement/utils/tool.cjs +94 -0
  254. package/dist/agents/requirement/utils/tool.cjs.map +1 -0
  255. package/dist/agents/requirement/utils/tool.d.cts +24 -0
  256. package/dist/agents/requirement/utils/tool.d.ts +24 -0
  257. package/dist/agents/requirement/utils/tool.js +91 -0
  258. package/dist/agents/requirement/utils/tool.js.map +1 -0
  259. package/dist/agents/requirement/utils/toolCallChecker.cjs +61 -0
  260. package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -0
  261. package/dist/agents/requirement/utils/toolCallChecker.d.cts +28 -0
  262. package/dist/agents/requirement/utils/toolCallChecker.d.ts +28 -0
  263. package/dist/agents/requirement/utils/toolCallChecker.js +59 -0
  264. package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -0
  265. package/dist/agents/toolCalling/agent.cjs +9 -5
  266. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  267. package/dist/agents/toolCalling/agent.d.cts +8 -12
  268. package/dist/agents/toolCalling/agent.d.ts +8 -12
  269. package/dist/agents/toolCalling/agent.js +9 -5
  270. package/dist/agents/toolCalling/agent.js.map +1 -1
  271. package/dist/agents/toolCalling/types.d.cts +1 -1
  272. package/dist/agents/toolCalling/types.d.ts +1 -1
  273. package/dist/agents/types.d.cts +2 -2
  274. package/dist/agents/types.d.ts +2 -2
  275. package/dist/backend/backend.d.cts +2 -2
  276. package/dist/backend/backend.d.ts +2 -2
  277. package/dist/backend/chat.cjs +1 -1
  278. package/dist/backend/chat.cjs.map +1 -1
  279. package/dist/backend/chat.d.cts +2 -2
  280. package/dist/backend/chat.d.ts +2 -2
  281. package/dist/backend/chat.js +1 -1
  282. package/dist/backend/chat.js.map +1 -1
  283. package/dist/backend/core.d.cts +2 -2
  284. package/dist/backend/core.d.ts +2 -2
  285. package/dist/backend/embedding.d.cts +2 -2
  286. package/dist/backend/embedding.d.ts +2 -2
  287. package/dist/backend/message.cjs +59 -3
  288. package/dist/backend/message.cjs.map +1 -1
  289. package/dist/backend/message.d.cts +3 -0
  290. package/dist/backend/message.d.ts +3 -0
  291. package/dist/backend/message.js +59 -3
  292. package/dist/backend/message.js.map +1 -1
  293. package/dist/backend/utils.d.cts +2 -2
  294. package/dist/backend/utils.d.ts +2 -2
  295. package/dist/{base-BsY2baWy.d.ts → base-BurRTBA7.d.ts} +4 -2
  296. package/dist/{base-BP7v-NSL.d.cts → base-v-PYIq5G.d.cts} +4 -2
  297. package/dist/cache/fileCache.cjs.map +1 -1
  298. package/dist/cache/fileCache.js.map +1 -1
  299. package/dist/{chat-W9j8T6UU.d.ts → chat-BbCYMAdE.d.ts} +4 -2
  300. package/dist/{chat-CR4yfOR9.d.cts → chat-DB_cf15S.d.cts} +4 -2
  301. package/dist/context.cjs +22 -5
  302. package/dist/context.cjs.map +1 -1
  303. package/dist/context.d.cts +19 -6
  304. package/dist/context.d.ts +19 -6
  305. package/dist/context.js +23 -7
  306. package/dist/context.js.map +1 -1
  307. package/dist/emitter/emitter.cjs +19 -13
  308. package/dist/emitter/emitter.cjs.map +1 -1
  309. package/dist/emitter/emitter.d.cts +1 -1
  310. package/dist/emitter/emitter.d.ts +1 -1
  311. package/dist/emitter/emitter.js +19 -13
  312. package/dist/emitter/emitter.js.map +1 -1
  313. package/dist/emitter/types.d.cts +1 -1
  314. package/dist/emitter/types.d.ts +1 -1
  315. package/dist/{emitter-DWEsd-ud.d.cts → emitter-CGKd_-kK.d.cts} +6 -5
  316. package/dist/{emitter-C9nwGLt6.d.ts → emitter-CN7I4uSV.d.ts} +6 -5
  317. package/dist/index.d.cts +5 -5
  318. package/dist/index.d.ts +5 -5
  319. package/dist/internals/fetcher.d.cts +1 -1
  320. package/dist/internals/fetcher.d.ts +1 -1
  321. package/dist/internals/helpers/array.cjs +35 -0
  322. package/dist/internals/helpers/array.cjs.map +1 -1
  323. package/dist/internals/helpers/array.d.cts +6 -1
  324. package/dist/internals/helpers/array.d.ts +6 -1
  325. package/dist/internals/helpers/array.js +35 -1
  326. package/dist/internals/helpers/array.js.map +1 -1
  327. package/dist/internals/helpers/object.cjs +30 -5
  328. package/dist/internals/helpers/object.cjs.map +1 -1
  329. package/dist/internals/helpers/object.d.cts +3 -2
  330. package/dist/internals/helpers/object.d.ts +3 -2
  331. package/dist/internals/helpers/object.js +29 -5
  332. package/dist/internals/helpers/object.js.map +1 -1
  333. package/dist/internals/helpers/prototype.cjs +5 -0
  334. package/dist/internals/helpers/prototype.cjs.map +1 -1
  335. package/dist/internals/helpers/prototype.d.cts +2 -1
  336. package/dist/internals/helpers/prototype.d.ts +2 -1
  337. package/dist/internals/helpers/prototype.js +5 -1
  338. package/dist/internals/helpers/prototype.js.map +1 -1
  339. package/dist/internals/types.cjs.map +1 -1
  340. package/dist/internals/types.d.cts +1 -1
  341. package/dist/internals/types.d.ts +1 -1
  342. package/dist/internals/types.js.map +1 -1
  343. package/dist/logger/logger.cjs +8 -4
  344. package/dist/logger/logger.cjs.map +1 -1
  345. package/dist/logger/logger.d.cts +21 -15
  346. package/dist/logger/logger.d.ts +21 -15
  347. package/dist/logger/logger.js +6 -3
  348. package/dist/logger/logger.js.map +1 -1
  349. package/dist/logger/pretty.cjs +2 -2
  350. package/dist/logger/pretty.cjs.map +1 -1
  351. package/dist/logger/pretty.js +2 -2
  352. package/dist/logger/pretty.js.map +1 -1
  353. package/dist/memory/slidingMemory.d.cts +1 -1
  354. package/dist/memory/slidingMemory.d.ts +1 -1
  355. package/dist/memory/summarizeMemory.d.cts +2 -2
  356. package/dist/memory/summarizeMemory.d.ts +2 -2
  357. package/dist/middleware/trajectory.cjs +322 -0
  358. package/dist/middleware/trajectory.cjs.map +1 -0
  359. package/dist/middleware/trajectory.d.cts +115 -0
  360. package/dist/middleware/trajectory.d.ts +115 -0
  361. package/dist/middleware/trajectory.js +320 -0
  362. package/dist/middleware/trajectory.js.map +1 -0
  363. package/dist/parsers/linePrefix.cjs.map +1 -1
  364. package/dist/parsers/linePrefix.d.cts +4 -8
  365. package/dist/parsers/linePrefix.d.ts +4 -8
  366. package/dist/parsers/linePrefix.js.map +1 -1
  367. package/dist/serializer/serializer.cjs +5 -4
  368. package/dist/serializer/serializer.cjs.map +1 -1
  369. package/dist/serializer/serializer.d.cts +1 -1
  370. package/dist/serializer/serializer.d.ts +1 -1
  371. package/dist/serializer/serializer.js +5 -4
  372. package/dist/serializer/serializer.js.map +1 -1
  373. package/dist/serializer/utils.cjs +3 -0
  374. package/dist/serializer/utils.cjs.map +1 -1
  375. package/dist/serializer/utils.d.cts +1 -1
  376. package/dist/serializer/utils.d.ts +1 -1
  377. package/dist/serializer/utils.js +3 -0
  378. package/dist/serializer/utils.js.map +1 -1
  379. package/dist/{serializer-CQxucveV.d.ts → serializer-53t8gGQa.d.ts} +3 -2
  380. package/dist/{serializer-BKn50Vnx.d.cts → serializer-c51B2z6d.d.cts} +3 -2
  381. package/dist/template.cjs +20 -0
  382. package/dist/template.cjs.map +1 -1
  383. package/dist/template.d.cts +1 -0
  384. package/dist/template.d.ts +1 -0
  385. package/dist/template.js +20 -0
  386. package/dist/template.js.map +1 -1
  387. package/dist/tools/arxiv.cjs.map +1 -1
  388. package/dist/tools/arxiv.d.cts +1 -1
  389. package/dist/tools/arxiv.d.ts +1 -1
  390. package/dist/tools/arxiv.js.map +1 -1
  391. package/dist/tools/base.cjs.map +1 -1
  392. package/dist/tools/base.d.cts +3 -2
  393. package/dist/tools/base.d.ts +3 -2
  394. package/dist/tools/base.js.map +1 -1
  395. package/dist/tools/calculator.d.cts +1 -1
  396. package/dist/tools/calculator.d.ts +1 -1
  397. package/dist/tools/custom.d.cts +2 -2
  398. package/dist/tools/custom.d.ts +2 -2
  399. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  400. package/dist/tools/database/elasticsearch.d.cts +1 -1
  401. package/dist/tools/database/elasticsearch.d.ts +1 -1
  402. package/dist/tools/database/elasticsearch.js.map +1 -1
  403. package/dist/tools/database/milvus.cjs +3 -3
  404. package/dist/tools/database/milvus.cjs.map +1 -1
  405. package/dist/tools/database/milvus.d.cts +3 -3
  406. package/dist/tools/database/milvus.d.ts +3 -3
  407. package/dist/tools/database/milvus.js +3 -3
  408. package/dist/tools/database/milvus.js.map +1 -1
  409. package/dist/tools/database/qdrant.cjs +2 -2
  410. package/dist/tools/database/qdrant.cjs.map +1 -1
  411. package/dist/tools/database/qdrant.d.cts +1 -1
  412. package/dist/tools/database/qdrant.d.ts +1 -1
  413. package/dist/tools/database/qdrant.js +2 -2
  414. package/dist/tools/database/qdrant.js.map +1 -1
  415. package/dist/tools/database/sql.cjs.map +1 -1
  416. package/dist/tools/database/sql.d.cts +1 -1
  417. package/dist/tools/database/sql.d.ts +1 -1
  418. package/dist/tools/database/sql.js.map +1 -1
  419. package/dist/tools/llm.d.cts +2 -2
  420. package/dist/tools/llm.d.ts +2 -2
  421. package/dist/tools/mcp.d.cts +1 -1
  422. package/dist/tools/mcp.d.ts +1 -1
  423. package/dist/tools/openapi.d.cts +1 -1
  424. package/dist/tools/openapi.d.ts +1 -1
  425. package/dist/tools/python/output.d.cts +1 -1
  426. package/dist/tools/python/output.d.ts +1 -1
  427. package/dist/tools/python/python.d.cts +2 -2
  428. package/dist/tools/python/python.d.ts +2 -2
  429. package/dist/tools/search/base.cjs.map +1 -1
  430. package/dist/tools/search/base.d.cts +1 -1
  431. package/dist/tools/search/base.d.ts +1 -1
  432. package/dist/tools/search/base.js.map +1 -1
  433. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  434. package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
  435. package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
  436. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  437. package/dist/tools/search/googleSearch.cjs.map +1 -1
  438. package/dist/tools/search/googleSearch.d.cts +1 -1
  439. package/dist/tools/search/googleSearch.d.ts +1 -1
  440. package/dist/tools/search/googleSearch.js.map +1 -1
  441. package/dist/tools/search/searXNGSearch.d.cts +1 -1
  442. package/dist/tools/search/searXNGSearch.d.ts +1 -1
  443. package/dist/tools/search/wikipedia.cjs +25 -0
  444. package/dist/tools/search/wikipedia.cjs.map +1 -1
  445. package/dist/tools/search/wikipedia.d.cts +2 -3
  446. package/dist/tools/search/wikipedia.d.ts +2 -3
  447. package/dist/tools/search/wikipedia.js +23 -0
  448. package/dist/tools/search/wikipedia.js.map +1 -1
  449. package/dist/tools/similarity.d.cts +1 -1
  450. package/dist/tools/similarity.d.ts +1 -1
  451. package/dist/tools/think.cjs +52 -0
  452. package/dist/tools/think.cjs.map +1 -0
  453. package/dist/tools/think.d.cts +47 -0
  454. package/dist/tools/think.d.ts +47 -0
  455. package/dist/tools/think.js +50 -0
  456. package/dist/tools/think.js.map +1 -0
  457. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  458. package/dist/tools/weather/openMeteo.d.cts +1 -1
  459. package/dist/tools/weather/openMeteo.d.ts +1 -1
  460. package/dist/tools/weather/openMeteo.js.map +1 -1
  461. package/dist/tools/web/webCrawler.cjs.map +1 -1
  462. package/dist/tools/web/webCrawler.d.cts +1 -1
  463. package/dist/tools/web/webCrawler.d.ts +1 -1
  464. package/dist/tools/web/webCrawler.js.map +1 -1
  465. package/dist/types-BXkkbABd.d.ts +213 -0
  466. package/dist/types-Cx6f43du.d.cts +213 -0
  467. package/dist/version.cjs +1 -1
  468. package/dist/version.js +1 -1
  469. package/dist/workflows/agent.d.cts +3 -3
  470. package/dist/workflows/agent.d.ts +3 -3
  471. package/dist/workflows/workflow.d.cts +1 -1
  472. package/dist/workflows/workflow.d.ts +1 -1
  473. package/package.json +70 -69
  474. package/dist/adapters/beeai_platform/agents/agent.cjs.map +0 -1
  475. package/dist/adapters/beeai_platform/agents/agent.js.map +0 -1
  476. package/dist/adapters/beeai_platform/agents/events.d.cts +0 -23
  477. package/dist/adapters/beeai_platform/agents/events.d.ts +0 -23
  478. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs +0 -0
  479. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.cjs.map +0 -0
  480. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js +0 -0
  481. /package/dist/adapters/{beeai_platform → agentstack}/agents/events.js.map +0 -0
  482. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs +0 -0
  483. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.cjs.map +0 -0
  484. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js +0 -0
  485. /package/dist/adapters/{beeai_platform → agentstack}/agents/types.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/agents/react/runners/default/runner.ts"],"names":["DefaultRunner","BaseRunner","useNativeToolCalling","defaultTemplates","system","ReActAgentSystemPrompt","assistant","ReActAgentAssistantPrompt","user","ReActAgentUserPrompt","schemaError","ReActAgentSchemaErrorPrompt","toolNotFoundError","ReActAgentToolNotFoundPrompt","toolError","ReActAgentToolErrorPrompt","toolInputError","ReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","llm","signal","meta","emitter","tempMessageKey","Retryable","onRetry","emit","onError","error","failedAttemptsCounter","use","LinePrefixParserError","reason","Reason","NoDataReceived","memory","add","AssistantMessage","UserMessage","templates","render","executor","tools","input","slice","parser","createParser","raw","create","messages","undefined","abortSignal","stream","observe","llmEmitter","on","value","key","field","isDone","data","finalState","update","parsedValue","success","delta","callbacks","abort","getTextContent","partialState","tool_output","end","deleteMany","filter","msg","getProp","state","config","maxRetries","options","execution","maxRetriesPerStep","get","tool","find","name","trim","toUpperCase","tool_name","AgentError","context","output","iteration","tool_input","FrameworkError","ensure","toolOptions","shallowCopy","toolOutput","run","Tool","contextKeys","Memory","result","isEmpty","ToolInputValidationError","toString","ToolError","explain","renderers","self","message","prompt","variables","Promise","all","map","description","replaceAll","replace","concat","schema","JSON","stringify","getInputJsonSchema","ignoredKeys","Set","has","SystemMessage","instructions","createdAt","Date","toISOString","initMemory","history","prevConversation","isTruthy","role","Role","USER","text","TokenMemory","capacityThreshold","syncThreshold","handlers","removalSelector","curMessages","prevConversationMessage","includes","last","lastMessage","length","ASSISTANT","addMany","LinePrefixParser","thought","prefix","next","isStart","ZodParserField","z","string","min","pipeline","enum","isEnd","JSONParserField","object","passthrough","base","matchPair","final_answer","waitForStartNode","endOnRepeat","fallback","stash","enumerable"],"mappings":"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","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseRunner,\n ReActAgentRunnerLLMInput,\n ReActAgentRunnerToolInput,\n} from \"@/agents/react/runners/base.js\";\nimport type {\n ReActAgentRunIteration,\n ReActAgentParserInput,\n ReActAgentRunInput,\n} from \"@/agents/react/types.js\";\nimport { Retryable } from \"@/internals/helpers/retryable.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport {\n ReActAgentAssistantPrompt,\n ReActAgentSchemaErrorPrompt,\n ReActAgentSystemPrompt,\n ReActAgentToolErrorPrompt,\n ReActAgentToolInputErrorPrompt,\n ReActAgentToolNoResultsPrompt,\n ReActAgentToolNotFoundPrompt,\n ReActAgentUserEmptyPrompt,\n ReActAgentUserPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { AnyTool, Tool, ToolError, ToolInputValidationError, ToolOutput } from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { isTruthy, last } from \"remeda\";\nimport { LinePrefixParser, LinePrefixParserError } from \"@/parsers/linePrefix.js\";\nimport { JSONParserField, ZodParserField } from \"@/parsers/field.js\";\nimport { z } from \"zod\";\nimport { AssistantMessage, Role, SystemMessage, UserMessage } from \"@/backend/message.js\";\nimport { TokenMemory } from \"@/memory/tokenMemory.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\n\nexport class DefaultRunner extends BaseRunner {\n protected useNativeToolCalling = false;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: ReActAgentSystemPrompt,\n assistant: ReActAgentAssistantPrompt,\n user: ReActAgentUserPrompt,\n schemaError: ReActAgentSchemaErrorPrompt,\n toolNotFoundError: ReActAgentToolNotFoundPrompt,\n toolError: ReActAgentToolErrorPrompt,\n toolInputError: ReActAgentToolInputErrorPrompt,\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n async llm({ signal, meta, emitter }: ReActAgentRunnerLLMInput): Promise<ReActAgentRunIteration> {\n const tempMessageKey = \"tempMessage\" as const;\n\n return new Retryable({\n onRetry: () => emitter.emit(\"retry\", { meta }),\n onError: async (error) => {\n await emitter.emit(\"error\", { error, meta });\n this.failedAttemptsCounter.use(error);\n\n if (error instanceof LinePrefixParserError) {\n // Prevent hanging on EOT\n if (error.reason === LinePrefixParserError.Reason.NoDataReceived) {\n await this.memory.add(\n new AssistantMessage(\"\\n\", {\n [tempMessageKey]: true,\n }),\n );\n } else {\n await this.memory.add(\n new UserMessage(this.templates.schemaError.render({}), {\n [tempMessageKey]: true,\n }),\n );\n }\n }\n },\n executor: async () => {\n const tools = this.input.tools.slice();\n await emitter.emit(\"start\", { meta, tools, memory: this.memory });\n\n const { parser } = this.createParser(tools);\n const raw = await this.input.llm\n .create({\n messages: this.memory.messages.slice(),\n tools: this.useNativeToolCalling ? tools : undefined,\n abortSignal: signal,\n stream: this.input.stream !== false,\n })\n .observe((llmEmitter) => {\n parser.emitter.on(\"update\", async ({ value, key, field }) => {\n if (key === \"tool_output\" && parser.isDone) {\n return;\n }\n await emitter.emit(\"update\", {\n data: parser.finalState,\n update: { key, value: field.raw, parsedValue: value },\n meta: { success: true, ...meta },\n memory: this.memory,\n });\n });\n parser.emitter.on(\"partialUpdate\", async ({ key, delta, value }) => {\n await emitter.emit(\"partialUpdate\", {\n data: parser.finalState,\n update: { key, value: delta, parsedValue: value },\n meta: { success: true, ...meta },\n });\n });\n\n llmEmitter.on(\"newToken\", async ({ value, callbacks }) => {\n if (parser.isDone) {\n callbacks.abort();\n return;\n }\n\n await parser.add(value.getTextContent());\n if (parser.partialState.tool_output !== undefined) {\n callbacks.abort();\n }\n });\n });\n\n await parser.end();\n await this.memory.deleteMany(\n this.memory.messages.filter((msg) => getProp(msg.meta, [tempMessageKey]) === true),\n );\n\n return {\n state: parser.finalState,\n raw,\n };\n },\n config: {\n maxRetries: this.options.execution?.maxRetriesPerStep,\n signal,\n },\n }).get();\n }\n\n async tool({ state, signal, meta, emitter }: ReActAgentRunnerToolInput) {\n const tool = this.input.tools.find(\n (tool) => tool.name.trim().toUpperCase() == state.tool_name?.trim()?.toUpperCase(),\n );\n if (!tool) {\n this.failedAttemptsCounter.use(\n new AgentError(`Agent was trying to use non-existing tool \"${state.tool_name}\"`, [], {\n context: { state, meta },\n }),\n );\n\n return {\n success: false,\n output: this.templates.toolNotFoundError.render({\n tools: this.input.tools,\n }),\n };\n }\n\n return new Retryable({\n config: {\n signal,\n maxRetries: this.options.execution?.maxRetriesPerStep,\n },\n onError: async (error) => {\n await emitter.emit(\"toolError\", {\n data: {\n iteration: state,\n tool,\n input: state.tool_input,\n options: this.options,\n error: FrameworkError.ensure(error),\n },\n meta,\n });\n this.failedAttemptsCounter.use(error);\n },\n executor: async () => {\n const toolOptions = shallowCopy(this.options);\n\n try {\n await emitter.emit(\"toolStart\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n iteration: state,\n },\n meta,\n });\n const toolOutput: ToolOutput = await tool.run(state.tool_input, toolOptions).context({\n [Tool.contextKeys.Memory]: this.memory,\n });\n await emitter.emit(\"toolSuccess\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n result: toolOutput,\n iteration: state,\n },\n meta,\n });\n\n if (toolOutput.isEmpty()) {\n return { output: this.templates.toolNoResultError.render({}), success: true };\n }\n\n return {\n success: true,\n output: toolOutput.getTextContent(),\n };\n } catch (error) {\n await emitter.emit(\"toolError\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n error,\n iteration: state,\n },\n meta,\n });\n\n if (error instanceof ToolInputValidationError) {\n this.failedAttemptsCounter.use(error);\n\n return {\n success: false,\n output: this.templates.toolInputError.render({\n reason: error.toString(),\n }),\n };\n }\n\n if (error instanceof ToolError) {\n this.failedAttemptsCounter.use(error);\n\n return {\n success: false,\n output: this.templates.toolError.render({\n reason: error.explain(),\n }),\n };\n }\n\n throw error;\n }\n },\n }).get();\n }\n\n @Cache({ enumerable: false })\n protected get renderers() {\n const self = {\n user: {\n message: ({ prompt }: ReActAgentRunInput) =>\n prompt !== null || this.input.memory.isEmpty()\n ? new UserMessage(prompt || this.templates.userEmpty.render({}))\n : undefined,\n },\n system: {\n variables: {\n tools: async () => {\n return await Promise.all(\n this.input.tools.map(async (tool) => ({\n name: tool.name,\n description: tool.description.replaceAll(\"\\n\", \".\").replace(/\\.$/, \"\").concat(\".\"),\n schema: JSON.stringify(\n await tool.getInputJsonSchema(),\n (() => {\n const ignoredKeys = new Set([\"minLength\", \"maxLength\", \"$schema\"]);\n return (key, value) => (ignoredKeys.has(key) ? undefined : value);\n })(),\n ),\n })),\n );\n },\n },\n message: async () =>\n new SystemMessage(\n this.templates.system.render({\n tools: await self.system.variables.tools(),\n instructions: undefined,\n createdAt: new Date().toISOString(),\n }),\n {\n createdAt: new Date(),\n },\n ),\n },\n };\n return self;\n }\n\n protected async initMemory({ prompt }: ReActAgentRunInput): Promise<BaseMemory> {\n const { memory: history } = this.input;\n\n const prevConversation = [...history.messages, this.renderers.user.message({ prompt })]\n .filter(isTruthy)\n .map((message) => {\n if (message.role === Role.USER) {\n const isEmpty = !message.text.trim();\n const text = isEmpty\n ? (this.templates?.userEmpty ?? ReActAgentUserEmptyPrompt).render({})\n : (this.templates?.user ?? ReActAgentUserPrompt).render({\n input: message.text,\n meta: {\n ...message?.meta,\n createdAt: message?.meta?.createdAt?.toISOString?.(),\n },\n });\n\n return new UserMessage(text, message.meta);\n }\n return message;\n });\n\n const memory = new TokenMemory({\n capacityThreshold: 0.85,\n syncThreshold: 0.5,\n handlers: {\n removalSelector(curMessages) {\n // First we remove messages from the past conversations\n const prevConversationMessage = curMessages.find((msg) => prevConversation.includes(msg));\n if (prevConversationMessage && prevConversationMessage !== last(prevConversation)) {\n return prevConversationMessage;\n }\n\n const lastMessage =\n curMessages.length > 3\n ? (curMessages.find(\n (msg) =>\n msg.role === Role.ASSISTANT && getProp(msg, [\"ctx\", \"success\"]) === false,\n ) ?? curMessages.find((msg) => msg.role === Role.ASSISTANT))\n : null;\n\n if (!lastMessage) {\n throw new AgentError(\"Cannot fit the current conversation into the context window!\");\n }\n return lastMessage;\n },\n },\n });\n await memory.addMany([await this.renderers.system.message(), ...prevConversation]);\n return memory;\n }\n\n protected createParser(tools: AnyTool[]) {\n const parser = new LinePrefixParser<ReActAgentParserInput>(\n {\n thought: {\n prefix: \"Thought:\",\n next: [\"tool_name\", \"final_answer\"],\n isStart: true,\n field: new ZodParserField(z.string().min(1)),\n },\n tool_name: {\n prefix: \"Function Name:\",\n next: [\"tool_input\"],\n field: new ZodParserField(\n z.pipeline(\n z.string().trim(),\n z.enum(tools.map((tool) => tool.name) as [string, ...string[]]),\n ),\n ),\n },\n tool_input: {\n prefix: \"Function Input:\",\n next: [\"tool_output\"],\n isEnd: true,\n field: new JSONParserField({\n schema: z.object({}).passthrough(),\n base: {},\n matchPair: [\"{\", \"}\"],\n }),\n },\n tool_output: {\n prefix: \"Function Output:\",\n next: [\"final_answer\"],\n isEnd: true,\n field: new ZodParserField(z.string()),\n },\n final_answer: {\n prefix: \"Final Answer:\",\n next: [],\n isStart: true,\n isEnd: true,\n field: new ZodParserField(z.string().min(1)),\n },\n },\n {\n waitForStartNode: true,\n endOnRepeat: true,\n fallback: (stash) =>\n stash\n ? [\n { key: \"thought\", value: \"I now know the final answer.\" },\n { key: \"final_answer\", value: stash },\n ]\n : [],\n },\n );\n\n return {\n parser,\n } as const;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/agents/react/runners/default/runner.ts"],"names":["DefaultRunner","BaseRunner","useNativeToolCalling","defaultTemplates","system","ReActAgentSystemPrompt","assistant","ReActAgentAssistantPrompt","user","ReActAgentUserPrompt","schemaError","ReActAgentSchemaErrorPrompt","toolNotFoundError","ReActAgentToolNotFoundPrompt","toolError","ReActAgentToolErrorPrompt","toolInputError","ReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","llm","signal","meta","emitter","tempMessageKey","Retryable","onRetry","emit","onError","error","failedAttemptsCounter","use","LinePrefixParserError","reason","Reason","NoDataReceived","memory","add","AssistantMessage","UserMessage","templates","render","executor","tools","input","slice","parser","createParser","raw","create","messages","undefined","abortSignal","stream","observe","llmEmitter","on","value","key","field","isDone","data","finalState","update","parsedValue","success","delta","callbacks","abort","getTextContent","partialState","tool_output","end","deleteMany","filter","msg","getProp","state","config","maxRetries","options","execution","maxRetriesPerStep","get","tool","find","name","trim","toUpperCase","tool_name","AgentError","context","output","iteration","tool_input","FrameworkError","ensure","toolOptions","shallowCopy","toolOutput","run","Tool","contextKeys","Memory","result","isEmpty","ToolInputValidationError","toString","ToolError","explain","renderers","self","message","prompt","variables","Promise","all","map","description","replaceAll","replace","concat","schema","JSON","stringify","getInputJsonSchema","ignoredKeys","Set","has","SystemMessage","instructions","createdAt","Date","toISOString","initMemory","history","prevConversation","isTruthy","role","Role","USER","text","TokenMemory","capacityThreshold","syncThreshold","handlers","removalSelector","curMessages","prevConversationMessage","includes","last","lastMessage","length","ASSISTANT","addMany","LinePrefixParser","thought","prefix","next","isStart","ZodParserField","z","string","min","pipeline","enum","isEnd","JSONParserField","object","passthrough","base","matchPair","final_answer","waitForStartNode","endOnRepeat","fallback","stash","enumerable"],"mappings":"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","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseRunner,\n ReActAgentRunnerLLMInput,\n ReActAgentRunnerToolInput,\n} from \"@/agents/react/runners/base.js\";\nimport type {\n ReActAgentRunIteration,\n ReActAgentParserInput,\n ReActAgentRunInput,\n} from \"@/agents/react/types.js\";\nimport { Retryable } from \"@/internals/helpers/retryable.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport {\n ReActAgentAssistantPrompt,\n ReActAgentSchemaErrorPrompt,\n ReActAgentSystemPrompt,\n ReActAgentToolErrorPrompt,\n ReActAgentToolInputErrorPrompt,\n ReActAgentToolNoResultsPrompt,\n ReActAgentToolNotFoundPrompt,\n ReActAgentUserEmptyPrompt,\n ReActAgentUserPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { AnyTool, Tool, ToolError, ToolInputValidationError, ToolOutput } from \"@/tools/base.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { isTruthy, last } from \"remeda\";\nimport { LinePrefixParser, LinePrefixParserError } from \"@/parsers/linePrefix.js\";\nimport { JSONParserField, ZodParserField } from \"@/parsers/field.js\";\nimport { z } from \"zod\";\nimport { AssistantMessage, Role, SystemMessage, UserMessage } from \"@/backend/message.js\";\nimport { TokenMemory } from \"@/memory/tokenMemory.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\n\nexport class DefaultRunner extends BaseRunner {\n protected useNativeToolCalling = false;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: ReActAgentSystemPrompt,\n assistant: ReActAgentAssistantPrompt,\n user: ReActAgentUserPrompt,\n schemaError: ReActAgentSchemaErrorPrompt,\n toolNotFoundError: ReActAgentToolNotFoundPrompt,\n toolError: ReActAgentToolErrorPrompt,\n toolInputError: ReActAgentToolInputErrorPrompt,\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n async llm({ signal, meta, emitter }: ReActAgentRunnerLLMInput): Promise<ReActAgentRunIteration> {\n const tempMessageKey = \"tempMessage\" as const;\n\n return new Retryable({\n onRetry: () => emitter.emit(\"retry\", { meta }),\n onError: async (error) => {\n await emitter.emit(\"error\", { error, meta });\n this.failedAttemptsCounter.use(error);\n\n if (error instanceof LinePrefixParserError) {\n // Prevent hanging on EOT\n if (error.reason === LinePrefixParserError.Reason.NoDataReceived) {\n await this.memory.add(\n new AssistantMessage(\"\\n\", {\n [tempMessageKey]: true,\n }),\n );\n } else {\n await this.memory.add(\n new UserMessage(this.templates.schemaError.render({}), {\n [tempMessageKey]: true,\n }),\n );\n }\n }\n },\n executor: async () => {\n const tools = this.input.tools.slice();\n await emitter.emit(\"start\", { meta, tools, memory: this.memory });\n\n const { parser } = this.createParser(tools);\n const raw = await this.input.llm\n .create({\n messages: this.memory.messages.slice(),\n tools: this.useNativeToolCalling ? tools : undefined,\n abortSignal: signal,\n stream: this.input.stream !== false,\n })\n .observe((llmEmitter) => {\n parser.emitter.on(\"update\", async ({ value, key, field }) => {\n if (key === \"tool_output\" && parser.isDone) {\n return;\n }\n await emitter.emit(\"update\", {\n data: parser.finalState,\n update: { key, value: field.raw, parsedValue: value },\n meta: { success: true, ...meta },\n memory: this.memory,\n });\n });\n parser.emitter.on(\"partialUpdate\", async ({ key, delta, value }) => {\n await emitter.emit(\"partialUpdate\", {\n data: parser.finalState,\n update: { key, value: delta, parsedValue: value },\n meta: { success: true, ...meta },\n });\n });\n\n llmEmitter.on(\"newToken\", async ({ value, callbacks }) => {\n if (parser.isDone) {\n callbacks.abort();\n return;\n }\n\n await parser.add(value.getTextContent());\n if (parser.partialState.tool_output !== undefined) {\n callbacks.abort();\n }\n });\n });\n\n await parser.end();\n await this.memory.deleteMany(\n this.memory.messages.filter((msg) => getProp(msg.meta, [tempMessageKey]) === true),\n );\n\n return {\n state: parser.finalState,\n raw,\n };\n },\n config: {\n maxRetries: this.options.execution?.maxRetriesPerStep,\n signal,\n },\n }).get();\n }\n\n async tool({ state, signal, meta, emitter }: ReActAgentRunnerToolInput) {\n const tool = this.input.tools.find(\n (tool) => tool.name.trim().toUpperCase() == state.tool_name?.trim()?.toUpperCase(),\n );\n if (!tool) {\n this.failedAttemptsCounter.use(\n new AgentError(`Agent was trying to use non-existing tool \"${state.tool_name}\"`, [], {\n context: { state, meta },\n }),\n );\n\n return {\n success: false,\n output: this.templates.toolNotFoundError.render({\n tools: this.input.tools,\n }),\n };\n }\n\n return new Retryable({\n config: {\n signal,\n maxRetries: this.options.execution?.maxRetriesPerStep,\n },\n onError: async (error) => {\n await emitter.emit(\"toolError\", {\n data: {\n iteration: state,\n tool,\n input: state.tool_input,\n options: this.options,\n error: FrameworkError.ensure(error),\n },\n meta,\n });\n this.failedAttemptsCounter.use(error);\n },\n executor: async () => {\n const toolOptions = shallowCopy(this.options);\n\n try {\n await emitter.emit(\"toolStart\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n iteration: state,\n },\n meta,\n });\n const toolOutput: ToolOutput = await tool.run(state.tool_input, toolOptions).context({\n [Tool.contextKeys.Memory]: this.memory,\n });\n await emitter.emit(\"toolSuccess\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n result: toolOutput,\n iteration: state,\n },\n meta,\n });\n\n if (toolOutput.isEmpty()) {\n return { output: this.templates.toolNoResultError.render({}), success: true };\n }\n\n return {\n success: true,\n output: toolOutput.getTextContent(),\n };\n } catch (error) {\n await emitter.emit(\"toolError\", {\n data: {\n tool,\n input: state.tool_input,\n options: toolOptions,\n error,\n iteration: state,\n },\n meta,\n });\n\n if (error instanceof ToolInputValidationError) {\n this.failedAttemptsCounter.use(error);\n\n return {\n success: false,\n output: this.templates.toolInputError.render({\n reason: error.toString(),\n }),\n };\n }\n\n if (error instanceof ToolError) {\n this.failedAttemptsCounter.use(error);\n\n return {\n success: false,\n output: this.templates.toolError.render({\n reason: error.explain(),\n }),\n };\n }\n\n throw error;\n }\n },\n }).get();\n }\n\n @Cache({ enumerable: false })\n protected get renderers() {\n const self = {\n user: {\n message: ({ prompt }: ReActAgentRunInput) =>\n prompt !== null || this.input.memory.isEmpty()\n ? new UserMessage(prompt || this.templates.userEmpty.render({}))\n : undefined,\n },\n system: {\n variables: {\n tools: async () => {\n return await Promise.all(\n this.input.tools.map(async (tool) => ({\n name: tool.name,\n description: tool.description.replaceAll(\"\\n\", \".\").replace(/\\.$/, \"\").concat(\".\"),\n schema: JSON.stringify(\n await tool.getInputJsonSchema(),\n (() => {\n const ignoredKeys = new Set([\"minLength\", \"maxLength\", \"$schema\"]);\n return (key, value) => (ignoredKeys.has(key) ? undefined : value);\n })(),\n ),\n })),\n );\n },\n },\n message: async () =>\n new SystemMessage(\n this.templates.system.render({\n tools: await self.system.variables.tools(),\n instructions: undefined,\n createdAt: new Date().toISOString(),\n }),\n {\n createdAt: new Date(),\n },\n ),\n },\n };\n return self;\n }\n\n protected async initMemory({ prompt }: ReActAgentRunInput): Promise<BaseMemory> {\n const { memory: history } = this.input;\n\n const prevConversation = [...history.messages, this.renderers.user.message({ prompt })]\n .filter(isTruthy)\n .map((message) => {\n if (message.role === Role.USER) {\n const isEmpty = !message.text.trim();\n const text = isEmpty\n ? (this.templates?.userEmpty ?? ReActAgentUserEmptyPrompt).render({})\n : (this.templates?.user ?? ReActAgentUserPrompt).render({\n input: message.text,\n meta: {\n ...message?.meta,\n createdAt: message?.meta?.createdAt?.toISOString?.(),\n },\n });\n\n return new UserMessage(text, message.meta);\n }\n return message;\n });\n\n const memory = new TokenMemory({\n capacityThreshold: 0.85,\n syncThreshold: 0.5,\n handlers: {\n removalSelector(curMessages) {\n // First we remove messages from the past conversations\n const prevConversationMessage = curMessages.find((msg) => prevConversation.includes(msg));\n if (prevConversationMessage && prevConversationMessage !== last(prevConversation)) {\n return prevConversationMessage;\n }\n\n const lastMessage =\n curMessages.length > 3\n ? (curMessages.find(\n (msg) =>\n msg.role === Role.ASSISTANT && getProp(msg, [\"ctx\", \"success\"]) === false,\n ) ?? curMessages.find((msg) => msg.role === Role.ASSISTANT))\n : null;\n\n if (!lastMessage) {\n throw new AgentError(\"Cannot fit the current conversation into the context window!\");\n }\n return lastMessage;\n },\n },\n });\n await memory.addMany([await this.renderers.system.message(), ...prevConversation]);\n return memory;\n }\n\n protected createParser(tools: AnyTool[]) {\n const parser = new LinePrefixParser<ReActAgentParserInput>(\n {\n thought: {\n prefix: \"Thought:\",\n next: [\"tool_name\", \"final_answer\"],\n isStart: true,\n field: new ZodParserField(z.string().min(1)),\n },\n tool_name: {\n prefix: \"Function Name:\",\n next: [\"tool_input\"],\n field: new ZodParserField(\n z.pipeline(\n z.string().trim(),\n z.enum(tools.map((tool) => tool.name) as [string, ...string[]]),\n ),\n ),\n },\n tool_input: {\n prefix: \"Function Input:\",\n next: [\"tool_output\"],\n isEnd: true,\n field: new JSONParserField({\n schema: z.object({}).passthrough(),\n base: {},\n matchPair: [\"{\", \"}\"],\n }),\n },\n tool_output: {\n prefix: \"Function Output:\",\n next: [\"final_answer\"],\n isEnd: true,\n field: new ZodParserField(z.string()),\n },\n final_answer: {\n prefix: \"Final Answer:\",\n next: [],\n isStart: true,\n isEnd: true,\n field: new ZodParserField(z.string().min(1)),\n },\n },\n {\n waitForStartNode: true,\n endOnRepeat: true,\n fallback: (stash) =>\n stash\n ? [\n { key: \"thought\", value: \"I now know the final answer.\" },\n { key: \"final_answer\", value: stash },\n ]\n : [],\n },\n );\n\n return {\n parser,\n } as const;\n }\n}\n"]}
@@ -46,12 +46,12 @@ declare const GraniteReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
46
46
  }, zod.ZodTypeAny, "passthrough">>, "many">;
47
47
  createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
48
48
  }, "strip", zod.ZodTypeAny, {
49
- instructions: string;
50
49
  tools: zod.objectOutputType<{
51
50
  name: zod.ZodString;
52
51
  description: zod.ZodString;
53
52
  schema: zod.ZodString;
54
53
  }, zod.ZodTypeAny, "passthrough">[];
54
+ instructions: string;
55
55
  createdAt?: string | null | undefined;
56
56
  }, {
57
57
  tools: zod.objectInputType<{
@@ -46,12 +46,12 @@ declare const GraniteReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
46
46
  }, zod.ZodTypeAny, "passthrough">>, "many">;
47
47
  createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
48
48
  }, "strip", zod.ZodTypeAny, {
49
- instructions: string;
50
49
  tools: zod.objectOutputType<{
51
50
  name: zod.ZodString;
52
51
  description: zod.ZodString;
53
52
  schema: zod.ZodString;
54
53
  }, zod.ZodTypeAny, "passthrough">[];
54
+ instructions: string;
55
55
  createdAt?: string | null | undefined;
56
56
  }, {
57
57
  tools: zod.objectInputType<{
@@ -47,9 +47,11 @@ class GraniteRunner extends runner_cjs.DefaultRunner {
47
47
  if (update.key === "tool_output") {
48
48
  await memory.add(new message_cjs.ToolMessage({
49
49
  type: "tool-result",
50
- result: update.value,
50
+ output: {
51
+ type: meta.success ? "text" : "error-text",
52
+ value: update.value
53
+ },
51
54
  toolName: data.tool_name,
52
- isError: !meta.success,
53
55
  toolCallId: "DUMMY_ID"
54
56
  }, {
55
57
  success: meta.success
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/agents/react/runners/granite/runner.ts"],"names":["GraniteRunner","DefaultRunner","useNativeToolCalling","defaultTemplates","system","GraniteReActAgentSystemPrompt","assistant","GraniteReActAgentAssistantPrompt","user","GraniteReActAgentUserPrompt","schemaError","GraniteReActAgentSchemaErrorPrompt","toolNotFoundError","GraniteReActAgentToolNotFoundPrompt","toolError","GraniteReActAgentToolErrorPrompt","toolInputError","GraniteReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","input","options","run","emitter","on","update","meta","memory","data","key","add","ToolMessage","type","result","value","toolName","tool_name","isError","success","toolCallId","isBlocking","createParser","tools","parser","fork","nodes","thought","prefix","tool_input","isEnd","next","final_answer","enumerable"],"mappings":";;;;;;;;;;AAGC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AAuBM,MAAMA,sBAAsBC,wBAAAA,CAAAA;EA1BnC;;;EA2BYC,oBAAAA,GAAuB,IAAA;AAEjC,EAAA,IACWC,gBAAAA,GAAmB;AAC5B,IAAA,OAAO;MACLC,MAAAA,EAAQC,2CAAAA;MACRC,SAAAA,EAAWC,8CAAAA;MACXC,IAAAA,EAAMC,yCAAAA;MACNC,WAAAA,EAAaC,gDAAAA;MACbC,iBAAAA,EAAmBC,iDAAAA;MACnBC,SAAAA,EAAWC,8CAAAA;MACXC,cAAAA,EAAgBC,mDAAAA;;MAEhBC,SAAAA,EAAWC,qCAAAA;MACXC,iBAAAA,EAAmBC;AACrB,KAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEA,WAAA,CACEC,KAAAA,EACAC,SACAC,GAAAA,EACA;AACA,IAAA,KAAA,CAAMF,KAAAA,EAAOC,SAASC,GAAAA,CAAAA;AAEtBA,IAAAA,GAAAA,CAAIC,OAAAA,CAAQC,GACV,QAAA,EACA,OAAO,EAAEC,MAAAA,EAAQC,IAAAA,EAAMC,MAAAA,EAAQC,IAAAA,EAAI,KAAE;AACnC,MAAA,IAAIH,MAAAA,CAAOI,QAAQ,aAAA,EAAe;AAChC,QAAA,MAAMF,MAAAA,CAAOG,GAAAA,CACX,IAAIC,uBAAAA,CACF;UACEC,IAAAA,EAAM,aAAA;AACNC,UAAAA,MAAAA,EAAQR,MAAAA,CAAOS,KAAAA;AACfC,UAAAA,QAAAA,EAAUP,IAAAA,CAAKQ,SAAAA;AACfC,UAAAA,OAAAA,EAAS,CAACX,IAAAA,CAAKY,OAAAA;UACfC,UAAAA,EAAY;SACd,EACA;AAAED,UAAAA,OAAAA,EAASZ,IAAAA,CAAKY;AAAQ,SAAA,CAAA,CAAA;AAG9B;KACF,EACA;MACEE,UAAAA,EAAY;KACd,CAAA;AAEJ;AAEUC,EAAAA,YAAAA,CAAaC,KAAAA,EAAkB;AACvC,IAAA,MAAM,EAAEC,MAAAA,EAAM,GAAK,KAAA,CAAMF,aAAaC,KAAAA,CAAAA;AAEtC,IAAA,OAAO;AACLC,MAAAA,MAAAA,EAAQA,MAAAA,CAAOC,IAAAA,CAA4B,CAACC,KAAAA,EAAOxB,OAAAA,MAAa;AAC9DA,QAAAA,OAAAA;QACAwB,KAAAA,EAAO;UACL,GAAGA,KAAAA;UACHC,OAAAA,EAAS;AAAE,YAAA,GAAGD,KAAAA,CAAMC,OAAAA;YAASC,MAAAA,EAAQ;AAAW,WAAA;UAChDX,SAAAA,EAAW;AAAE,YAAA,GAAGS,KAAAA,CAAMT,SAAAA;YAAWW,MAAAA,EAAQ;AAAa,WAAA;UACtDC,UAAAA,EAAY;AAAE,YAAA,GAAGH,KAAAA,CAAMG,UAAAA;YAAYD,MAAAA,EAAQ,aAAA;YAAeE,KAAAA,EAAO,IAAA;AAAMC,YAAAA,IAAAA,EAAM;AAAG,WAAA;UAChFC,YAAAA,EAAc;AAAE,YAAA,GAAGN,KAAAA,CAAMM,YAAAA;YAAcJ,MAAAA,EAAQ;AAAgB;AACjE;OACF,CAAA;AACF,KAAA;AACF;AACF;;;IAnEWK,UAAAA,EAAY","file":"runner.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolMessage } from \"@/backend/message.js\";\nimport type { AnyTool } from \"@/tools/base.js\";\nimport { DefaultRunner } from \"@/agents/react/runners/default/runner.js\";\nimport type { ReActAgentParserInput, ReActAgentRunOptions } from \"@/agents/react/types.js\";\nimport { ReActAgent, ReActAgentInput } from \"@/agents/react/agent.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport {\n GraniteReActAgentAssistantPrompt,\n GraniteReActAgentSchemaErrorPrompt,\n GraniteReActAgentSystemPrompt,\n GraniteReActAgentToolErrorPrompt,\n GraniteReActAgentToolInputErrorPrompt,\n GraniteReActAgentToolNotFoundPrompt,\n GraniteReActAgentUserPrompt,\n} from \"@/agents/react/runners/granite/prompts.js\";\nimport {\n ReActAgentToolNoResultsPrompt,\n ReActAgentUserEmptyPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport class GraniteRunner extends DefaultRunner {\n protected useNativeToolCalling = true;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: GraniteReActAgentSystemPrompt,\n assistant: GraniteReActAgentAssistantPrompt,\n user: GraniteReActAgentUserPrompt,\n schemaError: GraniteReActAgentSchemaErrorPrompt,\n toolNotFoundError: GraniteReActAgentToolNotFoundPrompt,\n toolError: GraniteReActAgentToolErrorPrompt,\n toolInputError: GraniteReActAgentToolInputErrorPrompt,\n // Note: These are from ReAct\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n constructor(\n input: ReActAgentInput,\n options: ReActAgentRunOptions,\n run: GetRunContext<ReActAgent>,\n ) {\n super(input, options, run);\n\n run.emitter.on(\n \"update\",\n async ({ update, meta, memory, data }) => {\n if (update.key === \"tool_output\") {\n await memory.add(\n new ToolMessage(\n {\n type: \"tool-result\",\n result: update.value!,\n toolName: data.tool_name!,\n isError: !meta.success,\n toolCallId: \"DUMMY_ID\",\n },\n { success: meta.success },\n ),\n );\n }\n },\n {\n isBlocking: true,\n },\n );\n }\n\n protected createParser(tools: AnyTool[]) {\n const { parser } = super.createParser(tools);\n\n return {\n parser: parser.fork<ReActAgentParserInput>((nodes, options) => ({\n options,\n nodes: {\n ...nodes,\n thought: { ...nodes.thought, prefix: \"Thought:\" },\n tool_name: { ...nodes.tool_name, prefix: \"Tool Name:\" },\n tool_input: { ...nodes.tool_input, prefix: \"Tool Input:\", isEnd: true, next: [] },\n final_answer: { ...nodes.final_answer, prefix: \"Final Answer:\" },\n },\n })),\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/agents/react/runners/granite/runner.ts"],"names":["GraniteRunner","DefaultRunner","useNativeToolCalling","defaultTemplates","system","GraniteReActAgentSystemPrompt","assistant","GraniteReActAgentAssistantPrompt","user","GraniteReActAgentUserPrompt","schemaError","GraniteReActAgentSchemaErrorPrompt","toolNotFoundError","GraniteReActAgentToolNotFoundPrompt","toolError","GraniteReActAgentToolErrorPrompt","toolInputError","GraniteReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","input","options","run","emitter","on","update","meta","memory","data","key","add","ToolMessage","type","output","success","value","toolName","tool_name","toolCallId","isBlocking","createParser","tools","parser","fork","nodes","thought","prefix","tool_input","isEnd","next","final_answer","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BO,MAAMA,sBAAsBC,wBAAAA,CAAAA;AAAAA,EAAAA;;;EACvBC,oBAAAA,GAAuB,IAAA;AAEjC,EAAA,IACWC,gBAAAA,GAAmB;AAC5B,IAAA,OAAO;MACLC,MAAAA,EAAQC,2CAAAA;MACRC,SAAAA,EAAWC,8CAAAA;MACXC,IAAAA,EAAMC,yCAAAA;MACNC,WAAAA,EAAaC,gDAAAA;MACbC,iBAAAA,EAAmBC,iDAAAA;MACnBC,SAAAA,EAAWC,8CAAAA;MACXC,cAAAA,EAAgBC,mDAAAA;;MAEhBC,SAAAA,EAAWC,qCAAAA;MACXC,iBAAAA,EAAmBC;AACrB,KAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEA,WAAA,CACEC,KAAAA,EACAC,SACAC,GAAAA,EACA;AACA,IAAA,KAAA,CAAMF,KAAAA,EAAOC,SAASC,GAAAA,CAAAA;AAEtBA,IAAAA,GAAAA,CAAIC,OAAAA,CAAQC,GACV,QAAA,EACA,OAAO,EAAEC,MAAAA,EAAQC,IAAAA,EAAMC,MAAAA,EAAQC,IAAAA,EAAI,KAAE;AACnC,MAAA,IAAIH,MAAAA,CAAOI,QAAQ,aAAA,EAAe;AAChC,QAAA,MAAMF,MAAAA,CAAOG,GAAAA,CACX,IAAIC,uBAAAA,CACF;UACEC,IAAAA,EAAM,aAAA;UACNC,MAAAA,EAAQ;YAAED,IAAAA,EAAMN,IAAAA,CAAKQ,UAAU,MAAA,GAAS,YAAA;AAAcC,YAAAA,KAAAA,EAAOV,MAAAA,CAAOU;AAAM,WAAA;AAC1EC,UAAAA,QAAAA,EAAUR,IAAAA,CAAKS,SAAAA;UACfC,UAAAA,EAAY;SACd,EACA;AAAEJ,UAAAA,OAAAA,EAASR,IAAAA,CAAKQ;AAAQ,SAAA,CAAA,CAAA;AAG9B;KACF,EACA;MACEK,UAAAA,EAAY;KACd,CAAA;AAEJ;AAEUC,EAAAA,YAAAA,CAAaC,KAAAA,EAAkB;AACvC,IAAA,MAAM,EAAEC,MAAAA,EAAM,GAAK,KAAA,CAAMF,aAAaC,KAAAA,CAAAA;AAEtC,IAAA,OAAO;AACLC,MAAAA,MAAAA,EAAQA,MAAAA,CAAOC,IAAAA,CAA4B,CAACC,KAAAA,EAAOvB,OAAAA,MAAa;AAC9DA,QAAAA,OAAAA;QACAuB,KAAAA,EAAO;UACL,GAAGA,KAAAA;UACHC,OAAAA,EAAS;AAAE,YAAA,GAAGD,KAAAA,CAAMC,OAAAA;YAASC,MAAAA,EAAQ;AAAW,WAAA;UAChDT,SAAAA,EAAW;AAAE,YAAA,GAAGO,KAAAA,CAAMP,SAAAA;YAAWS,MAAAA,EAAQ;AAAa,WAAA;UACtDC,UAAAA,EAAY;AAAE,YAAA,GAAGH,KAAAA,CAAMG,UAAAA;YAAYD,MAAAA,EAAQ,aAAA;YAAeE,KAAAA,EAAO,IAAA;AAAMC,YAAAA,IAAAA,EAAM;AAAG,WAAA;UAChFC,YAAAA,EAAc;AAAE,YAAA,GAAGN,KAAAA,CAAMM,YAAAA;YAAcJ,MAAAA,EAAQ;AAAgB;AACjE;OACF,CAAA;AACF,KAAA;AACF;AACF;;;IAlEWK,UAAAA,EAAY","file":"runner.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolMessage } from \"@/backend/message.js\";\nimport type { AnyTool } from \"@/tools/base.js\";\nimport { DefaultRunner } from \"@/agents/react/runners/default/runner.js\";\nimport type { ReActAgentParserInput, ReActAgentRunOptions } from \"@/agents/react/types.js\";\nimport { ReActAgent, ReActAgentInput } from \"@/agents/react/agent.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport {\n GraniteReActAgentAssistantPrompt,\n GraniteReActAgentSchemaErrorPrompt,\n GraniteReActAgentSystemPrompt,\n GraniteReActAgentToolErrorPrompt,\n GraniteReActAgentToolInputErrorPrompt,\n GraniteReActAgentToolNotFoundPrompt,\n GraniteReActAgentUserPrompt,\n} from \"@/agents/react/runners/granite/prompts.js\";\nimport {\n ReActAgentToolNoResultsPrompt,\n ReActAgentUserEmptyPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport class GraniteRunner extends DefaultRunner {\n protected useNativeToolCalling = true;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: GraniteReActAgentSystemPrompt,\n assistant: GraniteReActAgentAssistantPrompt,\n user: GraniteReActAgentUserPrompt,\n schemaError: GraniteReActAgentSchemaErrorPrompt,\n toolNotFoundError: GraniteReActAgentToolNotFoundPrompt,\n toolError: GraniteReActAgentToolErrorPrompt,\n toolInputError: GraniteReActAgentToolInputErrorPrompt,\n // Note: These are from ReAct\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n constructor(\n input: ReActAgentInput,\n options: ReActAgentRunOptions,\n run: GetRunContext<ReActAgent>,\n ) {\n super(input, options, run);\n\n run.emitter.on(\n \"update\",\n async ({ update, meta, memory, data }) => {\n if (update.key === \"tool_output\") {\n await memory.add(\n new ToolMessage(\n {\n type: \"tool-result\",\n output: { type: meta.success ? \"text\" : \"error-text\", value: update.value },\n toolName: data.tool_name!,\n toolCallId: \"DUMMY_ID\",\n },\n { success: meta.success },\n ),\n );\n }\n },\n {\n isBlocking: true,\n },\n );\n }\n\n protected createParser(tools: AnyTool[]) {\n const { parser } = super.createParser(tools);\n\n return {\n parser: parser.fork<ReActAgentParserInput>((nodes, options) => ({\n options,\n nodes: {\n ...nodes,\n thought: { ...nodes.thought, prefix: \"Thought:\" },\n tool_name: { ...nodes.tool_name, prefix: \"Tool Name:\" },\n tool_input: { ...nodes.tool_input, prefix: \"Tool Input:\", isEnd: true, next: [] },\n final_answer: { ...nodes.final_answer, prefix: \"Final Answer:\" },\n },\n })),\n };\n }\n}\n"]}
@@ -4,9 +4,10 @@ import * as zod from 'zod';
4
4
  import { AnyTool } from '../../../../tools/base.cjs';
5
5
  import { DefaultRunner } from '../default/runner.cjs';
6
6
  import { ReActAgentRunOptions, ReActAgentParserInput } from '../../types.cjs';
7
- import { b as ReActAgentInput, c as ReActAgent } from '../../../../agent-I0Saf4A1.cjs';
7
+ import { b as ReActAgentInput, c as ReActAgent } from '../../../../agent-BMfyig7X.cjs';
8
8
  import { GetRunContext } from '../../../../context.cjs';
9
- import '../../../../emitter-DWEsd-ud.cjs';
9
+ import 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
10
+ import '../../../../emitter-CGKd_-kK.cjs';
10
11
  import '../../../../internals/types.cjs';
11
12
  import '../../../../internals/helpers/guards.cjs';
12
13
  import '../../../../internals/serializable.cjs';
@@ -24,8 +25,8 @@ import '../../../../internals/helpers/promise.cjs';
24
25
  import '../../../../backend/message.cjs';
25
26
  import 'ai';
26
27
  import '../../../../memory/base.cjs';
27
- import '../../../../base-BP7v-NSL.cjs';
28
- import '../../../../chat-CR4yfOR9.cjs';
28
+ import '../../../../base-v-PYIq5G.cjs';
29
+ import '../../../../chat-DB_cf15S.cjs';
29
30
  import '../../../../backend/constants.cjs';
30
31
  import '../../../../logger/logger.cjs';
31
32
  import 'pino';
@@ -52,12 +53,12 @@ declare class GraniteRunner extends DefaultRunner {
52
53
  }, zod.ZodTypeAny, "passthrough">>, "many">;
53
54
  createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
54
55
  }, "strip", zod.ZodTypeAny, {
55
- instructions: string;
56
56
  tools: zod.objectOutputType<{
57
57
  name: zod.ZodString;
58
58
  description: zod.ZodString;
59
59
  schema: zod.ZodString;
60
60
  }, zod.ZodTypeAny, "passthrough">[];
61
+ instructions: string;
61
62
  createdAt?: string | null | undefined;
62
63
  }, {
63
64
  tools: zod.objectInputType<{
@@ -4,9 +4,10 @@ import * as zod from 'zod';
4
4
  import { AnyTool } from '../../../../tools/base.js';
5
5
  import { DefaultRunner } from '../default/runner.js';
6
6
  import { ReActAgentRunOptions, ReActAgentParserInput } from '../../types.js';
7
- import { b as ReActAgentInput, c as ReActAgent } from '../../../../agent-CtrCeN7o.js';
7
+ import { b as ReActAgentInput, c as ReActAgent } from '../../../../agent-Dxw8AGWb.js';
8
8
  import { GetRunContext } from '../../../../context.js';
9
- import '../../../../emitter-C9nwGLt6.js';
9
+ import 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
10
+ import '../../../../emitter-CN7I4uSV.js';
10
11
  import '../../../../internals/types.js';
11
12
  import '../../../../internals/helpers/guards.js';
12
13
  import '../../../../internals/serializable.js';
@@ -24,8 +25,8 @@ import '../../../../internals/helpers/promise.js';
24
25
  import '../../../../backend/message.js';
25
26
  import 'ai';
26
27
  import '../../../../memory/base.js';
27
- import '../../../../base-BsY2baWy.js';
28
- import '../../../../chat-W9j8T6UU.js';
28
+ import '../../../../base-BurRTBA7.js';
29
+ import '../../../../chat-BbCYMAdE.js';
29
30
  import '../../../../backend/constants.js';
30
31
  import '../../../../logger/logger.js';
31
32
  import 'pino';
@@ -52,12 +53,12 @@ declare class GraniteRunner extends DefaultRunner {
52
53
  }, zod.ZodTypeAny, "passthrough">>, "many">;
53
54
  createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
54
55
  }, "strip", zod.ZodTypeAny, {
55
- instructions: string;
56
56
  tools: zod.objectOutputType<{
57
57
  name: zod.ZodString;
58
58
  description: zod.ZodString;
59
59
  schema: zod.ZodString;
60
60
  }, zod.ZodTypeAny, "passthrough">[];
61
+ instructions: string;
61
62
  createdAt?: string | null | undefined;
62
63
  }, {
63
64
  tools: zod.objectInputType<{
@@ -45,9 +45,11 @@ class GraniteRunner extends DefaultRunner {
45
45
  if (update.key === "tool_output") {
46
46
  await memory.add(new ToolMessage({
47
47
  type: "tool-result",
48
- result: update.value,
48
+ output: {
49
+ type: meta.success ? "text" : "error-text",
50
+ value: update.value
51
+ },
49
52
  toolName: data.tool_name,
50
- isError: !meta.success,
51
53
  toolCallId: "DUMMY_ID"
52
54
  }, {
53
55
  success: meta.success
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/agents/react/runners/granite/runner.ts"],"names":["GraniteRunner","DefaultRunner","useNativeToolCalling","defaultTemplates","system","GraniteReActAgentSystemPrompt","assistant","GraniteReActAgentAssistantPrompt","user","GraniteReActAgentUserPrompt","schemaError","GraniteReActAgentSchemaErrorPrompt","toolNotFoundError","GraniteReActAgentToolNotFoundPrompt","toolError","GraniteReActAgentToolErrorPrompt","toolInputError","GraniteReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","input","options","run","emitter","on","update","meta","memory","data","key","add","ToolMessage","type","result","value","toolName","tool_name","isError","success","toolCallId","isBlocking","createParser","tools","parser","fork","nodes","thought","prefix","tool_input","isEnd","next","final_answer","enumerable"],"mappings":";;;;;;;;AAGC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AAuBM,MAAMA,sBAAsBC,aAAAA,CAAAA;EA1BnC;;;EA2BYC,oBAAAA,GAAuB,IAAA;AAEjC,EAAA,IACWC,gBAAAA,GAAmB;AAC5B,IAAA,OAAO;MACLC,MAAAA,EAAQC,6BAAAA;MACRC,SAAAA,EAAWC,gCAAAA;MACXC,IAAAA,EAAMC,2BAAAA;MACNC,WAAAA,EAAaC,kCAAAA;MACbC,iBAAAA,EAAmBC,mCAAAA;MACnBC,SAAAA,EAAWC,gCAAAA;MACXC,cAAAA,EAAgBC,qCAAAA;;MAEhBC,SAAAA,EAAWC,yBAAAA;MACXC,iBAAAA,EAAmBC;AACrB,KAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEA,WAAA,CACEC,KAAAA,EACAC,SACAC,GAAAA,EACA;AACA,IAAA,KAAA,CAAMF,KAAAA,EAAOC,SAASC,GAAAA,CAAAA;AAEtBA,IAAAA,GAAAA,CAAIC,OAAAA,CAAQC,GACV,QAAA,EACA,OAAO,EAAEC,MAAAA,EAAQC,IAAAA,EAAMC,MAAAA,EAAQC,IAAAA,EAAI,KAAE;AACnC,MAAA,IAAIH,MAAAA,CAAOI,QAAQ,aAAA,EAAe;AAChC,QAAA,MAAMF,MAAAA,CAAOG,GAAAA,CACX,IAAIC,WAAAA,CACF;UACEC,IAAAA,EAAM,aAAA;AACNC,UAAAA,MAAAA,EAAQR,MAAAA,CAAOS,KAAAA;AACfC,UAAAA,QAAAA,EAAUP,IAAAA,CAAKQ,SAAAA;AACfC,UAAAA,OAAAA,EAAS,CAACX,IAAAA,CAAKY,OAAAA;UACfC,UAAAA,EAAY;SACd,EACA;AAAED,UAAAA,OAAAA,EAASZ,IAAAA,CAAKY;AAAQ,SAAA,CAAA,CAAA;AAG9B;KACF,EACA;MACEE,UAAAA,EAAY;KACd,CAAA;AAEJ;AAEUC,EAAAA,YAAAA,CAAaC,KAAAA,EAAkB;AACvC,IAAA,MAAM,EAAEC,MAAAA,EAAM,GAAK,KAAA,CAAMF,aAAaC,KAAAA,CAAAA;AAEtC,IAAA,OAAO;AACLC,MAAAA,MAAAA,EAAQA,MAAAA,CAAOC,IAAAA,CAA4B,CAACC,KAAAA,EAAOxB,OAAAA,MAAa;AAC9DA,QAAAA,OAAAA;QACAwB,KAAAA,EAAO;UACL,GAAGA,KAAAA;UACHC,OAAAA,EAAS;AAAE,YAAA,GAAGD,KAAAA,CAAMC,OAAAA;YAASC,MAAAA,EAAQ;AAAW,WAAA;UAChDX,SAAAA,EAAW;AAAE,YAAA,GAAGS,KAAAA,CAAMT,SAAAA;YAAWW,MAAAA,EAAQ;AAAa,WAAA;UACtDC,UAAAA,EAAY;AAAE,YAAA,GAAGH,KAAAA,CAAMG,UAAAA;YAAYD,MAAAA,EAAQ,aAAA;YAAeE,KAAAA,EAAO,IAAA;AAAMC,YAAAA,IAAAA,EAAM;AAAG,WAAA;UAChFC,YAAAA,EAAc;AAAE,YAAA,GAAGN,KAAAA,CAAMM,YAAAA;YAAcJ,MAAAA,EAAQ;AAAgB;AACjE;OACF,CAAA;AACF,KAAA;AACF;AACF;;;IAnEWK,UAAAA,EAAY","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolMessage } from \"@/backend/message.js\";\nimport type { AnyTool } from \"@/tools/base.js\";\nimport { DefaultRunner } from \"@/agents/react/runners/default/runner.js\";\nimport type { ReActAgentParserInput, ReActAgentRunOptions } from \"@/agents/react/types.js\";\nimport { ReActAgent, ReActAgentInput } from \"@/agents/react/agent.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport {\n GraniteReActAgentAssistantPrompt,\n GraniteReActAgentSchemaErrorPrompt,\n GraniteReActAgentSystemPrompt,\n GraniteReActAgentToolErrorPrompt,\n GraniteReActAgentToolInputErrorPrompt,\n GraniteReActAgentToolNotFoundPrompt,\n GraniteReActAgentUserPrompt,\n} from \"@/agents/react/runners/granite/prompts.js\";\nimport {\n ReActAgentToolNoResultsPrompt,\n ReActAgentUserEmptyPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport class GraniteRunner extends DefaultRunner {\n protected useNativeToolCalling = true;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: GraniteReActAgentSystemPrompt,\n assistant: GraniteReActAgentAssistantPrompt,\n user: GraniteReActAgentUserPrompt,\n schemaError: GraniteReActAgentSchemaErrorPrompt,\n toolNotFoundError: GraniteReActAgentToolNotFoundPrompt,\n toolError: GraniteReActAgentToolErrorPrompt,\n toolInputError: GraniteReActAgentToolInputErrorPrompt,\n // Note: These are from ReAct\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n constructor(\n input: ReActAgentInput,\n options: ReActAgentRunOptions,\n run: GetRunContext<ReActAgent>,\n ) {\n super(input, options, run);\n\n run.emitter.on(\n \"update\",\n async ({ update, meta, memory, data }) => {\n if (update.key === \"tool_output\") {\n await memory.add(\n new ToolMessage(\n {\n type: \"tool-result\",\n result: update.value!,\n toolName: data.tool_name!,\n isError: !meta.success,\n toolCallId: \"DUMMY_ID\",\n },\n { success: meta.success },\n ),\n );\n }\n },\n {\n isBlocking: true,\n },\n );\n }\n\n protected createParser(tools: AnyTool[]) {\n const { parser } = super.createParser(tools);\n\n return {\n parser: parser.fork<ReActAgentParserInput>((nodes, options) => ({\n options,\n nodes: {\n ...nodes,\n thought: { ...nodes.thought, prefix: \"Thought:\" },\n tool_name: { ...nodes.tool_name, prefix: \"Tool Name:\" },\n tool_input: { ...nodes.tool_input, prefix: \"Tool Input:\", isEnd: true, next: [] },\n final_answer: { ...nodes.final_answer, prefix: \"Final Answer:\" },\n },\n })),\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/agents/react/runners/granite/runner.ts"],"names":["GraniteRunner","DefaultRunner","useNativeToolCalling","defaultTemplates","system","GraniteReActAgentSystemPrompt","assistant","GraniteReActAgentAssistantPrompt","user","GraniteReActAgentUserPrompt","schemaError","GraniteReActAgentSchemaErrorPrompt","toolNotFoundError","GraniteReActAgentToolNotFoundPrompt","toolError","GraniteReActAgentToolErrorPrompt","toolInputError","GraniteReActAgentToolInputErrorPrompt","userEmpty","ReActAgentUserEmptyPrompt","toolNoResultError","ReActAgentToolNoResultsPrompt","register","input","options","run","emitter","on","update","meta","memory","data","key","add","ToolMessage","type","output","success","value","toolName","tool_name","toolCallId","isBlocking","createParser","tools","parser","fork","nodes","thought","prefix","tool_input","isEnd","next","final_answer","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BO,MAAMA,sBAAsBC,aAAAA,CAAAA;AAAAA,EAAAA;;;EACvBC,oBAAAA,GAAuB,IAAA;AAEjC,EAAA,IACWC,gBAAAA,GAAmB;AAC5B,IAAA,OAAO;MACLC,MAAAA,EAAQC,6BAAAA;MACRC,SAAAA,EAAWC,gCAAAA;MACXC,IAAAA,EAAMC,2BAAAA;MACNC,WAAAA,EAAaC,kCAAAA;MACbC,iBAAAA,EAAmBC,mCAAAA;MACnBC,SAAAA,EAAWC,gCAAAA;MACXC,cAAAA,EAAgBC,qCAAAA;;MAEhBC,SAAAA,EAAWC,yBAAAA;MACXC,iBAAAA,EAAmBC;AACrB,KAAA;AACF;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEA,WAAA,CACEC,KAAAA,EACAC,SACAC,GAAAA,EACA;AACA,IAAA,KAAA,CAAMF,KAAAA,EAAOC,SAASC,GAAAA,CAAAA;AAEtBA,IAAAA,GAAAA,CAAIC,OAAAA,CAAQC,GACV,QAAA,EACA,OAAO,EAAEC,MAAAA,EAAQC,IAAAA,EAAMC,MAAAA,EAAQC,IAAAA,EAAI,KAAE;AACnC,MAAA,IAAIH,MAAAA,CAAOI,QAAQ,aAAA,EAAe;AAChC,QAAA,MAAMF,MAAAA,CAAOG,GAAAA,CACX,IAAIC,WAAAA,CACF;UACEC,IAAAA,EAAM,aAAA;UACNC,MAAAA,EAAQ;YAAED,IAAAA,EAAMN,IAAAA,CAAKQ,UAAU,MAAA,GAAS,YAAA;AAAcC,YAAAA,KAAAA,EAAOV,MAAAA,CAAOU;AAAM,WAAA;AAC1EC,UAAAA,QAAAA,EAAUR,IAAAA,CAAKS,SAAAA;UACfC,UAAAA,EAAY;SACd,EACA;AAAEJ,UAAAA,OAAAA,EAASR,IAAAA,CAAKQ;AAAQ,SAAA,CAAA,CAAA;AAG9B;KACF,EACA;MACEK,UAAAA,EAAY;KACd,CAAA;AAEJ;AAEUC,EAAAA,YAAAA,CAAaC,KAAAA,EAAkB;AACvC,IAAA,MAAM,EAAEC,MAAAA,EAAM,GAAK,KAAA,CAAMF,aAAaC,KAAAA,CAAAA;AAEtC,IAAA,OAAO;AACLC,MAAAA,MAAAA,EAAQA,MAAAA,CAAOC,IAAAA,CAA4B,CAACC,KAAAA,EAAOvB,OAAAA,MAAa;AAC9DA,QAAAA,OAAAA;QACAuB,KAAAA,EAAO;UACL,GAAGA,KAAAA;UACHC,OAAAA,EAAS;AAAE,YAAA,GAAGD,KAAAA,CAAMC,OAAAA;YAASC,MAAAA,EAAQ;AAAW,WAAA;UAChDT,SAAAA,EAAW;AAAE,YAAA,GAAGO,KAAAA,CAAMP,SAAAA;YAAWS,MAAAA,EAAQ;AAAa,WAAA;UACtDC,UAAAA,EAAY;AAAE,YAAA,GAAGH,KAAAA,CAAMG,UAAAA;YAAYD,MAAAA,EAAQ,aAAA;YAAeE,KAAAA,EAAO,IAAA;AAAMC,YAAAA,IAAAA,EAAM;AAAG,WAAA;UAChFC,YAAAA,EAAc;AAAE,YAAA,GAAGN,KAAAA,CAAMM,YAAAA;YAAcJ,MAAAA,EAAQ;AAAgB;AACjE;OACF,CAAA;AACF,KAAA;AACF;AACF;;;IAlEWK,UAAAA,EAAY","file":"runner.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolMessage } from \"@/backend/message.js\";\nimport type { AnyTool } from \"@/tools/base.js\";\nimport { DefaultRunner } from \"@/agents/react/runners/default/runner.js\";\nimport type { ReActAgentParserInput, ReActAgentRunOptions } from \"@/agents/react/types.js\";\nimport { ReActAgent, ReActAgentInput } from \"@/agents/react/agent.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport {\n GraniteReActAgentAssistantPrompt,\n GraniteReActAgentSchemaErrorPrompt,\n GraniteReActAgentSystemPrompt,\n GraniteReActAgentToolErrorPrompt,\n GraniteReActAgentToolInputErrorPrompt,\n GraniteReActAgentToolNotFoundPrompt,\n GraniteReActAgentUserPrompt,\n} from \"@/agents/react/runners/granite/prompts.js\";\nimport {\n ReActAgentToolNoResultsPrompt,\n ReActAgentUserEmptyPrompt,\n} from \"@/agents/react/prompts.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\nexport class GraniteRunner extends DefaultRunner {\n protected useNativeToolCalling = true;\n\n @Cache({ enumerable: false })\n public get defaultTemplates() {\n return {\n system: GraniteReActAgentSystemPrompt,\n assistant: GraniteReActAgentAssistantPrompt,\n user: GraniteReActAgentUserPrompt,\n schemaError: GraniteReActAgentSchemaErrorPrompt,\n toolNotFoundError: GraniteReActAgentToolNotFoundPrompt,\n toolError: GraniteReActAgentToolErrorPrompt,\n toolInputError: GraniteReActAgentToolInputErrorPrompt,\n // Note: These are from ReAct\n userEmpty: ReActAgentUserEmptyPrompt,\n toolNoResultError: ReActAgentToolNoResultsPrompt,\n };\n }\n\n static {\n this.register();\n }\n\n constructor(\n input: ReActAgentInput,\n options: ReActAgentRunOptions,\n run: GetRunContext<ReActAgent>,\n ) {\n super(input, options, run);\n\n run.emitter.on(\n \"update\",\n async ({ update, meta, memory, data }) => {\n if (update.key === \"tool_output\") {\n await memory.add(\n new ToolMessage(\n {\n type: \"tool-result\",\n output: { type: meta.success ? \"text\" : \"error-text\", value: update.value },\n toolName: data.tool_name!,\n toolCallId: \"DUMMY_ID\",\n },\n { success: meta.success },\n ),\n );\n }\n },\n {\n isBlocking: true,\n },\n );\n }\n\n protected createParser(tools: AnyTool[]) {\n const { parser } = super.createParser(tools);\n\n return {\n parser: parser.fork<ReActAgentParserInput>((nodes, options) => ({\n options,\n nodes: {\n ...nodes,\n thought: { ...nodes.thought, prefix: \"Thought:\" },\n tool_name: { ...nodes.tool_name, prefix: \"Tool Name:\" },\n tool_input: { ...nodes.tool_input, prefix: \"Tool Input:\", isEnd: true, next: [] },\n final_answer: { ...nodes.final_answer, prefix: \"Final Answer:\" },\n },\n })),\n };\n }\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  import { BaseMemory } from '../../memory/base.cjs';
2
2
  import { Message } from '../../backend/message.cjs';
3
- import { C as Callback } from '../../emitter-DWEsd-ud.cjs';
3
+ import { C as Callback } from '../../emitter-CGKd_-kK.cjs';
4
4
  import { AnyTool, BaseToolRunOptions, ToolOutput, ToolError } from '../../tools/base.cjs';
5
5
  import { ReActAgentSystemPrompt, ReActAgentAssistantPrompt, ReActAgentUserPrompt, ReActAgentUserEmptyPrompt, ReActAgentToolErrorPrompt, ReActAgentToolInputErrorPrompt, ReActAgentToolNoResultsPrompt, ReActAgentToolNotFoundPrompt, ReActAgentSchemaErrorPrompt } from './prompts.cjs';
6
6
  import { LinePrefixParser } from '../../parsers/linePrefix.cjs';
7
7
  import { ZodParserField, JSONParserField } from '../../parsers/field.cjs';
8
8
  import { NonUndefined } from '../../internals/types.cjs';
9
- import { n as ChatModelOutput } from '../../chat-CR4yfOR9.cjs';
9
+ import { n as ChatModelOutput } from '../../chat-DB_cf15S.cjs';
10
10
  import '../../errors.cjs';
11
11
  import '../../internals/helpers/guards.cjs';
12
12
  import '../../internals/serializable.cjs';
@@ -20,6 +20,7 @@ import '../../internals/helpers/schema.cjs';
20
20
  import 'zod';
21
21
  import 'zod-to-json-schema';
22
22
  import '../../template.cjs';
23
+ import 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
23
24
  import '../../parsers/errors.cjs';
24
25
  import '@streamparser/json';
25
26
  import 'jsonrepair/stream';
@@ -1,12 +1,12 @@
1
1
  import { BaseMemory } from '../../memory/base.js';
2
2
  import { Message } from '../../backend/message.js';
3
- import { C as Callback } from '../../emitter-C9nwGLt6.js';
3
+ import { C as Callback } from '../../emitter-CN7I4uSV.js';
4
4
  import { AnyTool, BaseToolRunOptions, ToolOutput, ToolError } from '../../tools/base.js';
5
5
  import { ReActAgentSystemPrompt, ReActAgentAssistantPrompt, ReActAgentUserPrompt, ReActAgentUserEmptyPrompt, ReActAgentToolErrorPrompt, ReActAgentToolInputErrorPrompt, ReActAgentToolNoResultsPrompt, ReActAgentToolNotFoundPrompt, ReActAgentSchemaErrorPrompt } from './prompts.js';
6
6
  import { LinePrefixParser } from '../../parsers/linePrefix.js';
7
7
  import { ZodParserField, JSONParserField } from '../../parsers/field.js';
8
8
  import { NonUndefined } from '../../internals/types.js';
9
- import { n as ChatModelOutput } from '../../chat-W9j8T6UU.js';
9
+ import { n as ChatModelOutput } from '../../chat-BbCYMAdE.js';
10
10
  import '../../errors.js';
11
11
  import '../../internals/helpers/guards.js';
12
12
  import '../../internals/serializable.js';
@@ -20,6 +20,7 @@ import '../../internals/helpers/schema.js';
20
20
  import 'zod';
21
21
  import 'zod-to-json-schema';
22
22
  import '../../template.js';
23
+ import 'node_modules/remeda/dist/ToString-DKW-jYvM.js';
23
24
  import '../../parsers/errors.js';
24
25
  import '@streamparser/json';
25
26
  import 'jsonrepair/stream';
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ var base_cjs = require('../base.cjs');
4
+ var emitter_cjs = require('../../emitter/emitter.cjs');
5
+ var unconstrainedMemory_cjs = require('../../memory/unconstrainedMemory.cjs');
6
+ var message_cjs = require('../../backend/message.cjs');
7
+ var utils_cjs = require('../../serializer/utils.cjs');
8
+ var object_cjs = require('../../internals/helpers/object.cjs');
9
+ var template_cjs = require('../../template.cjs');
10
+ var prompts_cjs = require('./prompts.cjs');
11
+ var runner_cjs = require('./runner.cjs');
12
+ var toolCallChecker_cjs = require('./utils/toolCallChecker.cjs');
13
+ var remeda = require('remeda');
14
+ var array_cjs = require('../../internals/helpers/array.cjs');
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
18
+ class RequirementAgent extends base_cjs.BaseAgent {
19
+ static {
20
+ __name(this, "RequirementAgent");
21
+ }
22
+ emitter = emitter_cjs.Emitter.root.child({
23
+ namespace: [
24
+ "agent",
25
+ "requirement"
26
+ ],
27
+ creator: this
28
+ });
29
+ input;
30
+ runner = runner_cjs.RequirementAgentRunner;
31
+ constructor(input) {
32
+ super();
33
+ this.input = {
34
+ ...input,
35
+ memory: input.memory || new unconstrainedMemory_cjs.UnconstrainedMemory(),
36
+ tools: input.tools || [],
37
+ requirements: input.requirements || [],
38
+ saveIntermediateSteps: input.saveIntermediateSteps ?? true,
39
+ finalAnswerAsTool: input.finalAnswerAsTool ?? true,
40
+ toolCallChecker: input.toolCallChecker ?? true
41
+ };
42
+ if (input.middlewares) {
43
+ this.middlewares.push(...input.middlewares);
44
+ }
45
+ }
46
+ static {
47
+ this.register();
48
+ }
49
+ async _run(input, options = {}, run) {
50
+ const execution = {
51
+ maxRetriesPerStep: 3,
52
+ totalMaxRetries: 20,
53
+ maxIterations: 20,
54
+ ...this.input.execution,
55
+ ...options.execution
56
+ };
57
+ const toolCallChecker = this.createToolCallChecker();
58
+ const runner = new this.runner(this.input.llm, execution, this.input.tools || [], this.input.requirements || [], input.expectedOutput || null, toolCallChecker, run, this.input.finalAnswerAsTool, this.templates);
59
+ const newMessages = this.processInput(input);
60
+ await runner.addMessages([
61
+ ...this.memory.messages
62
+ ]);
63
+ await runner.addMessages(newMessages);
64
+ const finalState = await runner.run();
65
+ if (this.input.saveIntermediateSteps) {
66
+ this.memory.reset();
67
+ await this.memory.addMany(finalState.memory.messages);
68
+ } else {
69
+ await this.memory.addMany(newMessages);
70
+ const messages = finalState.memory.messages;
71
+ const lastPair = messages.slice(-2);
72
+ await this.memory.addMany(lastPair);
73
+ }
74
+ if (!finalState.answer) {
75
+ throw new Error("Agent did not produce a final answer");
76
+ }
77
+ return {
78
+ result: finalState.answer,
79
+ memory: finalState.memory,
80
+ state: finalState
81
+ };
82
+ }
83
+ processInput(input) {
84
+ if (!input.prompt) {
85
+ return [];
86
+ }
87
+ const userMessage = new message_cjs.UserMessage(this.templates.task.render({
88
+ prompt: input.prompt,
89
+ context: input.context,
90
+ expectedOutput: typeof input.expectedOutput === "string" ? input.expectedOutput : void 0
91
+ }));
92
+ return [
93
+ userMessage
94
+ ];
95
+ }
96
+ createToolCallChecker() {
97
+ const config = {};
98
+ if (typeof this.input.toolCallChecker === "object") {
99
+ Object.assign(config, this.input.toolCallChecker);
100
+ }
101
+ const checker = new toolCallChecker_cjs.ToolCallChecker(config);
102
+ checker.enabled = this.input.toolCallChecker !== false;
103
+ return checker;
104
+ }
105
+ get meta() {
106
+ const tools = this.input.tools || [];
107
+ return {
108
+ name: this.input.name ?? "Requirement",
109
+ tools,
110
+ description: this.input.description ?? "The RequirementAgent is a declarative AI agent implementation that provides predictable, controlled execution behavior across different language models through rule-based constraints.",
111
+ ...tools.length > 0 && {
112
+ extraDescription: [
113
+ `Tools that I can use to accomplish given task.`,
114
+ ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`)
115
+ ].join("\n")
116
+ }
117
+ };
118
+ }
119
+ get templates() {
120
+ const overrides = this.input.templates || {};
121
+ const finalized = object_cjs.mapObj({
122
+ system: prompts_cjs.RequirementAgentSystemPrompt,
123
+ task: prompts_cjs.RequirementAgentTaskPrompt,
124
+ toolError: prompts_cjs.RequirementAgentToolErrorPrompt,
125
+ toolNoResult: prompts_cjs.RequirementAgentToolNoResultPrompt
126
+ })((key, defaultTemplate) => {
127
+ const override = overrides[key] ?? defaultTemplate;
128
+ if (override instanceof template_cjs.PromptTemplate) {
129
+ return override;
130
+ }
131
+ return override(defaultTemplate) ?? defaultTemplate;
132
+ });
133
+ if (this.input.role || this.input.instructions || this.input.notes) {
134
+ finalized.system.update({
135
+ defaults: remeda.pickBy({
136
+ role: this.input.role,
137
+ instructions: remeda.isEmptyish(this.input.instructions) ? void 0 : array_cjs.castArray(this.input.instructions).map((v) => `- ${v}`).join("\n"),
138
+ notes: remeda.isEmptyish(this.input.notes) ? void 0 : array_cjs.castArray(this.input.notes).map((v) => `- ${v}`).join("\n")
139
+ }, remeda.isDefined)
140
+ });
141
+ }
142
+ return finalized;
143
+ }
144
+ createSnapshot() {
145
+ return {
146
+ ...super.createSnapshot(),
147
+ input: utils_cjs.shallowCopy(this.input),
148
+ emitter: this.emitter,
149
+ runnerClass: this.runner
150
+ };
151
+ }
152
+ set memory(memory) {
153
+ this.input.memory = memory;
154
+ }
155
+ get memory() {
156
+ return this.input.memory;
157
+ }
158
+ }
159
+
160
+ exports.RequirementAgent = RequirementAgent;
161
+ //# sourceMappingURL=agent.cjs.map
162
+ //# sourceMappingURL=agent.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/agents/requirement/agent.ts"],"names":["RequirementAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","runner","RequirementAgentRunner","memory","UnconstrainedMemory","tools","requirements","saveIntermediateSteps","finalAnswerAsTool","toolCallChecker","middlewares","push","register","_run","options","run","execution","maxRetriesPerStep","totalMaxRetries","maxIterations","createToolCallChecker","llm","expectedOutput","templates","newMessages","processInput","addMessages","messages","finalState","reset","addMany","lastPair","slice","answer","Error","result","state","prompt","userMessage","UserMessage","task","render","context","undefined","config","Object","assign","checker","ToolCallChecker","enabled","meta","name","description","length","extraDescription","map","tool","join","overrides","finalized","mapObj","system","RequirementAgentSystemPrompt","RequirementAgentTaskPrompt","toolError","RequirementAgentToolErrorPrompt","toolNoResult","RequirementAgentToolNoResultPrompt","key","defaultTemplate","override","PromptTemplate","role","instructions","notes","update","defaults","pickBy","isEmptyish","castArray","v","isDefined","createSnapshot","shallowCopy","runnerClass"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport type { GetRunContext, MiddlewareType } from \"@/context.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { Message, UserMessage } from \"@/backend/message.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { mapObj } from \"@/internals/helpers/object.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentCallbacks,\n RequirementAgentExecutionConfig,\n RequirementAgentOutput,\n RequirementAgentRunInput,\n RequirementAgentRunOptions,\n RequirementAgentTemplates,\n} from \"./types.js\";\nimport {\n RequirementAgentSystemPrompt,\n RequirementAgentTaskPrompt,\n RequirementAgentToolErrorPrompt,\n RequirementAgentToolNoResultPrompt,\n} from \"./prompts.js\";\nimport { Requirement } from \"./requirements/requirement.js\";\nimport { RequirementAgentRunner } from \"./runner.js\";\nimport { ToolCallChecker, ToolCallCheckerConfig } from \"./utils/toolCallChecker.js\";\nimport { isDefined, isEmptyish, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport type { RequiredExcept } from \"@/internals/types.js\";\n\nexport type RequirementAgentTemplateFactory<K extends keyof RequirementAgentTemplates> = (\n template: RequirementAgentTemplates[K],\n) => RequirementAgentTemplates[K];\n\nexport interface RequirementAgentInput {\n llm: ChatModel;\n memory?: BaseMemory;\n tools?: AnyTool[];\n requirements?: Requirement[];\n name?: string;\n description?: string;\n role?: string;\n instructions?: string | string[];\n notes?: string | string[];\n toolCallChecker?: boolean | ToolCallCheckerConfig;\n finalAnswerAsTool?: boolean;\n saveIntermediateSteps?: boolean;\n execution?: RequirementAgentExecutionConfig;\n templates?: Partial<{\n [K in keyof RequirementAgentTemplates]:\n | RequirementAgentTemplates[K]\n | RequirementAgentTemplateFactory<K>;\n }>;\n middlewares?: MiddlewareType<RequirementAgent>[];\n}\n\ntype InternalRequirementAgentInput = RequiredExcept<\n RequirementAgentInput,\n | \"role\"\n | \"instructions\"\n | \"name\"\n | \"description\"\n | \"templates\"\n | \"notes\"\n | \"execution\"\n | \"middlewares\"\n>;\n\n/**\n * RequirementAgent - A declarative AI agent with rule-based constraints\n *\n * The RequirementAgent provides predictable, controlled execution behavior across\n * different language models through rule-based constraints (Requirements).\n * Requirements can be configured as strict or flexible as necessary, adapting to\n * task requirements while ensuring consistent execution regardless of the underlying\n * model's reasoning or tool-calling capabilities.\n */\nexport class RequirementAgent extends BaseAgent<\n RequirementAgentRunInput,\n RequirementAgentOutput,\n RequirementAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<RequirementAgentCallbacks>({\n namespace: [\"agent\", \"requirement\"],\n creator: this,\n });\n\n protected readonly input: InternalRequirementAgentInput;\n\n protected runner: new (\n ...args: ConstructorParameters<typeof RequirementAgentRunner>\n ) => RequirementAgentRunner = RequirementAgentRunner;\n\n constructor(input: RequirementAgentInput) {\n super();\n this.input = {\n ...input,\n memory: input.memory || new UnconstrainedMemory(),\n tools: input.tools || [],\n requirements: input.requirements || [],\n saveIntermediateSteps: input.saveIntermediateSteps ?? true,\n finalAnswerAsTool: input.finalAnswerAsTool ?? true,\n toolCallChecker: input.toolCallChecker ?? true,\n };\n if (input.middlewares) {\n this.middlewares.push(...input.middlewares);\n }\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: RequirementAgentRunInput,\n options: RequirementAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<RequirementAgentOutput> {\n const execution: RequirementAgentExecutionConfig = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 20,\n ...this.input.execution,\n ...options.execution,\n };\n\n const toolCallChecker = this.createToolCallChecker();\n\n const runner = new this.runner(\n this.input.llm,\n execution,\n this.input.tools || [],\n this.input.requirements || [],\n input.expectedOutput || null,\n toolCallChecker,\n run,\n this.input.finalAnswerAsTool,\n this.templates,\n );\n\n // Process input messages\n const newMessages = this.processInput(input);\n await runner.addMessages([...this.memory.messages]);\n await runner.addMessages(newMessages);\n\n // Run the agent\n const finalState = await runner.run();\n\n // Update memory\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(finalState.memory.messages);\n } else {\n await this.memory.addMany(newMessages);\n // Add last tool call pair\n const messages = finalState.memory.messages;\n const lastPair = messages.slice(-2);\n await this.memory.addMany(lastPair);\n }\n\n if (!finalState.answer) {\n throw new Error(\"Agent did not produce a final answer\");\n }\n\n return {\n result: finalState.answer,\n memory: finalState.memory,\n state: finalState,\n };\n }\n\n protected processInput(input: RequirementAgentRunInput): Message[] {\n if (!input.prompt) {\n return [];\n }\n\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: typeof input.expectedOutput === \"string\" ? input.expectedOutput : undefined,\n }),\n );\n\n return [userMessage];\n }\n\n protected createToolCallChecker(): ToolCallChecker {\n const config: ToolCallCheckerConfig = {};\n\n if (typeof this.input.toolCallChecker === \"object\") {\n Object.assign(config, this.input.toolCallChecker);\n }\n\n const checker = new ToolCallChecker(config);\n checker.enabled = this.input.toolCallChecker !== false;\n return checker;\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools || [];\n\n return {\n name: this.input.name ?? \"Requirement\",\n tools,\n description:\n this.input.description ??\n \"The RequirementAgent is a declarative AI agent implementation that provides predictable, \" +\n \"controlled execution behavior across different language models through rule-based constraints.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n protected get templates(): RequirementAgentTemplates {\n const overrides = this.input.templates || {};\n const finalized = mapObj({\n system: RequirementAgentSystemPrompt,\n task: RequirementAgentTaskPrompt,\n toolError: RequirementAgentToolErrorPrompt,\n toolNoResult: RequirementAgentToolNoResultPrompt,\n } as RequirementAgentTemplates)((\n key,\n defaultTemplate: RequirementAgentTemplates[typeof key],\n ) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n });\n\n if (this.input.role || this.input.instructions || this.input.notes) {\n finalized.system.update({\n defaults: pickBy(\n {\n role: this.input.role,\n instructions: isEmptyish(this.input.instructions)\n ? undefined\n : castArray(this.input.instructions)\n .map((v) => `- ${v}`)\n .join(\"\\n\"),\n notes: isEmptyish(this.input.notes)\n ? undefined\n : castArray(this.input.notes)\n .map((v) => `- ${v}`)\n .join(\"\\n\"),\n },\n isDefined,\n ),\n });\n }\n\n return finalized;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n runnerClass: this.runner,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory(): BaseMemory {\n return this.input.memory!;\n }\n}\n"]}