beeai-framework 0.1.16 → 0.1.17

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 (627) hide show
  1. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/acp/agents/agent.d.cts +3 -14
  3. package/dist/adapters/acp/agents/agent.d.ts +3 -14
  4. package/dist/adapters/acp/agents/agent.js.map +1 -1
  5. package/dist/adapters/acp/agents/events.d.cts +2 -13
  6. package/dist/adapters/acp/agents/events.d.ts +2 -13
  7. package/dist/adapters/acp/agents/types.d.cts +1 -12
  8. package/dist/adapters/acp/agents/types.d.ts +1 -12
  9. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  10. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +3 -14
  11. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +3 -14
  12. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  13. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  14. package/dist/adapters/amazon-bedrock/backend/client.d.cts +1 -12
  15. package/dist/adapters/amazon-bedrock/backend/client.d.ts +1 -12
  16. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  17. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  18. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +3 -14
  19. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +3 -14
  20. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  21. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  22. package/dist/adapters/anthropic/backend/chat.d.cts +3 -14
  23. package/dist/adapters/anthropic/backend/chat.d.ts +3 -14
  24. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  25. package/dist/adapters/anthropic/backend/client.cjs +1 -4
  26. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  27. package/dist/adapters/anthropic/backend/client.d.cts +1 -12
  28. package/dist/adapters/anthropic/backend/client.d.ts +1 -12
  29. package/dist/adapters/anthropic/backend/client.js +3 -6
  30. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  31. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  32. package/dist/adapters/anthropic/backend/embedding.d.cts +3 -14
  33. package/dist/adapters/anthropic/backend/embedding.d.ts +3 -14
  34. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  35. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  36. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -14
  37. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -14
  38. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  39. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  40. package/dist/adapters/azure-openai/backend/client.d.cts +1 -12
  41. package/dist/adapters/azure-openai/backend/client.d.ts +1 -12
  42. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  43. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  44. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -14
  45. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -14
  46. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  47. package/dist/adapters/beeai_platform/agents/agent.cjs.map +1 -1
  48. package/dist/adapters/beeai_platform/agents/agent.d.cts +2 -2
  49. package/dist/adapters/beeai_platform/agents/agent.d.ts +2 -2
  50. package/dist/adapters/beeai_platform/agents/agent.js.map +1 -1
  51. package/dist/adapters/beeai_platform/agents/events.d.cts +2 -13
  52. package/dist/adapters/beeai_platform/agents/events.d.ts +2 -13
  53. package/dist/adapters/beeai_platform/agents/types.d.cts +1 -12
  54. package/dist/adapters/beeai_platform/agents/types.d.ts +1 -12
  55. package/dist/adapters/dummy/backend/chat.cjs +9 -9
  56. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  57. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  58. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  59. package/dist/adapters/dummy/backend/chat.js +9 -9
  60. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  61. package/dist/adapters/dummy/backend/embedding.cjs +9 -9
  62. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  63. package/dist/adapters/dummy/backend/embedding.d.cts +3 -14
  64. package/dist/adapters/dummy/backend/embedding.d.ts +3 -14
  65. package/dist/adapters/dummy/backend/embedding.js +9 -9
  66. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  67. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  68. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -14
  69. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -14
  70. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/client.d.cts +1 -12
  73. package/dist/adapters/google-vertex/backend/client.d.ts +1 -12
  74. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/embedding.d.cts +3 -14
  77. package/dist/adapters/google-vertex/backend/embedding.d.ts +3 -14
  78. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  79. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  80. package/dist/adapters/groq/backend/chat.d.cts +3 -14
  81. package/dist/adapters/groq/backend/chat.d.ts +3 -14
  82. package/dist/adapters/groq/backend/chat.js.map +1 -1
  83. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  84. package/dist/adapters/groq/backend/client.d.cts +1 -12
  85. package/dist/adapters/groq/backend/client.d.ts +1 -12
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +3 -14
  89. package/dist/adapters/groq/backend/embedding.d.ts +3 -14
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  92. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  93. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  94. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  95. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  96. package/dist/adapters/langchain/backend/embedding.d.cts +3 -14
  97. package/dist/adapters/langchain/backend/embedding.d.ts +3 -14
  98. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  99. package/dist/adapters/langchain/tools.cjs.map +1 -1
  100. package/dist/adapters/langchain/tools.d.cts +1 -1
  101. package/dist/adapters/langchain/tools.d.ts +1 -1
  102. package/dist/adapters/langchain/tools.js.map +1 -1
  103. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  104. package/dist/adapters/mcp/serve/http_server.d.cts +1 -12
  105. package/dist/adapters/mcp/serve/http_server.d.ts +1 -12
  106. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  107. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  108. package/dist/adapters/mcp/serve/in_memory_store.d.cts +1 -12
  109. package/dist/adapters/mcp/serve/in_memory_store.d.ts +1 -12
  110. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  111. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  112. package/dist/adapters/mcp/serve/server.d.cts +1 -12
  113. package/dist/adapters/mcp/serve/server.d.ts +1 -12
  114. package/dist/adapters/mcp/serve/server.js.map +1 -1
  115. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  116. package/dist/adapters/ollama/backend/chat.d.cts +3 -14
  117. package/dist/adapters/ollama/backend/chat.d.ts +3 -14
  118. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  119. package/dist/adapters/ollama/backend/client.cjs +12 -3
  120. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  121. package/dist/adapters/ollama/backend/client.d.cts +4 -13
  122. package/dist/adapters/ollama/backend/client.d.ts +4 -13
  123. package/dist/adapters/ollama/backend/client.js +13 -4
  124. package/dist/adapters/ollama/backend/client.js.map +1 -1
  125. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  126. package/dist/adapters/ollama/backend/embedding.d.cts +3 -14
  127. package/dist/adapters/ollama/backend/embedding.d.ts +3 -14
  128. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  129. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  130. package/dist/adapters/openai/backend/chat.d.cts +3 -14
  131. package/dist/adapters/openai/backend/chat.d.ts +3 -14
  132. package/dist/adapters/openai/backend/chat.js.map +1 -1
  133. package/dist/adapters/openai/backend/client.cjs +1 -4
  134. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  135. package/dist/adapters/openai/backend/client.d.cts +1 -12
  136. package/dist/adapters/openai/backend/client.d.ts +1 -12
  137. package/dist/adapters/openai/backend/client.js +3 -6
  138. package/dist/adapters/openai/backend/client.js.map +1 -1
  139. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  140. package/dist/adapters/openai/backend/embedding.d.cts +3 -14
  141. package/dist/adapters/openai/backend/embedding.d.ts +3 -14
  142. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  143. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  144. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  145. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  146. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  147. package/dist/adapters/vercel/backend/chat.js +2 -2
  148. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  149. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  150. package/dist/adapters/vercel/backend/embedding.d.cts +3 -14
  151. package/dist/adapters/vercel/backend/embedding.d.ts +3 -14
  152. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  153. package/dist/adapters/vercel/backend/utils.cjs +11 -2
  154. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  155. package/dist/adapters/vercel/backend/utils.d.cts +3 -13
  156. package/dist/adapters/vercel/backend/utils.d.ts +3 -13
  157. package/dist/adapters/vercel/backend/utils.js +11 -3
  158. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  159. package/dist/adapters/watsonx/backend/chat.cjs +13 -13
  160. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  161. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  162. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  163. package/dist/adapters/watsonx/backend/chat.js +13 -13
  164. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  165. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  166. package/dist/adapters/watsonx/backend/client.d.cts +1 -12
  167. package/dist/adapters/watsonx/backend/client.d.ts +1 -12
  168. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  169. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.d.cts +3 -14
  171. package/dist/adapters/watsonx/backend/embedding.d.ts +3 -14
  172. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  173. package/dist/adapters/xai/backend/chat.cjs +24 -0
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -0
  175. package/dist/adapters/xai/backend/chat.d.cts +39 -0
  176. package/dist/adapters/xai/backend/chat.d.ts +39 -0
  177. package/dist/adapters/xai/backend/chat.js +22 -0
  178. package/dist/adapters/xai/backend/chat.js.map +1 -0
  179. package/dist/adapters/xai/backend/client.cjs +26 -0
  180. package/dist/adapters/xai/backend/client.cjs.map +1 -0
  181. package/dist/adapters/xai/backend/client.d.cts +17 -0
  182. package/dist/adapters/xai/backend/client.d.ts +17 -0
  183. package/dist/adapters/xai/backend/client.js +24 -0
  184. package/dist/adapters/xai/backend/client.js.map +1 -0
  185. package/dist/{agent-CgsoqVL5.d.ts → agent-CUzHyTQd.d.ts} +3 -3
  186. package/dist/{agent-Ca5UE2P1.d.cts → agent-Cqh2zuKJ.d.cts} +3 -3
  187. package/dist/agents/base.cjs.map +1 -1
  188. package/dist/agents/base.d.cts +2 -2
  189. package/dist/agents/base.d.ts +2 -2
  190. package/dist/agents/base.js.map +1 -1
  191. package/dist/agents/experimental/replan/agent.cjs +8 -8
  192. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  193. package/dist/agents/experimental/replan/agent.d.cts +4 -15
  194. package/dist/agents/experimental/replan/agent.d.ts +4 -15
  195. package/dist/agents/experimental/replan/agent.js +8 -8
  196. package/dist/agents/experimental/replan/agent.js.map +1 -1
  197. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  198. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  199. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  200. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  201. package/dist/agents/experimental/streamlit/agent.cjs +9 -9
  202. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  203. package/dist/agents/experimental/streamlit/agent.d.cts +4 -15
  204. package/dist/agents/experimental/streamlit/agent.d.ts +4 -15
  205. package/dist/agents/experimental/streamlit/agent.js +9 -9
  206. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  207. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  208. package/dist/agents/experimental/streamlit/prompts.d.cts +1 -12
  209. package/dist/agents/experimental/streamlit/prompts.d.ts +1 -12
  210. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  211. package/dist/agents/react/agent.cjs +8 -8
  212. package/dist/agents/react/agent.cjs.map +1 -1
  213. package/dist/agents/react/agent.d.cts +4 -4
  214. package/dist/agents/react/agent.d.ts +4 -4
  215. package/dist/agents/react/agent.js +8 -8
  216. package/dist/agents/react/agent.js.map +1 -1
  217. package/dist/agents/react/prompts.cjs.map +1 -1
  218. package/dist/agents/react/prompts.d.cts +2 -13
  219. package/dist/agents/react/prompts.d.ts +2 -13
  220. package/dist/agents/react/prompts.js.map +1 -1
  221. package/dist/agents/react/runners/base.cjs +2 -2
  222. package/dist/agents/react/runners/base.cjs.map +1 -1
  223. package/dist/agents/react/runners/base.d.cts +4 -4
  224. package/dist/agents/react/runners/base.d.ts +4 -4
  225. package/dist/agents/react/runners/base.js +2 -2
  226. package/dist/agents/react/runners/base.js.map +1 -1
  227. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  228. package/dist/agents/react/runners/deep-think/prompts.d.cts +2 -13
  229. package/dist/agents/react/runners/deep-think/prompts.d.ts +2 -13
  230. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  231. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  232. package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
  233. package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
  234. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  235. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  236. package/dist/agents/react/runners/default/runner.d.cts +5 -5
  237. package/dist/agents/react/runners/default/runner.d.ts +5 -5
  238. package/dist/agents/react/runners/default/runner.js.map +1 -1
  239. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  240. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  241. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  242. package/dist/agents/react/runners/granite/prompts.d.cts +2 -13
  243. package/dist/agents/react/runners/granite/prompts.d.ts +2 -13
  244. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  245. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  246. package/dist/agents/react/runners/granite/runner.d.cts +5 -5
  247. package/dist/agents/react/runners/granite/runner.d.ts +5 -5
  248. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  249. package/dist/agents/react/types.d.cts +3 -14
  250. package/dist/agents/react/types.d.ts +3 -14
  251. package/dist/agents/toolCalling/agent.cjs +8 -8
  252. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  253. package/dist/agents/toolCalling/agent.d.cts +4 -15
  254. package/dist/agents/toolCalling/agent.d.ts +4 -15
  255. package/dist/agents/toolCalling/agent.js +8 -8
  256. package/dist/agents/toolCalling/agent.js.map +1 -1
  257. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  258. package/dist/agents/toolCalling/prompts.d.cts +1 -12
  259. package/dist/agents/toolCalling/prompts.d.ts +1 -12
  260. package/dist/agents/toolCalling/prompts.js.map +1 -1
  261. package/dist/agents/toolCalling/types.d.cts +2 -13
  262. package/dist/agents/toolCalling/types.d.ts +2 -13
  263. package/dist/agents/types.d.cts +2 -2
  264. package/dist/agents/types.d.ts +2 -2
  265. package/dist/backend/backend.cjs.map +1 -1
  266. package/dist/backend/backend.d.cts +3 -14
  267. package/dist/backend/backend.d.ts +3 -14
  268. package/dist/backend/backend.js.map +1 -1
  269. package/dist/backend/chat.cjs.map +1 -1
  270. package/dist/backend/chat.d.cts +2 -2
  271. package/dist/backend/chat.d.ts +2 -2
  272. package/dist/backend/chat.js.map +1 -1
  273. package/dist/backend/client.cjs.map +1 -1
  274. package/dist/backend/client.d.cts +1 -12
  275. package/dist/backend/client.d.ts +1 -12
  276. package/dist/backend/client.js.map +1 -1
  277. package/dist/backend/constants.cjs +8 -0
  278. package/dist/backend/constants.cjs.map +1 -1
  279. package/dist/backend/constants.d.cts +6 -12
  280. package/dist/backend/constants.d.ts +6 -12
  281. package/dist/backend/constants.js +8 -0
  282. package/dist/backend/constants.js.map +1 -1
  283. package/dist/backend/core.d.cts +2 -2
  284. package/dist/backend/core.d.ts +2 -2
  285. package/dist/backend/embedding.cjs.map +1 -1
  286. package/dist/backend/embedding.d.cts +2 -2
  287. package/dist/backend/embedding.d.ts +2 -2
  288. package/dist/backend/embedding.js.map +1 -1
  289. package/dist/backend/errors.cjs.map +1 -1
  290. package/dist/backend/errors.d.cts +1 -12
  291. package/dist/backend/errors.d.ts +1 -12
  292. package/dist/backend/errors.js.map +1 -1
  293. package/dist/backend/message.cjs.map +1 -1
  294. package/dist/backend/message.d.cts +1 -12
  295. package/dist/backend/message.d.ts +1 -12
  296. package/dist/backend/message.js.map +1 -1
  297. package/dist/backend/utils.cjs.map +1 -1
  298. package/dist/backend/utils.d.cts +2 -2
  299. package/dist/backend/utils.d.ts +2 -2
  300. package/dist/backend/utils.js.map +1 -1
  301. package/dist/{base-szR2Izbt.d.cts → base-Bc-Xv1jG.d.cts} +2 -13
  302. package/dist/{base-BOCDDBvG.d.ts → base-BrMAtrc_.d.ts} +2 -13
  303. package/dist/cache/base.cjs.map +1 -1
  304. package/dist/cache/base.d.cts +1 -12
  305. package/dist/cache/base.d.ts +1 -12
  306. package/dist/cache/base.js.map +1 -1
  307. package/dist/cache/decoratorCache.cjs +2 -2
  308. package/dist/cache/decoratorCache.cjs.map +1 -1
  309. package/dist/cache/decoratorCache.d.cts +1 -12
  310. package/dist/cache/decoratorCache.d.ts +1 -12
  311. package/dist/cache/decoratorCache.js +2 -2
  312. package/dist/cache/decoratorCache.js.map +1 -1
  313. package/dist/cache/fileCache.cjs.map +1 -1
  314. package/dist/cache/fileCache.d.cts +1 -12
  315. package/dist/cache/fileCache.d.ts +1 -12
  316. package/dist/cache/fileCache.js.map +1 -1
  317. package/dist/cache/nullCache.cjs.map +1 -1
  318. package/dist/cache/nullCache.d.cts +1 -12
  319. package/dist/cache/nullCache.d.ts +1 -12
  320. package/dist/cache/nullCache.js.map +1 -1
  321. package/dist/cache/slidingCache.cjs.map +1 -1
  322. package/dist/cache/slidingCache.d.cts +1 -12
  323. package/dist/cache/slidingCache.d.ts +1 -12
  324. package/dist/cache/slidingCache.js.map +1 -1
  325. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  326. package/dist/cache/unconstrainedCache.d.cts +1 -12
  327. package/dist/cache/unconstrainedCache.d.ts +1 -12
  328. package/dist/cache/unconstrainedCache.js.map +1 -1
  329. package/dist/{chat-DvMzAHj6.d.cts → chat-CR4yfOR9.d.cts} +3 -14
  330. package/dist/{chat-BdN8hGWn.d.ts → chat-W9j8T6UU.d.ts} +3 -14
  331. package/dist/context.cjs +3 -4
  332. package/dist/context.cjs.map +1 -1
  333. package/dist/context.d.cts +2 -13
  334. package/dist/context.d.ts +2 -13
  335. package/dist/context.js +3 -4
  336. package/dist/context.js.map +1 -1
  337. package/dist/emitter/emitter.cjs.map +1 -1
  338. package/dist/emitter/emitter.d.cts +1 -1
  339. package/dist/emitter/emitter.d.ts +1 -1
  340. package/dist/emitter/emitter.js.map +1 -1
  341. package/dist/emitter/errors.cjs.map +1 -1
  342. package/dist/emitter/errors.d.cts +1 -12
  343. package/dist/emitter/errors.d.ts +1 -12
  344. package/dist/emitter/errors.js.map +1 -1
  345. package/dist/emitter/types.d.cts +1 -1
  346. package/dist/emitter/types.d.ts +1 -1
  347. package/dist/emitter/utils.cjs.map +1 -1
  348. package/dist/emitter/utils.d.cts +1 -12
  349. package/dist/emitter/utils.d.ts +1 -12
  350. package/dist/emitter/utils.js.map +1 -1
  351. package/dist/{emitter-C3dO-s2P.d.ts → emitter-C9nwGLt6.d.ts} +3 -25
  352. package/dist/{emitter-D5Mu0EEH.d.cts → emitter-DWEsd-ud.d.cts} +3 -25
  353. package/dist/errors.cjs.map +1 -1
  354. package/dist/errors.d.cts +1 -12
  355. package/dist/errors.d.ts +1 -12
  356. package/dist/errors.js.map +1 -1
  357. package/dist/index.d.cts +4 -4
  358. package/dist/index.d.ts +4 -4
  359. package/dist/internals/env.cjs.map +1 -1
  360. package/dist/internals/env.d.cts +1 -12
  361. package/dist/internals/env.d.ts +1 -12
  362. package/dist/internals/env.js.map +1 -1
  363. package/dist/internals/fetcher.cjs +8 -8
  364. package/dist/internals/fetcher.cjs.map +1 -1
  365. package/dist/internals/fetcher.d.cts +2 -13
  366. package/dist/internals/fetcher.d.ts +2 -13
  367. package/dist/internals/fetcher.js +8 -8
  368. package/dist/internals/fetcher.js.map +1 -1
  369. package/dist/internals/helpers/array.cjs.map +1 -1
  370. package/dist/internals/helpers/array.d.cts +1 -12
  371. package/dist/internals/helpers/array.d.ts +1 -12
  372. package/dist/internals/helpers/array.js.map +1 -1
  373. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  374. package/dist/internals/helpers/cancellation.d.cts +1 -12
  375. package/dist/internals/helpers/cancellation.d.ts +1 -12
  376. package/dist/internals/helpers/cancellation.js.map +1 -1
  377. package/dist/internals/helpers/counter.cjs.map +1 -1
  378. package/dist/internals/helpers/counter.d.cts +1 -12
  379. package/dist/internals/helpers/counter.d.ts +1 -12
  380. package/dist/internals/helpers/counter.js.map +1 -1
  381. package/dist/internals/helpers/general.cjs.map +1 -1
  382. package/dist/internals/helpers/general.d.cts +1 -12
  383. package/dist/internals/helpers/general.d.ts +1 -12
  384. package/dist/internals/helpers/general.js.map +1 -1
  385. package/dist/internals/helpers/guards.cjs.map +1 -1
  386. package/dist/internals/helpers/guards.d.cts +1 -12
  387. package/dist/internals/helpers/guards.d.ts +1 -12
  388. package/dist/internals/helpers/guards.js.map +1 -1
  389. package/dist/internals/helpers/hash.cjs.map +1 -1
  390. package/dist/internals/helpers/hash.d.cts +1 -12
  391. package/dist/internals/helpers/hash.d.ts +1 -12
  392. package/dist/internals/helpers/hash.js.map +1 -1
  393. package/dist/internals/helpers/map.cjs.map +1 -1
  394. package/dist/internals/helpers/map.d.cts +1 -12
  395. package/dist/internals/helpers/map.d.ts +1 -12
  396. package/dist/internals/helpers/map.js.map +1 -1
  397. package/dist/internals/helpers/math.cjs.map +1 -1
  398. package/dist/internals/helpers/math.d.cts +1 -12
  399. package/dist/internals/helpers/math.d.ts +1 -12
  400. package/dist/internals/helpers/math.js.map +1 -1
  401. package/dist/internals/helpers/number.cjs.map +1 -1
  402. package/dist/internals/helpers/number.d.cts +1 -12
  403. package/dist/internals/helpers/number.d.ts +1 -12
  404. package/dist/internals/helpers/number.js.map +1 -1
  405. package/dist/internals/helpers/object.cjs.map +1 -1
  406. package/dist/internals/helpers/object.d.cts +1 -12
  407. package/dist/internals/helpers/object.d.ts +1 -12
  408. package/dist/internals/helpers/object.js.map +1 -1
  409. package/dist/internals/helpers/paginate.cjs.map +1 -1
  410. package/dist/internals/helpers/paginate.d.cts +1 -12
  411. package/dist/internals/helpers/paginate.d.ts +1 -12
  412. package/dist/internals/helpers/paginate.js.map +1 -1
  413. package/dist/internals/helpers/promise.cjs +1 -3
  414. package/dist/internals/helpers/promise.cjs.map +1 -1
  415. package/dist/internals/helpers/promise.d.cts +1 -12
  416. package/dist/internals/helpers/promise.d.ts +1 -12
  417. package/dist/internals/helpers/promise.js +1 -3
  418. package/dist/internals/helpers/promise.js.map +1 -1
  419. package/dist/internals/helpers/prototype.cjs.map +1 -1
  420. package/dist/internals/helpers/prototype.d.cts +1 -12
  421. package/dist/internals/helpers/prototype.d.ts +1 -12
  422. package/dist/internals/helpers/prototype.js.map +1 -1
  423. package/dist/internals/helpers/retry.cjs.map +1 -1
  424. package/dist/internals/helpers/retry.d.cts +1 -12
  425. package/dist/internals/helpers/retry.d.ts +1 -12
  426. package/dist/internals/helpers/retry.js.map +1 -1
  427. package/dist/internals/helpers/retryable.cjs.map +1 -1
  428. package/dist/internals/helpers/retryable.d.cts +1 -12
  429. package/dist/internals/helpers/retryable.d.ts +1 -12
  430. package/dist/internals/helpers/retryable.js.map +1 -1
  431. package/dist/internals/helpers/schema.cjs.map +1 -1
  432. package/dist/internals/helpers/schema.d.cts +1 -12
  433. package/dist/internals/helpers/schema.d.ts +1 -12
  434. package/dist/internals/helpers/schema.js.map +1 -1
  435. package/dist/internals/helpers/stream.cjs.map +1 -1
  436. package/dist/internals/helpers/stream.d.cts +1 -12
  437. package/dist/internals/helpers/stream.d.ts +1 -12
  438. package/dist/internals/helpers/stream.js.map +1 -1
  439. package/dist/internals/helpers/string.cjs.map +1 -1
  440. package/dist/internals/helpers/string.d.cts +1 -12
  441. package/dist/internals/helpers/string.d.ts +1 -12
  442. package/dist/internals/helpers/string.js.map +1 -1
  443. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  444. package/dist/internals/helpers/weakRef.d.cts +1 -12
  445. package/dist/internals/helpers/weakRef.d.ts +1 -12
  446. package/dist/internals/helpers/weakRef.js.map +1 -1
  447. package/dist/internals/serializable.cjs.map +1 -1
  448. package/dist/internals/serializable.d.cts +1 -12
  449. package/dist/internals/serializable.d.ts +1 -12
  450. package/dist/internals/serializable.js.map +1 -1
  451. package/dist/internals/types.cjs.map +1 -1
  452. package/dist/internals/types.d.cts +1 -12
  453. package/dist/internals/types.d.ts +1 -12
  454. package/dist/internals/types.js.map +1 -1
  455. package/dist/logger/logger.cjs.map +1 -1
  456. package/dist/logger/logger.js.map +1 -1
  457. package/dist/logger/pretty.cjs.map +1 -1
  458. package/dist/logger/pretty.js.map +1 -1
  459. package/dist/memory/base.cjs.map +1 -1
  460. package/dist/memory/base.js.map +1 -1
  461. package/dist/memory/slidingMemory.cjs.map +1 -1
  462. package/dist/memory/slidingMemory.js.map +1 -1
  463. package/dist/memory/summarizeMemory.cjs.map +1 -1
  464. package/dist/memory/summarizeMemory.d.cts +2 -2
  465. package/dist/memory/summarizeMemory.d.ts +2 -2
  466. package/dist/memory/summarizeMemory.js.map +1 -1
  467. package/dist/memory/tokenMemory.cjs.map +1 -1
  468. package/dist/memory/tokenMemory.js.map +1 -1
  469. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  470. package/dist/memory/unconstrainedMemory.js.map +1 -1
  471. package/dist/parsers/errors.cjs.map +1 -1
  472. package/dist/parsers/errors.d.cts +1 -12
  473. package/dist/parsers/errors.d.ts +1 -12
  474. package/dist/parsers/errors.js.map +1 -1
  475. package/dist/parsers/field.cjs +2 -2
  476. package/dist/parsers/field.cjs.map +1 -1
  477. package/dist/parsers/field.js +2 -2
  478. package/dist/parsers/field.js.map +1 -1
  479. package/dist/parsers/linePrefix.cjs +15 -15
  480. package/dist/parsers/linePrefix.cjs.map +1 -1
  481. package/dist/parsers/linePrefix.d.cts +2 -13
  482. package/dist/parsers/linePrefix.d.ts +2 -13
  483. package/dist/parsers/linePrefix.js +15 -15
  484. package/dist/parsers/linePrefix.js.map +1 -1
  485. package/dist/serializer/error.cjs.map +1 -1
  486. package/dist/serializer/error.d.cts +1 -12
  487. package/dist/serializer/error.d.ts +1 -12
  488. package/dist/serializer/error.js.map +1 -1
  489. package/dist/serializer/serializer.cjs.map +1 -1
  490. package/dist/serializer/serializer.d.cts +1 -1
  491. package/dist/serializer/serializer.d.ts +1 -1
  492. package/dist/serializer/serializer.js.map +1 -1
  493. package/dist/serializer/utils.cjs +1 -2
  494. package/dist/serializer/utils.cjs.map +1 -1
  495. package/dist/serializer/utils.d.cts +1 -1
  496. package/dist/serializer/utils.d.ts +1 -1
  497. package/dist/serializer/utils.js +1 -2
  498. package/dist/serializer/utils.js.map +1 -1
  499. package/dist/{serializer-Dz4AIM2O.d.cts → serializer-BKn50Vnx.d.cts} +2 -24
  500. package/dist/{serializer-BswFRdT8.d.ts → serializer-CQxucveV.d.ts} +2 -24
  501. package/dist/serve/server.cjs +1 -2
  502. package/dist/serve/server.cjs.map +1 -1
  503. package/dist/serve/server.d.cts +1 -12
  504. package/dist/serve/server.d.ts +1 -12
  505. package/dist/serve/server.js +1 -2
  506. package/dist/serve/server.js.map +1 -1
  507. package/dist/template.cjs.map +1 -1
  508. package/dist/template.d.cts +1 -12
  509. package/dist/template.d.ts +1 -12
  510. package/dist/template.js.map +1 -1
  511. package/dist/tools/arxiv.cjs.map +1 -1
  512. package/dist/tools/arxiv.d.cts +2 -13
  513. package/dist/tools/arxiv.d.ts +2 -13
  514. package/dist/tools/arxiv.js.map +1 -1
  515. package/dist/tools/base.cjs.map +1 -1
  516. package/dist/tools/base.d.cts +1 -1
  517. package/dist/tools/base.d.ts +1 -1
  518. package/dist/tools/base.js.map +1 -1
  519. package/dist/tools/calculator.cjs.map +1 -1
  520. package/dist/tools/calculator.d.cts +2 -13
  521. package/dist/tools/calculator.d.ts +2 -13
  522. package/dist/tools/calculator.js.map +1 -1
  523. package/dist/tools/custom.cjs.map +1 -1
  524. package/dist/tools/custom.d.cts +3 -14
  525. package/dist/tools/custom.d.ts +3 -14
  526. package/dist/tools/custom.js.map +1 -1
  527. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  528. package/dist/tools/database/elasticsearch.d.cts +2 -13
  529. package/dist/tools/database/elasticsearch.d.ts +2 -13
  530. package/dist/tools/database/elasticsearch.js.map +1 -1
  531. package/dist/tools/database/metadata.cjs.map +1 -1
  532. package/dist/tools/database/metadata.d.cts +1 -12
  533. package/dist/tools/database/metadata.d.ts +1 -12
  534. package/dist/tools/database/metadata.js.map +1 -1
  535. package/dist/tools/database/milvus.cjs.map +1 -1
  536. package/dist/tools/database/milvus.d.cts +2 -13
  537. package/dist/tools/database/milvus.d.ts +2 -13
  538. package/dist/tools/database/milvus.js.map +1 -1
  539. package/dist/tools/database/qdrant.cjs.map +1 -1
  540. package/dist/tools/database/qdrant.d.cts +2 -13
  541. package/dist/tools/database/qdrant.d.ts +2 -13
  542. package/dist/tools/database/qdrant.js.map +1 -1
  543. package/dist/tools/database/sql.cjs.map +1 -1
  544. package/dist/tools/database/sql.d.cts +2 -13
  545. package/dist/tools/database/sql.d.ts +2 -13
  546. package/dist/tools/database/sql.js.map +1 -1
  547. package/dist/tools/llm.cjs +3 -3
  548. package/dist/tools/llm.cjs.map +1 -1
  549. package/dist/tools/llm.d.cts +3 -14
  550. package/dist/tools/llm.d.ts +3 -14
  551. package/dist/tools/llm.js +3 -3
  552. package/dist/tools/llm.js.map +1 -1
  553. package/dist/tools/mcp.cjs +2 -1
  554. package/dist/tools/mcp.cjs.map +1 -1
  555. package/dist/tools/mcp.d.cts +2 -13
  556. package/dist/tools/mcp.d.ts +2 -13
  557. package/dist/tools/mcp.js +2 -1
  558. package/dist/tools/mcp.js.map +1 -1
  559. package/dist/tools/openapi.cjs.map +1 -1
  560. package/dist/tools/openapi.d.cts +1 -1
  561. package/dist/tools/openapi.d.ts +1 -1
  562. package/dist/tools/openapi.js.map +1 -1
  563. package/dist/tools/python/output.cjs.map +1 -1
  564. package/dist/tools/python/output.d.cts +2 -13
  565. package/dist/tools/python/output.d.ts +2 -13
  566. package/dist/tools/python/output.js.map +1 -1
  567. package/dist/tools/python/python.cjs.map +1 -1
  568. package/dist/tools/python/python.d.cts +2 -2
  569. package/dist/tools/python/python.d.ts +2 -2
  570. package/dist/tools/python/python.js.map +1 -1
  571. package/dist/tools/python/storage.cjs.map +1 -1
  572. package/dist/tools/python/storage.d.cts +1 -12
  573. package/dist/tools/python/storage.d.ts +1 -12
  574. package/dist/tools/python/storage.js.map +1 -1
  575. package/dist/tools/search/base.cjs.map +1 -1
  576. package/dist/tools/search/base.d.cts +2 -13
  577. package/dist/tools/search/base.d.ts +2 -13
  578. package/dist/tools/search/base.js.map +1 -1
  579. package/dist/tools/search/duckDuckGoSearch.cjs +7 -1
  580. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  581. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -13
  582. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -13
  583. package/dist/tools/search/duckDuckGoSearch.js +7 -1
  584. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  585. package/dist/tools/search/googleSearch.cjs.map +1 -1
  586. package/dist/tools/search/googleSearch.d.cts +1 -1
  587. package/dist/tools/search/googleSearch.d.ts +1 -1
  588. package/dist/tools/search/googleSearch.js.map +1 -1
  589. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  590. package/dist/tools/search/searXNGSearch.d.cts +2 -13
  591. package/dist/tools/search/searXNGSearch.d.ts +2 -13
  592. package/dist/tools/search/searXNGSearch.js.map +1 -1
  593. package/dist/tools/search/wikipedia.cjs +11 -11
  594. package/dist/tools/search/wikipedia.cjs.map +1 -1
  595. package/dist/tools/search/wikipedia.d.cts +1 -1
  596. package/dist/tools/search/wikipedia.d.ts +1 -1
  597. package/dist/tools/search/wikipedia.js +11 -11
  598. package/dist/tools/search/wikipedia.js.map +1 -1
  599. package/dist/tools/similarity.cjs.map +1 -1
  600. package/dist/tools/similarity.d.cts +2 -13
  601. package/dist/tools/similarity.d.ts +2 -13
  602. package/dist/tools/similarity.js.map +1 -1
  603. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  604. package/dist/tools/weather/openMeteo.d.cts +2 -13
  605. package/dist/tools/weather/openMeteo.d.ts +2 -13
  606. package/dist/tools/weather/openMeteo.js.map +1 -1
  607. package/dist/tools/web/webCrawler.cjs.map +1 -1
  608. package/dist/tools/web/webCrawler.d.cts +1 -1
  609. package/dist/tools/web/webCrawler.d.ts +1 -1
  610. package/dist/tools/web/webCrawler.js.map +1 -1
  611. package/dist/version.cjs +1 -1
  612. package/dist/version.cjs.map +1 -1
  613. package/dist/version.d.cts +1 -12
  614. package/dist/version.d.ts +1 -12
  615. package/dist/version.js +1 -1
  616. package/dist/version.js.map +1 -1
  617. package/dist/workflows/agent.cjs.map +1 -1
  618. package/dist/workflows/agent.d.cts +3 -3
  619. package/dist/workflows/agent.d.ts +3 -3
  620. package/dist/workflows/agent.js.map +1 -1
  621. package/dist/workflows/workflow.cjs +3 -3
  622. package/dist/workflows/workflow.cjs.map +1 -1
  623. package/dist/workflows/workflow.d.cts +1 -1
  624. package/dist/workflows/workflow.d.ts +1 -1
  625. package/dist/workflows/workflow.js +3 -3
  626. package/dist/workflows/workflow.js.map +1 -1
  627. package/package.json +37 -73
