beeai-framework 0.1.9 → 0.1.11

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 (546) hide show
  1. package/README.md +18 -6
  2. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  3. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +7 -6
  4. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +7 -6
  5. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  6. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  7. package/dist/adapters/amazon-bedrock/backend/client.d.cts +1 -1
  8. package/dist/adapters/amazon-bedrock/backend/client.d.ts +1 -1
  9. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  10. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  11. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +15 -4
  12. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +15 -4
  13. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  14. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  15. package/dist/adapters/anthropic/backend/chat.d.cts +9 -8
  16. package/dist/adapters/anthropic/backend/chat.d.ts +9 -8
  17. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  18. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  19. package/dist/adapters/anthropic/backend/client.d.cts +1 -1
  20. package/dist/adapters/anthropic/backend/client.d.ts +1 -1
  21. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  22. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  23. package/dist/adapters/anthropic/backend/embedding.d.cts +15 -4
  24. package/dist/adapters/anthropic/backend/embedding.d.ts +15 -4
  25. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  26. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  27. package/dist/adapters/azure-openai/backend/chat.d.cts +9 -8
  28. package/dist/adapters/azure-openai/backend/chat.d.ts +9 -8
  29. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  30. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  31. package/dist/adapters/azure-openai/backend/client.d.cts +1 -1
  32. package/dist/adapters/azure-openai/backend/client.d.ts +1 -1
  33. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  34. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  35. package/dist/adapters/azure-openai/backend/embedding.d.cts +15 -4
  36. package/dist/adapters/azure-openai/backend/embedding.d.ts +15 -4
  37. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  38. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  39. package/dist/adapters/dummy/backend/chat.d.cts +12 -7
  40. package/dist/adapters/dummy/backend/chat.d.ts +12 -7
  41. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  42. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  43. package/dist/adapters/dummy/backend/embedding.d.cts +15 -3
  44. package/dist/adapters/dummy/backend/embedding.d.ts +15 -3
  45. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  46. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  47. package/dist/adapters/google-vertex/backend/chat.d.cts +9 -8
  48. package/dist/adapters/google-vertex/backend/chat.d.ts +9 -8
  49. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  50. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  51. package/dist/adapters/google-vertex/backend/client.d.cts +1 -1
  52. package/dist/adapters/google-vertex/backend/client.d.ts +1 -1
  53. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  54. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  55. package/dist/adapters/google-vertex/backend/embedding.d.cts +15 -4
  56. package/dist/adapters/google-vertex/backend/embedding.d.ts +15 -4
  57. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  58. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  59. package/dist/adapters/groq/backend/chat.d.cts +9 -8
  60. package/dist/adapters/groq/backend/chat.d.ts +9 -8
  61. package/dist/adapters/groq/backend/chat.js.map +1 -1
  62. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  63. package/dist/adapters/groq/backend/client.d.cts +1 -1
  64. package/dist/adapters/groq/backend/client.d.ts +1 -1
  65. package/dist/adapters/groq/backend/client.js.map +1 -1
  66. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  67. package/dist/adapters/groq/backend/embedding.d.cts +15 -4
  68. package/dist/adapters/groq/backend/embedding.d.ts +15 -4
  69. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  70. package/dist/adapters/langchain/backend/chat.cjs +5 -3
  71. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/langchain/backend/chat.d.cts +12 -7
  73. package/dist/adapters/langchain/backend/chat.d.ts +12 -7
  74. package/dist/adapters/langchain/backend/chat.js +5 -3
  75. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  76. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  77. package/dist/adapters/langchain/backend/embedding.d.cts +15 -3
  78. package/dist/adapters/langchain/backend/embedding.d.ts +15 -3
  79. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  80. package/dist/adapters/langchain/tools.cjs.map +1 -1
  81. package/dist/adapters/langchain/tools.d.cts +1 -1
  82. package/dist/adapters/langchain/tools.d.ts +1 -1
  83. package/dist/adapters/langchain/tools.js.map +1 -1
  84. package/dist/adapters/ollama/backend/chat.cjs +4 -0
  85. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  86. package/dist/adapters/ollama/backend/chat.d.cts +10 -8
  87. package/dist/adapters/ollama/backend/chat.d.ts +10 -8
  88. package/dist/adapters/ollama/backend/chat.js +4 -0
  89. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  90. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  91. package/dist/adapters/ollama/backend/client.d.cts +1 -1
  92. package/dist/adapters/ollama/backend/client.d.ts +1 -1
  93. package/dist/adapters/ollama/backend/client.js.map +1 -1
  94. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  95. package/dist/adapters/ollama/backend/embedding.d.cts +15 -4
  96. package/dist/adapters/ollama/backend/embedding.d.ts +15 -4
  97. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  98. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  99. package/dist/adapters/openai/backend/chat.d.cts +7 -6
  100. package/dist/adapters/openai/backend/chat.d.ts +7 -6
  101. package/dist/adapters/openai/backend/chat.js.map +1 -1
  102. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  103. package/dist/adapters/openai/backend/client.d.cts +1 -1
  104. package/dist/adapters/openai/backend/client.d.ts +1 -1
  105. package/dist/adapters/openai/backend/client.js.map +1 -1
  106. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  107. package/dist/adapters/openai/backend/embedding.d.cts +15 -4
  108. package/dist/adapters/openai/backend/embedding.d.ts +15 -4
  109. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  110. package/dist/adapters/vercel/backend/chat.cjs +51 -7
  111. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  112. package/dist/adapters/vercel/backend/chat.d.cts +12 -7
  113. package/dist/adapters/vercel/backend/chat.d.ts +12 -7
  114. package/dist/adapters/vercel/backend/chat.js +54 -10
  115. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  116. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  117. package/dist/adapters/vercel/backend/embedding.d.cts +14 -3
  118. package/dist/adapters/vercel/backend/embedding.d.ts +14 -3
  119. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  120. package/dist/adapters/watsonx/backend/chat.cjs +25 -4
  121. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  122. package/dist/adapters/watsonx/backend/chat.d.cts +13 -7
  123. package/dist/adapters/watsonx/backend/chat.d.ts +13 -7
  124. package/dist/adapters/watsonx/backend/chat.js +25 -4
  125. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  126. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  127. package/dist/adapters/watsonx/backend/client.d.cts +1 -1
  128. package/dist/adapters/watsonx/backend/client.d.ts +1 -1
  129. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  130. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  131. package/dist/adapters/watsonx/backend/embedding.d.cts +15 -3
  132. package/dist/adapters/watsonx/backend/embedding.d.ts +15 -3
  133. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  134. package/dist/{agent-Bpt7IFa_.d.cts → agent-Ca5UE2P1.d.cts} +3 -3
  135. package/dist/{agent-Bf2FaCKy.d.ts → agent-CgsoqVL5.d.ts} +3 -3
  136. package/dist/agents/base.cjs.map +1 -1
  137. package/dist/agents/base.d.cts +2 -2
  138. package/dist/agents/base.d.ts +2 -2
  139. package/dist/agents/base.js.map +1 -1
  140. package/dist/agents/experimental/remote/agent.cjs.map +1 -1
  141. package/dist/agents/experimental/remote/agent.d.cts +2 -2
  142. package/dist/agents/experimental/remote/agent.d.ts +2 -2
  143. package/dist/agents/experimental/remote/agent.js.map +1 -1
  144. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  145. package/dist/agents/experimental/replan/agent.d.cts +6 -6
  146. package/dist/agents/experimental/replan/agent.d.ts +6 -6
  147. package/dist/agents/experimental/replan/agent.js.map +1 -1
  148. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  149. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  150. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  151. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  152. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  153. package/dist/agents/experimental/streamlit/agent.d.cts +6 -6
  154. package/dist/agents/experimental/streamlit/agent.d.ts +6 -6
  155. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  156. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  157. package/dist/agents/experimental/streamlit/prompts.d.cts +1 -1
  158. package/dist/agents/experimental/streamlit/prompts.d.ts +1 -1
  159. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  160. package/dist/agents/react/agent.cjs.map +1 -1
  161. package/dist/agents/react/agent.d.cts +6 -6
  162. package/dist/agents/react/agent.d.ts +6 -6
  163. package/dist/agents/react/agent.js.map +1 -1
  164. package/dist/agents/react/prompts.cjs.map +1 -1
  165. package/dist/agents/react/prompts.d.cts +2 -2
  166. package/dist/agents/react/prompts.d.ts +2 -2
  167. package/dist/agents/react/prompts.js.map +1 -1
  168. package/dist/agents/react/runners/base.cjs.map +1 -1
  169. package/dist/agents/react/runners/base.d.cts +6 -6
  170. package/dist/agents/react/runners/base.d.ts +6 -6
  171. package/dist/agents/react/runners/base.js.map +1 -1
  172. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  173. package/dist/agents/react/runners/deep-think/prompts.d.cts +2 -2
  174. package/dist/agents/react/runners/deep-think/prompts.d.ts +2 -2
  175. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  176. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  177. package/dist/agents/react/runners/deep-think/runner.d.cts +7 -7
  178. package/dist/agents/react/runners/deep-think/runner.d.ts +7 -7
  179. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  180. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  181. package/dist/agents/react/runners/default/runner.d.cts +9 -9
  182. package/dist/agents/react/runners/default/runner.d.ts +9 -9
  183. package/dist/agents/react/runners/default/runner.js.map +1 -1
  184. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  185. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  186. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  187. package/dist/agents/react/runners/granite/prompts.d.cts +2 -2
  188. package/dist/agents/react/runners/granite/prompts.d.ts +2 -2
  189. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  190. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  191. package/dist/agents/react/runners/granite/runner.d.cts +8 -8
  192. package/dist/agents/react/runners/granite/runner.d.ts +8 -8
  193. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  194. package/dist/agents/react/types.d.cts +5 -5
  195. package/dist/agents/react/types.d.ts +5 -5
  196. package/dist/agents/toolCalling/agent.cjs +33 -12
  197. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  198. package/dist/agents/toolCalling/agent.d.cts +7 -6
  199. package/dist/agents/toolCalling/agent.d.ts +7 -6
  200. package/dist/agents/toolCalling/agent.js +35 -14
  201. package/dist/agents/toolCalling/agent.js.map +1 -1
  202. package/dist/agents/toolCalling/prompts.cjs +3 -2
  203. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  204. package/dist/agents/toolCalling/prompts.d.cts +1 -1
  205. package/dist/agents/toolCalling/prompts.d.ts +1 -1
  206. package/dist/agents/toolCalling/prompts.js +3 -2
  207. package/dist/agents/toolCalling/prompts.js.map +1 -1
  208. package/dist/agents/toolCalling/types.d.cts +2 -2
  209. package/dist/agents/toolCalling/types.d.ts +2 -2
  210. package/dist/agents/types.d.cts +2 -2
  211. package/dist/agents/types.d.ts +2 -2
  212. package/dist/backend/backend.cjs.map +1 -1
  213. package/dist/backend/backend.d.cts +6 -5
  214. package/dist/backend/backend.d.ts +6 -5
  215. package/dist/backend/backend.js.map +1 -1
  216. package/dist/backend/chat.cjs +61 -3
  217. package/dist/backend/chat.cjs.map +1 -1
  218. package/dist/backend/chat.d.cts +17 -138
  219. package/dist/backend/chat.d.ts +17 -138
  220. package/dist/backend/chat.js +64 -6
  221. package/dist/backend/chat.js.map +1 -1
  222. package/dist/backend/client.cjs.map +1 -1
  223. package/dist/backend/client.d.cts +1 -1
  224. package/dist/backend/client.d.ts +1 -1
  225. package/dist/backend/client.js.map +1 -1
  226. package/dist/backend/constants.cjs +5 -0
  227. package/dist/backend/constants.cjs.map +1 -1
  228. package/dist/backend/constants.d.cts +6 -1
  229. package/dist/backend/constants.d.ts +6 -1
  230. package/dist/backend/constants.js +5 -0
  231. package/dist/backend/constants.js.map +1 -1
  232. package/dist/backend/core.d.cts +5 -4
  233. package/dist/backend/core.d.ts +5 -4
  234. package/dist/backend/embedding.cjs.map +1 -1
  235. package/dist/backend/embedding.d.cts +14 -2
  236. package/dist/backend/embedding.d.ts +14 -2
  237. package/dist/backend/embedding.js.map +1 -1
  238. package/dist/backend/errors.cjs.map +1 -1
  239. package/dist/backend/errors.d.cts +1 -1
  240. package/dist/backend/errors.d.ts +1 -1
  241. package/dist/backend/errors.js.map +1 -1
  242. package/dist/backend/message.cjs.map +1 -1
  243. package/dist/backend/message.d.cts +1 -1
  244. package/dist/backend/message.d.ts +1 -1
  245. package/dist/backend/message.js.map +1 -1
  246. package/dist/backend/utils.cjs +35 -0
  247. package/dist/backend/utils.cjs.map +1 -1
  248. package/dist/backend/utils.d.cts +20 -28
  249. package/dist/backend/utils.d.ts +20 -28
  250. package/dist/backend/utils.js +35 -2
  251. package/dist/backend/utils.js.map +1 -1
  252. package/dist/{base-mmG-8Pk9.d.ts → base-BOCDDBvG.d.ts} +2 -2
  253. package/dist/{base-daM6fHUP.d.cts → base-szR2Izbt.d.cts} +2 -2
  254. package/dist/cache/base.cjs.map +1 -1
  255. package/dist/cache/base.d.cts +1 -1
  256. package/dist/cache/base.d.ts +1 -1
  257. package/dist/cache/base.js.map +1 -1
  258. package/dist/cache/decoratorCache.cjs.map +1 -1
  259. package/dist/cache/decoratorCache.d.cts +1 -1
  260. package/dist/cache/decoratorCache.d.ts +1 -1
  261. package/dist/cache/decoratorCache.js.map +1 -1
  262. package/dist/cache/fileCache.cjs.map +1 -1
  263. package/dist/cache/fileCache.d.cts +1 -1
  264. package/dist/cache/fileCache.d.ts +1 -1
  265. package/dist/cache/fileCache.js.map +1 -1
  266. package/dist/cache/nullCache.cjs.map +1 -1
  267. package/dist/cache/nullCache.d.cts +1 -1
  268. package/dist/cache/nullCache.d.ts +1 -1
  269. package/dist/cache/nullCache.js.map +1 -1
  270. package/dist/cache/slidingCache.cjs.map +1 -1
  271. package/dist/cache/slidingCache.d.cts +1 -1
  272. package/dist/cache/slidingCache.d.ts +1 -1
  273. package/dist/cache/slidingCache.js.map +1 -1
  274. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  275. package/dist/cache/unconstrainedCache.d.cts +1 -1
  276. package/dist/cache/unconstrainedCache.d.ts +1 -1
  277. package/dist/cache/unconstrainedCache.js.map +1 -1
  278. package/dist/chat-BdN8hGWn.d.ts +174 -0
  279. package/dist/chat-DvMzAHj6.d.cts +174 -0
  280. package/dist/context.cjs.map +1 -1
  281. package/dist/context.d.cts +2 -2
  282. package/dist/context.d.ts +2 -2
  283. package/dist/context.js.map +1 -1
  284. package/dist/emitter/emitter.cjs.map +1 -1
  285. package/dist/emitter/emitter.d.cts +1 -1
  286. package/dist/emitter/emitter.d.ts +1 -1
  287. package/dist/emitter/emitter.js.map +1 -1
  288. package/dist/emitter/errors.cjs.map +1 -1
  289. package/dist/emitter/errors.d.cts +1 -1
  290. package/dist/emitter/errors.d.ts +1 -1
  291. package/dist/emitter/errors.js.map +1 -1
  292. package/dist/emitter/types.d.cts +1 -1
  293. package/dist/emitter/types.d.ts +1 -1
  294. package/dist/emitter/utils.cjs.map +1 -1
  295. package/dist/emitter/utils.d.cts +1 -1
  296. package/dist/emitter/utils.d.ts +1 -1
  297. package/dist/emitter/utils.js.map +1 -1
  298. package/dist/{emitter-BxVxGBbJ.d.ts → emitter-C3dO-s2P.d.ts} +2 -2
  299. package/dist/{emitter-C9EN5B0j.d.cts → emitter-D5Mu0EEH.d.cts} +2 -2
  300. package/dist/errors.cjs.map +1 -1
  301. package/dist/errors.d.cts +1 -1
  302. package/dist/errors.d.ts +1 -1
  303. package/dist/errors.js.map +1 -1
  304. package/dist/index.d.cts +4 -6
  305. package/dist/index.d.ts +4 -6
  306. package/dist/internals/env.cjs.map +1 -1
  307. package/dist/internals/env.d.cts +1 -1
  308. package/dist/internals/env.d.ts +1 -1
  309. package/dist/internals/env.js.map +1 -1
  310. package/dist/internals/fetcher.cjs.map +1 -1
  311. package/dist/internals/fetcher.d.cts +2 -2
  312. package/dist/internals/fetcher.d.ts +2 -2
  313. package/dist/internals/fetcher.js.map +1 -1
  314. package/dist/internals/helpers/array.cjs.map +1 -1
  315. package/dist/internals/helpers/array.d.cts +1 -1
  316. package/dist/internals/helpers/array.d.ts +1 -1
  317. package/dist/internals/helpers/array.js.map +1 -1
  318. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  319. package/dist/internals/helpers/cancellation.d.cts +1 -1
  320. package/dist/internals/helpers/cancellation.d.ts +1 -1
  321. package/dist/internals/helpers/cancellation.js.map +1 -1
  322. package/dist/internals/helpers/counter.cjs.map +1 -1
  323. package/dist/internals/helpers/counter.d.cts +1 -1
  324. package/dist/internals/helpers/counter.d.ts +1 -1
  325. package/dist/internals/helpers/counter.js.map +1 -1
  326. package/dist/internals/helpers/general.cjs.map +1 -1
  327. package/dist/internals/helpers/general.d.cts +1 -1
  328. package/dist/internals/helpers/general.d.ts +1 -1
  329. package/dist/internals/helpers/general.js.map +1 -1
  330. package/dist/internals/helpers/guards.cjs.map +1 -1
  331. package/dist/internals/helpers/guards.d.cts +1 -1
  332. package/dist/internals/helpers/guards.d.ts +1 -1
  333. package/dist/internals/helpers/guards.js.map +1 -1
  334. package/dist/internals/helpers/hash.cjs.map +1 -1
  335. package/dist/internals/helpers/hash.d.cts +1 -1
  336. package/dist/internals/helpers/hash.d.ts +1 -1
  337. package/dist/internals/helpers/hash.js.map +1 -1
  338. package/dist/internals/helpers/map.cjs.map +1 -1
  339. package/dist/internals/helpers/map.d.cts +1 -1
  340. package/dist/internals/helpers/map.d.ts +1 -1
  341. package/dist/internals/helpers/map.js.map +1 -1
  342. package/dist/internals/helpers/math.cjs.map +1 -1
  343. package/dist/internals/helpers/math.d.cts +1 -1
  344. package/dist/internals/helpers/math.d.ts +1 -1
  345. package/dist/internals/helpers/math.js.map +1 -1
  346. package/dist/internals/helpers/number.cjs.map +1 -1
  347. package/dist/internals/helpers/number.d.cts +1 -1
  348. package/dist/internals/helpers/number.d.ts +1 -1
  349. package/dist/internals/helpers/number.js.map +1 -1
  350. package/dist/internals/helpers/object.cjs.map +1 -1
  351. package/dist/internals/helpers/object.d.cts +1 -1
  352. package/dist/internals/helpers/object.d.ts +1 -1
  353. package/dist/internals/helpers/object.js.map +1 -1
  354. package/dist/internals/helpers/paginate.cjs.map +1 -1
  355. package/dist/internals/helpers/paginate.d.cts +1 -1
  356. package/dist/internals/helpers/paginate.d.ts +1 -1
  357. package/dist/internals/helpers/paginate.js.map +1 -1
  358. package/dist/internals/helpers/promise.cjs.map +1 -1
  359. package/dist/internals/helpers/promise.d.cts +1 -1
  360. package/dist/internals/helpers/promise.d.ts +1 -1
  361. package/dist/internals/helpers/promise.js.map +1 -1
  362. package/dist/internals/helpers/prototype.cjs.map +1 -1
  363. package/dist/internals/helpers/prototype.d.cts +1 -1
  364. package/dist/internals/helpers/prototype.d.ts +1 -1
  365. package/dist/internals/helpers/prototype.js.map +1 -1
  366. package/dist/internals/helpers/retry.cjs.map +1 -1
  367. package/dist/internals/helpers/retry.d.cts +1 -1
  368. package/dist/internals/helpers/retry.d.ts +1 -1
  369. package/dist/internals/helpers/retry.js.map +1 -1
  370. package/dist/internals/helpers/retryable.cjs.map +1 -1
  371. package/dist/internals/helpers/retryable.d.cts +1 -1
  372. package/dist/internals/helpers/retryable.d.ts +1 -1
  373. package/dist/internals/helpers/retryable.js.map +1 -1
  374. package/dist/internals/helpers/schema.cjs.map +1 -1
  375. package/dist/internals/helpers/schema.d.cts +1 -1
  376. package/dist/internals/helpers/schema.d.ts +1 -1
  377. package/dist/internals/helpers/schema.js.map +1 -1
  378. package/dist/internals/helpers/stream.cjs.map +1 -1
  379. package/dist/internals/helpers/stream.d.cts +1 -1
  380. package/dist/internals/helpers/stream.d.ts +1 -1
  381. package/dist/internals/helpers/stream.js.map +1 -1
  382. package/dist/internals/helpers/string.cjs.map +1 -1
  383. package/dist/internals/helpers/string.d.cts +1 -1
  384. package/dist/internals/helpers/string.d.ts +1 -1
  385. package/dist/internals/helpers/string.js.map +1 -1
  386. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  387. package/dist/internals/helpers/weakRef.d.cts +1 -1
  388. package/dist/internals/helpers/weakRef.d.ts +1 -1
  389. package/dist/internals/helpers/weakRef.js.map +1 -1
  390. package/dist/internals/serializable.cjs.map +1 -1
  391. package/dist/internals/serializable.d.cts +1 -1
  392. package/dist/internals/serializable.d.ts +1 -1
  393. package/dist/internals/serializable.js.map +1 -1
  394. package/dist/internals/types.cjs.map +1 -1
  395. package/dist/internals/types.d.cts +1 -1
  396. package/dist/internals/types.d.ts +1 -1
  397. package/dist/internals/types.js.map +1 -1
  398. package/dist/logger/logger.cjs.map +1 -1
  399. package/dist/logger/logger.js.map +1 -1
  400. package/dist/logger/pretty.cjs.map +1 -1
  401. package/dist/logger/pretty.js.map +1 -1
  402. package/dist/memory/base.cjs.map +1 -1
  403. package/dist/memory/base.js.map +1 -1
  404. package/dist/memory/slidingMemory.cjs.map +1 -1
  405. package/dist/memory/slidingMemory.js.map +1 -1
  406. package/dist/memory/summarizeMemory.cjs.map +1 -1
  407. package/dist/memory/summarizeMemory.d.cts +4 -4
  408. package/dist/memory/summarizeMemory.d.ts +4 -4
  409. package/dist/memory/summarizeMemory.js.map +1 -1
  410. package/dist/memory/tokenMemory.cjs.map +1 -1
  411. package/dist/memory/tokenMemory.js.map +1 -1
  412. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  413. package/dist/memory/unconstrainedMemory.js.map +1 -1
  414. package/dist/parsers/errors.cjs.map +1 -1
  415. package/dist/parsers/errors.d.cts +1 -1
  416. package/dist/parsers/errors.d.ts +1 -1
  417. package/dist/parsers/errors.js.map +1 -1
  418. package/dist/parsers/field.cjs.map +1 -1
  419. package/dist/parsers/field.js.map +1 -1
  420. package/dist/parsers/linePrefix.cjs.map +1 -1
  421. package/dist/parsers/linePrefix.d.cts +2 -2
  422. package/dist/parsers/linePrefix.d.ts +2 -2
  423. package/dist/parsers/linePrefix.js.map +1 -1
  424. package/dist/serializer/error.cjs.map +1 -1
  425. package/dist/serializer/error.d.cts +1 -1
  426. package/dist/serializer/error.d.ts +1 -1
  427. package/dist/serializer/error.js.map +1 -1
  428. package/dist/serializer/serializer.cjs.map +1 -1
  429. package/dist/serializer/serializer.d.cts +1 -1
  430. package/dist/serializer/serializer.d.ts +1 -1
  431. package/dist/serializer/serializer.js.map +1 -1
  432. package/dist/serializer/utils.cjs.map +1 -1
  433. package/dist/serializer/utils.d.cts +1 -1
  434. package/dist/serializer/utils.d.ts +1 -1
  435. package/dist/serializer/utils.js.map +1 -1
  436. package/dist/{serializer-VYDhdryk.d.ts → serializer-BswFRdT8.d.ts} +2 -2
  437. package/dist/{serializer-CJx5ZpUx.d.cts → serializer-Dz4AIM2O.d.cts} +2 -2
  438. package/dist/template.cjs.map +1 -1
  439. package/dist/template.d.cts +1 -1
  440. package/dist/template.d.ts +1 -1
  441. package/dist/template.js.map +1 -1
  442. package/dist/tools/arxiv.cjs.map +1 -1
  443. package/dist/tools/arxiv.d.cts +2 -2
  444. package/dist/tools/arxiv.d.ts +2 -2
  445. package/dist/tools/arxiv.js.map +1 -1
  446. package/dist/tools/base.cjs.map +1 -1
  447. package/dist/tools/base.d.cts +1 -1
  448. package/dist/tools/base.d.ts +1 -1
  449. package/dist/tools/base.js.map +1 -1
  450. package/dist/tools/calculator.cjs.map +1 -1
  451. package/dist/tools/calculator.d.cts +2 -2
  452. package/dist/tools/calculator.d.ts +2 -2
  453. package/dist/tools/calculator.js.map +1 -1
  454. package/dist/tools/custom.cjs.map +1 -1
  455. package/dist/tools/custom.d.cts +5 -5
  456. package/dist/tools/custom.d.ts +5 -5
  457. package/dist/tools/custom.js.map +1 -1
  458. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  459. package/dist/tools/database/elasticsearch.d.cts +2 -2
  460. package/dist/tools/database/elasticsearch.d.ts +2 -2
  461. package/dist/tools/database/elasticsearch.js.map +1 -1
  462. package/dist/tools/database/metadata.cjs.map +1 -1
  463. package/dist/tools/database/metadata.d.cts +1 -1
  464. package/dist/tools/database/metadata.d.ts +1 -1
  465. package/dist/tools/database/metadata.js.map +1 -1
  466. package/dist/tools/database/milvus.cjs.map +1 -1
  467. package/dist/tools/database/milvus.d.cts +4 -4
  468. package/dist/tools/database/milvus.d.ts +4 -4
  469. package/dist/tools/database/milvus.js.map +1 -1
  470. package/dist/tools/database/sql.cjs.map +1 -1
  471. package/dist/tools/database/sql.d.cts +2 -2
  472. package/dist/tools/database/sql.d.ts +2 -2
  473. package/dist/tools/database/sql.js.map +1 -1
  474. package/dist/tools/llm.cjs.map +1 -1
  475. package/dist/tools/llm.d.cts +5 -5
  476. package/dist/tools/llm.d.ts +5 -5
  477. package/dist/tools/llm.js.map +1 -1
  478. package/dist/tools/mcp.cjs.map +1 -1
  479. package/dist/tools/mcp.d.cts +2 -2
  480. package/dist/tools/mcp.d.ts +2 -2
  481. package/dist/tools/mcp.js.map +1 -1
  482. package/dist/tools/openapi.cjs.map +1 -1
  483. package/dist/tools/openapi.d.cts +1 -1
  484. package/dist/tools/openapi.d.ts +1 -1
  485. package/dist/tools/openapi.js.map +1 -1
  486. package/dist/tools/python/output.cjs.map +1 -1
  487. package/dist/tools/python/output.d.cts +2 -2
  488. package/dist/tools/python/output.d.ts +2 -2
  489. package/dist/tools/python/output.js.map +1 -1
  490. package/dist/tools/python/python.cjs +3 -3
  491. package/dist/tools/python/python.cjs.map +1 -1
  492. package/dist/tools/python/python.d.cts +4 -4
  493. package/dist/tools/python/python.d.ts +4 -4
  494. package/dist/tools/python/python.js +3 -3
  495. package/dist/tools/python/python.js.map +1 -1
  496. package/dist/tools/python/storage.cjs.map +1 -1
  497. package/dist/tools/python/storage.d.cts +1 -1
  498. package/dist/tools/python/storage.d.ts +1 -1
  499. package/dist/tools/python/storage.js.map +1 -1
  500. package/dist/tools/search/base.cjs.map +1 -1
  501. package/dist/tools/search/base.d.cts +2 -2
  502. package/dist/tools/search/base.d.ts +2 -2
  503. package/dist/tools/search/base.js.map +1 -1
  504. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  505. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
  506. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
  507. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  508. package/dist/tools/search/googleSearch.cjs.map +1 -1
  509. package/dist/tools/search/googleSearch.d.cts +1 -1
  510. package/dist/tools/search/googleSearch.d.ts +1 -1
  511. package/dist/tools/search/googleSearch.js.map +1 -1
  512. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  513. package/dist/tools/search/searXNGSearch.d.cts +2 -2
  514. package/dist/tools/search/searXNGSearch.d.ts +2 -2
  515. package/dist/tools/search/searXNGSearch.js.map +1 -1
  516. package/dist/tools/search/wikipedia.cjs.map +1 -1
  517. package/dist/tools/search/wikipedia.d.cts +1 -1
  518. package/dist/tools/search/wikipedia.d.ts +1 -1
  519. package/dist/tools/search/wikipedia.js.map +1 -1
  520. package/dist/tools/similarity.cjs.map +1 -1
  521. package/dist/tools/similarity.d.cts +2 -2
  522. package/dist/tools/similarity.d.ts +2 -2
  523. package/dist/tools/similarity.js.map +1 -1
  524. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  525. package/dist/tools/weather/openMeteo.d.cts +2 -2
  526. package/dist/tools/weather/openMeteo.d.ts +2 -2
  527. package/dist/tools/weather/openMeteo.js.map +1 -1
  528. package/dist/tools/web/webCrawler.cjs.map +1 -1
  529. package/dist/tools/web/webCrawler.d.cts +1 -1
  530. package/dist/tools/web/webCrawler.d.ts +1 -1
  531. package/dist/tools/web/webCrawler.js.map +1 -1
  532. package/dist/version.cjs +1 -1
  533. package/dist/version.cjs.map +1 -1
  534. package/dist/version.d.cts +1 -1
  535. package/dist/version.d.ts +1 -1
  536. package/dist/version.js +1 -1
  537. package/dist/version.js.map +1 -1
  538. package/dist/workflows/agent.cjs.map +1 -1
  539. package/dist/workflows/agent.d.cts +43 -43
  540. package/dist/workflows/agent.d.ts +43 -43
  541. package/dist/workflows/agent.js.map +1 -1
  542. package/dist/workflows/workflow.cjs.map +1 -1
  543. package/dist/workflows/workflow.d.cts +1 -1
  544. package/dist/workflows/workflow.d.ts +1 -1
  545. package/dist/workflows/workflow.js.map +1 -1
  546. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["pretty.js"],"names":["compose","fns","value","reduce","res","f","opts","pinoPretty","colorize","colorizeObjects","singleLine","hideObject","sync","levelFirst","translateTime","customPrettifiers","level","levels","TRACE","letters","icon","formatter","picocolors","gray","DEBUG","yellow","INFO","green","WARN","ERROR","red","FATAL","black","bgRed","fallback","logLevel","target","time","timestamp","dim","caller","key","log","colors","greenBright","messageFormat","messageKey"],"mappings":";;;;;AAmBA,MAAMA,OACJ,mBAAA,MAAA,CAAA,CAAA,GAAIC,GACJ,KAAA,CAACC,UACCD,GAAIE,CAAAA,MAAAA,CAAO,CAACC,GAAAA,EAAKC,CAAMA,KAAAA,CAAAA,CAAED,GAAAA,CAAAA,EAAMF,KAAAA,CAFjC,EAAA,SAAA,CAAA;AAIF,IAAA,cAAA,2BAAgBI,IAAAA,KAAAA;AACd,EAAA,OAAOC,UAAW,CAAA;IAChBC,QAAU,EAAA,IAAA;IACVC,eAAiB,EAAA,IAAA;IACjBC,UAAY,EAAA,IAAA;IACZC,UAAY,EAAA,KAAA;IACZC,IAAM,EAAA,IAAA;IACNC,UAAY,EAAA,IAAA;IACZ,GAAGP,IAAAA;IACHQ,aAAe,EAAA,UAAA;IACfC,iBAAmB,EAAA;AACjBC,MAAAA,KAAAA,EAAAA,CAAQ,MAAA;AACN,QAAA,MAAMC,MAAS,GAAA;UACbC,KAAO,EAAA;YAAEC,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWC,CAAAA;AAAK,WAAA;UAChEC,KAAO,EAAA;YAAEL,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWG,CAAAA;AAAO,WAAA;UAClEC,IAAM,EAAA;YAAEP,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,cAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWK,CAAAA;AAAM,WAAA;UAChEC,IAAM,EAAA;YAAET,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,cAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWG,CAAAA;AAAO,WAAA;UACjEI,KAAO,EAAA;YAAEV,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWQ,CAAAA;AAAI,WAAA;UAC/DC,KAAO,EAAA;YACLZ,OAAS,EAAA,KAAA;YACTC,IAAM,EAAA,WAAA;AACNC,YAAAA,SAAAA,EAAWrB,OAAQsB,CAAAA,UAAAA,CAAWU,KAAOV,EAAAA,UAAAA,CAAWW,KAAK;AACvD;AACF,SAAA;AACA,QAAA,MAAMC,QAAW,GAAA;UAAEf,OAAS,EAAA,KAAA;UAAOC,IAAM,EAAA,iBAAA;AAAOC,UAAAA,SAAAA,EAAWC,UAAWC,CAAAA;AAAK,SAAA;AAE3E,QAAA,OAAO,CAACY,QAAAA,KAAAA;AACN,UAAMC,MAAAA,MAAAA,GAASnB,MAAOkB,CAAAA,QAAAA,CAAaD,IAAAA,QAAAA;AACnC,UAAO,OAAA,CAAA,EAAGE,OAAOf,SAAUe,CAAAA,MAAAA,CAAOjB,OAAO,CAAA,CAAA,EAAA,EAAMiB,OAAOhB,IAAI,CAAA,CAAA,CAAA;AAC5D,SAAA;OACF,GAAA;AACAiB,MAAAA,IAAAA,kBAAOC,MAAAA,CAAAA,CAAAA,SAAAA,KAAchB,UAAWiB,CAAAA,GAAAA,CAAID,SAAAA,CAA9B,EAAA,MAAA,CAAA;AACNE,MAAAA,MAAAA,kBAASA,MAAAA,CAAAA,CAAAA,MAAAA,EAAQC,GAAKC,EAAAA,GAAAA,EAAK,EAAEC,MAAAA,EAAa,KAAA,CAAA,EAAGA,MAAOC,CAAAA,WAAAA,CAAYJ,MAAAA,CAAAA,CAAxD,CAAA,EAAA,QAAA;AACV,KAAA;IACAK,aAAe,kBAAA,MAAA,CAAA,CAACH,KAAKI,UAAAA,KAAAA;AACnB,MAAO,OAAA,CAAA,EAAGJ,GAAII,CAAAA,UAAAA,CAAW,CAAA,CAAA;KADZ,EAAA,eAAA;GAGjB,CAAA;AACF,CAtCe,EAAA,SAAA","file":"pretty.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport pinoPretty from \"pino-pretty\";\nimport picocolors from \"picocolors\";\n\nconst compose =\n (...fns) =>\n (value) =>\n fns.reduce((res, f) => f(res), value);\n\nexport default (opts) => {\n return pinoPretty({\n colorize: true,\n colorizeObjects: true,\n singleLine: true,\n hideObject: false,\n sync: true,\n levelFirst: true,\n ...opts,\n translateTime: \"HH:MM:ss\",\n customPrettifiers: {\n level: (() => {\n const levels = {\n TRACE: { letters: \"TRC\", icon: \"🔎\", formatter: picocolors.gray },\n DEBUG: { letters: \"DBG\", icon: \"🪲\", formatter: picocolors.yellow },\n INFO: { letters: \"INF\", icon: \"ℹ️\", formatter: picocolors.green },\n WARN: { letters: \"WRN\", icon: \"⚠️\", formatter: picocolors.yellow },\n ERROR: { letters: \"ERR\", icon: \"🔥\", formatter: picocolors.red },\n FATAL: {\n letters: \"FTL\",\n icon: \"💣\",\n formatter: compose(picocolors.black, picocolors.bgRed),\n },\n };\n const fallback = { letters: \"???\", icon: \"🤷‍\", formatter: picocolors.gray };\n\n return (logLevel) => {\n const target = levels[logLevel] || fallback;\n return `${target.formatter(target.letters)} ${target.icon} `;\n };\n })(),\n time: (timestamp) => picocolors.dim(timestamp),\n caller: (caller, key, log, { colors }) => `${colors.greenBright(caller)}`,\n },\n messageFormat: (log, messageKey) => {\n return `${log[messageKey]}`;\n },\n });\n};\n"]}