@@ -3,18 +3,7 @@ import './guards.js';
3
3
 
4
4
  /**
5
5
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
6
+ * SPDX-License-Identifier: Apache-2.0
18
7
  */
19
8
 
20
9
  declare function traversePrototypeChain(value: unknown, excluded?: Set<any>): Generator<unknown, void, unknown>;
@@ -1 +1 @@
1
- {"version":3,"sources":["prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;AAmBO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAmB,EAAA;AACzE,EAAA,IAAIC,IAAOF,GAAAA,KAAAA;AACX,EAAOE,OAAAA,IAAAA,KAAS,IAAQA,IAAAA,IAAAA,KAASC,MAAW,EAAA;AAC1CD,IAAOE,IAAAA,GAAAA,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAMJ,GAAAA,IAAAA,CAAO,EAAA;AAC1B,MAAMA,MAAAA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAgC,EAAA;AAEhC,EAAOC,OAAAA,CAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAeG,CAAAA,MAAAA,MAAYC,WAAYG,CAAAA,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAiB,EAAA;AAEjB,EAAWb,KAAAA,MAAAA,IAAAA,IAAQH,sBAAuBe,CAAAA,MAAAA,CAAS,EAAA;AACjD,IAAA,MAAME,UAAaZ,GAAAA,MAAAA,CAAOa,wBAAyBf,CAAAA,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAY,EAAA;AACd,MAAOA,OAAAA,UAAAA;AACT;AACF;AACA,EAAO,OAAA,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.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 { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/prototype.ts"],"names":["traversePrototypeChain","value","excluded","node","undefined","Object","getPrototypeOf","has","isDirectInstanceOf","object","constructor","R","isTruthy","prototype","findDescriptor","target","property","descriptor","getOwnPropertyDescriptor"],"mappings":";;;;AAQO,UAAUA,sBAAAA,CAAuBC,OAAgBC,QAAAA,EAAmB;AACzE,EAAA,IAAIC,IAAAA,GAAOF,KAAAA;AACX,EAAA,OAAOE,IAAAA,KAAS,IAAA,IAAQA,IAAAA,KAASC,MAAAA,EAAW;AAC1CD,IAAAA,IAAAA,GAAOE,MAAAA,CAAOC,eAAeH,IAAAA,CAAAA;AAC7B,IAAA,IAAI,CAACD,QAAAA,EAAUK,GAAAA,GAAMJ,IAAAA,CAAAA,EAAO;AAC1B,MAAA,MAAMA,IAAAA;AACR;AACF;AACF;AARiBH,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUV,SAASQ,kBAAAA,CACdC,QACAC,WAAAA,EAAgC;AAEhC,EAAA,OAAOC,CAAAA,CAAEC,SAASH,MAAAA,CAAAA,IAAWJ,OAAOC,cAAAA,CAAeG,MAAAA,MAAYC,WAAAA,CAAYG,SAAAA;AAC7E;AALgBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAOT,SAASM,cAAAA,CACdC,QACAC,QAAAA,EAAiB;AAEjB,EAAA,KAAA,MAAWb,IAAAA,IAAQH,sBAAAA,CAAuBe,MAAAA,CAAAA,EAAS;AACjD,IAAA,MAAME,UAAAA,GAAaZ,MAAAA,CAAOa,wBAAAA,CAAyBf,IAAAA,EAAMa,QAAAA,CAAAA;AACzD,IAAA,IAAIC,UAAAA,EAAY;AACd,MAAA,OAAOA,UAAAA;AACT;AACF;AACA,EAAA,OAAO,IAAA;AACT;AAXgBH,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA","file":"prototype.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\n\nexport function* traversePrototypeChain(value: unknown, excluded?: Set<any>) {\n let node = value;\n while (node !== null && node !== undefined) {\n node = Object.getPrototypeOf(node);\n if (!excluded?.has?.(node)) {\n yield node;\n }\n }\n}\n\nexport function isDirectInstanceOf<A>(\n object: unknown,\n constructor: ClassConstructor<A>,\n): object is A {\n return R.isTruthy(object) && Object.getPrototypeOf(object) === constructor.prototype;\n}\n\nexport function findDescriptor<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): PropertyDescriptor | null {\n for (const node of traversePrototypeChain(target)) {\n const descriptor = Object.getOwnPropertyDescriptor(node, property);\n if (descriptor) {\n return descriptor;\n }\n }\n return null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,mBAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,yBAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,sBAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.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 { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;;;AAsBA,eAAsBA,MAAAA,CACpBC,IACAC,OAAAA,EAAiB;AAEjB,EAAA,MAAMC,OAAAA,mBAAU,MAAA,CAAA,OAAOC,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAA,IAAI;AACF,MAAA,MAAMC,MAAAA,GAASJ,SAASI,MAAAA,IAAU,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAA,EAAG;AACf,QAAA,MAAMG,EAAAA,GAAKC,KAAKC,KAAAA,CAAMD,IAAAA,CAAKE,IAAIJ,MAAAA,EAAQF,OAAAA,GAAU,CAAA,CAAA,CAAA,GAAM,GAAA;AACvD,QAAA,MAAMO,mBAAAA,CAAWJ,IAAIK,KAAAA,CAAAA,EAAW;AAC9BC,UAAAA,MAAAA,EAAQX,OAAAA,EAASW;SACnB,CAAA;AACF;AAEA,MAAA,OAAO,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAAA,EAAG;AACV,MAAA,MAAMC,IAAAA,GAAa;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAA,IAAIW,yBAAAA,CAAeC,YAAAA,CAAaH,CAAAA,CAAAA,EAAI;AAClC,QAAA,MAAMA,EAAEI,KAAAA,IAASJ,CAAAA;AACnB;AAEA,MAAA,MAAMZ,OAAAA,EAASiB,eAAAA,GAAkBL,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAA,EAAG;AAClB,QAAA,MAAMS,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAAAA,EAASkB,WAAAA,GAAcN,CAAAA,EAAGC,IAAAA,MAAW,KAAA,EAAO;AACrD,QAAA,MAAMD,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAAA,GAAU,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GACF,EA/BgB,SAAA,CAAA;AAiChB,EAAA,OAAO,MAAMgB,sBAAAA,CAAW,MAAMlB,OAAAA,CAAQ,CAAA,EAAGD,SAASoB,OAAAA,IAAW,CAAA,CAAA,EAAIpB,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
@@ -1,17 +1,6 @@
1
1
  /**
2
2
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
3
+ * SPDX-License-Identifier: Apache-2.0
15
4
  */
16
5
  interface Meta {
17
6
  attempt: number;
@@ -1,17 +1,6 @@
1
1
  /**
2
2
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
3
+ * SPDX-License-Identifier: Apache-2.0
15
4
  */
16
5
  interface Meta {
17
6
  attempt: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;AAiCA,eAAsBA,MAAAA,CACpBC,IACAC,OAAiB,EAAA;AAEjB,EAAMC,MAAAA,OAAAA,mBAAiBC,MAAAA,CAAAA,OAAAA,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAI,IAAA;AACF,MAAMC,MAAAA,MAAAA,GAASJ,SAASI,MAAU,IAAA,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAG,EAAA;AACf,QAAMG,MAAAA,EAAAA,GAAKC,KAAKC,KAAMD,CAAAA,IAAAA,CAAKE,IAAIJ,MAAQF,EAAAA,OAAAA,GAAU,CAAA,CAAA,CAAM,GAAA,GAAA;AACvD,QAAMO,MAAAA,UAAAA,CAAWJ,IAAIK,KAAW,CAAA,EAAA;AAC9BC,UAAAA,MAAAA,EAAQX,OAASW,EAAAA;SACnB,CAAA;AACF;AAEA,MAAO,OAAA,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAG,EAAA;AACV,MAAA,MAAMC,IAAa,GAAA;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAIW,IAAAA,cAAAA,CAAeC,YAAaH,CAAAA,CAAAA,CAAI,EAAA;AAClC,QAAA,MAAMA,EAAEI,KAASJ,IAAAA,CAAAA;AACnB;AAEA,MAAMZ,MAAAA,OAAAA,EAASiB,eAAkBL,GAAAA,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAG,EAAA;AAClB,QAAMS,MAAAA,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAASkB,EAAAA,WAAAA,GAAcN,CAAGC,EAAAA,IAAAA,MAAW,KAAO,EAAA;AACrD,QAAMD,MAAAA,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAU,GAAA,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GA9Bc,EAAA,SAAA,CAAA;AAiChB,EAAO,OAAA,MAAMgB,UAAW,CAAA,MAAMlB,OAAQ,CAAA,CAAA,EAAGD,SAASoB,OAAW,IAAA,CAAA,CAAIpB,EAAAA,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.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 { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/retry.ts"],"names":["pRetry","fn","options","handler","attempt","remaining","factor","ms","Math","round","pow","setTimeout","undefined","signal","e","meta","FrameworkError","isAbortError","cause","onFailedAttempt","shouldRetry","signalRace","retries"],"mappings":";;;;;;AAsBA,eAAsBA,MAAAA,CACpBC,IACAC,OAAAA,EAAiB;AAEjB,EAAA,MAAMC,OAAAA,mBAAU,MAAA,CAAA,OAAOC,OAAAA,EAAiBC,SAAAA,KAAAA;AACtC,IAAA,IAAI;AACF,MAAA,MAAMC,MAAAA,GAASJ,SAASI,MAAAA,IAAU,CAAA;AAClC,MAAA,IAAIF,UAAU,CAAA,EAAG;AACf,QAAA,MAAMG,EAAAA,GAAKC,KAAKC,KAAAA,CAAMD,IAAAA,CAAKE,IAAIJ,MAAAA,EAAQF,OAAAA,GAAU,CAAA,CAAA,CAAA,GAAM,GAAA;AACvD,QAAA,MAAMO,UAAAA,CAAWJ,IAAIK,KAAAA,CAAAA,EAAW;AAC9BC,UAAAA,MAAAA,EAAQX,OAAAA,EAASW;SACnB,CAAA;AACF;AAEA,MAAA,OAAO,MAAMZ,GAAGG,OAAAA,CAAAA;AAClB,KAAA,CAAA,OAASU,CAAAA,EAAG;AACV,MAAA,MAAMC,IAAAA,GAAa;AACjBX,QAAAA,OAAAA;AACAC,QAAAA;AACF,OAAA;AAEA,MAAA,IAAIW,cAAAA,CAAeC,YAAAA,CAAaH,CAAAA,CAAAA,EAAI;AAClC,QAAA,MAAMA,EAAEI,KAAAA,IAASJ,CAAAA;AACnB;AAEA,MAAA,MAAMZ,OAAAA,EAASiB,eAAAA,GAAkBL,CAAAA,EAAGC,IAAAA,CAAAA;AACpC,MAAA,IAAIV,aAAa,CAAA,EAAG;AAClB,QAAA,MAAMS,CAAAA;AACR;AAEA,MAAA,IAAK,MAAMZ,OAAAA,EAASkB,WAAAA,GAAcN,CAAAA,EAAGC,IAAAA,MAAW,KAAA,EAAO;AACrD,QAAA,MAAMD,CAAAA;AACR;AACA,MAAA,OAAO,MAAMX,OAAAA,CAAQC,OAAAA,GAAU,CAAA,EAAGC,YAAY,CAAA,CAAA;AAChD;GACF,EA/BgB,SAAA,CAAA;AAiChB,EAAA,OAAO,MAAMgB,UAAAA,CAAW,MAAMlB,OAAAA,CAAQ,CAAA,EAAGD,SAASoB,OAAAA,IAAW,CAAA,CAAA,EAAIpB,OAAAA,EAASW,MAAAA,CAAAA;AAC5E;AAtCsBb,MAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA","file":"retry.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { setTimeout } from \"node:timers/promises\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\n\ninterface Meta {\n attempt: number;\n remaining: number;\n}\n\ninterface Options {\n signal?: AbortSignal;\n factor?: number;\n retries?: number;\n shouldRetry?: (e: Error, meta: Meta) => boolean | Promise<boolean>;\n onFailedAttempt?: (e: Error, meta: Meta) => void | Promise<void>;\n}\n\nexport async function pRetry<T>(\n fn: (attempt: number) => Promise<T>,\n options?: Options,\n): Promise<T> {\n const handler = async (attempt: number, remaining: number) => {\n try {\n const factor = options?.factor ?? 2;\n if (attempt > 1) {\n const ms = Math.round(Math.pow(factor, attempt - 1)) * 1000;\n await setTimeout(ms, undefined, {\n signal: options?.signal,\n });\n }\n\n return await fn(attempt);\n } catch (e) {\n const meta: Meta = {\n attempt,\n remaining,\n };\n\n if (FrameworkError.isAbortError(e)) {\n throw e.cause || e;\n }\n\n await options?.onFailedAttempt?.(e, meta);\n if (remaining <= 0) {\n throw e;\n }\n\n if ((await options?.shouldRetry?.(e, meta)) === false) {\n throw e;\n }\n return await handler(attempt + 1, remaining - 1);\n }\n };\n\n return await signalRace(() => handler(1, options?.retries ?? 0), options?.signal);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","constructor","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":"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","file":"retryable.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 * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAMA,WAAAA,GAAc;;;;EAIzBC,iBAAAA,EAAmB,mBAAA;;;;EAKnBC,YAAAA,EAAc,cAAA;;;;EAKdC,UAAAA,EAAY;AACd;AAiBO,MAAMC,SAAAA,CAAAA;EAnDb;;;AAoDW,EAAA,GAAA;AACT,EAAA,MAAA;AACA,EAAA,OAAA;AACA,EAAA,SAAA;AAEA,EAAA,WAAA,CAAYC,GAAAA,EAMT;AACD,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AACd,IAAA,IAAA,CAAK,MAAMC,yBAAAA,EAAAA;AACX,IAAA,IAAA,CAAK,SAAA,GAAY;AACfC,MAAAA,QAAAA,EAAUF,GAAAA,CAAIE,QAAAA;AACdC,MAAAA,OAAAA,EAASH,GAAAA,CAAIG,OAAAA;AACbC,MAAAA,OAAAA,EAASJ,GAAAA,CAAII,OAAAA;AACbC,MAAAA,OAAAA,EAASL,GAAAA,CAAIK;AACf,KAAA;AACA,IAAA,IAAA,CAAK,OAAA,GAAU;AACb,MAAA,GAAGL,GAAAA,CAAIM,MAAAA;AACPC,MAAAA,UAAAA,EAAYC,KAAKC,GAAAA,CAAIT,GAAAA,CAAIM,MAAAA,EAAQC,UAAAA,IAAc,GAAG,CAAA;AACpD,KAAA;AACF;EAEA,aAAaG,QAAAA,CACXC,UACAC,MAAAA,EACc;AACd,IAAA,IAAID,QAAAA,KAAahB,YAAYC,iBAAAA,EAAmB;AAC9C,MAAA,OAAO,MAAMiB,OAAAA,CAAQC,GAAAA,CAAIF,MAAAA,CAAOG,GAAAA,CAAI,CAACC,KAAAA,KAAUA,KAAAA,CAAMC,GAAAA,EAAG,CAAA,CAAA;AAC1D;AAEA,IAAA,MAAMC,UAAAA,GAAa,IAAIC,eAAAA,EAAAA;AACvB,IAAA,MAAMC,OAAAA,GAAU,MAAMP,OAAAA,CAAQQ,UAAAA,CAC5BT,MAAAA,CAAOG,GAAAA,CAAI,CAACC,KAAAA,KACVA,KAAAA,CACGC,GAAAA,CAAIN,QAAAA,KAAahB,WAAAA,CAAYG,UAAAA,GAAa;AAAEwB,MAAAA,WAAAA,EAAaJ,UAAAA,CAAWK;AAAO,KAAA,GAAIC,MAAAA,CAAAA,CAC/EC,KAAAA,CAAM,CAACC,GAAAA,KAAAA;AACNR,MAAAA,UAAAA,CAAWS,MAAMD,GAAAA,CAAAA;AACjB,MAAA,MAAMA,GAAAA;AACR,KAAA,CAAA,CAAA,CAAA;AAGNR,IAAAA,UAAAA,CAAWK,OAAOK,cAAAA,EAAc;AAChC,IAAA,OAAOR,OAAAA,CAAQL,GAAAA,CAAI,CAACc,MAAAA,KAAYA,OAAqCC,KAAK,CAAA;AAC5E;AAEA,EAAA,cAAcC,YAAenB,MAAAA,EAAoD;AAC/E,IAAA,KAAA,MAAWI,SAASJ,MAAAA,EAAQ;AAC1B,MAAA,MAAM,MAAMI,MAAMC,GAAAA,EAAG;AACvB;AACF;AAEA,EAAA,aAAae,QAAWpB,MAAAA,EAA4C;AAElE,IAAA,MAAMC,OAAAA,CAAQC,GAAAA,CAAImB,YAAAA,CAAEC,MAAAA,CAAOtB,MAAAA,CAAAA,CAAQG,GAAAA,CAAI,CAACC,KAAAA,KAAUA,KAAAA,CAAMC,GAAAA,EAAG,CAAA,CAAA;AAG3D,IAAA,OAAO,MAAMkB,2BAAAA,CACXF,YAAAA,CAAEG,SAAAA,CAAUxB,MAAAA,EAAQ,CAACkB,KAAAA,KAAWA,KAAAA,CAAyBb,GAAAA,EAAG,CAAA,CAAA;AAIhE;AAEA,EAAA,WAAA,CAAYoB,OAAAA,EAAe;AACzB,IAAA,MAAMrC,GAAAA,GAAwB;AAC5BqC,MAAAA,OAAAA;AACAC,MAAAA,WAAAA,EAAa,IAAA,CAAK,GAAA;AAClBf,MAAAA,MAAAA,EAAQ,KAAK,OAAA,CAAQA;AACvB,KAAA;AACAgB,IAAAA,MAAAA,CAAOC,cAAAA,CAAexC,KAAK,QAAA,EAAU;MACnCyC,UAAAA,EAAY;KACd,CAAA;AACA,IAAA,OAAOzC,GAAAA;AACT;AAEA,EAAA,IAAI0C,UAAAA,GAAsB;AACxB,IAAA,OAAO,IAAA,CAAK,MAAA,EAAQC,KAAAA,KAAUC,0BAAAA,CAAUC,QAAAA;AAC1C;AAEA,EAAA,IAAIC,UAAAA,GAAsB;AACxB,IAAA,OAAO,IAAA,CAAK,MAAA,EAAQH,KAAAA,KAAUC,0BAAAA,CAAUG,QAAAA;AAC1C;AAEUC,EAAAA,IAAAA,CAAK1C,MAAAA,EAA6B;AAC1C,IAAA,MAAM2C,IAAAA,GAAO,IAAIC,qBAAAA,EAAAA;AAEjB,IAAA,MAAMC,gCAAgB,MAAA,CAAA,MAAA;AACpB,MAAA,IAAA,CAAK,OAAA,CAAQ5B,QAAQK,cAAAA,IAAAA;AACrBtB,MAAAA,MAAAA,EAAQgB,aAAaM,cAAAA,IAAAA;KACvB,EAHsB,eAAA,CAAA;AAKtB,IAAA,IAAIwB,SAAAA,GAA0B,IAAA;AAC9BC,IAAAA,gBAAAA,CACE,OAAOhB,OAAAA,KAAAA;AACLc,MAAAA,aAAAA,EAAAA;AAEA,MAAA,MAAMnD,GAAAA,GAAM,IAAA,CAAK,WAAA,CAAYqC,OAAAA,CAAAA;AAC7B,MAAA,IAAIA,UAAU,CAAA,EAAG;AACf,QAAA,MAAM,IAAA,CAAK,SAAA,CAAUhC,OAAAA,GAAUL,GAAAA,EAAKoD,SAAAA,CAAAA;AACtC;AACA,MAAA,OAAO,MAAM,IAAA,CAAK,SAAA,CAAUlD,QAAAA,CAASF,GAAAA,CAAAA;KACvC,EACA;AACEsD,MAAAA,OAAAA,EAAS,KAAK,OAAA,CAAQ/C,UAAAA;AACtBgD,MAAAA,MAAAA,EAAQ,KAAK,OAAA,CAAQA,MAAAA;AACrBhC,MAAAA,MAAAA,EAAQ,KAAK,OAAA,CAAQA,MAAAA;AACrBiC,MAAAA,WAAAA,0BAAcC,CAAAA,KAAAA;AACZ,QAAA,IAAI,CAACC,yBAAAA,CAAeC,WAAAA,CAAYF,CAAAA,CAAAA,EAAI;AAClC,UAAA,OAAO,KAAA;AACT;AACA,QAAA,OAAO,CAACnD,MAAAA,EAAQgB,WAAAA,EAAasC,WAAW,CAAC,IAAA,CAAK,QAAQrC,MAAAA,EAAQqC,OAAAA;OAChE,EALa,aAAA,CAAA;MAMbC,eAAAA,kBAAiB,MAAA,CAAA,OAAOJ,GAAGK,IAAAA,KAAAA;AACzBV,QAAAA,SAAAA,GAAYK,CAAAA;AACZ,QAAA,MAAM,IAAA,CAAK,UAAUrD,OAAAA,GAAUqD,CAAAA,EAAG,KAAK,WAAA,CAAYK,IAAAA,CAAKzB,OAAO,CAAA,CAAA;AAC/D,QAAA,IAAI,CAACqB,yBAAAA,CAAeC,WAAAA,CAAYF,CAAAA,CAAAA,EAAI;AAClC,UAAA,MAAMA,CAAAA;AACR;AACAN,QAAAA,aAAAA,EAAAA;OACF,EAPiB,iBAAA;AAQnB,KAAA,CAAA,CAECY,IAAAA,CAAK,CAACC,CAAAA,KAAMf,KAAKgB,OAAAA,CAAQD,CAAAA,CAAAA,CAAAA,CACzBvC,MAAM,CAACuC,CAAAA,KAAMf,IAAAA,CAAKiB,MAAAA,CAAOF,CAAAA,CAAAA,CAAAA;AAE5B,IAAA,OAAOf,IAAAA;AACT;AAEA,EAAA,MAAMhC,IAAIX,MAAAA,EAAyC;AACjD,IAAA,IAAI,KAAKoC,UAAAA,EAAY;AACnB,MAAA,OAAO,IAAA,CAAK,OAAQyB,aAAAA,EAAa;AACnC;AACA,IAAA,IAAI,KAAKrB,UAAAA,EAAY;AACnB,MAAA,MAAM,IAAA,CAAK,QAAQsB,aAAAA,EAAAA;AACrB;AAEA,IAAA,IAAI,KAAK,MAAA,EAAQzB,KAAAA,KAAUC,0BAAAA,CAAUyB,OAAAA,IAAW,CAAC/D,MAAAA,EAAQ;AACvD,MAAA,OAAO,IAAA,CAAK,MAAA;AACd;AAEA,IAAA,IAAA,CAAK,MAAA,EAAQmB,QAAQ,MAAA;KAAO,CAAA;AAC5B,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAKuB,IAAAA,CAAK1C,MAAAA,CAAAA;AACxB,IAAA,OAAO,IAAA,CAAK,MAAA;AACd;EAEAgE,KAAAA,GAAQ;AACN,IAAA,IAAA,CAAK,MAAA,EAAQ7C,QAAQ,MAAA;KAAO,CAAA;AAC5B,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AACd,IAAA,IAAA,CAAK,UAAUtB,OAAAA,IAAO;AACxB;AACF","file":"retryable.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}
@@ -4,18 +4,7 @@ import './guards.cjs';
4
4
 
5
5
  /**
6
6
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
7
+ * SPDX-License-Identifier: Apache-2.0
19
8
  */
20
9
 
21
10
  interface RetryableConfig {
@@ -4,18 +4,7 @@ import './guards.js';
4
4
 
5
5
  /**
6
6
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
7
+ * SPDX-License-Identifier: Apache-2.0
19
8
  */
20
9
 
21
10
  interface RetryableConfig {
@@ -1 +1 @@
1
- {"version":3,"sources":["retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","constructor","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":"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","file":"retryable.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 * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/retryable.ts"],"names":["RunStrategy","THROW_IMMEDIATELY","SETTLE_ROUND","SETTLE_ALL","Retryable","ctx","createRandomHash","executor","onReset","onError","onRetry","config","maxRetries","Math","max","runGroup","strategy","inputs","Promise","all","map","input","get","controller","AbortController","results","allSettled","groupSignal","signal","undefined","catch","err","abort","throwIfAborted","result","value","runSequence","collect","R","values","asyncProperties","mapValues","attempt","executionId","Object","defineProperty","enumerable","isResolved","state","TaskState","RESOLVED","isRejected","REJECTED","_run","task","Task","assertAborted","lastError","pRetry","retries","factor","shouldRetry","e","FrameworkError","isRetryable","aborted","onFailedAttempt","meta","then","x","resolve","reject","resolvedValue","rejectedValue","PENDING","reset"],"mappings":"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","file":"retryable.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { Task, TaskState } from \"promise-based-task\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { EnumValue } from \"@/internals/types.js\";\nimport { asyncProperties } from \"@/internals/helpers/promise.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { pRetry } from \"@/internals/helpers/retry.js\";\n\nexport interface RetryableConfig {\n maxRetries: number;\n factor?: number;\n signal?: AbortSignal;\n}\n\nexport const RunStrategy = {\n /**\n * Once a single Retryable throws, other retry ables get cancelled immediately.\n */\n THROW_IMMEDIATELY: \"THROW_IMMEDIATELY\",\n\n /**\n * Once a single Retryable throws, wait for other to completes, but prevent further retries.\n */\n SETTLE_ROUND: \"SETTLE_ROUND\",\n\n /**\n * Once a single Retryable throws, other Retryables remains to continue. Error is thrown by the end.\n */\n SETTLE_ALL: \"SETTLE_ALL\",\n} as const;\n\nexport interface RetryableRunConfig {\n groupSignal: AbortSignal;\n}\n\nexport interface RetryableContext {\n executionId: string;\n attempt: number;\n signal?: AbortSignal;\n}\n\nexport type RetryableHandler<T> = (ctx: RetryableContext) => Promise<T>;\nexport type ResetHandler = () => void;\nexport type ErrorHandler = (error: Error, ctx: RetryableContext) => void | Promise<void>;\nexport type RetryHandler = (ctx: RetryableContext, lastError: Error) => void | Promise<void>;\n\nexport class Retryable<T> {\n readonly #id: string;\n #value: Task<T, Error> | null;\n #config: RetryableConfig;\n #handlers;\n\n constructor(ctx: {\n executor: RetryableHandler<T>;\n onReset?: ResetHandler;\n onError?: ErrorHandler;\n onRetry?: RetryHandler;\n config?: Partial<RetryableConfig>;\n }) {\n this.#value = null;\n this.#id = createRandomHash();\n this.#handlers = {\n executor: ctx.executor,\n onReset: ctx.onReset,\n onError: ctx.onError,\n onRetry: ctx.onRetry,\n } as const;\n this.#config = {\n ...ctx.config,\n maxRetries: Math.max(ctx.config?.maxRetries || 0, 0),\n };\n }\n\n static async runGroup<T>(\n strategy: EnumValue<typeof RunStrategy>,\n inputs: Retryable<T>[],\n ): Promise<T[]> {\n if (strategy === RunStrategy.THROW_IMMEDIATELY) {\n return await Promise.all(inputs.map((input) => input.get()));\n }\n\n const controller = new AbortController();\n const results = await Promise.allSettled(\n inputs.map((input) =>\n input\n .get(strategy === RunStrategy.SETTLE_ALL ? { groupSignal: controller.signal } : undefined)\n .catch((err) => {\n controller.abort(err);\n throw err;\n }),\n ),\n );\n controller.signal.throwIfAborted();\n return results.map((result) => (result as PromiseFulfilledResult<T>).value!);\n }\n\n static async *runSequence<T>(inputs: readonly Retryable<T>[]): AsyncGenerator<T> {\n for (const input of inputs) {\n yield await input.get();\n }\n }\n\n static async collect<T>(inputs: T & Record<string, Retryable<any>>) {\n // Solve everything\n await Promise.all(R.values(inputs).map((input) => input.get()));\n\n // Obtain latest values\n return await asyncProperties(\n R.mapValues(inputs, (value) => (value as Retryable<any>).get()) as {\n [K in keyof T]: Promise<T[K] extends Retryable<infer Q> ? Q : never>;\n },\n );\n }\n\n #getContext(attempt: number): RetryableContext {\n const ctx: RetryableContext = {\n attempt,\n executionId: this.#id,\n signal: this.#config.signal,\n };\n Object.defineProperty(ctx, \"signal\", {\n enumerable: false,\n });\n return ctx;\n }\n\n get isResolved(): boolean {\n return this.#value?.state === TaskState.RESOLVED;\n }\n\n get isRejected(): boolean {\n return this.#value?.state === TaskState.REJECTED;\n }\n\n protected _run(config?: RetryableRunConfig) {\n const task = new Task<T, Error>();\n\n const assertAborted = () => {\n this.#config.signal?.throwIfAborted?.();\n config?.groupSignal?.throwIfAborted?.();\n };\n\n let lastError: Error | null = null;\n pRetry(\n async (attempt) => {\n assertAborted();\n\n const ctx = this.#getContext(attempt);\n if (attempt > 1) {\n await this.#handlers.onRetry?.(ctx, lastError!);\n }\n return await this.#handlers.executor(ctx);\n },\n {\n retries: this.#config.maxRetries,\n factor: this.#config.factor,\n signal: this.#config.signal,\n shouldRetry: (e) => {\n if (!FrameworkError.isRetryable(e)) {\n return false;\n }\n return !config?.groupSignal?.aborted && !this.#config.signal?.aborted;\n },\n onFailedAttempt: async (e, meta) => {\n lastError = e;\n await this.#handlers.onError?.(e, this.#getContext(meta.attempt));\n if (!FrameworkError.isRetryable(e)) {\n throw e;\n }\n assertAborted();\n },\n },\n )\n .then((x) => task.resolve(x))\n .catch((x) => task.reject(x));\n\n return task;\n }\n\n async get(config?: RetryableRunConfig): Promise<T> {\n if (this.isResolved) {\n return this.#value!.resolvedValue()!;\n }\n if (this.isRejected) {\n throw this.#value?.rejectedValue();\n }\n\n if (this.#value?.state === TaskState.PENDING && !config) {\n return this.#value;\n }\n\n this.#value?.catch?.(() => {});\n this.#value = this._run(config);\n return this.#value;\n }\n\n reset() {\n this.#value?.catch?.(() => {});\n this.#value = null;\n this.#handlers.onReset?.();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,cAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,qBAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,WAAS,EAAA;AAC7B,IAAOC,OAAAA,+BAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,KAAAA,GAAM,IAAIC,OAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,2BAAAA,CAAWC,QAAQd,KAAAA,CAAAA;AACnB,EAAOA,OAAAA,KAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,wBAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,qBAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;;;;;;;AAiBO,SAASA,cAAAA,CACdC,QACAC,YAAAA,EAAoC;AAEpC,EAAA,IAAID,MAAAA,IAAUA,kBAAkBE,cAAAA,EAAY;AAC1C,IAAA,MAAM,IAAIC,qBAAAA,CACR,sFAAA,EACA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAAAA,EAA0B;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,WAAAA,EAAS;AAC7B,IAAA,OAAOC,+BAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAA,OAAOL,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAAA,EAAoB;AAEpB,EAAA,MAAMI,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAA,MAAMU,KAAAA,GAAM,IAAIC,OAAAA,CAAI;IAClBC,WAAAA,EAAa,OAAA;IACbC,WAAAA,EAAa,IAAA;IACbC,MAAAA,EAAQ,KAAA;IACRC,YAAAA,EAAc,KAAA;IACdC,YAAAA,EAAc,IAAA;IACdC,aAAAA,EAAe,IAAA;IACfC,WAAAA,EAAa,IAAA;IACbC,cAAAA,EAAgB,IAAA;IAChBC,SAAAA,EAAW,IAAA;IACXC,SAAAA,EAAW,IAAA;IACXC,eAAAA,EAAiB,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,2BAAAA,CAAWC,QAAQd,KAAAA,CAAAA;AACnB,EAAA,OAAOA,KAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAAA,EAAgC;AACzFsB,EAAAA,KAAAA,GAAAA,CAASA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAA,IAAI;AACF,IAAA,IAAI;AACF,MAAA,OAAOC,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACpB,CAAA,MAAQ;AACN,MAAA,MAAMI,OAAO1B,OAAAA,EAAS0B,IAAAA;AACtB,MAAA,IAAIA,IAAAA,EAAM;AACR,QAAA,MAAM,EAAEC,KAAAA,EAAK,GAAKC,wBAAAA,CAAcN,KAAAA,EAAOI,IAAAA,CAAAA,IAAS;UAAEC,KAAAA,EAAOL;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAAA,CAAKC,KAAAA,CAAMI,qBAAAA,CAAWF,KAAAA,CAAAA,CAAAA;OAC/B,MAAO;AACL,QAAA,OAAOH,IAAAA,CAAKC,KAAAA,CAAMI,qBAAAA,CAAWP,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACF,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
@@ -7,18 +7,7 @@ import './guards.cjs';
7
7
 
8
8
  /**
9
9
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
10
+ * SPDX-License-Identifier: Apache-2.0
22
11
  */
23
12
 
24
13
  type AnyToolSchemaLike = AnyZodObject | SchemaObject;
@@ -7,18 +7,7 @@ import './guards.js';
7
7
 
8
8
  /**
9
9
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
10
+ * SPDX-License-Identifier: Apache-2.0
22
11
  */
23
12
 
24
13
  type AnyToolSchemaLike = AnyZodObject | SchemaObject;
@@ -1 +1 @@
1
- {"version":3,"sources":["schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;AA4BO,SAASA,cAAAA,CACdC,QACAC,YAAoC,EAAA;AAEpC,EAAID,IAAAA,MAAAA,IAAUA,kBAAkBE,UAAY,EAAA;AAC1C,IAAA,MAAM,IAAIC,UAAAA,CACR,sFACA,EAAA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAA0B,EAAA;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,OAAS,EAAA;AAC7B,IAAOC,OAAAA,eAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAOL,OAAAA,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAoB,EAAA;AAEpB,EAAMI,MAAAA,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAMU,MAAAA,GAAAA,GAAM,IAAIC,GAAI,CAAA;IAClBC,WAAa,EAAA,OAAA;IACbC,WAAa,EAAA,IAAA;IACbC,MAAQ,EAAA,KAAA;IACRC,YAAc,EAAA,KAAA;IACdC,YAAc,EAAA,IAAA;IACdC,aAAe,EAAA,IAAA;IACfC,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAA,IAAA;IAChBC,SAAW,EAAA,IAAA;IACXC,SAAW,EAAA,IAAA;IACXC,eAAiB,EAAA,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,UAAAA,CAAWC,QAAQd,GAAAA,CAAAA;AACnB,EAAOA,OAAAA,GAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAgC,EAAA;AACzFsB,EAASA,KAAAA,GAAAA,CAAAA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAI,IAAA;AACF,IAAI,IAAA;AACF,MAAOC,OAAAA,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACZ,CAAA,MAAA;AACN,MAAA,MAAMI,OAAO1B,OAAS0B,EAAAA,IAAAA;AACtB,MAAA,IAAIA,IAAM,EAAA;AACR,QAAA,MAAM,EAAEC,KAAK,EAAA,GAAKC,aAAcN,CAAAA,KAAAA,EAAOI,IAAAA,CAAS,IAAA;UAAEC,KAAOL,EAAAA;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAKC,CAAAA,KAAAA,CAAMI,UAAWF,CAAAA,KAAAA,CAAAA,CAAAA;OACxB,MAAA;AACL,QAAA,OAAOH,IAAKC,CAAAA,KAAAA,CAAMI,UAAWP,CAAAA,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACM,CAAA,MAAA;AACN,IAAO,OAAA,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.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 { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/schema.ts"],"names":["validateSchema","schema","errorOptions","ZodEffects","ValueError","toJsonSchema","options","ZodType","zodToJsonSchema","createSchemaValidator","jsonSchema","ajv","Ajv","coerceTypes","useDefaults","strict","strictSchema","strictTuples","strictNumbers","strictTypes","strictRequired","parseDate","allowDate","allowUnionTypes","addFormats","default","compile","parseBrokenJson","input","trim","JSON","parse","pair","outer","findFirstPair","jsonrepair"],"mappings":";;;;;;;;;;AAiBO,SAASA,cAAAA,CACdC,QACAC,YAAAA,EAAoC;AAEpC,EAAA,IAAID,MAAAA,IAAUA,kBAAkBE,UAAAA,EAAY;AAC1C,IAAA,MAAM,IAAIC,UAAAA,CACR,sFAAA,EACA,IACAF,YAAAA,CAAAA;AAEJ;AACF;AAXgBF,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAaT,SAASK,YAAAA,CACdJ,QACAK,OAAAA,EAA0B;AAE1BN,EAAAA,cAAAA,CAAeC,MAAAA,CAAAA;AACf,EAAA,IAAIA,kBAAkBM,OAAAA,EAAS;AAC7B,IAAA,OAAOC,eAAAA,CAAgBP,QAAQK,OAAAA,CAAAA;AACjC;AACA,EAAA,OAAOL,MAAAA;AACT;AATgBI,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAWT,SAASI,qBAAAA,CACdR,QACAK,OAAAA,EAAoB;AAEpB,EAAA,MAAMI,UAAAA,GAAaL,aAAaJ,MAAAA,CAAAA;AAEhC,EAAA,MAAMU,GAAAA,GAAM,IAAIC,GAAAA,CAAI;IAClBC,WAAAA,EAAa,OAAA;IACbC,WAAAA,EAAa,IAAA;IACbC,MAAAA,EAAQ,KAAA;IACRC,YAAAA,EAAc,KAAA;IACdC,YAAAA,EAAc,IAAA;IACdC,aAAAA,EAAe,IAAA;IACfC,WAAAA,EAAa,IAAA;IACbC,cAAAA,EAAgB,IAAA;IAChBC,SAAAA,EAAW,IAAA;IACXC,SAAAA,EAAW,IAAA;IACXC,eAAAA,EAAiB,IAAA;IACjB,GAAGjB;GACL,CAAA;AACAkB,EAAAA,UAAAA,CAAWC,QAAQd,GAAAA,CAAAA;AACnB,EAAA,OAAOA,GAAAA,CAAIe,QAA2BhB,UAAAA,CAAAA;AACxC;AAtBgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AA2BT,SAASkB,eAAAA,CAAgBC,OAA2BtB,OAAAA,EAAgC;AACzFsB,EAAAA,KAAAA,GAAAA,CAASA,KAAAA,IAAS,KAAKC,IAAAA,EAAAA;AAEvB,EAAA,IAAI;AACF,IAAA,IAAI;AACF,MAAA,OAAOC,IAAAA,CAAKC,MAAMH,KAAAA,CAAAA;KACpB,CAAA,MAAQ;AACN,MAAA,MAAMI,OAAO1B,OAAAA,EAAS0B,IAAAA;AACtB,MAAA,IAAIA,IAAAA,EAAM;AACR,QAAA,MAAM,EAAEC,KAAAA,EAAK,GAAKC,aAAAA,CAAcN,KAAAA,EAAOI,IAAAA,CAAAA,IAAS;UAAEC,KAAAA,EAAOL;AAAM,SAAA;AAC/D,QAAA,OAAOE,IAAAA,CAAKC,KAAAA,CAAMI,UAAAA,CAAWF,KAAAA,CAAAA,CAAAA;OAC/B,MAAO;AACL,QAAA,OAAOH,IAAAA,CAAKC,KAAAA,CAAMI,UAAAA,CAAWP,KAAAA,CAAAA,CAAAA;AAC/B;AACF;GACF,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AACT;AACF;AAlBgBD,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"schema.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TypeOf, ZodType, ZodEffects, ZodTypeAny, AnyZodObject, input } from \"zod\";\nimport { zodToJsonSchema, Options } from \"zod-to-json-schema\";\nimport { Ajv, SchemaObject, ValidateFunction, Options as AjvOptions } from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport { findFirstPair } from \"@/internals/helpers/string.js\";\nimport { FrameworkErrorOptions, ValueError } from \"@/errors.js\";\nimport { jsonrepair } from \"jsonrepair\";\nexport type AnyToolSchemaLike = AnyZodObject | SchemaObject;\nexport type AnySchemaLike = ZodTypeAny | SchemaObject;\nexport type FromSchemaLike<T> = T extends ZodTypeAny ? TypeOf<T> : unknown;\nexport type FromSchemaLikeRaw<T> = T extends ZodTypeAny ? input<T> : unknown;\n\nexport function validateSchema<T extends AnySchemaLike>(\n schema: T | ZodEffects<any>,\n errorOptions?: FrameworkErrorOptions,\n): asserts schema is T {\n if (schema && schema instanceof ZodEffects) {\n throw new ValueError(\n \"zod effects (refine, superRefine, transform, ...) cannot be converted to JSONSchema!\",\n [],\n errorOptions,\n );\n }\n}\n\nexport function toJsonSchema<T extends AnySchemaLike>(\n schema: T,\n options?: Partial<Options>,\n): SchemaObject {\n validateSchema(schema);\n if (schema instanceof ZodType) {\n return zodToJsonSchema(schema, options);\n }\n return schema;\n}\n\nexport function createSchemaValidator<T extends AnySchemaLike>(\n schema: T,\n options?: AjvOptions,\n): ValidateFunction<FromSchemaLike<T>> {\n const jsonSchema = toJsonSchema(schema);\n\n const ajv = new Ajv({\n coerceTypes: \"array\",\n useDefaults: true,\n strict: false,\n strictSchema: false,\n strictTuples: true,\n strictNumbers: true,\n strictTypes: true,\n strictRequired: true,\n parseDate: true,\n allowDate: true,\n allowUnionTypes: true,\n ...options,\n });\n addFormats.default(ajv);\n return ajv.compile<FromSchemaLike<T>>(jsonSchema);\n}\n\ninterface ParseBrokenJsonOptions {\n pair?: [string, string] | null;\n}\nexport function parseBrokenJson(input: string | undefined, options?: ParseBrokenJsonOptions) {\n input = (input ?? \"\")?.trim();\n\n try {\n try {\n return JSON.parse(input);\n } catch {\n const pair = options?.pair;\n if (pair) {\n const { outer } = findFirstPair(input, pair) ?? { outer: input };\n return JSON.parse(jsonrepair(outer));\n } else {\n return JSON.parse(jsonrepair(input));\n }\n }\n } catch {\n return null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;;;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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\nexport async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;;;AAKA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAAAA,EAA2B;AAE3B,EAAA,IAAIC,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAAA,GAAO,MAAMF,SAAAA,CAAUE,IAAAA,IAAQC,IAAAA,EAAM;AAC5C,IAAA,MAAMF,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAAA,CAAKE,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAAA,EAAU;AAC3C,EAAA,OAAOE,OAAAA,CAAQF,KAAAA,IAASG,MAAAA,CAAOC,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
@@ -1,17 +1,6 @@
1
1
  /**
2
2
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
3
+ * SPDX-License-Identifier: Apache-2.0
15
4
  */
16
5
  declare function transformAsyncIterable<A, B, A2>(generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>, transformer: (old: A) => A2): AsyncGenerator<A2, B>;
17
6
  declare function isAsyncIterable<T>(value: any): value is AsyncIterable<T>;
@@ -1,17 +1,6 @@
1
1
  /**
2
2
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
3
+ * SPDX-License-Identifier: Apache-2.0
15
4
  */
16
5
  declare function transformAsyncIterable<A, B, A2>(generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>, transformer: (old: A) => A2): AsyncGenerator<A2, B>;
17
6
  declare function isAsyncIterable<T>(value: any): value is AsyncIterable<T>;
@@ -1 +1 @@
1
- {"version":3,"sources":["stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;AAgBA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAA2B,EAAA;AAE3B,EAAIC,IAAAA,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAO,GAAA,MAAMF,SAAUE,CAAAA,IAAAA,IAAQC,IAAM,EAAA;AAC5C,IAAMF,MAAAA,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAKE,CAAAA,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAU,EAAA;AAC3C,EAAA,OAAOE,OAAQF,CAAAA,KAAAA,IAASG,MAAOC,CAAAA,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.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\nexport async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/stream.ts"],"names":["transformAsyncIterable","generator","transformer","next","done","value","isAsyncIterable","Boolean","Symbol","asyncIterator"],"mappings":";;AAKA,gBAAuBA,sBAAAA,CACrBC,WACAC,WAAAA,EAA2B;AAE3B,EAAA,IAAIC,IAAAA;AACJ,EAAA,OAAO,EAAEA,IAAAA,GAAO,MAAMF,SAAAA,CAAUE,IAAAA,IAAQC,IAAAA,EAAM;AAC5C,IAAA,MAAMF,WAAAA,CAAYC,KAAKE,KAAK,CAAA;AAC9B;AACA,EAAA,OAAOF,IAAAA,CAAKE,KAAAA;AACd;AATuBL,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWhB,SAASM,gBAAmBD,KAAAA,EAAU;AAC3C,EAAA,OAAOE,OAAAA,CAAQF,KAAAA,IAASG,MAAAA,CAAOC,aAAAA,IAAiBJ,KAAAA,CAAAA;AAClD;AAFgBC,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"stream.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport async function* transformAsyncIterable<A, B, A2>(\n generator: AsyncGenerator<A, B> | AsyncIterableIterator<A>,\n transformer: (old: A) => A2,\n): AsyncGenerator<A2, B> {\n let next: IteratorResult<A, B>;\n while (!(next = await generator.next()).done) {\n yield transformer(next.value);\n }\n return next.value;\n}\n\nexport function isAsyncIterable<T>(value: any): value is AsyncIterable<T> {\n return Boolean(value && Symbol.asyncIterator in value);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.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 { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/internals/helpers/string.ts"],"names":["splitString","text","options","recursiveSplitString","trim","separators","mergeStrings","chunks","sep","tmpChunks","tmpOverlap","toDoc","parts","join","chunk","length","size","doc","overlap","tmp","shift","push","Error","goodSplits","separator","remainingSeparators","unique","split","filter","Boolean","Comparator","EQ","GT","GTE","LT","LTE","compareVersion","a","comparator","b","diff","replace","localeCompare","undefined","numeric","sensitivity","diffNormalized","Math","min","max","R","isIncludedIn","isJsonLikeString","value","startsWith","endsWith","halveString","seq","includeSeq","index","indexOf","slice","countSharedStartEndLetters","isString","ValueError","minLength","i","at","findFirstPair","pair","opening","closing","balance","startIndex","pairOverlap","allowOverlap","isSame","substring","inner","start","end","innerEnd","innerSize","outer"],"mappings":"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","file":"string.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ValueOf } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport { ValueError } from \"@/errors.js\";\nimport { isString, unique } from \"remeda\";\n\nexport function* splitString(\n text: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n yield* recursiveSplitString(text, { ...options, trim: options?.trim ?? false, separators: [] });\n}\n\nexport function* mergeStrings(\n chunks: string[],\n sep: string,\n options: { size: number; overlap: number; trim?: boolean },\n) {\n const tmpChunks: string[] = [];\n let tmpOverlap = 0;\n\n const toDoc = (parts: string[]) => {\n const text = parts.join(sep);\n return options.trim ? text.trim() : text;\n };\n\n for (const chunk of chunks) {\n if (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size) {\n if (tmpChunks.length > 0) {\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n\n while (\n tmpOverlap > options.overlap ||\n (tmpOverlap + chunk.length + tmpChunks.length * sep.length > options.size &&\n tmpOverlap > 0)\n ) {\n const tmp = tmpChunks.shift()!;\n tmpOverlap -= tmp.length;\n }\n }\n }\n tmpChunks.push(chunk);\n tmpOverlap += chunk.length;\n }\n\n const doc = toDoc(tmpChunks);\n if (doc) {\n yield doc;\n }\n}\n\nexport function* recursiveSplitString(\n text: string,\n options: { size: number; overlap: number; separators: string[]; trim?: boolean },\n): Generator<string> {\n if (options.size <= 0 || options.overlap < 0) {\n throw new Error(\"size must be positive and overlap must be non-negative\");\n }\n if (options.overlap >= options.size) {\n throw new Error(\"overlap must be less than size\");\n }\n\n const goodSplits: string[] = [];\n const [separator, ...remainingSeparators] = unique([...(options.separators ?? []), \"\"]);\n\n for (const chunk of text.split(separator).filter(Boolean)) {\n if (chunk.length < options.size) {\n goodSplits.push(chunk);\n continue;\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n goodSplits.length = 0;\n }\n\n if (remainingSeparators.length === 0) {\n yield chunk;\n } else {\n yield* recursiveSplitString(chunk, { ...options, separators: remainingSeparators });\n }\n }\n\n if (goodSplits.length > 0) {\n yield* mergeStrings(goodSplits, separator, options);\n }\n}\n\nexport const Comparator = {\n EQ: [0] as const,\n GT: [1] as const,\n GTE: [0, 1] as const,\n LT: [-1] as const,\n LTE: [-1, 0] as const,\n} as const;\n\nexport function compareVersion(\n a: string,\n comparator: ValueOf<typeof Comparator>,\n b: string,\n): boolean {\n const diff = a.replace(\"v\", \"\").trim().localeCompare(b.replace(\"v\", \"\").trim(), undefined, {\n numeric: true,\n sensitivity: \"base\",\n });\n const diffNormalized = Math.min(1, Math.max(-1, diff));\n return R.isIncludedIn(diffNormalized, comparator);\n}\n\nexport function isJsonLikeString(value: string | undefined): value is string {\n if (!value) {\n return false;\n }\n return value.startsWith(\"{\") && value.endsWith(\"}\");\n}\n\nexport function halveString(\n value: string,\n seq: string,\n includeSeq = false,\n): [string] | [string, string] {\n if (seq === \"\") {\n return [value];\n }\n\n const index = value.indexOf(seq);\n if (index === -1) {\n return [value];\n } else {\n return [value.slice(0, index), value.slice(index + (includeSeq ? 0 : seq.length))];\n }\n}\n\nexport function countSharedStartEndLetters(a: string, b: string): number {\n if (!isString(a) || !isString(b)) {\n throw new ValueError(\"Provided values must be all strings.\");\n }\n\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n if (a.at((i + 1) * -1) !== b.at(i)) {\n return i;\n }\n }\n return minLength;\n}\n\nexport function findFirstPair(\n text: string,\n pair: [string, string],\n options: { allowOverlap?: boolean } = {},\n) {\n const [opening, closing] = pair || [];\n if (!pair || !opening || !closing) {\n throw new ValueError(`The \"pair\" parameter is required and must be non-empty!`);\n }\n\n let balance = 0;\n let startIndex = -1;\n const pairOverlap = options.allowOverlap ? countSharedStartEndLetters(opening, closing) : 0;\n\n const isSame = opening === closing;\n for (let index = 0; index < text.length; index++) {\n if (text.substring(index, index + opening.length) === opening && (!isSame || balance === 0)) {\n if (balance === 0) {\n startIndex = index;\n }\n balance++;\n if (!options.allowOverlap) {\n index += opening.length - 1;\n }\n } else if (text.substring(index, index + closing.length) === closing) {\n if (balance > 0) {\n balance--;\n if (balance === 0) {\n const inner = {\n start: startIndex + opening.length,\n get end() {\n let innerEnd = index;\n const innerSize = innerEnd - this.start;\n\n if (innerSize < 0) {\n innerEnd = this.start;\n } else {\n innerEnd += pairOverlap;\n }\n\n return innerEnd;\n },\n };\n\n return {\n start: startIndex,\n end: index + closing.length,\n pair,\n inner: text.substring(inner.start, inner.end),\n outer: text.substring(startIndex, index + closing.length),\n };\n }\n }\n if (!options.allowOverlap) {\n index += closing.length - 1;\n }\n }\n }\n\n return null;\n}\n"]}
@@ -3,18 +3,7 @@ import './guards.cjs';
3
3
 
4
4
  /**
5
5
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
6
+ * SPDX-License-Identifier: Apache-2.0
18
7
  */
19
8
 
20
9
  declare function splitString(text: string, options: {
@@ -3,18 +3,7 @@ import './guards.js';
3
3
 
4
4
  /**
5
5
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
6
+ * SPDX-License-Identifier: Apache-2.0
18
7
  */
19
8
 
20
9
  declare function splitString(text: string, options: {