1
+ {"version":3,"sources":["pretty.js"],"names":["compose","fns","value","reduce","res","f","opts","pinoPretty","colorize","colorizeObjects","singleLine","hideObject","sync","levelFirst","translateTime","customPrettifiers","level","levels","TRACE","letters","icon","formatter","picocolors","gray","DEBUG","yellow","INFO","green","WARN","ERROR","red","FATAL","black","bgRed","fallback","logLevel","target","time","timestamp","dim","caller","key","log","colors","greenBright","messageFormat","messageKey"],"mappings":";;;;;AAmBA,MAAMA,OACJ,mBAAA,MAAA,CAAA,CAAA,GAAIC,GACJ,KAAA,CAACC,UACCD,GAAIE,CAAAA,MAAAA,CAAO,CAACC,GAAAA,EAAKC,CAAMA,KAAAA,CAAAA,CAAED,GAAAA,CAAAA,EAAMF,KAAAA,CAFjC,EAAA,SAAA,CAAA;AAIF,IAAA,cAAA,2BAAgBI,IAAAA,KAAAA;AACd,EAAA,OAAOC,UAAW,CAAA;IAChBC,QAAU,EAAA,IAAA;IACVC,eAAiB,EAAA,IAAA;IACjBC,UAAY,EAAA,IAAA;IACZC,UAAY,EAAA,KAAA;IACZC,IAAM,EAAA,IAAA;IACNC,UAAY,EAAA,IAAA;IACZ,GAAGP,IAAAA;IACHQ,aAAe,EAAA,UAAA;IACfC,iBAAmB,EAAA;AACjBC,MAAAA,KAAAA,EAAAA,CAAQ,MAAA;AACN,QAAA,MAAMC,MAAS,GAAA;UACbC,KAAO,EAAA;YAAEC,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWC,CAAAA;AAAK,WAAA;UAChEC,KAAO,EAAA;YAAEL,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWG,CAAAA;AAAO,WAAA;UAClEC,IAAM,EAAA;YAAEP,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,cAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWK,CAAAA;AAAM,WAAA;UAChEC,IAAM,EAAA;YAAET,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,cAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWG,CAAAA;AAAO,WAAA;UACjEI,KAAO,EAAA;YAAEV,OAAS,EAAA,KAAA;YAAOC,IAAM,EAAA,WAAA;AAAMC,YAAAA,SAAAA,EAAWC,UAAWQ,CAAAA;AAAI,WAAA;UAC/DC,KAAO,EAAA;YACLZ,OAAS,EAAA,KAAA;YACTC,IAAM,EAAA,WAAA;AACNC,YAAAA,SAAAA,EAAWrB,OAAQsB,CAAAA,UAAAA,CAAWU,KAAOV,EAAAA,UAAAA,CAAWW,KAAK;AACvD;AACF,SAAA;AACA,QAAA,MAAMC,QAAW,GAAA;UAAEf,OAAS,EAAA,KAAA;UAAOC,IAAM,EAAA,iBAAA;AAAOC,UAAAA,SAAAA,EAAWC,UAAWC,CAAAA;AAAK,SAAA;AAE3E,QAAA,OAAO,CAACY,QAAAA,KAAAA;AACN,UAAMC,MAAAA,MAAAA,GAASnB,MAAOkB,CAAAA,QAAAA,CAAaD,IAAAA,QAAAA;AACnC,UAAO,OAAA,CAAA,EAAGE,OAAOf,SAAUe,CAAAA,MAAAA,CAAOjB,OAAO,CAAA,CAAA,EAAA,EAAMiB,OAAOhB,IAAI,CAAA,CAAA,CAAA;AAC5D,SAAA;OACF,GAAA;AACAiB,MAAAA,IAAAA,kBAAOC,MAAAA,CAAAA,CAAAA,SAAAA,KAAchB,UAAWiB,CAAAA,GAAAA,CAAID,SAAAA,CAA9B,EAAA,MAAA,CAAA;AACNE,MAAAA,MAAAA,kBAASA,MAAAA,CAAAA,CAAAA,MAAAA,EAAQC,GAAKC,EAAAA,GAAAA,EAAK,EAAEC,MAAAA,EAAa,KAAA,CAAA,EAAGA,MAAOC,CAAAA,WAAAA,CAAYJ,MAAAA,CAAAA,CAAxD,CAAA,EAAA,QAAA;AACV,KAAA;IACAK,aAAe,kBAAA,MAAA,CAAA,CAACH,KAAKI,UAAAA,KAAAA;AACnB,MAAO,OAAA,CAAA,EAAGJ,GAAII,CAAAA,UAAAA,CAAW,CAAA,CAAA;KADZ,EAAA,eAAA;GAGjB,CAAA;AACF,CAtCe,EAAA,SAAA","file":"pretty.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport pinoPretty from \"pino-pretty\";\nimport picocolors from \"picocolors\";\n\nconst compose =\n (...fns) =>\n (value) =>\n fns.reduce((res, f) => f(res), value);\n\nexport default (opts) => {\n return pinoPretty({\n colorize: true,\n colorizeObjects: true,\n singleLine: true,\n hideObject: false,\n sync: true,\n levelFirst: true,\n ...opts,\n translateTime: \"HH:MM:ss\",\n customPrettifiers: {\n level: (() => {\n const levels = {\n TRACE: { letters: \"TRC\", icon: \"🔎\", formatter: picocolors.gray },\n DEBUG: { letters: \"DBG\", icon: \"🪲\", formatter: picocolors.yellow },\n INFO: { letters: \"INF\", icon: \"ℹ️\", formatter: picocolors.green },\n WARN: { letters: \"WRN\", icon: \"⚠️\", formatter: picocolors.yellow },\n ERROR: { letters: \"ERR\", icon: \"🔥\", formatter: picocolors.red },\n FATAL: {\n letters: \"FTL\",\n icon: \"💣\",\n formatter: compose(picocolors.black, picocolors.bgRed),\n },\n };\n const fallback = { letters: \"???\", icon: \"🤷‍\", formatter: picocolors.gray };\n\n return (logLevel) => {\n const target = levels[logLevel] || fallback;\n return `${target.formatter(target.letters)} ${target.icon} `;\n };\n })(),\n time: (timestamp) => picocolors.dim(timestamp),\n caller: (caller, key, log, { colors }) => `${colors.greenBright(caller)}`,\n },\n messageFormat: (log, messageKey) => {\n return `${log[messageKey]}`;\n },\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["base.ts"],"names":["MemoryError","FrameworkError","MemoryFatalError","constructor","message","errors","options","isFatal","isRetryable","BaseMemory","Serializable","addMany","messages","start","counter","msg","add","undefined","deleteMany","delete","splice","deleteCount","items","total","length","Math","max","min","deletedItems","slice","isEmpty","asReadOnly","ReadOnlyMemory","Symbol","iterator","source","register","index","reset","createSnapshot","loadSnapshot","state","Object","assign"],"mappings":"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","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport class MemoryError extends FrameworkError {}\nexport class MemoryFatalError extends MemoryError {\n constructor(message: string, errors?: Error[], options?: FrameworkErrorOptions) {\n super(message, errors, {\n isFatal: true,\n isRetryable: false,\n ...options,\n });\n }\n}\n\nexport abstract class BaseMemory<TState = unknown> extends Serializable<TState> {\n abstract get messages(): readonly Message[];\n\n abstract add(message: Message, index?: number): Promise<void>;\n\n abstract delete(message: Message): Promise<boolean>;\n abstract reset(): void;\n\n async addMany(messages: Iterable<Message> | AsyncIterable<Message>, start?: number) {\n let counter = 0;\n for await (const msg of messages) {\n await this.add(msg, start === undefined ? undefined : start + counter);\n counter += 1;\n }\n }\n\n async deleteMany(messages: Iterable<Message> | AsyncIterable<Message>) {\n for await (const msg of messages) {\n await this.delete(msg);\n }\n }\n\n async splice(start: number, deleteCount: number, ...items: Message[]) {\n const total = this.messages.length;\n\n start = start < 0 ? Math.max(total + start, 0) : start;\n deleteCount = Math.min(deleteCount, total - start);\n\n const deletedItems = this.messages.slice(start, start + deleteCount);\n await this.deleteMany(deletedItems);\n await this.addMany(items, start);\n\n return deletedItems;\n }\n\n isEmpty() {\n return this.messages.length === 0;\n }\n\n asReadOnly() {\n return new ReadOnlyMemory(this);\n }\n\n [Symbol.iterator]() {\n return this.messages[Symbol.iterator]();\n }\n\n abstract loadSnapshot(state: TState): void;\n abstract createSnapshot(): TState;\n}\n\nexport class ReadOnlyMemory<T extends BaseMemory = BaseMemory> extends BaseMemory<{ source: T }> {\n constructor(public readonly source: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async add(message: Message, index?: number) {}\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n get messages(): readonly Message[] {\n return this.source.messages;\n }\n\n reset(): void {}\n\n createSnapshot() {\n return { source: this.source };\n }\n\n loadSnapshot(state: { source: T }) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["base.ts"],"names":["MemoryError","FrameworkError","MemoryFatalError","constructor","message","errors","options","isFatal","isRetryable","BaseMemory","Serializable","addMany","messages","start","counter","msg","add","undefined","deleteMany","delete","splice","deleteCount","items","total","length","Math","max","min","deletedItems","slice","isEmpty","asReadOnly","ReadOnlyMemory","Symbol","iterator","source","register","index","reset","createSnapshot","loadSnapshot","state","Object","assign"],"mappings":"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","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport class MemoryError extends FrameworkError {}\nexport class MemoryFatalError extends MemoryError {\n constructor(message: string, errors?: Error[], options?: FrameworkErrorOptions) {\n super(message, errors, {\n isFatal: true,\n isRetryable: false,\n ...options,\n });\n }\n}\n\nexport abstract class BaseMemory<TState = unknown> extends Serializable<TState> {\n abstract get messages(): readonly Message[];\n\n abstract add(message: Message, index?: number): Promise<void>;\n\n abstract delete(message: Message): Promise<boolean>;\n abstract reset(): void;\n\n async addMany(messages: Iterable<Message> | AsyncIterable<Message>, start?: number) {\n let counter = 0;\n for await (const msg of messages) {\n await this.add(msg, start === undefined ? undefined : start + counter);\n counter += 1;\n }\n }\n\n async deleteMany(messages: Iterable<Message> | AsyncIterable<Message>) {\n for await (const msg of messages) {\n await this.delete(msg);\n }\n }\n\n async splice(start: number, deleteCount: number, ...items: Message[]) {\n const total = this.messages.length;\n\n start = start < 0 ? Math.max(total + start, 0) : start;\n deleteCount = Math.min(deleteCount, total - start);\n\n const deletedItems = this.messages.slice(start, start + deleteCount);\n await this.deleteMany(deletedItems);\n await this.addMany(items, start);\n\n return deletedItems;\n }\n\n isEmpty() {\n return this.messages.length === 0;\n }\n\n asReadOnly() {\n return new ReadOnlyMemory(this);\n }\n\n [Symbol.iterator]() {\n return this.messages[Symbol.iterator]();\n }\n\n abstract loadSnapshot(state: TState): void;\n abstract createSnapshot(): TState;\n}\n\nexport class ReadOnlyMemory<T extends BaseMemory = BaseMemory> extends BaseMemory<{ source: T }> {\n constructor(public readonly source: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async add(message: Message, index?: number) {}\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n get messages(): readonly Message[] {\n return this.source.messages;\n }\n\n reset(): void {}\n\n createSnapshot() {\n return { source: this.source };\n }\n\n loadSnapshot(state: { source: T }) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["base.ts"],"names":["MemoryError","FrameworkError","MemoryFatalError","constructor","message","errors","options","isFatal","isRetryable","BaseMemory","Serializable","addMany","messages","start","counter","msg","add","undefined","deleteMany","delete","splice","deleteCount","items","total","length","Math","max","min","deletedItems","slice","isEmpty","asReadOnly","ReadOnlyMemory","Symbol","iterator","source","register","index","reset","createSnapshot","loadSnapshot","state","Object","assign"],"mappings":"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","file":"base.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport class MemoryError extends FrameworkError {}\nexport class MemoryFatalError extends MemoryError {\n constructor(message: string, errors?: Error[], options?: FrameworkErrorOptions) {\n super(message, errors, {\n isFatal: true,\n isRetryable: false,\n ...options,\n });\n }\n}\n\nexport abstract class BaseMemory<TState = unknown> extends Serializable<TState> {\n abstract get messages(): readonly Message[];\n\n abstract add(message: Message, index?: number): Promise<void>;\n\n abstract delete(message: Message): Promise<boolean>;\n abstract reset(): void;\n\n async addMany(messages: Iterable<Message> | AsyncIterable<Message>, start?: number) {\n let counter = 0;\n for await (const msg of messages) {\n await this.add(msg, start === undefined ? undefined : start + counter);\n counter += 1;\n }\n }\n\n async deleteMany(messages: Iterable<Message> | AsyncIterable<Message>) {\n for await (const msg of messages) {\n await this.delete(msg);\n }\n }\n\n async splice(start: number, deleteCount: number, ...items: Message[]) {\n const total = this.messages.length;\n\n start = start < 0 ? Math.max(total + start, 0) : start;\n deleteCount = Math.min(deleteCount, total - start);\n\n const deletedItems = this.messages.slice(start, start + deleteCount);\n await this.deleteMany(deletedItems);\n await this.addMany(items, start);\n\n return deletedItems;\n }\n\n isEmpty() {\n return this.messages.length === 0;\n }\n\n asReadOnly() {\n return new ReadOnlyMemory(this);\n }\n\n [Symbol.iterator]() {\n return this.messages[Symbol.iterator]();\n }\n\n abstract loadSnapshot(state: TState): void;\n abstract createSnapshot(): TState;\n}\n\nexport class ReadOnlyMemory<T extends BaseMemory = BaseMemory> extends BaseMemory<{ source: T }> {\n constructor(public readonly source: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async add(message: Message, index?: number) {}\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n get messages(): readonly Message[] {\n return this.source.messages;\n }\n\n reset(): void {}\n\n createSnapshot() {\n return { source: this.source };\n }\n\n loadSnapshot(state: { source: T }) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["base.ts"],"names":["MemoryError","FrameworkError","MemoryFatalError","constructor","message","errors","options","isFatal","isRetryable","BaseMemory","Serializable","addMany","messages","start","counter","msg","add","undefined","deleteMany","delete","splice","deleteCount","items","total","length","Math","max","min","deletedItems","slice","isEmpty","asReadOnly","ReadOnlyMemory","Symbol","iterator","source","register","index","reset","createSnapshot","loadSnapshot","state","Object","assign"],"mappings":"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","file":"base.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport class MemoryError extends FrameworkError {}\nexport class MemoryFatalError extends MemoryError {\n constructor(message: string, errors?: Error[], options?: FrameworkErrorOptions) {\n super(message, errors, {\n isFatal: true,\n isRetryable: false,\n ...options,\n });\n }\n}\n\nexport abstract class BaseMemory<TState = unknown> extends Serializable<TState> {\n abstract get messages(): readonly Message[];\n\n abstract add(message: Message, index?: number): Promise<void>;\n\n abstract delete(message: Message): Promise<boolean>;\n abstract reset(): void;\n\n async addMany(messages: Iterable<Message> | AsyncIterable<Message>, start?: number) {\n let counter = 0;\n for await (const msg of messages) {\n await this.add(msg, start === undefined ? undefined : start + counter);\n counter += 1;\n }\n }\n\n async deleteMany(messages: Iterable<Message> | AsyncIterable<Message>) {\n for await (const msg of messages) {\n await this.delete(msg);\n }\n }\n\n async splice(start: number, deleteCount: number, ...items: Message[]) {\n const total = this.messages.length;\n\n start = start < 0 ? Math.max(total + start, 0) : start;\n deleteCount = Math.min(deleteCount, total - start);\n\n const deletedItems = this.messages.slice(start, start + deleteCount);\n await this.deleteMany(deletedItems);\n await this.addMany(items, start);\n\n return deletedItems;\n }\n\n isEmpty() {\n return this.messages.length === 0;\n }\n\n asReadOnly() {\n return new ReadOnlyMemory(this);\n }\n\n [Symbol.iterator]() {\n return this.messages[Symbol.iterator]();\n }\n\n abstract loadSnapshot(state: TState): void;\n abstract createSnapshot(): TState;\n}\n\nexport class ReadOnlyMemory<T extends BaseMemory = BaseMemory> extends BaseMemory<{ source: T }> {\n constructor(public readonly source: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async add(message: Message, index?: number) {}\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n get messages(): readonly Message[] {\n return this.source.messages;\n }\n\n reset(): void {}\n\n createSnapshot() {\n return { source: this.source };\n }\n\n loadSnapshot(state: { source: T }) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["slidingMemory.ts"],"names":["SlidingMemory","BaseMemory","messages","config","constructor","handlers","removalSelector","aliases","register","add","message","index","size","isOverflow","length","pipe","castArray","filter","isTruthy","forEach","indexOf","MemoryFatalError","context","splice","ensureRange","min","max","delete","removeFromArray","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;;;AAiCO,MAAMA,sBAAsBC,mBAAAA,CAAAA;EAjCnC;;;AAkCkBC,EAAAA,QAAAA,GAAsB,EAAA;AACtBC,EAAAA,MAAAA;AAEhBC,EAAAA,WAAAA,CAAYD,MAAkC,EAAA;AAC5C,IAAK,KAAA,EAAA;AACL,IAAA,IAAA,CAAKA,MAAS,GAAA;MACZ,GAAGA,MAAAA;MACHE,QAAU,EAAA;AACRC,QAAAA,eAAAA,EACEH,MAAOE,CAAAA,QAAAA,EAAUC,eAAoB,KAAA,CAACJ,QAAwB,KAAA;AAACA,UAAAA,QAAAA,CAAS,CAAA;;AAC5E;AACF,KAAA;AACF;EAEA;AACE,IAAA,MAAMK,OAAU,GAAA;AAAC,MAAA;;AACjB,IAAA,IAAA,CAAKC,SAASD,OAAAA,CAAAA;AAChB;EAEA,MAAME,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1C,IAAA,MAAM,EAAEC,IAAAA,EAAMP,QAAQ,EAAA,GAAK,IAAKF,CAAAA,MAAAA;AAChC,IAAA,MAAMU,6BAAmB,MAAA,CAAA,MAAA,IAAA,CAAKX,QAASY,CAAAA,MAAAA,GAAS,IAAIF,IAAjC,EAAA,YAAA,CAAA;AAEnB,IAAA,IAAIC,YAAc,EAAA;AAChBE,MACEA,WAAA,CAAA,IAAA,CAAKb,QACLG,EAAAA,QAAAA,CAASC,eACTU,EAAAA,mBAAAA,EACAC,cAAOC,eAAAA,CAAAA,EACPC,cAAQ,CAAA,CAACT,QAAAA,KAAAA;AACP,QAAA,MAAMC,MAAQ,GAAA,IAAA,CAAKT,QAASkB,CAAAA,OAAAA,CAAQV,QAAAA,CAAAA;AACpC,QAAA,IAAIC,WAAU,EAAI,EAAA;AAChB,UAAA,MAAM,IAAIU,yBAAAA,CAAiB,CAAuC,mCAAA,CAAA,EAAA,EAAI,EAAA;YACpEC,OAAS,EAAA;cAAEZ,OAAAA,EAAAA,QAAAA;AAASR,cAAAA,QAAAA,EAAU,IAAKA,CAAAA;AAAS;WAC9C,CAAA;AACF;AACA,QAAKA,IAAAA,CAAAA,QAAAA,CAASqB,MAAOZ,CAAAA,MAAAA,EAAO,CAAA,CAAA;AAC9B,OAAA,CAAA,CAAA;AAGF,MAAA,IAAIE,YAAc,EAAA;AAChB,QAAM,MAAA,IAAIQ,0BACR,CAAyF,uFAAA,CAAA,CAAA;AAE7F;AACF;AAEAV,IAAAA,KAAAA,GAAQa,sBAAYb,CAAAA,KAAAA,IAAS,IAAKT,CAAAA,QAAAA,CAASY,MAAQ,EAAA;MAAEW,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKxB,QAASY,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKZ,QAASqB,CAAAA,MAAAA,CAAOZ,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMiB,OAAOjB,OAAkB,EAAA;AAC7B,IAAOkB,OAAAA,yBAAAA,CAAgB,IAAK1B,CAAAA,QAAAA,EAAUQ,OAAAA,CAAAA;AACxC;EAEAmB,KAAQ,GAAA;AACN,IAAA,IAAA,CAAK3B,SAASY,MAAS,GAAA,CAAA;AACzB;EAEAgB,cAAiB,GAAA;AACf,IAAO,OAAA;MAAE3B,MAAQ4B,EAAAA,qBAAAA,CAAY,KAAK5B,MAAM,CAAA;MAAGD,QAAU6B,EAAAA,qBAAAA,CAAY,KAAK7B,QAAQ;AAAE,KAAA;AAClF;AAEA8B,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"slidingMemory.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { filter, forEach, isTruthy, pipe } from \"remeda\";\nimport { castArray, removeFromArray } from \"@/internals/helpers/array.js\";\nimport { RequiredNested } from \"@/internals/types.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\n\nexport interface Handlers {\n removalSelector: (messages: Message[]) => Message | Message[];\n}\n\nexport interface SlidingWindowMemoryInput {\n size: number;\n handlers?: Partial<Handlers>;\n}\n\nexport class SlidingMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n public readonly config: RequiredNested<SlidingWindowMemoryInput>;\n\n constructor(config: SlidingWindowMemoryInput) {\n super();\n this.config = {\n ...config,\n handlers: {\n removalSelector:\n config.handlers?.removalSelector ?? ((messages: Message[]) => [messages[0]]),\n },\n };\n }\n\n static {\n const aliases = [\"SlidingWindowMemory\"];\n this.register(aliases);\n }\n\n async add(message: Message, index?: number) {\n const { size, handlers } = this.config;\n const isOverflow = () => this.messages.length + 1 > size;\n\n if (isOverflow()) {\n pipe(\n this.messages,\n handlers.removalSelector,\n castArray,\n filter(isTruthy),\n forEach((message) => {\n const index = this.messages.indexOf(message);\n if (index === -1) {\n throw new MemoryFatalError(`Cannot delete non existing message.`, [], {\n context: { message, messages: this.messages },\n });\n }\n this.messages.splice(index, 1);\n }),\n );\n\n if (isOverflow()) {\n throw new MemoryFatalError(\n `Custom memory removalSelector did not return any message. Memory overflow has occurred.`,\n );\n }\n }\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n createSnapshot() {\n return { config: shallowCopy(this.config), messages: shallowCopy(this.messages) };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["slidingMemory.ts"],"names":["SlidingMemory","BaseMemory","messages","config","constructor","handlers","removalSelector","aliases","register","add","message","index","size","isOverflow","length","pipe","castArray","filter","isTruthy","forEach","indexOf","MemoryFatalError","context","splice","ensureRange","min","max","delete","removeFromArray","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;;;AAiCO,MAAMA,sBAAsBC,mBAAAA,CAAAA;EAjCnC;;;AAkCkBC,EAAAA,QAAAA,GAAsB,EAAA;AACtBC,EAAAA,MAAAA;AAEhBC,EAAAA,WAAAA,CAAYD,MAAkC,EAAA;AAC5C,IAAK,KAAA,EAAA;AACL,IAAA,IAAA,CAAKA,MAAS,GAAA;MACZ,GAAGA,MAAAA;MACHE,QAAU,EAAA;AACRC,QAAAA,eAAAA,EACEH,MAAOE,CAAAA,QAAAA,EAAUC,eAAoB,KAAA,CAACJ,QAAwB,KAAA;AAACA,UAAAA,QAAAA,CAAS,CAAA;;AAC5E;AACF,KAAA;AACF;EAEA;AACE,IAAA,MAAMK,OAAU,GAAA;AAAC,MAAA;;AACjB,IAAA,IAAA,CAAKC,SAASD,OAAAA,CAAAA;AAChB;EAEA,MAAME,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1C,IAAA,MAAM,EAAEC,IAAAA,EAAMP,QAAQ,EAAA,GAAK,IAAKF,CAAAA,MAAAA;AAChC,IAAA,MAAMU,6BAAmB,MAAA,CAAA,MAAA,IAAA,CAAKX,QAASY,CAAAA,MAAAA,GAAS,IAAIF,IAAjC,EAAA,YAAA,CAAA;AAEnB,IAAA,IAAIC,YAAc,EAAA;AAChBE,MACEA,WAAA,CAAA,IAAA,CAAKb,QACLG,EAAAA,QAAAA,CAASC,eACTU,EAAAA,mBAAAA,EACAC,cAAOC,eAAAA,CAAAA,EACPC,cAAQ,CAAA,CAACT,QAAAA,KAAAA;AACP,QAAA,MAAMC,MAAQ,GAAA,IAAA,CAAKT,QAASkB,CAAAA,OAAAA,CAAQV,QAAAA,CAAAA;AACpC,QAAA,IAAIC,WAAU,EAAI,EAAA;AAChB,UAAA,MAAM,IAAIU,yBAAAA,CAAiB,CAAuC,mCAAA,CAAA,EAAA,EAAI,EAAA;YACpEC,OAAS,EAAA;cAAEZ,OAAAA,EAAAA,QAAAA;AAASR,cAAAA,QAAAA,EAAU,IAAKA,CAAAA;AAAS;WAC9C,CAAA;AACF;AACA,QAAKA,IAAAA,CAAAA,QAAAA,CAASqB,MAAOZ,CAAAA,MAAAA,EAAO,CAAA,CAAA;AAC9B,OAAA,CAAA,CAAA;AAGF,MAAA,IAAIE,YAAc,EAAA;AAChB,QAAM,MAAA,IAAIQ,0BACR,CAAyF,uFAAA,CAAA,CAAA;AAE7F;AACF;AAEAV,IAAAA,KAAAA,GAAQa,sBAAYb,CAAAA,KAAAA,IAAS,IAAKT,CAAAA,QAAAA,CAASY,MAAQ,EAAA;MAAEW,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKxB,QAASY,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKZ,QAASqB,CAAAA,MAAAA,CAAOZ,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMiB,OAAOjB,OAAkB,EAAA;AAC7B,IAAOkB,OAAAA,yBAAAA,CAAgB,IAAK1B,CAAAA,QAAAA,EAAUQ,OAAAA,CAAAA;AACxC;EAEAmB,KAAQ,GAAA;AACN,IAAA,IAAA,CAAK3B,SAASY,MAAS,GAAA,CAAA;AACzB;EAEAgB,cAAiB,GAAA;AACf,IAAO,OAAA;MAAE3B,MAAQ4B,EAAAA,qBAAAA,CAAY,KAAK5B,MAAM,CAAA;MAAGD,QAAU6B,EAAAA,qBAAAA,CAAY,KAAK7B,QAAQ;AAAE,KAAA;AAClF;AAEA8B,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"slidingMemory.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { filter, forEach, isTruthy, pipe } from \"remeda\";\nimport { castArray, removeFromArray } from \"@/internals/helpers/array.js\";\nimport { RequiredNested } from \"@/internals/types.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\n\nexport interface Handlers {\n removalSelector: (messages: Message[]) => Message | Message[];\n}\n\nexport interface SlidingWindowMemoryInput {\n size: number;\n handlers?: Partial<Handlers>;\n}\n\nexport class SlidingMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n public readonly config: RequiredNested<SlidingWindowMemoryInput>;\n\n constructor(config: SlidingWindowMemoryInput) {\n super();\n this.config = {\n ...config,\n handlers: {\n removalSelector:\n config.handlers?.removalSelector ?? ((messages: Message[]) => [messages[0]]),\n },\n };\n }\n\n static {\n const aliases = [\"SlidingWindowMemory\"];\n this.register(aliases);\n }\n\n async add(message: Message, index?: number) {\n const { size, handlers } = this.config;\n const isOverflow = () => this.messages.length + 1 > size;\n\n if (isOverflow()) {\n pipe(\n this.messages,\n handlers.removalSelector,\n castArray,\n filter(isTruthy),\n forEach((message) => {\n const index = this.messages.indexOf(message);\n if (index === -1) {\n throw new MemoryFatalError(`Cannot delete non existing message.`, [], {\n context: { message, messages: this.messages },\n });\n }\n this.messages.splice(index, 1);\n }),\n );\n\n if (isOverflow()) {\n throw new MemoryFatalError(\n `Custom memory removalSelector did not return any message. Memory overflow has occurred.`,\n );\n }\n }\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n createSnapshot() {\n return { config: shallowCopy(this.config), messages: shallowCopy(this.messages) };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["slidingMemory.ts"],"names":["SlidingMemory","BaseMemory","messages","config","constructor","handlers","removalSelector","aliases","register","add","message","index","size","isOverflow","length","pipe","castArray","filter","isTruthy","forEach","indexOf","MemoryFatalError","context","splice","ensureRange","min","max","delete","removeFromArray","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;AAiCO,MAAMA,sBAAsBC,UAAAA,CAAAA;EAjCnC;;;AAkCkBC,EAAAA,QAAAA,GAAsB,EAAA;AACtBC,EAAAA,MAAAA;AAEhBC,EAAAA,WAAAA,CAAYD,MAAkC,EAAA;AAC5C,IAAK,KAAA,EAAA;AACL,IAAA,IAAA,CAAKA,MAAS,GAAA;MACZ,GAAGA,MAAAA;MACHE,QAAU,EAAA;AACRC,QAAAA,eAAAA,EACEH,MAAOE,CAAAA,QAAAA,EAAUC,eAAoB,KAAA,CAACJ,QAAwB,KAAA;AAACA,UAAAA,QAAAA,CAAS,CAAA;;AAC5E;AACF,KAAA;AACF;EAEA;AACE,IAAA,MAAMK,OAAU,GAAA;AAAC,MAAA;;AACjB,IAAA,IAAA,CAAKC,SAASD,OAAAA,CAAAA;AAChB;EAEA,MAAME,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1C,IAAA,MAAM,EAAEC,IAAAA,EAAMP,QAAQ,EAAA,GAAK,IAAKF,CAAAA,MAAAA;AAChC,IAAA,MAAMU,6BAAmB,MAAA,CAAA,MAAA,IAAA,CAAKX,QAASY,CAAAA,MAAAA,GAAS,IAAIF,IAAjC,EAAA,YAAA,CAAA;AAEnB,IAAA,IAAIC,YAAc,EAAA;AAChBE,MACE,IAAA,CAAA,IAAA,CAAKb,QACLG,EAAAA,QAAAA,CAASC,eACTU,EAAAA,SAAAA,EACAC,OAAOC,QAAAA,CAAAA,EACPC,OAAQ,CAAA,CAACT,QAAAA,KAAAA;AACP,QAAA,MAAMC,MAAQ,GAAA,IAAA,CAAKT,QAASkB,CAAAA,OAAAA,CAAQV,QAAAA,CAAAA;AACpC,QAAA,IAAIC,WAAU,EAAI,EAAA;AAChB,UAAA,MAAM,IAAIU,gBAAAA,CAAiB,CAAuC,mCAAA,CAAA,EAAA,EAAI,EAAA;YACpEC,OAAS,EAAA;cAAEZ,OAAAA,EAAAA,QAAAA;AAASR,cAAAA,QAAAA,EAAU,IAAKA,CAAAA;AAAS;WAC9C,CAAA;AACF;AACA,QAAKA,IAAAA,CAAAA,QAAAA,CAASqB,MAAOZ,CAAAA,MAAAA,EAAO,CAAA,CAAA;AAC9B,OAAA,CAAA,CAAA;AAGF,MAAA,IAAIE,YAAc,EAAA;AAChB,QAAM,MAAA,IAAIQ,iBACR,CAAyF,uFAAA,CAAA,CAAA;AAE7F;AACF;AAEAV,IAAAA,KAAAA,GAAQa,WAAYb,CAAAA,KAAAA,IAAS,IAAKT,CAAAA,QAAAA,CAASY,MAAQ,EAAA;MAAEW,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKxB,QAASY,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKZ,QAASqB,CAAAA,MAAAA,CAAOZ,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMiB,OAAOjB,OAAkB,EAAA;AAC7B,IAAOkB,OAAAA,eAAAA,CAAgB,IAAK1B,CAAAA,QAAAA,EAAUQ,OAAAA,CAAAA;AACxC;EAEAmB,KAAQ,GAAA;AACN,IAAA,IAAA,CAAK3B,SAASY,MAAS,GAAA,CAAA;AACzB;EAEAgB,cAAiB,GAAA;AACf,IAAO,OAAA;MAAE3B,MAAQ4B,EAAAA,WAAAA,CAAY,KAAK5B,MAAM,CAAA;MAAGD,QAAU6B,EAAAA,WAAAA,CAAY,KAAK7B,QAAQ;AAAE,KAAA;AAClF;AAEA8B,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"slidingMemory.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { filter, forEach, isTruthy, pipe } from \"remeda\";\nimport { castArray, removeFromArray } from \"@/internals/helpers/array.js\";\nimport { RequiredNested } from \"@/internals/types.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\n\nexport interface Handlers {\n removalSelector: (messages: Message[]) => Message | Message[];\n}\n\nexport interface SlidingWindowMemoryInput {\n size: number;\n handlers?: Partial<Handlers>;\n}\n\nexport class SlidingMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n public readonly config: RequiredNested<SlidingWindowMemoryInput>;\n\n constructor(config: SlidingWindowMemoryInput) {\n super();\n this.config = {\n ...config,\n handlers: {\n removalSelector:\n config.handlers?.removalSelector ?? ((messages: Message[]) => [messages[0]]),\n },\n };\n }\n\n static {\n const aliases = [\"SlidingWindowMemory\"];\n this.register(aliases);\n }\n\n async add(message: Message, index?: number) {\n const { size, handlers } = this.config;\n const isOverflow = () => this.messages.length + 1 > size;\n\n if (isOverflow()) {\n pipe(\n this.messages,\n handlers.removalSelector,\n castArray,\n filter(isTruthy),\n forEach((message) => {\n const index = this.messages.indexOf(message);\n if (index === -1) {\n throw new MemoryFatalError(`Cannot delete non existing message.`, [], {\n context: { message, messages: this.messages },\n });\n }\n this.messages.splice(index, 1);\n }),\n );\n\n if (isOverflow()) {\n throw new MemoryFatalError(\n `Custom memory removalSelector did not return any message. Memory overflow has occurred.`,\n );\n }\n }\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n createSnapshot() {\n return { config: shallowCopy(this.config), messages: shallowCopy(this.messages) };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["slidingMemory.ts"],"names":["SlidingMemory","BaseMemory","messages","config","constructor","handlers","removalSelector","aliases","register","add","message","index","size","isOverflow","length","pipe","castArray","filter","isTruthy","forEach","indexOf","MemoryFatalError","context","splice","ensureRange","min","max","delete","removeFromArray","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;AAiCO,MAAMA,sBAAsBC,UAAAA,CAAAA;EAjCnC;;;AAkCkBC,EAAAA,QAAAA,GAAsB,EAAA;AACtBC,EAAAA,MAAAA;AAEhBC,EAAAA,WAAAA,CAAYD,MAAkC,EAAA;AAC5C,IAAK,KAAA,EAAA;AACL,IAAA,IAAA,CAAKA,MAAS,GAAA;MACZ,GAAGA,MAAAA;MACHE,QAAU,EAAA;AACRC,QAAAA,eAAAA,EACEH,MAAOE,CAAAA,QAAAA,EAAUC,eAAoB,KAAA,CAACJ,QAAwB,KAAA;AAACA,UAAAA,QAAAA,CAAS,CAAA;;AAC5E;AACF,KAAA;AACF;EAEA;AACE,IAAA,MAAMK,OAAU,GAAA;AAAC,MAAA;;AACjB,IAAA,IAAA,CAAKC,SAASD,OAAAA,CAAAA;AAChB;EAEA,MAAME,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1C,IAAA,MAAM,EAAEC,IAAAA,EAAMP,QAAQ,EAAA,GAAK,IAAKF,CAAAA,MAAAA;AAChC,IAAA,MAAMU,6BAAmB,MAAA,CAAA,MAAA,IAAA,CAAKX,QAASY,CAAAA,MAAAA,GAAS,IAAIF,IAAjC,EAAA,YAAA,CAAA;AAEnB,IAAA,IAAIC,YAAc,EAAA;AAChBE,MACE,IAAA,CAAA,IAAA,CAAKb,QACLG,EAAAA,QAAAA,CAASC,eACTU,EAAAA,SAAAA,EACAC,OAAOC,QAAAA,CAAAA,EACPC,OAAQ,CAAA,CAACT,QAAAA,KAAAA;AACP,QAAA,MAAMC,MAAQ,GAAA,IAAA,CAAKT,QAASkB,CAAAA,OAAAA,CAAQV,QAAAA,CAAAA;AACpC,QAAA,IAAIC,WAAU,EAAI,EAAA;AAChB,UAAA,MAAM,IAAIU,gBAAAA,CAAiB,CAAuC,mCAAA,CAAA,EAAA,EAAI,EAAA;YACpEC,OAAS,EAAA;cAAEZ,OAAAA,EAAAA,QAAAA;AAASR,cAAAA,QAAAA,EAAU,IAAKA,CAAAA;AAAS;WAC9C,CAAA;AACF;AACA,QAAKA,IAAAA,CAAAA,QAAAA,CAASqB,MAAOZ,CAAAA,MAAAA,EAAO,CAAA,CAAA;AAC9B,OAAA,CAAA,CAAA;AAGF,MAAA,IAAIE,YAAc,EAAA;AAChB,QAAM,MAAA,IAAIQ,iBACR,CAAyF,uFAAA,CAAA,CAAA;AAE7F;AACF;AAEAV,IAAAA,KAAAA,GAAQa,WAAYb,CAAAA,KAAAA,IAAS,IAAKT,CAAAA,QAAAA,CAASY,MAAQ,EAAA;MAAEW,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKxB,QAASY,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKZ,QAASqB,CAAAA,MAAAA,CAAOZ,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMiB,OAAOjB,OAAkB,EAAA;AAC7B,IAAOkB,OAAAA,eAAAA,CAAgB,IAAK1B,CAAAA,QAAAA,EAAUQ,OAAAA,CAAAA;AACxC;EAEAmB,KAAQ,GAAA;AACN,IAAA,IAAA,CAAK3B,SAASY,MAAS,GAAA,CAAA;AACzB;EAEAgB,cAAiB,GAAA;AACf,IAAO,OAAA;MAAE3B,MAAQ4B,EAAAA,WAAAA,CAAY,KAAK5B,MAAM,CAAA;MAAGD,QAAU6B,EAAAA,WAAAA,CAAY,KAAK7B,QAAQ;AAAE,KAAA;AAClF;AAEA8B,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"slidingMemory.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Message } from \"@/backend/message.js\";\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { filter, forEach, isTruthy, pipe } from \"remeda\";\nimport { castArray, removeFromArray } from \"@/internals/helpers/array.js\";\nimport { RequiredNested } from \"@/internals/types.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\n\nexport interface Handlers {\n removalSelector: (messages: Message[]) => Message | Message[];\n}\n\nexport interface SlidingWindowMemoryInput {\n size: number;\n handlers?: Partial<Handlers>;\n}\n\nexport class SlidingMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n public readonly config: RequiredNested<SlidingWindowMemoryInput>;\n\n constructor(config: SlidingWindowMemoryInput) {\n super();\n this.config = {\n ...config,\n handlers: {\n removalSelector:\n config.handlers?.removalSelector ?? ((messages: Message[]) => [messages[0]]),\n },\n };\n }\n\n static {\n const aliases = [\"SlidingWindowMemory\"];\n this.register(aliases);\n }\n\n async add(message: Message, index?: number) {\n const { size, handlers } = this.config;\n const isOverflow = () => this.messages.length + 1 > size;\n\n if (isOverflow()) {\n pipe(\n this.messages,\n handlers.removalSelector,\n castArray,\n filter(isTruthy),\n forEach((message) => {\n const index = this.messages.indexOf(message);\n if (index === -1) {\n throw new MemoryFatalError(`Cannot delete non existing message.`, [], {\n context: { message, messages: this.messages },\n });\n }\n this.messages.splice(index, 1);\n }),\n );\n\n if (isOverflow()) {\n throw new MemoryFatalError(\n `Custom memory removalSelector did not return any message. Memory overflow has occurred.`,\n );\n }\n }\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n createSnapshot() {\n return { config: shallowCopy(this.config), messages: shallowCopy(this.messages) };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["summarizeMemory.ts"],"names":["SummarizeMemoryTemplate","PromptTemplate","schema","z","object","summary","string","template","SummarizeMemory","BaseMemory","llm","constructor","config","register","messages","currentSummary","AssistantMessage","delete","message","add","_index","response","create","SystemMessage","render","role","text","getTextContent","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;;;AA4BaA,MAAAA,uBAAAA,GAA0B,IAAIC,2BAAe,CAAA;AACxDC,EAAAA,MAAAA,EAAQC,MAAEC,MAAO,CAAA;AACfC,IAAAA,OAAAA,EAASF,MAAEG,MAAM;GACnB,CAAA;EACAC,QAAU,EAAA,CAAA;;;;AAIZ,CAAA;AAEO,MAAMC,wBAAwBC,mBAAAA,CAAAA;EAtCrC;;;EAuCYJ,OAAU,GAAA,EAAA;AACVE,EAAAA,QAAAA;AACAG,EAAAA,GAAAA;AAEVC,EAAAA,WAAAA,CAAYC,MAA8B,EAAA;AACxC,IAAK,KAAA,EAAA;AACL,IAAKL,IAAAA,CAAAA,QAAAA,GAAWK,OAAOL,QAAYP,IAAAA,uBAAAA;AACnC,IAAA,IAAA,CAAKU,MAAME,MAAOF,CAAAA,GAAAA;AACpB;EAEA;AACE,IAAA,IAAA,CAAKG,QAAQ,EAAA;AACf;AAEA,EAAA,IAAIC,QAAsB,GAAA;AACxB,IAAA,MAAMC,iBAAiB,IAAKV,CAAAA,OAAAA;AAC5B,IAAA,IAAI,CAACU,cAAgB,EAAA;AACnB,MAAA,OAAO,EAAA;AACT;AAEA,IAAO,OAAA;AAAC,MAAA,IAAIC,6BAAiBD,cAAAA;;AAC/B;;AAGA,EAAA,MAAME,OAAOC,OAAkB,EAAA;AAC7B,IAAO,OAAA,KAAA;AACT;EAEA,MAAMC,GAAAA,CAAID,SAAkBE,MAAiB,EAAA;AAC3C,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKX,CAAAA,GAAAA,CAAIY,MAAO,CAAA;MACrCR,QAAU,EAAA;QACR,IAAIS,yBAAAA,CACF,IAAKhB,CAAAA,QAAAA,CAASiB,MAAO,CAAA;AACnBnB,UAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,SAAA,CAAA,CAAA;AAEF,QAAA,IAAIW,4BAAiB,CAAA,CAAA;EAC3BE,OAAQO,CAAAA,IAAI,CAAKP,EAAAA,EAAAA,OAAAA,CAAQQ,IAAI;;;AAG9B,CAAA;;KAEG,CAAA;AACA,IAAKrB,IAAAA,CAAAA,OAAAA,GAAUgB,SAASM,cAAc,EAAA;AACxC;EAEAC,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKvB,OAAU,GAAA,EAAA;AACjB;EAEAwB,cAAiB,GAAA;AACf,IAAO,OAAA;AACLxB,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdE,MAAAA,QAAAA,EAAU,IAAKA,CAAAA,QAAAA;AACfG,MAAAA,GAAAA,EAAK,IAAKA,CAAAA,GAAAA;MACVI,QAAUgB,EAAAA,qBAAAA,CAAY,KAAKhB,QAAQ;AACrC,KAAA;AACF;AAEAiB,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"summarizeMemory.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AssistantMessage, Message, SystemMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { z } from \"zod\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\nexport interface SummarizeMemoryInput {\n llm: ChatModel;\n template?: typeof SummarizeMemoryTemplate;\n}\n\nexport const SummarizeMemoryTemplate = new PromptTemplate({\n schema: z.object({\n summary: z.string(),\n }),\n template: `Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nCurrent summary:\n{{summary}}`,\n});\n\nexport class SummarizeMemory extends BaseMemory {\n protected summary = \"\";\n protected template;\n protected llm;\n\n constructor(config: SummarizeMemoryInput) {\n super();\n this.template = config.template ?? SummarizeMemoryTemplate;\n this.llm = config.llm;\n }\n\n static {\n this.register();\n }\n\n get messages(): Message[] {\n const currentSummary = this.summary;\n if (!currentSummary) {\n return [];\n }\n\n return [new AssistantMessage(currentSummary)];\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n async add(message: Message, _index?: number) {\n const response = await this.llm.create({\n messages: [\n new SystemMessage(\n this.template.render({\n summary: this.summary,\n }),\n ),\n new AssistantMessage(`New lines of conversation:\n${message.role}: ${message.text}\n\nNew summary:\n`),\n ],\n });\n this.summary = response.getTextContent();\n }\n\n reset() {\n this.summary = \"\";\n }\n\n createSnapshot() {\n return {\n summary: this.summary,\n template: this.template,\n llm: this.llm,\n messages: shallowCopy(this.messages),\n };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["summarizeMemory.ts"],"names":["SummarizeMemoryTemplate","PromptTemplate","schema","z","object","summary","string","template","SummarizeMemory","BaseMemory","llm","constructor","config","register","messages","currentSummary","AssistantMessage","delete","message","add","_index","response","create","SystemMessage","render","role","text","getTextContent","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;;;AA4BaA,MAAAA,uBAAAA,GAA0B,IAAIC,2BAAe,CAAA;AACxDC,EAAAA,MAAAA,EAAQC,MAAEC,MAAO,CAAA;AACfC,IAAAA,OAAAA,EAASF,MAAEG,MAAM;GACnB,CAAA;EACAC,QAAU,EAAA,CAAA;;;;AAIZ,CAAA;AAEO,MAAMC,wBAAwBC,mBAAAA,CAAAA;EAtCrC;;;EAuCYJ,OAAU,GAAA,EAAA;AACVE,EAAAA,QAAAA;AACAG,EAAAA,GAAAA;AAEVC,EAAAA,WAAAA,CAAYC,MAA8B,EAAA;AACxC,IAAK,KAAA,EAAA;AACL,IAAKL,IAAAA,CAAAA,QAAAA,GAAWK,OAAOL,QAAYP,IAAAA,uBAAAA;AACnC,IAAA,IAAA,CAAKU,MAAME,MAAOF,CAAAA,GAAAA;AACpB;EAEA;AACE,IAAA,IAAA,CAAKG,QAAQ,EAAA;AACf;AAEA,EAAA,IAAIC,QAAsB,GAAA;AACxB,IAAA,MAAMC,iBAAiB,IAAKV,CAAAA,OAAAA;AAC5B,IAAA,IAAI,CAACU,cAAgB,EAAA;AACnB,MAAA,OAAO,EAAA;AACT;AAEA,IAAO,OAAA;AAAC,MAAA,IAAIC,6BAAiBD,cAAAA;;AAC/B;;AAGA,EAAA,MAAME,OAAOC,OAAkB,EAAA;AAC7B,IAAO,OAAA,KAAA;AACT;EAEA,MAAMC,GAAAA,CAAID,SAAkBE,MAAiB,EAAA;AAC3C,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKX,CAAAA,GAAAA,CAAIY,MAAO,CAAA;MACrCR,QAAU,EAAA;QACR,IAAIS,yBAAAA,CACF,IAAKhB,CAAAA,QAAAA,CAASiB,MAAO,CAAA;AACnBnB,UAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,SAAA,CAAA,CAAA;AAEF,QAAA,IAAIW,4BAAiB,CAAA,CAAA;EAC3BE,OAAQO,CAAAA,IAAI,CAAKP,EAAAA,EAAAA,OAAAA,CAAQQ,IAAI;;;AAG9B,CAAA;;KAEG,CAAA;AACA,IAAKrB,IAAAA,CAAAA,OAAAA,GAAUgB,SAASM,cAAc,EAAA;AACxC;EAEAC,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKvB,OAAU,GAAA,EAAA;AACjB;EAEAwB,cAAiB,GAAA;AACf,IAAO,OAAA;AACLxB,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdE,MAAAA,QAAAA,EAAU,IAAKA,CAAAA,QAAAA;AACfG,MAAAA,GAAAA,EAAK,IAAKA,CAAAA,GAAAA;MACVI,QAAUgB,EAAAA,qBAAAA,CAAY,KAAKhB,QAAQ;AACrC,KAAA;AACF;AAEAiB,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"summarizeMemory.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AssistantMessage, Message, SystemMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { z } from \"zod\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\nexport interface SummarizeMemoryInput {\n llm: ChatModel;\n template?: typeof SummarizeMemoryTemplate;\n}\n\nexport const SummarizeMemoryTemplate = new PromptTemplate({\n schema: z.object({\n summary: z.string(),\n }),\n template: `Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nCurrent summary:\n{{summary}}`,\n});\n\nexport class SummarizeMemory extends BaseMemory {\n protected summary = \"\";\n protected template;\n protected llm;\n\n constructor(config: SummarizeMemoryInput) {\n super();\n this.template = config.template ?? SummarizeMemoryTemplate;\n this.llm = config.llm;\n }\n\n static {\n this.register();\n }\n\n get messages(): Message[] {\n const currentSummary = this.summary;\n if (!currentSummary) {\n return [];\n }\n\n return [new AssistantMessage(currentSummary)];\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n async add(message: Message, _index?: number) {\n const response = await this.llm.create({\n messages: [\n new SystemMessage(\n this.template.render({\n summary: this.summary,\n }),\n ),\n new AssistantMessage(`New lines of conversation:\n${message.role}: ${message.text}\n\nNew summary:\n`),\n ],\n });\n this.summary = response.getTextContent();\n }\n\n reset() {\n this.summary = \"\";\n }\n\n createSnapshot() {\n return {\n summary: this.summary,\n template: this.template,\n llm: this.llm,\n messages: shallowCopy(this.messages),\n };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { Message, MessageContentPart } from '../backend/message.cjs';
2
2
  import { BaseMemory } from './base.cjs';
3
3
  import { PromptTemplate } from '../template.cjs';
4
4
  import { z } from 'zod';
5
- import { ChatModel } from '../backend/chat.cjs';
5
+ import { m as ChatModel } from '../chat-DvMzAHj6.cjs';
6
6
  import '../internals/serializable.cjs';
7
7
  import '../internals/types.cjs';
8
8
  import '../internals/helpers/guards.cjs';
@@ -10,16 +10,16 @@ import 'ai';
10
10
  import '../errors.cjs';
11
11
  import 'ajv';
12
12
  import '../context.cjs';
13
- import '../emitter-C9EN5B0j.cjs';
13
+ import '../emitter-D5Mu0EEH.cjs';
14
14
  import '../internals/helpers/promise.cjs';
15
15
  import 'promise-based-task';
16
16
  import '../cache/base.cjs';
17
- import '../backend/utils.cjs';
18
17
  import '../backend/constants.cjs';
19
18
  import '../tools/base.cjs';
20
19
  import '../internals/helpers/schema.cjs';
21
20
  import 'zod-to-json-schema';
22
- import '@ai-sdk/provider';
21
+ import '../logger/logger.cjs';
22
+ import 'pino';
23
23
 
24
24
  interface SummarizeMemoryInput {
25
25
  llm: ChatModel;
@@ -2,7 +2,7 @@ import { Message, MessageContentPart } from '../backend/message.js';
2
2
  import { BaseMemory } from './base.js';
3
3
  import { PromptTemplate } from '../template.js';
4
4
  import { z } from 'zod';
5
- import { ChatModel } from '../backend/chat.js';
5
+ import { m as ChatModel } from '../chat-BdN8hGWn.js';
6
6
  import '../internals/serializable.js';
7
7
  import '../internals/types.js';
8
8
  import '../internals/helpers/guards.js';
@@ -10,16 +10,16 @@ import 'ai';
10
10
  import '../errors.js';
11
11
  import 'ajv';
12
12
  import '../context.js';
13
- import '../emitter-BxVxGBbJ.js';
13
+ import '../emitter-C3dO-s2P.js';
14
14
  import '../internals/helpers/promise.js';
15
15
  import 'promise-based-task';
16
16
  import '../cache/base.js';
17
- import '../backend/utils.js';
18
17
  import '../backend/constants.js';
19
18
  import '../tools/base.js';
20
19
  import '../internals/helpers/schema.js';
21
20
  import 'zod-to-json-schema';
22
- import '@ai-sdk/provider';
21
+ import '../logger/logger.js';
22
+ import 'pino';
23
23
 
24
24
  interface SummarizeMemoryInput {
25
25
  llm: ChatModel;
@@ -1 +1 @@
1
- {"version":3,"sources":["summarizeMemory.ts"],"names":["SummarizeMemoryTemplate","PromptTemplate","schema","z","object","summary","string","template","SummarizeMemory","BaseMemory","llm","constructor","config","register","messages","currentSummary","AssistantMessage","delete","message","add","_index","response","create","SystemMessage","render","role","text","getTextContent","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;AA4BaA,MAAAA,uBAAAA,GAA0B,IAAIC,cAAe,CAAA;AACxDC,EAAAA,MAAAA,EAAQC,EAAEC,MAAO,CAAA;AACfC,IAAAA,OAAAA,EAASF,EAAEG,MAAM;GACnB,CAAA;EACAC,QAAU,EAAA,CAAA;;;;AAIZ,CAAA;AAEO,MAAMC,wBAAwBC,UAAAA,CAAAA;EAtCrC;;;EAuCYJ,OAAU,GAAA,EAAA;AACVE,EAAAA,QAAAA;AACAG,EAAAA,GAAAA;AAEVC,EAAAA,WAAAA,CAAYC,MAA8B,EAAA;AACxC,IAAK,KAAA,EAAA;AACL,IAAKL,IAAAA,CAAAA,QAAAA,GAAWK,OAAOL,QAAYP,IAAAA,uBAAAA;AACnC,IAAA,IAAA,CAAKU,MAAME,MAAOF,CAAAA,GAAAA;AACpB;EAEA;AACE,IAAA,IAAA,CAAKG,QAAQ,EAAA;AACf;AAEA,EAAA,IAAIC,QAAsB,GAAA;AACxB,IAAA,MAAMC,iBAAiB,IAAKV,CAAAA,OAAAA;AAC5B,IAAA,IAAI,CAACU,cAAgB,EAAA;AACnB,MAAA,OAAO,EAAA;AACT;AAEA,IAAO,OAAA;AAAC,MAAA,IAAIC,iBAAiBD,cAAAA;;AAC/B;;AAGA,EAAA,MAAME,OAAOC,OAAkB,EAAA;AAC7B,IAAO,OAAA,KAAA;AACT;EAEA,MAAMC,GAAAA,CAAID,SAAkBE,MAAiB,EAAA;AAC3C,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKX,CAAAA,GAAAA,CAAIY,MAAO,CAAA;MACrCR,QAAU,EAAA;QACR,IAAIS,aAAAA,CACF,IAAKhB,CAAAA,QAAAA,CAASiB,MAAO,CAAA;AACnBnB,UAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,SAAA,CAAA,CAAA;AAEF,QAAA,IAAIW,gBAAiB,CAAA,CAAA;EAC3BE,OAAQO,CAAAA,IAAI,CAAKP,EAAAA,EAAAA,OAAAA,CAAQQ,IAAI;;;AAG9B,CAAA;;KAEG,CAAA;AACA,IAAKrB,IAAAA,CAAAA,OAAAA,GAAUgB,SAASM,cAAc,EAAA;AACxC;EAEAC,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKvB,OAAU,GAAA,EAAA;AACjB;EAEAwB,cAAiB,GAAA;AACf,IAAO,OAAA;AACLxB,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdE,MAAAA,QAAAA,EAAU,IAAKA,CAAAA,QAAAA;AACfG,MAAAA,GAAAA,EAAK,IAAKA,CAAAA,GAAAA;MACVI,QAAUgB,EAAAA,WAAAA,CAAY,KAAKhB,QAAQ;AACrC,KAAA;AACF;AAEAiB,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"summarizeMemory.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AssistantMessage, Message, SystemMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { z } from \"zod\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\nexport interface SummarizeMemoryInput {\n llm: ChatModel;\n template?: typeof SummarizeMemoryTemplate;\n}\n\nexport const SummarizeMemoryTemplate = new PromptTemplate({\n schema: z.object({\n summary: z.string(),\n }),\n template: `Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nCurrent summary:\n{{summary}}`,\n});\n\nexport class SummarizeMemory extends BaseMemory {\n protected summary = \"\";\n protected template;\n protected llm;\n\n constructor(config: SummarizeMemoryInput) {\n super();\n this.template = config.template ?? SummarizeMemoryTemplate;\n this.llm = config.llm;\n }\n\n static {\n this.register();\n }\n\n get messages(): Message[] {\n const currentSummary = this.summary;\n if (!currentSummary) {\n return [];\n }\n\n return [new AssistantMessage(currentSummary)];\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n async add(message: Message, _index?: number) {\n const response = await this.llm.create({\n messages: [\n new SystemMessage(\n this.template.render({\n summary: this.summary,\n }),\n ),\n new AssistantMessage(`New lines of conversation:\n${message.role}: ${message.text}\n\nNew summary:\n`),\n ],\n });\n this.summary = response.getTextContent();\n }\n\n reset() {\n this.summary = \"\";\n }\n\n createSnapshot() {\n return {\n summary: this.summary,\n template: this.template,\n llm: this.llm,\n messages: shallowCopy(this.messages),\n };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
1
+ {"version":3,"sources":["summarizeMemory.ts"],"names":["SummarizeMemoryTemplate","PromptTemplate","schema","z","object","summary","string","template","SummarizeMemory","BaseMemory","llm","constructor","config","register","messages","currentSummary","AssistantMessage","delete","message","add","_index","response","create","SystemMessage","render","role","text","getTextContent","reset","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;;AA4BaA,MAAAA,uBAAAA,GAA0B,IAAIC,cAAe,CAAA;AACxDC,EAAAA,MAAAA,EAAQC,EAAEC,MAAO,CAAA;AACfC,IAAAA,OAAAA,EAASF,EAAEG,MAAM;GACnB,CAAA;EACAC,QAAU,EAAA,CAAA;;;;AAIZ,CAAA;AAEO,MAAMC,wBAAwBC,UAAAA,CAAAA;EAtCrC;;;EAuCYJ,OAAU,GAAA,EAAA;AACVE,EAAAA,QAAAA;AACAG,EAAAA,GAAAA;AAEVC,EAAAA,WAAAA,CAAYC,MAA8B,EAAA;AACxC,IAAK,KAAA,EAAA;AACL,IAAKL,IAAAA,CAAAA,QAAAA,GAAWK,OAAOL,QAAYP,IAAAA,uBAAAA;AACnC,IAAA,IAAA,CAAKU,MAAME,MAAOF,CAAAA,GAAAA;AACpB;EAEA;AACE,IAAA,IAAA,CAAKG,QAAQ,EAAA;AACf;AAEA,EAAA,IAAIC,QAAsB,GAAA;AACxB,IAAA,MAAMC,iBAAiB,IAAKV,CAAAA,OAAAA;AAC5B,IAAA,IAAI,CAACU,cAAgB,EAAA;AACnB,MAAA,OAAO,EAAA;AACT;AAEA,IAAO,OAAA;AAAC,MAAA,IAAIC,iBAAiBD,cAAAA;;AAC/B;;AAGA,EAAA,MAAME,OAAOC,OAAkB,EAAA;AAC7B,IAAO,OAAA,KAAA;AACT;EAEA,MAAMC,GAAAA,CAAID,SAAkBE,MAAiB,EAAA;AAC3C,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKX,CAAAA,GAAAA,CAAIY,MAAO,CAAA;MACrCR,QAAU,EAAA;QACR,IAAIS,aAAAA,CACF,IAAKhB,CAAAA,QAAAA,CAASiB,MAAO,CAAA;AACnBnB,UAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAChB,SAAA,CAAA,CAAA;AAEF,QAAA,IAAIW,gBAAiB,CAAA,CAAA;EAC3BE,OAAQO,CAAAA,IAAI,CAAKP,EAAAA,EAAAA,OAAAA,CAAQQ,IAAI;;;AAG9B,CAAA;;KAEG,CAAA;AACA,IAAKrB,IAAAA,CAAAA,OAAAA,GAAUgB,SAASM,cAAc,EAAA;AACxC;EAEAC,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKvB,OAAU,GAAA,EAAA;AACjB;EAEAwB,cAAiB,GAAA;AACf,IAAO,OAAA;AACLxB,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdE,MAAAA,QAAAA,EAAU,IAAKA,CAAAA,QAAAA;AACfG,MAAAA,GAAAA,EAAK,IAAKA,CAAAA,GAAAA;MACVI,QAAUgB,EAAAA,WAAAA,CAAY,KAAKhB,QAAQ;AACrC,KAAA;AACF;AAEAiB,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,KAAAA,CAAAA;AACtB;AACF","file":"summarizeMemory.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AssistantMessage, Message, SystemMessage } from \"@/backend/message.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { z } from \"zod\";\nimport { ChatModel } from \"@/backend/chat.js\";\n\nexport interface SummarizeMemoryInput {\n llm: ChatModel;\n template?: typeof SummarizeMemoryTemplate;\n}\n\nexport const SummarizeMemoryTemplate = new PromptTemplate({\n schema: z.object({\n summary: z.string(),\n }),\n template: `Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nCurrent summary:\n{{summary}}`,\n});\n\nexport class SummarizeMemory extends BaseMemory {\n protected summary = \"\";\n protected template;\n protected llm;\n\n constructor(config: SummarizeMemoryInput) {\n super();\n this.template = config.template ?? SummarizeMemoryTemplate;\n this.llm = config.llm;\n }\n\n static {\n this.register();\n }\n\n get messages(): Message[] {\n const currentSummary = this.summary;\n if (!currentSummary) {\n return [];\n }\n\n return [new AssistantMessage(currentSummary)];\n }\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n async delete(message: Message) {\n return false;\n }\n\n async add(message: Message, _index?: number) {\n const response = await this.llm.create({\n messages: [\n new SystemMessage(\n this.template.render({\n summary: this.summary,\n }),\n ),\n new AssistantMessage(`New lines of conversation:\n${message.role}: ${message.text}\n\nNew summary:\n`),\n ],\n });\n this.summary = response.getTextContent();\n }\n\n reset() {\n this.summary = \"\";\n }\n\n createSnapshot() {\n return {\n summary: this.summary,\n template: this.template,\n llm: this.llm,\n messages: shallowCopy(this.messages),\n };\n }\n\n loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tokenMemory.ts"],"names":["simpleEstimate","msg","Math","ceil","text","length","simpleTokenize","msgs","sum","map","TokenMemory","BaseMemory","messages","threshold","syncThreshold","maxTokens","tokensByMessage","WeakMap","handlers","constructor","config","capacityThreshold","estimate","role","tokenize","removalSelector","R","clamp","min","max","TypeError","register","tokensUsed","get","tokensCount","isDirty","some","dirty","add","message","index","meta","has","MemoryFatalError","messageToDelete","exists","delete","set","ensureRange","splice","sync","removeFromArray","Promise","all","cache","addMany","reset","stats","messagesCount","createSnapshot","shallowCopy","filter","_","value","undefined","loadSnapshot","state","Object","assign"],"mappings":"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","file":"tokenMemory.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport * as R from \"remeda\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { map, sum } from \"remeda\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport interface Handlers {\n estimate: (messages: Message) => number;\n tokenize: (messages: Message[]) => Promise<number>;\n removalSelector: (messages: Message[]) => Message;\n}\n\nconst simpleEstimate: Handlers[\"estimate\"] = (msg: Message) => Math.ceil(msg.text.length / 4);\nconst simpleTokenize: Handlers[\"tokenize\"] = async (msgs: Message[]) =>\n sum(map(msgs, simpleEstimate)); // TODO\n\nexport interface TokenMemoryInput {\n maxTokens?: number;\n syncThreshold?: number;\n capacityThreshold?: number;\n handlers?: Partial<Handlers>;\n}\n\ninterface TokenByMessage {\n tokensCount: number;\n dirty: boolean;\n}\n\nexport class TokenMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n\n protected threshold;\n protected syncThreshold;\n protected maxTokens: number | null = null;\n protected tokensByMessage = new WeakMap<Message, TokenByMessage>();\n public readonly handlers: Handlers;\n\n constructor(config: TokenMemoryInput = {}) {\n super();\n this.maxTokens = config.maxTokens ?? null;\n this.threshold = config.capacityThreshold ?? 0.75;\n this.syncThreshold = config.syncThreshold ?? 0.25;\n this.handlers = {\n ...config?.handlers,\n estimate:\n config?.handlers?.estimate || ((msg) => Math.ceil((msg.role.length + msg.text.length) / 4)),\n tokenize: config?.handlers?.tokenize || simpleTokenize,\n removalSelector: config.handlers?.removalSelector || ((messages) => messages[0]),\n };\n if (!R.clamp({ min: 0, max: 1 })(this.threshold)) {\n throw new TypeError('\"capacityThreshold\" must be a number in range (0, 1>');\n }\n }\n\n static {\n this.register();\n }\n\n get tokensUsed(): number {\n return sum(this.messages.map((msg) => this.tokensByMessage.get(msg)!.tokensCount!));\n }\n\n get isDirty(): boolean {\n return this.messages.some((msg) => this.tokensByMessage.get(msg)?.dirty !== false);\n }\n\n async add(message: Message, index?: number) {\n if (this.maxTokens === null) {\n // TODO: improve\n this.maxTokens = 128_000;\n }\n\n const meta = this.tokensByMessage.has(message)\n ? this.tokensByMessage.get(message)!\n : { tokensCount: this.handlers.estimate(message), dirty: true };\n\n if (meta.tokensCount > this.maxTokens) {\n throw new MemoryFatalError(\n `Retrieved message (${meta.tokensCount} tokens) cannot fit inside current memory (${this.maxTokens} tokens)`,\n );\n }\n\n while (this.tokensUsed > this.maxTokens - meta.tokensCount) {\n const messageToDelete = this.handlers.removalSelector(this.messages);\n const exists = await this.delete(messageToDelete);\n\n if (!messageToDelete || !exists) {\n throw new MemoryFatalError('The \"removalSelector\" handler must return a valid message!');\n }\n }\n\n this.tokensByMessage.set(message, meta);\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n\n if (this.isDirty && this.tokensUsed / this.maxTokens >= this.syncThreshold) {\n await this.sync();\n }\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n async sync() {\n const messages = await Promise.all(\n this.messages.map(async (msg) => {\n const cache = this.tokensByMessage.get(msg);\n if (cache?.dirty !== false) {\n const tokensCount = await this.handlers.tokenize([msg]);\n this.tokensByMessage.set(msg, { tokensCount, dirty: false });\n }\n return msg;\n }),\n );\n\n this.messages.length = 0;\n await this.addMany(messages);\n }\n\n reset() {\n for (const msg of this.messages) {\n this.tokensByMessage.delete(msg);\n }\n this.messages.length = 0;\n }\n\n stats() {\n return {\n tokensUsed: this.tokensUsed,\n maxTokens: this.maxTokens,\n messagesCount: this.messages.length,\n isDirty: this.isDirty,\n };\n }\n\n createSnapshot() {\n return {\n threshold: this.threshold,\n syncThreshold: this.syncThreshold,\n messages: shallowCopy(this.messages),\n handlers: shallowCopy(this.handlers),\n maxTokens: this.maxTokens,\n tokensByMessage: this.messages\n .map((message) => [message, this.tokensByMessage.get(message)])\n .filter(([_, value]) => value !== undefined) as [Message, number][],\n };\n }\n\n loadSnapshot({ tokensByMessage, ...state }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state, {\n tokensByMessage: new WeakMap(tokensByMessage),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["tokenMemory.ts"],"names":["simpleEstimate","msg","Math","ceil","text","length","simpleTokenize","msgs","sum","map","TokenMemory","BaseMemory","messages","threshold","syncThreshold","maxTokens","tokensByMessage","WeakMap","handlers","constructor","config","capacityThreshold","estimate","role","tokenize","removalSelector","R","clamp","min","max","TypeError","register","tokensUsed","get","tokensCount","isDirty","some","dirty","add","message","index","meta","has","MemoryFatalError","messageToDelete","exists","delete","set","ensureRange","splice","sync","removeFromArray","Promise","all","cache","addMany","reset","stats","messagesCount","createSnapshot","shallowCopy","filter","_","value","undefined","loadSnapshot","state","Object","assign"],"mappings":"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","file":"tokenMemory.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport * as R from \"remeda\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { map, sum } from \"remeda\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport interface Handlers {\n estimate: (messages: Message) => number;\n tokenize: (messages: Message[]) => Promise<number>;\n removalSelector: (messages: Message[]) => Message;\n}\n\nconst simpleEstimate: Handlers[\"estimate\"] = (msg: Message) => Math.ceil(msg.text.length / 4);\nconst simpleTokenize: Handlers[\"tokenize\"] = async (msgs: Message[]) =>\n sum(map(msgs, simpleEstimate)); // TODO\n\nexport interface TokenMemoryInput {\n maxTokens?: number;\n syncThreshold?: number;\n capacityThreshold?: number;\n handlers?: Partial<Handlers>;\n}\n\ninterface TokenByMessage {\n tokensCount: number;\n dirty: boolean;\n}\n\nexport class TokenMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n\n protected threshold;\n protected syncThreshold;\n protected maxTokens: number | null = null;\n protected tokensByMessage = new WeakMap<Message, TokenByMessage>();\n public readonly handlers: Handlers;\n\n constructor(config: TokenMemoryInput = {}) {\n super();\n this.maxTokens = config.maxTokens ?? null;\n this.threshold = config.capacityThreshold ?? 0.75;\n this.syncThreshold = config.syncThreshold ?? 0.25;\n this.handlers = {\n ...config?.handlers,\n estimate:\n config?.handlers?.estimate || ((msg) => Math.ceil((msg.role.length + msg.text.length) / 4)),\n tokenize: config?.handlers?.tokenize || simpleTokenize,\n removalSelector: config.handlers?.removalSelector || ((messages) => messages[0]),\n };\n if (!R.clamp({ min: 0, max: 1 })(this.threshold)) {\n throw new TypeError('\"capacityThreshold\" must be a number in range (0, 1>');\n }\n }\n\n static {\n this.register();\n }\n\n get tokensUsed(): number {\n return sum(this.messages.map((msg) => this.tokensByMessage.get(msg)!.tokensCount!));\n }\n\n get isDirty(): boolean {\n return this.messages.some((msg) => this.tokensByMessage.get(msg)?.dirty !== false);\n }\n\n async add(message: Message, index?: number) {\n if (this.maxTokens === null) {\n // TODO: improve\n this.maxTokens = 128_000;\n }\n\n const meta = this.tokensByMessage.has(message)\n ? this.tokensByMessage.get(message)!\n : { tokensCount: this.handlers.estimate(message), dirty: true };\n\n if (meta.tokensCount > this.maxTokens) {\n throw new MemoryFatalError(\n `Retrieved message (${meta.tokensCount} tokens) cannot fit inside current memory (${this.maxTokens} tokens)`,\n );\n }\n\n while (this.tokensUsed > this.maxTokens - meta.tokensCount) {\n const messageToDelete = this.handlers.removalSelector(this.messages);\n const exists = await this.delete(messageToDelete);\n\n if (!messageToDelete || !exists) {\n throw new MemoryFatalError('The \"removalSelector\" handler must return a valid message!');\n }\n }\n\n this.tokensByMessage.set(message, meta);\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n\n if (this.isDirty && this.tokensUsed / this.maxTokens >= this.syncThreshold) {\n await this.sync();\n }\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n async sync() {\n const messages = await Promise.all(\n this.messages.map(async (msg) => {\n const cache = this.tokensByMessage.get(msg);\n if (cache?.dirty !== false) {\n const tokensCount = await this.handlers.tokenize([msg]);\n this.tokensByMessage.set(msg, { tokensCount, dirty: false });\n }\n return msg;\n }),\n );\n\n this.messages.length = 0;\n await this.addMany(messages);\n }\n\n reset() {\n for (const msg of this.messages) {\n this.tokensByMessage.delete(msg);\n }\n this.messages.length = 0;\n }\n\n stats() {\n return {\n tokensUsed: this.tokensUsed,\n maxTokens: this.maxTokens,\n messagesCount: this.messages.length,\n isDirty: this.isDirty,\n };\n }\n\n createSnapshot() {\n return {\n threshold: this.threshold,\n syncThreshold: this.syncThreshold,\n messages: shallowCopy(this.messages),\n handlers: shallowCopy(this.handlers),\n maxTokens: this.maxTokens,\n tokensByMessage: this.messages\n .map((message) => [message, this.tokensByMessage.get(message)])\n .filter(([_, value]) => value !== undefined) as [Message, number][],\n };\n }\n\n loadSnapshot({ tokensByMessage, ...state }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state, {\n tokensByMessage: new WeakMap(tokensByMessage),\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["tokenMemory.ts"],"names":["simpleEstimate","msg","Math","ceil","text","length","simpleTokenize","msgs","sum","map","TokenMemory","BaseMemory","messages","threshold","syncThreshold","maxTokens","tokensByMessage","WeakMap","handlers","constructor","config","capacityThreshold","estimate","role","tokenize","removalSelector","R","clamp","min","max","TypeError","register","tokensUsed","get","tokensCount","isDirty","some","dirty","add","message","index","meta","has","MemoryFatalError","messageToDelete","exists","delete","set","ensureRange","splice","sync","removeFromArray","Promise","all","cache","addMany","reset","stats","messagesCount","createSnapshot","shallowCopy","filter","_","value","undefined","loadSnapshot","state","Object","assign"],"mappings":"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","file":"tokenMemory.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport * as R from \"remeda\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { map, sum } from \"remeda\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport interface Handlers {\n estimate: (messages: Message) => number;\n tokenize: (messages: Message[]) => Promise<number>;\n removalSelector: (messages: Message[]) => Message;\n}\n\nconst simpleEstimate: Handlers[\"estimate\"] = (msg: Message) => Math.ceil(msg.text.length / 4);\nconst simpleTokenize: Handlers[\"tokenize\"] = async (msgs: Message[]) =>\n sum(map(msgs, simpleEstimate)); // TODO\n\nexport interface TokenMemoryInput {\n maxTokens?: number;\n syncThreshold?: number;\n capacityThreshold?: number;\n handlers?: Partial<Handlers>;\n}\n\ninterface TokenByMessage {\n tokensCount: number;\n dirty: boolean;\n}\n\nexport class TokenMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n\n protected threshold;\n protected syncThreshold;\n protected maxTokens: number | null = null;\n protected tokensByMessage = new WeakMap<Message, TokenByMessage>();\n public readonly handlers: Handlers;\n\n constructor(config: TokenMemoryInput = {}) {\n super();\n this.maxTokens = config.maxTokens ?? null;\n this.threshold = config.capacityThreshold ?? 0.75;\n this.syncThreshold = config.syncThreshold ?? 0.25;\n this.handlers = {\n ...config?.handlers,\n estimate:\n config?.handlers?.estimate || ((msg) => Math.ceil((msg.role.length + msg.text.length) / 4)),\n tokenize: config?.handlers?.tokenize || simpleTokenize,\n removalSelector: config.handlers?.removalSelector || ((messages) => messages[0]),\n };\n if (!R.clamp({ min: 0, max: 1 })(this.threshold)) {\n throw new TypeError('\"capacityThreshold\" must be a number in range (0, 1>');\n }\n }\n\n static {\n this.register();\n }\n\n get tokensUsed(): number {\n return sum(this.messages.map((msg) => this.tokensByMessage.get(msg)!.tokensCount!));\n }\n\n get isDirty(): boolean {\n return this.messages.some((msg) => this.tokensByMessage.get(msg)?.dirty !== false);\n }\n\n async add(message: Message, index?: number) {\n if (this.maxTokens === null) {\n // TODO: improve\n this.maxTokens = 128_000;\n }\n\n const meta = this.tokensByMessage.has(message)\n ? this.tokensByMessage.get(message)!\n : { tokensCount: this.handlers.estimate(message), dirty: true };\n\n if (meta.tokensCount > this.maxTokens) {\n throw new MemoryFatalError(\n `Retrieved message (${meta.tokensCount} tokens) cannot fit inside current memory (${this.maxTokens} tokens)`,\n );\n }\n\n while (this.tokensUsed > this.maxTokens - meta.tokensCount) {\n const messageToDelete = this.handlers.removalSelector(this.messages);\n const exists = await this.delete(messageToDelete);\n\n if (!messageToDelete || !exists) {\n throw new MemoryFatalError('The \"removalSelector\" handler must return a valid message!');\n }\n }\n\n this.tokensByMessage.set(message, meta);\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n\n if (this.isDirty && this.tokensUsed / this.maxTokens >= this.syncThreshold) {\n await this.sync();\n }\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n async sync() {\n const messages = await Promise.all(\n this.messages.map(async (msg) => {\n const cache = this.tokensByMessage.get(msg);\n if (cache?.dirty !== false) {\n const tokensCount = await this.handlers.tokenize([msg]);\n this.tokensByMessage.set(msg, { tokensCount, dirty: false });\n }\n return msg;\n }),\n );\n\n this.messages.length = 0;\n await this.addMany(messages);\n }\n\n reset() {\n for (const msg of this.messages) {\n this.tokensByMessage.delete(msg);\n }\n this.messages.length = 0;\n }\n\n stats() {\n return {\n tokensUsed: this.tokensUsed,\n maxTokens: this.maxTokens,\n messagesCount: this.messages.length,\n isDirty: this.isDirty,\n };\n }\n\n createSnapshot() {\n return {\n threshold: this.threshold,\n syncThreshold: this.syncThreshold,\n messages: shallowCopy(this.messages),\n handlers: shallowCopy(this.handlers),\n maxTokens: this.maxTokens,\n tokensByMessage: this.messages\n .map((message) => [message, this.tokensByMessage.get(message)])\n .filter(([_, value]) => value !== undefined) as [Message, number][],\n };\n }\n\n loadSnapshot({ tokensByMessage, ...state }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state, {\n tokensByMessage: new WeakMap(tokensByMessage),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["tokenMemory.ts"],"names":["simpleEstimate","msg","Math","ceil","text","length","simpleTokenize","msgs","sum","map","TokenMemory","BaseMemory","messages","threshold","syncThreshold","maxTokens","tokensByMessage","WeakMap","handlers","constructor","config","capacityThreshold","estimate","role","tokenize","removalSelector","R","clamp","min","max","TypeError","register","tokensUsed","get","tokensCount","isDirty","some","dirty","add","message","index","meta","has","MemoryFatalError","messageToDelete","exists","delete","set","ensureRange","splice","sync","removeFromArray","Promise","all","cache","addMany","reset","stats","messagesCount","createSnapshot","shallowCopy","filter","_","value","undefined","loadSnapshot","state","Object","assign"],"mappings":"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","file":"tokenMemory.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory, MemoryFatalError } from \"@/memory/base.js\";\nimport * as R from \"remeda\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { map, sum } from \"remeda\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport interface Handlers {\n estimate: (messages: Message) => number;\n tokenize: (messages: Message[]) => Promise<number>;\n removalSelector: (messages: Message[]) => Message;\n}\n\nconst simpleEstimate: Handlers[\"estimate\"] = (msg: Message) => Math.ceil(msg.text.length / 4);\nconst simpleTokenize: Handlers[\"tokenize\"] = async (msgs: Message[]) =>\n sum(map(msgs, simpleEstimate)); // TODO\n\nexport interface TokenMemoryInput {\n maxTokens?: number;\n syncThreshold?: number;\n capacityThreshold?: number;\n handlers?: Partial<Handlers>;\n}\n\ninterface TokenByMessage {\n tokensCount: number;\n dirty: boolean;\n}\n\nexport class TokenMemory extends BaseMemory {\n public readonly messages: Message[] = [];\n\n protected threshold;\n protected syncThreshold;\n protected maxTokens: number | null = null;\n protected tokensByMessage = new WeakMap<Message, TokenByMessage>();\n public readonly handlers: Handlers;\n\n constructor(config: TokenMemoryInput = {}) {\n super();\n this.maxTokens = config.maxTokens ?? null;\n this.threshold = config.capacityThreshold ?? 0.75;\n this.syncThreshold = config.syncThreshold ?? 0.25;\n this.handlers = {\n ...config?.handlers,\n estimate:\n config?.handlers?.estimate || ((msg) => Math.ceil((msg.role.length + msg.text.length) / 4)),\n tokenize: config?.handlers?.tokenize || simpleTokenize,\n removalSelector: config.handlers?.removalSelector || ((messages) => messages[0]),\n };\n if (!R.clamp({ min: 0, max: 1 })(this.threshold)) {\n throw new TypeError('\"capacityThreshold\" must be a number in range (0, 1>');\n }\n }\n\n static {\n this.register();\n }\n\n get tokensUsed(): number {\n return sum(this.messages.map((msg) => this.tokensByMessage.get(msg)!.tokensCount!));\n }\n\n get isDirty(): boolean {\n return this.messages.some((msg) => this.tokensByMessage.get(msg)?.dirty !== false);\n }\n\n async add(message: Message, index?: number) {\n if (this.maxTokens === null) {\n // TODO: improve\n this.maxTokens = 128_000;\n }\n\n const meta = this.tokensByMessage.has(message)\n ? this.tokensByMessage.get(message)!\n : { tokensCount: this.handlers.estimate(message), dirty: true };\n\n if (meta.tokensCount > this.maxTokens) {\n throw new MemoryFatalError(\n `Retrieved message (${meta.tokensCount} tokens) cannot fit inside current memory (${this.maxTokens} tokens)`,\n );\n }\n\n while (this.tokensUsed > this.maxTokens - meta.tokensCount) {\n const messageToDelete = this.handlers.removalSelector(this.messages);\n const exists = await this.delete(messageToDelete);\n\n if (!messageToDelete || !exists) {\n throw new MemoryFatalError('The \"removalSelector\" handler must return a valid message!');\n }\n }\n\n this.tokensByMessage.set(message, meta);\n\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n\n if (this.isDirty && this.tokensUsed / this.maxTokens >= this.syncThreshold) {\n await this.sync();\n }\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n async sync() {\n const messages = await Promise.all(\n this.messages.map(async (msg) => {\n const cache = this.tokensByMessage.get(msg);\n if (cache?.dirty !== false) {\n const tokensCount = await this.handlers.tokenize([msg]);\n this.tokensByMessage.set(msg, { tokensCount, dirty: false });\n }\n return msg;\n }),\n );\n\n this.messages.length = 0;\n await this.addMany(messages);\n }\n\n reset() {\n for (const msg of this.messages) {\n this.tokensByMessage.delete(msg);\n }\n this.messages.length = 0;\n }\n\n stats() {\n return {\n tokensUsed: this.tokensUsed,\n maxTokens: this.maxTokens,\n messagesCount: this.messages.length,\n isDirty: this.isDirty,\n };\n }\n\n createSnapshot() {\n return {\n threshold: this.threshold,\n syncThreshold: this.syncThreshold,\n messages: shallowCopy(this.messages),\n handlers: shallowCopy(this.handlers),\n maxTokens: this.maxTokens,\n tokensByMessage: this.messages\n .map((message) => [message, this.tokensByMessage.get(message)])\n .filter(([_, value]) => value !== undefined) as [Message, number][],\n };\n }\n\n loadSnapshot({ tokensByMessage, ...state }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, state, {\n tokensByMessage: new WeakMap(tokensByMessage),\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["unconstrainedMemory.ts"],"names":["UnconstrainedMemory","BaseMemory","messages","register","add","message","index","ensureRange","length","min","max","splice","delete","removeFromArray","reset","loadSnapshot","snapshot","Object","assign","createSnapshot","shallowCopy"],"mappings":";;;;;;;;;AAsBO,MAAMA,4BAA4BC,mBAAAA,CAAAA;EAtBzC;;;AAuBSC,EAAAA,QAAAA,GAAsB,EAAA;EAE7B;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,MAAMC,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1CA,IAAAA,KAAAA,GAAQC,sBAAYD,CAAAA,KAAAA,IAAS,IAAKJ,CAAAA,QAAAA,CAASM,MAAQ,EAAA;MAAEC,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKR,QAASM,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKN,QAASS,CAAAA,MAAAA,CAAOL,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMO,OAAOP,OAAkB,EAAA;AAC7B,IAAOQ,OAAAA,yBAAAA,CAAgB,IAAKX,CAAAA,QAAAA,EAAUG,OAAAA,CAAAA;AACxC;EAEAS,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKZ,SAASM,MAAS,GAAA,CAAA;AACzB;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;EAEAG,cAAiB,GAAA;AACf,IAAO,OAAA;MACLjB,QAAUkB,EAAAA,qBAAAA,CAAY,KAAKlB,QAAQ;AACrC,KAAA;AACF;AACF","file":"unconstrainedMemory.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport class UnconstrainedMemory extends BaseMemory {\n public messages: Message[] = [];\n\n static {\n this.register();\n }\n\n async add(message: Message, index?: number) {\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n createSnapshot() {\n return {\n messages: shallowCopy(this.messages),\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["unconstrainedMemory.ts"],"names":["UnconstrainedMemory","BaseMemory","messages","register","add","message","index","ensureRange","length","min","max","splice","delete","removeFromArray","reset","loadSnapshot","snapshot","Object","assign","createSnapshot","shallowCopy"],"mappings":";;;;;;;;;AAsBO,MAAMA,4BAA4BC,mBAAAA,CAAAA;EAtBzC;;;AAuBSC,EAAAA,QAAAA,GAAsB,EAAA;EAE7B;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,MAAMC,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1CA,IAAAA,KAAAA,GAAQC,sBAAYD,CAAAA,KAAAA,IAAS,IAAKJ,CAAAA,QAAAA,CAASM,MAAQ,EAAA;MAAEC,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKR,QAASM,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKN,QAASS,CAAAA,MAAAA,CAAOL,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMO,OAAOP,OAAkB,EAAA;AAC7B,IAAOQ,OAAAA,yBAAAA,CAAgB,IAAKX,CAAAA,QAAAA,EAAUG,OAAAA,CAAAA;AACxC;EAEAS,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKZ,SAASM,MAAS,GAAA,CAAA;AACzB;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;EAEAG,cAAiB,GAAA;AACf,IAAO,OAAA;MACLjB,QAAUkB,EAAAA,qBAAAA,CAAY,KAAKlB,QAAQ;AACrC,KAAA;AACF;AACF","file":"unconstrainedMemory.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport class UnconstrainedMemory extends BaseMemory {\n public messages: Message[] = [];\n\n static {\n this.register();\n }\n\n async add(message: Message, index?: number) {\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n createSnapshot() {\n return {\n messages: shallowCopy(this.messages),\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["unconstrainedMemory.ts"],"names":["UnconstrainedMemory","BaseMemory","messages","register","add","message","index","ensureRange","length","min","max","splice","delete","removeFromArray","reset","loadSnapshot","snapshot","Object","assign","createSnapshot","shallowCopy"],"mappings":";;;;;;;AAsBO,MAAMA,4BAA4BC,UAAAA,CAAAA;EAtBzC;;;AAuBSC,EAAAA,QAAAA,GAAsB,EAAA;EAE7B;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,MAAMC,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1CA,IAAAA,KAAAA,GAAQC,WAAYD,CAAAA,KAAAA,IAAS,IAAKJ,CAAAA,QAAAA,CAASM,MAAQ,EAAA;MAAEC,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKR,QAASM,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKN,QAASS,CAAAA,MAAAA,CAAOL,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMO,OAAOP,OAAkB,EAAA;AAC7B,IAAOQ,OAAAA,eAAAA,CAAgB,IAAKX,CAAAA,QAAAA,EAAUG,OAAAA,CAAAA;AACxC;EAEAS,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKZ,SAASM,MAAS,GAAA,CAAA;AACzB;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;EAEAG,cAAiB,GAAA;AACf,IAAO,OAAA;MACLjB,QAAUkB,EAAAA,WAAAA,CAAY,KAAKlB,QAAQ;AACrC,KAAA;AACF;AACF","file":"unconstrainedMemory.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport class UnconstrainedMemory extends BaseMemory {\n public messages: Message[] = [];\n\n static {\n this.register();\n }\n\n async add(message: Message, index?: number) {\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n createSnapshot() {\n return {\n messages: shallowCopy(this.messages),\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["unconstrainedMemory.ts"],"names":["UnconstrainedMemory","BaseMemory","messages","register","add","message","index","ensureRange","length","min","max","splice","delete","removeFromArray","reset","loadSnapshot","snapshot","Object","assign","createSnapshot","shallowCopy"],"mappings":";;;;;;;AAsBO,MAAMA,4BAA4BC,UAAAA,CAAAA;EAtBzC;;;AAuBSC,EAAAA,QAAAA,GAAsB,EAAA;EAE7B;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;EAEA,MAAMC,GAAAA,CAAIC,SAAkBC,KAAgB,EAAA;AAC1CA,IAAAA,KAAAA,GAAQC,WAAYD,CAAAA,KAAAA,IAAS,IAAKJ,CAAAA,QAAAA,CAASM,MAAQ,EAAA;MAAEC,GAAK,EAAA,CAAA;AAAGC,MAAAA,GAAAA,EAAK,KAAKR,QAASM,CAAAA;KAAO,CAAA;AACvF,IAAA,IAAA,CAAKN,QAASS,CAAAA,MAAAA,CAAOL,KAAO,EAAA,CAAA,EAAGD,OAAAA,CAAAA;AACjC;AAEA,EAAA,MAAMO,OAAOP,OAAkB,EAAA;AAC7B,IAAOQ,OAAAA,eAAAA,CAAgB,IAAKX,CAAAA,QAAAA,EAAUG,OAAAA,CAAAA;AACxC;EAEAS,KAAQ,GAAA;AACN,IAAA,IAAA,CAAKZ,SAASM,MAAS,GAAA,CAAA;AACzB;AAEAO,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;EAEAG,cAAiB,GAAA;AACf,IAAO,OAAA;MACLjB,QAAUkB,EAAAA,WAAAA,CAAY,KAAKlB,QAAQ;AACrC,KAAA;AACF;AACF","file":"unconstrainedMemory.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { ensureRange } from \"@/internals/helpers/number.js\";\nimport { Message } from \"@/backend/message.js\";\n\nexport class UnconstrainedMemory extends BaseMemory {\n public messages: Message[] = [];\n\n static {\n this.register();\n }\n\n async add(message: Message, index?: number) {\n index = ensureRange(index ?? this.messages.length, { min: 0, max: this.messages.length });\n this.messages.splice(index, 0, message);\n }\n\n async delete(message: Message) {\n return removeFromArray(this.messages, message);\n }\n\n reset() {\n this.messages.length = 0;\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n\n createSnapshot() {\n return {\n messages: shallowCopy(this.messages),\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["errors.ts"],"names":["LinePrefixParserError","FrameworkError","isFatal","isRetryable","context","reason","Reason","NoDataReceived","InvalidTransition","NotStartNode","NotEndNode","AlreadyCompleted","InvalidSchema","constructor","message","errors","options"],"mappings":";;;;;;AA0BO,MAAMA,8BAA8BC,yBAAAA,CAAAA;EA1B3C;;;EA2BEC,OAAU,GAAA,IAAA;EACVC,WAAc,GAAA,IAAA;AACLC,EAAAA,OAAAA;AACAC,EAAAA,MAAAA;AAET,EAAA,OAAOC,MAAS,GAAA;IACdC,cAAgB,EAAA,gBAAA;IAChBC,iBAAmB,EAAA,mBAAA;IACnBC,YAAc,EAAA,cAAA;IACdC,UAAY,EAAA,YAAA;IACZC,gBAAkB,EAAA,kBAAA;IAClBC,aAAe,EAAA;AACjB,GAAA;EAEAC,WACEC,CAAAA,OAAAA,EACAC,QACAC,OAIA,EAAA;AACA,IAAMF,KAAAA,CAAAA,OAAAA,EAASC,QAAQC,OAAAA,CAAAA;AAEvB,IAAA,IAAA,CAAKZ,UAAUY,OAAQZ,CAAAA,OAAAA;AACvB,IAAA,IAAA,CAAKC,SAASW,OAAQX,CAAAA,MAAAA;AACxB;AACF","file":"errors.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { ValueOf } from \"@/internals/types.js\";\n\ninterface Context {\n lines: string;\n excludedLines: string;\n finalState: Record<string, any>;\n partialState: Record<string, any>;\n}\n\nexport class LinePrefixParserError extends FrameworkError {\n isFatal = true;\n isRetryable = true;\n readonly context: Context;\n readonly reason: ValueOf<typeof LinePrefixParserError.Reason>;\n\n static Reason = {\n NoDataReceived: \"NoDataReceived\",\n InvalidTransition: \"InvalidTransition\",\n NotStartNode: \"NotStartNode\",\n NotEndNode: \"NotEndNode\",\n AlreadyCompleted: \"AlreadyCompleted\",\n InvalidSchema: \"InvalidSchema\",\n } as const;\n\n constructor(\n message: string,\n errors: Error[],\n options: FrameworkErrorOptions & {\n context: Context;\n reason: ValueOf<typeof LinePrefixParserError.Reason>;\n },\n ) {\n super(message, errors, options);\n\n this.context = options.context;\n this.reason = options.reason;\n }\n}\n"]}
1
+ {"version":3,"sources":["errors.ts"],"names":["LinePrefixParserError","FrameworkError","isFatal","isRetryable","context","reason","Reason","NoDataReceived","InvalidTransition","NotStartNode","NotEndNode","AlreadyCompleted","InvalidSchema","constructor","message","errors","options"],"mappings":";;;;;;AA0BO,MAAMA,8BAA8BC,yBAAAA,CAAAA;EA1B3C;;;EA2BEC,OAAU,GAAA,IAAA;EACVC,WAAc,GAAA,IAAA;AACLC,EAAAA,OAAAA;AACAC,EAAAA,MAAAA;AAET,EAAA,OAAOC,MAAS,GAAA;IACdC,cAAgB,EAAA,gBAAA;IAChBC,iBAAmB,EAAA,mBAAA;IACnBC,YAAc,EAAA,cAAA;IACdC,UAAY,EAAA,YAAA;IACZC,gBAAkB,EAAA,kBAAA;IAClBC,aAAe,EAAA;AACjB,GAAA;EAEAC,WACEC,CAAAA,OAAAA,EACAC,QACAC,OAIA,EAAA;AACA,IAAMF,KAAAA,CAAAA,OAAAA,EAASC,QAAQC,OAAAA,CAAAA;AAEvB,IAAA,IAAA,CAAKZ,UAAUY,OAAQZ,CAAAA,OAAAA;AACvB,IAAA,IAAA,CAAKC,SAASW,OAAQX,CAAAA,MAAAA;AACxB;AACF","file":"errors.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { ValueOf } from \"@/internals/types.js\";\n\ninterface Context {\n lines: string;\n excludedLines: string;\n finalState: Record<string, any>;\n partialState: Record<string, any>;\n}\n\nexport class LinePrefixParserError extends FrameworkError {\n isFatal = true;\n isRetryable = true;\n readonly context: Context;\n readonly reason: ValueOf<typeof LinePrefixParserError.Reason>;\n\n static Reason = {\n NoDataReceived: \"NoDataReceived\",\n InvalidTransition: \"InvalidTransition\",\n NotStartNode: \"NotStartNode\",\n NotEndNode: \"NotEndNode\",\n AlreadyCompleted: \"AlreadyCompleted\",\n InvalidSchema: \"InvalidSchema\",\n } as const;\n\n constructor(\n message: string,\n errors: Error[],\n options: FrameworkErrorOptions & {\n context: Context;\n reason: ValueOf<typeof LinePrefixParserError.Reason>;\n },\n ) {\n super(message, errors, options);\n\n this.context = options.context;\n this.reason = options.reason;\n }\n}\n"]}
@@ -3,7 +3,7 @@ import { ValueOf } from '../internals/types.cjs';
3
3
  import '../internals/helpers/guards.cjs';
4
4
 
5
5
  /**
6
- * Copyright 2025 IBM Corp.
6
+ * Copyright 2025 © BeeAI a Series of LF Projects, LLC
7
7
  *
8
8
  * Licensed under the Apache License, Version 2.0 (the "License");
9
9
  * you may not use this file except in compliance with the License.
@@ -3,7 +3,7 @@ import { ValueOf } from '../internals/types.js';
3
3
  import '../internals/helpers/guards.js';
4
4
 
5
5
  /**
6
- * Copyright 2025 IBM Corp.
6
+ * Copyright 2025 © BeeAI a Series of LF Projects, LLC
7
7
  *
8
8
  * Licensed under the Apache License, Version 2.0 (the "License");
9
9
  * you may not use this file except in compliance with the License.
@@ -1 +1 @@
1
- {"version":3,"sources":["errors.ts"],"names":["LinePrefixParserError","FrameworkError","isFatal","isRetryable","context","reason","Reason","NoDataReceived","InvalidTransition","NotStartNode","NotEndNode","AlreadyCompleted","InvalidSchema","constructor","message","errors","options"],"mappings":";;;;AA0BO,MAAMA,8BAA8BC,cAAAA,CAAAA;EA1B3C;;;EA2BEC,OAAU,GAAA,IAAA;EACVC,WAAc,GAAA,IAAA;AACLC,EAAAA,OAAAA;AACAC,EAAAA,MAAAA;AAET,EAAA,OAAOC,MAAS,GAAA;IACdC,cAAgB,EAAA,gBAAA;IAChBC,iBAAmB,EAAA,mBAAA;IACnBC,YAAc,EAAA,cAAA;IACdC,UAAY,EAAA,YAAA;IACZC,gBAAkB,EAAA,kBAAA;IAClBC,aAAe,EAAA;AACjB,GAAA;EAEAC,WACEC,CAAAA,OAAAA,EACAC,QACAC,OAIA,EAAA;AACA,IAAMF,KAAAA,CAAAA,OAAAA,EAASC,QAAQC,OAAAA,CAAAA;AAEvB,IAAA,IAAA,CAAKZ,UAAUY,OAAQZ,CAAAA,OAAAA;AACvB,IAAA,IAAA,CAAKC,SAASW,OAAQX,CAAAA,MAAAA;AACxB;AACF","file":"errors.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { ValueOf } from \"@/internals/types.js\";\n\ninterface Context {\n lines: string;\n excludedLines: string;\n finalState: Record<string, any>;\n partialState: Record<string, any>;\n}\n\nexport class LinePrefixParserError extends FrameworkError {\n isFatal = true;\n isRetryable = true;\n readonly context: Context;\n readonly reason: ValueOf<typeof LinePrefixParserError.Reason>;\n\n static Reason = {\n NoDataReceived: \"NoDataReceived\",\n InvalidTransition: \"InvalidTransition\",\n NotStartNode: \"NotStartNode\",\n NotEndNode: \"NotEndNode\",\n AlreadyCompleted: \"AlreadyCompleted\",\n InvalidSchema: \"InvalidSchema\",\n } as const;\n\n constructor(\n message: string,\n errors: Error[],\n options: FrameworkErrorOptions & {\n context: Context;\n reason: ValueOf<typeof LinePrefixParserError.Reason>;\n },\n ) {\n super(message, errors, options);\n\n this.context = options.context;\n this.reason = options.reason;\n }\n}\n"]}
1
+ {"version":3,"sources":["errors.ts"],"names":["LinePrefixParserError","FrameworkError","isFatal","isRetryable","context","reason","Reason","NoDataReceived","InvalidTransition","NotStartNode","NotEndNode","AlreadyCompleted","InvalidSchema","constructor","message","errors","options"],"mappings":";;;;AA0BO,MAAMA,8BAA8BC,cAAAA,CAAAA;EA1B3C;;;EA2BEC,OAAU,GAAA,IAAA;EACVC,WAAc,GAAA,IAAA;AACLC,EAAAA,OAAAA;AACAC,EAAAA,MAAAA;AAET,EAAA,OAAOC,MAAS,GAAA;IACdC,cAAgB,EAAA,gBAAA;IAChBC,iBAAmB,EAAA,mBAAA;IACnBC,YAAc,EAAA,cAAA;IACdC,UAAY,EAAA,YAAA;IACZC,gBAAkB,EAAA,kBAAA;IAClBC,aAAe,EAAA;AACjB,GAAA;EAEAC,WACEC,CAAAA,OAAAA,EACAC,QACAC,OAIA,EAAA;AACA,IAAMF,KAAAA,CAAAA,OAAAA,EAASC,QAAQC,OAAAA,CAAAA;AAEvB,IAAA,IAAA,CAAKZ,UAAUY,OAAQZ,CAAAA,OAAAA;AACvB,IAAA,IAAA,CAAKC,SAASW,OAAQX,CAAAA,MAAAA;AACxB;AACF","file":"errors.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError, FrameworkErrorOptions } from \"@/errors.js\";\nimport { ValueOf } from \"@/internals/types.js\";\n\ninterface Context {\n lines: string;\n excludedLines: string;\n finalState: Record<string, any>;\n partialState: Record<string, any>;\n}\n\nexport class LinePrefixParserError extends FrameworkError {\n isFatal = true;\n isRetryable = true;\n readonly context: Context;\n readonly reason: ValueOf<typeof LinePrefixParserError.Reason>;\n\n static Reason = {\n NoDataReceived: \"NoDataReceived\",\n InvalidTransition: \"InvalidTransition\",\n NotStartNode: \"NotStartNode\",\n NotEndNode: \"NotEndNode\",\n AlreadyCompleted: \"AlreadyCompleted\",\n InvalidSchema: \"InvalidSchema\",\n } as const;\n\n constructor(\n message: string,\n errors: Error[],\n options: FrameworkErrorOptions & {\n context: Context;\n reason: ValueOf<typeof LinePrefixParserError.Reason>;\n },\n ) {\n super(message, errors, options);\n\n this.context = options.context;\n this.reason = options.reason;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["field.ts"],"names":["ParserField","Serializable","raw","write","chunk","end","createSnapshot","loadSnapshot","snapshot","Object","assign","ZodParserField","register","constructor","schema","get","parse","getPartial","JSONParserField","stream","jsonParser","errored","ref","input","base","undefined","ValueError","init","value","shallowCopy","JSONParser","emitPartialTokens","emitPartialValues","jsonrepairTransform","on","toString","onValue","key","stack","keys","map","s","concat","filter","String","length","prefix","setProp","matchPair","startChar","index","indexOf","substring","merged","match","findFirstPair","push","inputToParse","parseBrokenJson","pair","closed","isEnded","Promise","resolve","reject","onEnd","onError","cacheKey","SingletonCacheKeyFn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2BO,MAAeA,oBAAiCC,6BAAAA,CAAAA;AAAAA,EAAAA;;;EAC9CC,GAAM,GAAA,EAAA;AAKbC,EAAAA,KAAAA,CAAMC,KAAe,EAAA;AACnB,IAAA,IAAA,CAAKF,GAAOE,IAAAA,KAAAA;AACd;AAEA,EAAA,MAAMC,GAAM,GAAA;AAAC;EAEbC,cAAiB,GAAA;AACf,IAAO,OAAA;AAAEJ,MAAAA,GAAAA,EAAK,IAAKA,CAAAA;AAAI,KAAA;AACzB;AAEAK,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF;AAEO,MAAMG,uBAA0BX,WAAAA,CAAAA;AAAAA,EAAAA;;;;EACrC;AACE,IAAA,IAAA,CAAKY,QAAQ,EAAA;AACf;AAEAC,EAAAA,WAAAA,CAA+BC,MAAsB,EAAA;AACnD,IAAK,KAAA,EAAA,EAAA,KADwBA,MAAAA,GAAAA,MAAAA;AAE/B;EAEAC,GAAS,GAAA;AACP,IAAA,OAAO,IAAKD,CAAAA,MAAAA,CAAOE,KAAM,CAAA,IAAA,CAAKd,GAAG,CAAA;AACnC;EAEAe,UAAqB,GAAA;AACnB,IAAA,OAAO,IAAKf,CAAAA,GAAAA;AACd;EAEAI,cAAiB,GAAA;AACf,IAAO,OAAA;AAAE,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AAAkBQ,MAAAA,MAAAA,EAAQ,IAAKA,CAAAA;AAAO,KAAA;AAC1D;AACF;AAEO,MAAMI,wBAA2BlB,WAAAA,CAAAA;AAAAA,EAAAA;;;;AAC5BmB,EAAAA,MAAAA;AACAC,EAAAA,UAAAA;AACAC,EAAAA,OAAAA;AACAC,EAAAA,GAAAA;AAEVT,EAAAA,WAAAA,CACqBU,KAKnB,EAAA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CANcA,KAAAA,GAAAA,KAAAA,EAAAA,KAJXF,OAAU,GAAA,KAAA;AAWlB,IAAIE,IAAAA,KAAAA,CAAMC,SAASC,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAIC,sBAAW,CAAuB,qBAAA,CAAA,CAAA;AAC9C;AACA,IAAA,IAAA,CAAKC,IAAI,EAAA;AACX;EAGUA,IAAO,GAAA;AACf,IAAA,IAAA,CAAKL,GAAM,GAAA;MAAEM,KAAOC,EAAAA,qBAAAA,CAAY,IAAKN,CAAAA,KAAAA,CAAMC,IAAI;AAAE,KAAA;AACjD,IAAKJ,IAAAA,CAAAA,UAAAA,GAAa,IAAIU,eAAW,CAAA;MAAEC,iBAAmB,EAAA,KAAA;MAAOC,iBAAmB,EAAA;KAAK,CAAA;AACrF,IAAA,IAAA,CAAKb,SAASc,0BAAAA,EAAAA;AACd,IAAA,IAAA,CAAKd,MAAOe,CAAAA,EAAAA,CAAG,MAAQ,EAAA,CAAC9B,KAAAA,KAAAA;AACtB,MAAA,IAAI,KAAKiB,OAAS,EAAA;AAChB,QAAA;AACF;AAEA,MAAI,IAAA;AACF,QAAA,IAAA,CAAKD,UAAWjB,CAAAA,KAAAA,CAAMC,KAAM+B,CAAAA,QAAAA,EAAQ,CAAA;OAC9B,CAAA,MAAA;AACN,QAAA,IAAA,CAAKd,OAAU,GAAA,IAAA;AACjB;KACF,CAAA;AACA,IAAA,IAAA,CAAKD,WAAWgB,OAAU,GAAA,CAAC,EAAER,KAAOS,EAAAA,GAAAA,EAAKC,OAAO,KAAA;AAC9C,MAAA,MAAMC,OAAOD,KACVE,CAAAA,GAAAA,CAAI,CAACC,CAAMA,KAAAA,CAAAA,CAAEJ,GAAG,CAChBK,CAAAA,MAAAA,CAAOL,GAAAA,CAAAA,CACPM,OAAO,CAACF,CAAAA,KAAMA,MAAMhB,MAAAA,CAAAA,CACpBe,IAAII,MAAAA,CAAAA;AAEP,MAAA,IAAIL,IAAKM,CAAAA,MAAAA,KAAW,CAAKjB,IAAAA,KAAAA,KAAUH,MAAW,EAAA;AAC5C,QAAA;AACF;AACA,MAAA,MAAMqB,MAAgC,GAAA,OAAA;AACtCC,MAAAA,kBAAAA,CAAQ,KAAKzB,GAAK,EAAA;AAACwB,QAAAA,MAAAA;AAAWP,QAAAA,GAAAA;SAAOX,KAAAA,CAAAA;AACvC,KAAA;AACF;AAEAzB,EAAAA,KAAAA,CAAMC,KAAe,EAAA;AACnB,IAAI,IAAA,IAAA,CAAKmB,MAAMyB,SAAW,EAAA;AACxB,MAAI,IAAA,CAAC,KAAK9C,GAAK,EAAA;AACb,QAAA,MAAM+C,SAAY,GAAA,IAAA,CAAK1B,KAAMyB,CAAAA,SAAAA,CAAU,CAAA,CAAA;AACvC,QAAME,MAAAA,KAAAA,GAAQ9C,KAAM+C,CAAAA,OAAAA,CAAQF,SAAAA,CAAAA;AAC5B,QAAA,IAAIC,UAAU,EAAI,EAAA;AAChB,UAAA;AACF;AACA9C,QAAQA,KAAAA,GAAAA,KAAAA,CAAMgD,UAAUF,KAAAA,CAAAA;OACnB,MAAA;AACL,QAAA,MAAMG,MAAS,GAAA,IAAA,CAAKnD,GAAIwC,CAAAA,MAAAA,CAAOtC,KAAAA,CAAAA;AAC/B,QAAA,MAAMkD,KAAQC,GAAAA,wBAAAA,CAAcF,MAAQ,EAAA,IAAA,CAAK9B,MAAMyB,SAAS,CAAA;AACxD,QAAA,IAAIM,KAAO,EAAA;AACT,UAAA,IAAIA,KAAMjD,CAAAA,GAAAA,GAAM,IAAKH,CAAAA,GAAAA,CAAI2C,MAAQ,EAAA;AAC/B,YAAA;AACF;AACAzC,UAAAA,KAAAA,GAAQiD,OAAOD,SAAU,CAAA,IAAA,CAAKlD,GAAI2C,CAAAA,MAAAA,EAAQS,MAAMjD,GAAG,CAAA;AACrD;AACF;AACF;AAEA,IAAA,KAAA,CAAMF,MAAMC,KAAAA,CAAAA;AACZ,IAAI,IAAA;AACF,MAAKe,IAAAA,CAAAA,MAAAA,CAAOqC,KAAKpD,KAAAA,CAAAA;KACX,CAAA,MAAA;AACN,MAAA,IAAA,CAAKiB,OAAU,GAAA,IAAA;AACjB;AACF;EAEAN,GAAM,GAAA;AACJ,IAAA,MAAM0C,YAAe,GAAA,IAAA,CAAKpC,OACtBqC,GAAAA,0BAAAA,CAAgB,KAAKxD,GAAK,EAAA;AACxByD,MAAAA,IAAAA,EAAM,KAAKpC,KAAMyB,CAAAA;KACnB,CAAA,GACA,KAAK1B,GAAIM,CAAAA,KAAAA;AAEb,IAAA,OAAO,IAAKL,CAAAA,KAAAA,CAAMT,MAAOE,CAAAA,KAAAA,CAAMyC,YAAAA,CAAAA;AACjC;EAEAxC,UAAa,GAAA;AACX,IAAA,OAAO,KAAKK,GAAIM,CAAAA,KAAAA;AAClB;AAEA,EAAA,MAAMvB,GAAM,GAAA;AACV,IAAA,IAAI,KAAKc,MAAOyC,CAAAA,MAAAA,IAAU,KAAKxC,UAAWyC,CAAAA,OAAAA,IAAW,KAAKxC,OAAS,EAAA;AACjE,MAAA;AACF;AAEA,IAAA,OAAO,IAAIyC,OAAAA,CAAc,CAACC,OAAAA,EAASC,MAAAA,KAAAA;AACjC,MAAA,IAAA,CAAK5C,WAAW6C,KAAQF,GAAAA,OAAAA;AACxB,MAAA,IAAA,CAAK3C,WAAW8C,OAAUF,GAAAA,MAAAA;AAE1B,MAAK7C,IAAAA,CAAAA,MAAAA,CAAOqC,KAAK,IAAA,CAAA;AACjB,MAAA,IAAA,CAAKpC,WAAWf,GAAG,EAAA;KACrB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AAAE,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AAAkBiB,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AAAOF,MAAAA,OAAAA,EAAS,IAAKA,CAAAA;AAAQ,KAAA;AAC/E;AAEAd,EAAAA,YAAAA,CAAa,EAAEL,GAAAA,EAAK,GAAGM,QAAAA,EAAoD,EAAA;AACzEC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAAER,GAAK,EAAA,EAAA;MAAI,GAAGM;KAAS,CAAA;AAC3C,IAAA,IAAA,CAAKmB,IAAI,EAAA;AACT,IAAA,IAAA,CAAKxB,MAAMD,GAAAA,CAAAA;AACb;AACF;;;IAjGWiE,QAAUC,EAAAA","file":"field.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ZodSchema } from \"zod\";\nimport { setProp } from \"@/internals/helpers/object.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { JSONParser } from \"@streamparser/json\";\nimport { jsonrepairTransform } from \"jsonrepair/stream\";\nimport { Cache, SingletonCacheKeyFn } from \"@/cache/decoratorCache.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\n\nexport abstract class ParserField<T, TPartial> extends Serializable {\n public raw = \"\";\n\n abstract get(): T;\n abstract getPartial(): TPartial;\n\n write(chunk: string) {\n this.raw += chunk;\n }\n\n async end() {}\n\n createSnapshot() {\n return { raw: this.raw };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class ZodParserField<T> extends ParserField<T, string> {\n static {\n this.register();\n }\n\n constructor(protected readonly schema: ZodSchema<T>) {\n super();\n }\n\n get(): T {\n return this.schema.parse(this.raw);\n }\n\n getPartial(): string {\n return this.raw;\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), schema: this.schema };\n }\n}\n\nexport class JSONParserField<T> extends ParserField<T, Partial<T>> {\n protected stream!: ReturnType<typeof jsonrepairTransform>;\n protected jsonParser!: JSONParser;\n protected errored = false;\n protected ref!: { value: Partial<T> };\n\n constructor(\n protected readonly input: {\n schema: ZodSchema<T>;\n base: Partial<T>;\n matchPair?: [string, string];\n },\n ) {\n super();\n if (input.base === undefined) {\n throw new ValueError(`Base must be defined!`);\n }\n this.init();\n }\n\n @Cache({ cacheKey: SingletonCacheKeyFn })\n protected init() {\n this.ref = { value: shallowCopy(this.input.base) };\n this.jsonParser = new JSONParser({ emitPartialTokens: false, emitPartialValues: true });\n this.stream = jsonrepairTransform();\n this.stream.on(\"data\", (chunk) => {\n if (this.errored) {\n return;\n }\n\n try {\n this.jsonParser.write(chunk.toString());\n } catch {\n this.errored = true;\n }\n });\n this.jsonParser.onValue = ({ value, key, stack }) => {\n const keys = stack\n .map((s) => s.key)\n .concat(key)\n .filter((s) => s !== undefined)\n .map(String);\n\n if (keys.length === 0 && value === undefined) {\n return;\n }\n const prefix: keyof typeof this.ref = \"value\";\n setProp(this.ref, [prefix, ...keys], value);\n };\n }\n\n write(chunk: string) {\n if (this.input.matchPair) {\n if (!this.raw) {\n const startChar = this.input.matchPair[0];\n const index = chunk.indexOf(startChar);\n if (index === -1) {\n return;\n }\n chunk = chunk.substring(index);\n } else {\n const merged = this.raw.concat(chunk);\n const match = findFirstPair(merged, this.input.matchPair);\n if (match) {\n if (match.end < this.raw.length) {\n return;\n }\n chunk = merged.substring(this.raw.length, match.end);\n }\n }\n }\n\n super.write(chunk);\n try {\n this.stream.push(chunk);\n } catch {\n this.errored = true;\n }\n }\n\n get() {\n const inputToParse = this.errored\n ? parseBrokenJson(this.raw, {\n pair: this.input.matchPair,\n })\n : this.ref.value;\n\n return this.input.schema.parse(inputToParse);\n }\n\n getPartial() {\n return this.ref.value;\n }\n\n async end() {\n if (this.stream.closed || this.jsonParser.isEnded || this.errored) {\n return;\n }\n\n return new Promise<void>((resolve, reject) => {\n this.jsonParser.onEnd = resolve;\n this.jsonParser.onError = reject;\n\n this.stream.push(null);\n this.jsonParser.end();\n });\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), input: this.input, errored: this.errored };\n }\n\n loadSnapshot({ raw, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, { raw: \"\", ...snapshot });\n this.init();\n this.write(raw);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ParserField {\n export type inferValue<T> = T extends ParserField<infer L, unknown> ? L : never;\n export type inferPartialValue<T> = T extends ParserField<any, infer L> ? L : never;\n}\n"]}
1
+ {"version":3,"sources":["field.ts"],"names":["ParserField","Serializable","raw","write","chunk","end","createSnapshot","loadSnapshot","snapshot","Object","assign","ZodParserField","register","constructor","schema","get","parse","getPartial","JSONParserField","stream","jsonParser","errored","ref","input","base","undefined","ValueError","init","value","shallowCopy","JSONParser","emitPartialTokens","emitPartialValues","jsonrepairTransform","on","toString","onValue","key","stack","keys","map","s","concat","filter","String","length","prefix","setProp","matchPair","startChar","index","indexOf","substring","merged","match","findFirstPair","push","inputToParse","parseBrokenJson","pair","closed","isEnded","Promise","resolve","reject","onEnd","onError","cacheKey","SingletonCacheKeyFn"],"mappings":"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","file":"field.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ZodSchema } from \"zod\";\nimport { setProp } from \"@/internals/helpers/object.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { JSONParser } from \"@streamparser/json\";\nimport { jsonrepairTransform } from \"jsonrepair/stream\";\nimport { Cache, SingletonCacheKeyFn } from \"@/cache/decoratorCache.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\n\nexport abstract class ParserField<T, TPartial> extends Serializable {\n public raw = \"\";\n\n abstract get(): T;\n abstract getPartial(): TPartial;\n\n write(chunk: string) {\n this.raw += chunk;\n }\n\n async end() {}\n\n createSnapshot() {\n return { raw: this.raw };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class ZodParserField<T> extends ParserField<T, string> {\n static {\n this.register();\n }\n\n constructor(protected readonly schema: ZodSchema<T>) {\n super();\n }\n\n get(): T {\n return this.schema.parse(this.raw);\n }\n\n getPartial(): string {\n return this.raw;\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), schema: this.schema };\n }\n}\n\nexport class JSONParserField<T> extends ParserField<T, Partial<T>> {\n protected stream!: ReturnType<typeof jsonrepairTransform>;\n protected jsonParser!: JSONParser;\n protected errored = false;\n protected ref!: { value: Partial<T> };\n\n constructor(\n protected readonly input: {\n schema: ZodSchema<T>;\n base: Partial<T>;\n matchPair?: [string, string];\n },\n ) {\n super();\n if (input.base === undefined) {\n throw new ValueError(`Base must be defined!`);\n }\n this.init();\n }\n\n @Cache({ cacheKey: SingletonCacheKeyFn })\n protected init() {\n this.ref = { value: shallowCopy(this.input.base) };\n this.jsonParser = new JSONParser({ emitPartialTokens: false, emitPartialValues: true });\n this.stream = jsonrepairTransform();\n this.stream.on(\"data\", (chunk) => {\n if (this.errored) {\n return;\n }\n\n try {\n this.jsonParser.write(chunk.toString());\n } catch {\n this.errored = true;\n }\n });\n this.jsonParser.onValue = ({ value, key, stack }) => {\n const keys = stack\n .map((s) => s.key)\n .concat(key)\n .filter((s) => s !== undefined)\n .map(String);\n\n if (keys.length === 0 && value === undefined) {\n return;\n }\n const prefix: keyof typeof this.ref = \"value\";\n setProp(this.ref, [prefix, ...keys], value);\n };\n }\n\n write(chunk: string) {\n if (this.input.matchPair) {\n if (!this.raw) {\n const startChar = this.input.matchPair[0];\n const index = chunk.indexOf(startChar);\n if (index === -1) {\n return;\n }\n chunk = chunk.substring(index);\n } else {\n const merged = this.raw.concat(chunk);\n const match = findFirstPair(merged, this.input.matchPair);\n if (match) {\n if (match.end < this.raw.length) {\n return;\n }\n chunk = merged.substring(this.raw.length, match.end);\n }\n }\n }\n\n super.write(chunk);\n try {\n this.stream.push(chunk);\n } catch {\n this.errored = true;\n }\n }\n\n get() {\n const inputToParse = this.errored\n ? parseBrokenJson(this.raw, {\n pair: this.input.matchPair,\n })\n : this.ref.value;\n\n return this.input.schema.parse(inputToParse);\n }\n\n getPartial() {\n return this.ref.value;\n }\n\n async end() {\n if (this.stream.closed || this.jsonParser.isEnded || this.errored) {\n return;\n }\n\n return new Promise<void>((resolve, reject) => {\n this.jsonParser.onEnd = resolve;\n this.jsonParser.onError = reject;\n\n this.stream.push(null);\n this.jsonParser.end();\n });\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), input: this.input, errored: this.errored };\n }\n\n loadSnapshot({ raw, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, { raw: \"\", ...snapshot });\n this.init();\n this.write(raw);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ParserField {\n export type inferValue<T> = T extends ParserField<infer L, unknown> ? L : never;\n export type inferPartialValue<T> = T extends ParserField<any, infer L> ? L : never;\n}\n"]}