@anvia/core 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/README.md +226 -0
  2. package/dist/agent/agent-stream.js +7 -0
  3. package/dist/agent/agent-stream.js.map +1 -0
  4. package/dist/agent/agent-tool.js +24 -0
  5. package/dist/agent/agent-tool.js.map +1 -0
  6. package/dist/agent/agent.js +89 -0
  7. package/dist/agent/agent.js.map +1 -0
  8. package/dist/agent/errors.js +17 -0
  9. package/dist/agent/errors.js.map +1 -0
  10. package/dist/agent/ids.js +7 -0
  11. package/dist/agent/ids.js.map +1 -0
  12. package/dist/agent/index.d.ts +127 -9
  13. package/dist/agent/index.js +103 -21
  14. package/dist/agent/interactions/index.js +2 -2
  15. package/dist/agent/interactions.js +22 -0
  16. package/dist/agent/interactions.js.map +1 -0
  17. package/dist/agent/lifecycle.js +9 -0
  18. package/dist/agent/lifecycle.js.map +1 -0
  19. package/dist/agent/output-schema.js +10 -0
  20. package/dist/agent/output-schema.js.map +1 -0
  21. package/dist/agent/resolve-options.js +46 -0
  22. package/dist/agent/resolve-options.js.map +1 -0
  23. package/dist/agent/resolved-agent.js +92 -0
  24. package/dist/agent/resolved-agent.js.map +1 -0
  25. package/dist/agent/run-types.js +1 -0
  26. package/dist/agent/run-types.js.map +1 -0
  27. package/dist/agent/snapshot.js +17 -0
  28. package/dist/agent/snapshot.js.map +1 -0
  29. package/dist/agent/team/agent-team.js +98 -0
  30. package/dist/agent/team/agent-team.js.map +1 -0
  31. package/dist/agent/team/errors.js +9 -0
  32. package/dist/agent/team/errors.js.map +1 -0
  33. package/dist/agent/team/index.js +104 -0
  34. package/dist/agent/team/index.js.map +1 -0
  35. package/dist/agent/team/types.js +1 -0
  36. package/dist/agent/team/types.js.map +1 -0
  37. package/dist/agent/tool-catalog.js +37 -0
  38. package/dist/agent/tool-catalog.js.map +1 -0
  39. package/dist/agent/tool-state.js +11 -0
  40. package/dist/agent/tool-state.js.map +1 -0
  41. package/dist/agent/types.js +1 -0
  42. package/dist/agent/types.js.map +1 -0
  43. package/dist/agent/vector-context.js +10 -0
  44. package/dist/agent/vector-context.js.map +1 -0
  45. package/dist/{agent-DTmzs1Qr.d.ts → agent-C9VhENdj.d.ts} +2 -3
  46. package/dist/{chunk-2QZJTG2E.js → chunk-23GEYG2X.js} +11 -71
  47. package/dist/chunk-23GEYG2X.js.map +1 -0
  48. package/dist/{chunk-I3Q7XSBB.js → chunk-23LRXKQX.js} +6 -4
  49. package/dist/{chunk-I3Q7XSBB.js.map → chunk-23LRXKQX.js.map} +1 -1
  50. package/dist/{chunk-YK4WAAS4.js → chunk-2NLINXRF.js} +1 -1
  51. package/dist/{chunk-SPD4XVR7.js → chunk-2XSMGVBG.js} +1 -1
  52. package/dist/chunk-3J2CSVPR.js +1 -0
  53. package/dist/chunk-3J2CSVPR.js.map +1 -0
  54. package/dist/chunk-3P3YVJ7V.js +1 -0
  55. package/dist/chunk-3P3YVJ7V.js.map +1 -0
  56. package/dist/chunk-3TAQXJBC.js +107 -0
  57. package/dist/chunk-3TAQXJBC.js.map +1 -0
  58. package/dist/chunk-47NTHIVB.js +76 -0
  59. package/dist/chunk-47NTHIVB.js.map +1 -0
  60. package/dist/chunk-4AW2633B.js +9 -0
  61. package/dist/chunk-4AW2633B.js.map +1 -0
  62. package/dist/{chunk-3XQGVDU5.js → chunk-4C7AXYOM.js} +1 -1
  63. package/dist/{chunk-IZNOP6JG.js → chunk-4FIVU53H.js} +1 -1
  64. package/dist/chunk-4ITAV7YA.js +1 -0
  65. package/dist/chunk-4ITAV7YA.js.map +1 -0
  66. package/dist/{chunk-7JLAIN6E.js → chunk-4ONUNWGC.js} +2 -2
  67. package/dist/chunk-4UUIGAIX.js +1 -0
  68. package/dist/chunk-4UUIGAIX.js.map +1 -0
  69. package/dist/chunk-53TPAXYR.js +1 -0
  70. package/dist/chunk-53TPAXYR.js.map +1 -0
  71. package/dist/chunk-5AETKC4L.js +107 -0
  72. package/dist/chunk-5AETKC4L.js.map +1 -0
  73. package/dist/chunk-5I2NVRHC.js +146 -0
  74. package/dist/chunk-5I2NVRHC.js.map +1 -0
  75. package/dist/chunk-5IURMWFN.js +53 -0
  76. package/dist/chunk-5IURMWFN.js.map +1 -0
  77. package/dist/chunk-5M6GTA3T.js +1 -0
  78. package/dist/chunk-5M6GTA3T.js.map +1 -0
  79. package/dist/chunk-5N5W7CX7.js +18 -0
  80. package/dist/chunk-5N5W7CX7.js.map +1 -0
  81. package/dist/chunk-5P2YOQSA.js +355 -0
  82. package/dist/chunk-5P2YOQSA.js.map +1 -0
  83. package/dist/chunk-5S7T2URX.js +1 -0
  84. package/dist/chunk-5S7T2URX.js.map +1 -0
  85. package/dist/chunk-5V533R7F.js +19 -0
  86. package/dist/chunk-5V533R7F.js.map +1 -0
  87. package/dist/chunk-5WLIHNNJ.js +56 -0
  88. package/dist/chunk-5WLIHNNJ.js.map +1 -0
  89. package/dist/chunk-6BTJC3ES.js +37 -0
  90. package/dist/chunk-6BTJC3ES.js.map +1 -0
  91. package/dist/chunk-6N4ENZO4.js +24 -0
  92. package/dist/chunk-6N4ENZO4.js.map +1 -0
  93. package/dist/{chunk-4UQALF5Y.js → chunk-6RQYWZI3.js} +2 -36
  94. package/dist/chunk-6RQYWZI3.js.map +1 -0
  95. package/dist/chunk-6TAWRKFK.js +86 -0
  96. package/dist/chunk-6TAWRKFK.js.map +1 -0
  97. package/dist/chunk-7F53DOML.js +53 -0
  98. package/dist/chunk-7F53DOML.js.map +1 -0
  99. package/dist/chunk-7KAGWJ5M.js +112 -0
  100. package/dist/chunk-7KAGWJ5M.js.map +1 -0
  101. package/dist/chunk-7LBPRXZP.js +1 -0
  102. package/dist/chunk-7LBPRXZP.js.map +1 -0
  103. package/dist/chunk-A7BXVZXZ.js +25 -0
  104. package/dist/chunk-A7BXVZXZ.js.map +1 -0
  105. package/dist/chunk-B47EXUHL.js +67 -0
  106. package/dist/chunk-B47EXUHL.js.map +1 -0
  107. package/dist/chunk-B5JQDR33.js +14 -0
  108. package/dist/chunk-B5JQDR33.js.map +1 -0
  109. package/dist/chunk-B5YTCKUJ.js +158 -0
  110. package/dist/chunk-B5YTCKUJ.js.map +1 -0
  111. package/dist/chunk-BDDC72GF.js +189 -0
  112. package/dist/chunk-BDDC72GF.js.map +1 -0
  113. package/dist/chunk-BDKFFFVX.js +342 -0
  114. package/dist/chunk-BDKFFFVX.js.map +1 -0
  115. package/dist/{chunk-QGX73TSQ.js → chunk-BONQTXRQ.js} +3 -12
  116. package/dist/chunk-BONQTXRQ.js.map +1 -0
  117. package/dist/chunk-BUPC72Y2.js +1007 -0
  118. package/dist/chunk-BUPC72Y2.js.map +1 -0
  119. package/dist/chunk-CKKNO4XB.js +70 -0
  120. package/dist/chunk-CKKNO4XB.js.map +1 -0
  121. package/dist/chunk-CX7ZVTO5.js +22 -0
  122. package/dist/chunk-CX7ZVTO5.js.map +1 -0
  123. package/dist/chunk-DU4WA6LQ.js +1 -0
  124. package/dist/chunk-DU4WA6LQ.js.map +1 -0
  125. package/dist/chunk-EJR6VVB3.js +63 -0
  126. package/dist/chunk-EJR6VVB3.js.map +1 -0
  127. package/dist/chunk-EKZRAWBP.js +110 -0
  128. package/dist/chunk-EKZRAWBP.js.map +1 -0
  129. package/dist/chunk-ENZ2XX27.js +26 -0
  130. package/dist/chunk-ENZ2XX27.js.map +1 -0
  131. package/dist/chunk-EOAJBBII.js +1 -0
  132. package/dist/chunk-EOAJBBII.js.map +1 -0
  133. package/dist/chunk-ERN7P6Q4.js +1 -0
  134. package/dist/chunk-ERN7P6Q4.js.map +1 -0
  135. package/dist/chunk-ESOFEAYK.js +57 -0
  136. package/dist/chunk-ESOFEAYK.js.map +1 -0
  137. package/dist/chunk-ETYB5JO6.js +175 -0
  138. package/dist/chunk-ETYB5JO6.js.map +1 -0
  139. package/dist/chunk-EZR5AV3J.js +74 -0
  140. package/dist/chunk-EZR5AV3J.js.map +1 -0
  141. package/dist/chunk-F2OKLHGB.js +9 -0
  142. package/dist/chunk-F2OKLHGB.js.map +1 -0
  143. package/dist/chunk-F3E2RLC7.js +342 -0
  144. package/dist/chunk-F3E2RLC7.js.map +1 -0
  145. package/dist/chunk-FAPIZJS2.js +54 -0
  146. package/dist/chunk-FAPIZJS2.js.map +1 -0
  147. package/dist/chunk-GDJNOZ47.js +1 -0
  148. package/dist/chunk-GDJNOZ47.js.map +1 -0
  149. package/dist/chunk-GDY2Z2SZ.js +83 -0
  150. package/dist/chunk-GDY2Z2SZ.js.map +1 -0
  151. package/dist/chunk-GLMYZ6OA.js +20 -0
  152. package/dist/chunk-GLMYZ6OA.js.map +1 -0
  153. package/dist/{chunk-XEVOC433.js → chunk-GPVXCY5I.js} +2 -73
  154. package/dist/chunk-GPVXCY5I.js.map +1 -0
  155. package/dist/{chunk-KSKST3KP.js → chunk-H3H74RWJ.js} +1 -1
  156. package/dist/chunk-HAAGSIZH.js +89 -0
  157. package/dist/chunk-HAAGSIZH.js.map +1 -0
  158. package/dist/{chunk-K5L7R7XM.js → chunk-HHMLE3TZ.js} +6 -54
  159. package/dist/chunk-HHMLE3TZ.js.map +1 -0
  160. package/dist/{chunk-JLJMVRRE.js → chunk-HP34GRQX.js} +10 -83
  161. package/dist/chunk-HP34GRQX.js.map +1 -0
  162. package/dist/chunk-HTI343NP.js +1 -0
  163. package/dist/chunk-HTI343NP.js.map +1 -0
  164. package/dist/{chunk-T2C3CGDQ.js → chunk-HTI7DZJM.js} +6 -4
  165. package/dist/{chunk-T2C3CGDQ.js.map → chunk-HTI7DZJM.js.map} +1 -1
  166. package/dist/chunk-IDNL6IH4.js +294 -0
  167. package/dist/chunk-IDNL6IH4.js.map +1 -0
  168. package/dist/chunk-IV6YQTY2.js +47 -0
  169. package/dist/chunk-IV6YQTY2.js.map +1 -0
  170. package/dist/chunk-J4SINPUA.js +939 -0
  171. package/dist/chunk-J4SINPUA.js.map +1 -0
  172. package/dist/chunk-J6S6MT7O.js +32 -0
  173. package/dist/chunk-J6S6MT7O.js.map +1 -0
  174. package/dist/chunk-JB3RFK6K.js +168 -0
  175. package/dist/chunk-JB3RFK6K.js.map +1 -0
  176. package/dist/chunk-JBQNCUXA.js +34 -0
  177. package/dist/chunk-JBQNCUXA.js.map +1 -0
  178. package/dist/chunk-JMJFK3A4.js +1 -0
  179. package/dist/chunk-JMJFK3A4.js.map +1 -0
  180. package/dist/chunk-JMMZICU7.js +74 -0
  181. package/dist/chunk-JMMZICU7.js.map +1 -0
  182. package/dist/chunk-JOQ2T3QP.js +663 -0
  183. package/dist/chunk-JOQ2T3QP.js.map +1 -0
  184. package/dist/chunk-K4IBS7VB.js +55 -0
  185. package/dist/chunk-K4IBS7VB.js.map +1 -0
  186. package/dist/chunk-KBBQSP4M.js +16 -0
  187. package/dist/chunk-KBBQSP4M.js.map +1 -0
  188. package/dist/chunk-KFAVEL5F.js +68 -0
  189. package/dist/chunk-KFAVEL5F.js.map +1 -0
  190. package/dist/chunk-KITX3HDN.js +17 -0
  191. package/dist/chunk-KITX3HDN.js.map +1 -0
  192. package/dist/chunk-KO5NMTAM.js +1 -0
  193. package/dist/chunk-KO5NMTAM.js.map +1 -0
  194. package/dist/chunk-KY4VXIN2.js +118 -0
  195. package/dist/chunk-KY4VXIN2.js.map +1 -0
  196. package/dist/chunk-KZGSXJKU.js +29 -0
  197. package/dist/chunk-KZGSXJKU.js.map +1 -0
  198. package/dist/chunk-LAIATEUB.js +24 -0
  199. package/dist/chunk-LAIATEUB.js.map +1 -0
  200. package/dist/{chunk-OJBFDBLG.js → chunk-LBYJPMHC.js} +2 -2
  201. package/dist/chunk-LKIABZNR.js +49 -0
  202. package/dist/chunk-LKIABZNR.js.map +1 -0
  203. package/dist/chunk-LQJ4KHMY.js +23 -0
  204. package/dist/chunk-LQJ4KHMY.js.map +1 -0
  205. package/dist/chunk-MEN4AFDZ.js +1 -0
  206. package/dist/chunk-MEN4AFDZ.js.map +1 -0
  207. package/dist/chunk-MHOJJYDK.js +93 -0
  208. package/dist/chunk-MHOJJYDK.js.map +1 -0
  209. package/dist/chunk-MJCMKZFP.js +30 -0
  210. package/dist/chunk-MJCMKZFP.js.map +1 -0
  211. package/dist/chunk-MT3BLVYN.js +31 -0
  212. package/dist/chunk-MT3BLVYN.js.map +1 -0
  213. package/dist/chunk-NF6WBPFG.js +37 -0
  214. package/dist/chunk-NF6WBPFG.js.map +1 -0
  215. package/dist/chunk-NNEKBZSM.js +66 -0
  216. package/dist/chunk-NNEKBZSM.js.map +1 -0
  217. package/dist/chunk-NPJ2T3L5.js +19 -0
  218. package/dist/chunk-NPJ2T3L5.js.map +1 -0
  219. package/dist/chunk-NVALGVQG.js +150 -0
  220. package/dist/chunk-NVALGVQG.js.map +1 -0
  221. package/dist/chunk-OJF67RNM.js +1 -0
  222. package/dist/chunk-OJF67RNM.js.map +1 -0
  223. package/dist/chunk-PHLGGRHC.js +89 -0
  224. package/dist/chunk-PHLGGRHC.js.map +1 -0
  225. package/dist/chunk-PIMD4DYG.js +104 -0
  226. package/dist/chunk-PIMD4DYG.js.map +1 -0
  227. package/dist/chunk-PJNE75WC.js +1 -0
  228. package/dist/chunk-PJNE75WC.js.map +1 -0
  229. package/dist/{chunk-J6LVLV6P.js → chunk-PLDJCCVL.js} +1 -1
  230. package/dist/{chunk-3RWESPUG.js → chunk-POXHJF3H.js} +6 -51
  231. package/dist/chunk-POXHJF3H.js.map +1 -0
  232. package/dist/chunk-PPJ7SYQL.js +81 -0
  233. package/dist/chunk-PPJ7SYQL.js.map +1 -0
  234. package/dist/chunk-PT777EQ3.js +48 -0
  235. package/dist/chunk-PT777EQ3.js.map +1 -0
  236. package/dist/chunk-PYLPLFJZ.js +318 -0
  237. package/dist/chunk-PYLPLFJZ.js.map +1 -0
  238. package/dist/chunk-QEPBHHAP.js +41 -0
  239. package/dist/chunk-QEPBHHAP.js.map +1 -0
  240. package/dist/chunk-QHGYCYV6.js +91 -0
  241. package/dist/chunk-QHGYCYV6.js.map +1 -0
  242. package/dist/chunk-R6722CIU.js +28 -0
  243. package/dist/chunk-R6722CIU.js.map +1 -0
  244. package/dist/chunk-RA4YVN43.js +1 -0
  245. package/dist/chunk-RA4YVN43.js.map +1 -0
  246. package/dist/chunk-RT5LUEO3.js +2339 -0
  247. package/dist/chunk-RT5LUEO3.js.map +1 -0
  248. package/dist/chunk-RXKUIJ77.js +236 -0
  249. package/dist/chunk-RXKUIJ77.js.map +1 -0
  250. package/dist/chunk-SC4SUIEY.js +1 -0
  251. package/dist/chunk-SC4SUIEY.js.map +1 -0
  252. package/dist/chunk-SQAAVYJG.js +12 -0
  253. package/dist/chunk-SQAAVYJG.js.map +1 -0
  254. package/dist/chunk-SXE4J43E.js +59 -0
  255. package/dist/chunk-SXE4J43E.js.map +1 -0
  256. package/dist/{chunk-EFLT7XZD.js → chunk-SYULMZGL.js} +6 -4
  257. package/dist/{chunk-EFLT7XZD.js.map → chunk-SYULMZGL.js.map} +1 -1
  258. package/dist/chunk-T4KS577P.js +58 -0
  259. package/dist/chunk-T4KS577P.js.map +1 -0
  260. package/dist/chunk-TFIOU6UR.js +78 -0
  261. package/dist/chunk-TFIOU6UR.js.map +1 -0
  262. package/dist/chunk-TIZGADU4.js +375 -0
  263. package/dist/chunk-TIZGADU4.js.map +1 -0
  264. package/dist/chunk-TP3MCUXS.js +1 -0
  265. package/dist/chunk-TP3MCUXS.js.map +1 -0
  266. package/dist/chunk-TSPQD5HW.js +613 -0
  267. package/dist/chunk-TSPQD5HW.js.map +1 -0
  268. package/dist/{chunk-JTJU56ZV.js → chunk-UOGM62JL.js} +11 -7
  269. package/dist/{chunk-JTJU56ZV.js.map → chunk-UOGM62JL.js.map} +1 -1
  270. package/dist/chunk-USRKPEQN.js +55 -0
  271. package/dist/chunk-USRKPEQN.js.map +1 -0
  272. package/dist/chunk-UTAB3XQI.js +667 -0
  273. package/dist/chunk-UTAB3XQI.js.map +1 -0
  274. package/dist/chunk-V3FFZWF3.js +182 -0
  275. package/dist/chunk-V3FFZWF3.js.map +1 -0
  276. package/dist/chunk-V4OZ7ISA.js +9 -0
  277. package/dist/chunk-V4OZ7ISA.js.map +1 -0
  278. package/dist/chunk-VZ5ZZBNX.js +139 -0
  279. package/dist/chunk-VZ5ZZBNX.js.map +1 -0
  280. package/dist/{chunk-AHLKV6KP.js → chunk-WN6AVBO4.js} +1 -1
  281. package/dist/chunk-WXR5CWSC.js +1 -0
  282. package/dist/chunk-WXR5CWSC.js.map +1 -0
  283. package/dist/chunk-X6WS3XWL.js +36 -0
  284. package/dist/chunk-X6WS3XWL.js.map +1 -0
  285. package/dist/{chunk-Q5BCNYED.js → chunk-XJRNBTIV.js} +7 -4
  286. package/dist/chunk-XQV3XNVT.js +225 -0
  287. package/dist/chunk-XQV3XNVT.js.map +1 -0
  288. package/dist/chunk-XV3DH5GC.js +58 -0
  289. package/dist/chunk-XV3DH5GC.js.map +1 -0
  290. package/dist/chunk-YWRXOPHC.js +43 -0
  291. package/dist/chunk-YWRXOPHC.js.map +1 -0
  292. package/dist/chunk-YZVFIW5D.js +27 -0
  293. package/dist/chunk-YZVFIW5D.js.map +1 -0
  294. package/dist/chunk-ZHC5CD6J.js +33 -0
  295. package/dist/chunk-ZHC5CD6J.js.map +1 -0
  296. package/dist/chunk-ZPJFXRQZ.js +23 -0
  297. package/dist/chunk-ZPJFXRQZ.js.map +1 -0
  298. package/dist/chunk-ZPXOBQDS.js +57 -0
  299. package/dist/chunk-ZPXOBQDS.js.map +1 -0
  300. package/dist/chunk-ZUFS6R7L.js +155 -0
  301. package/dist/chunk-ZUFS6R7L.js.map +1 -0
  302. package/dist/chunk-ZXLCTQUX.js +62 -0
  303. package/dist/chunk-ZXLCTQUX.js.map +1 -0
  304. package/dist/chunk-ZYXMWEL4.js +59 -0
  305. package/dist/chunk-ZYXMWEL4.js.map +1 -0
  306. package/dist/completion/controls.js +11 -0
  307. package/dist/completion/controls.js.map +1 -0
  308. package/dist/completion/documents.js +9 -0
  309. package/dist/completion/documents.js.map +1 -0
  310. package/dist/completion/generate-completion.js +23 -0
  311. package/dist/completion/generate-completion.js.map +1 -0
  312. package/dist/completion/index.js +23 -12
  313. package/dist/completion/json.js +7 -0
  314. package/dist/completion/json.js.map +1 -0
  315. package/dist/completion/message-schema.js +18 -0
  316. package/dist/completion/message-schema.js.map +1 -0
  317. package/dist/completion/provider-output-error.js +12 -0
  318. package/dist/completion/provider-output-error.js.map +1 -0
  319. package/dist/completion/stream-accumulator.js +10 -0
  320. package/dist/completion/stream-accumulator.js.map +1 -0
  321. package/dist/completion/types.js +28 -0
  322. package/dist/completion/types.js.map +1 -0
  323. package/dist/documents/chunk-text.js +7 -0
  324. package/dist/documents/chunk-text.js.map +1 -0
  325. package/dist/documents/index.js +5 -2
  326. package/dist/documents/text-document.js +8 -0
  327. package/dist/documents/text-document.js.map +1 -0
  328. package/dist/embeddings/distance.js +17 -0
  329. package/dist/embeddings/distance.js.map +1 -0
  330. package/dist/embeddings/embed.js +18 -0
  331. package/dist/embeddings/embed.js.map +1 -0
  332. package/dist/embeddings/index.js +11 -6
  333. package/dist/embeddings/types.js +2 -0
  334. package/dist/embeddings/types.js.map +1 -0
  335. package/dist/evals/advanced-metrics.js +46 -0
  336. package/dist/evals/advanced-metrics.js.map +1 -0
  337. package/dist/evals/agent-target.js +10 -0
  338. package/dist/evals/agent-target.js.map +1 -0
  339. package/dist/evals/cli.js +40 -0
  340. package/dist/evals/cli.js.map +1 -0
  341. package/dist/evals/execution.js +15 -0
  342. package/dist/evals/execution.js.map +1 -0
  343. package/dist/evals/format.js +13 -0
  344. package/dist/evals/format.js.map +1 -0
  345. package/dist/evals/index.d.ts +4 -4
  346. package/dist/evals/index.js +87 -2660
  347. package/dist/evals/index.js.map +1 -1
  348. package/dist/evals/judge.js +27 -0
  349. package/dist/evals/judge.js.map +1 -0
  350. package/dist/evals/metric.js +7 -0
  351. package/dist/evals/metric.js.map +1 -0
  352. package/dist/evals/metrics.js +53 -0
  353. package/dist/evals/metrics.js.map +1 -0
  354. package/dist/evals/outcome.js +7 -0
  355. package/dist/evals/outcome.js.map +1 -0
  356. package/dist/evals/reporting.js +11 -0
  357. package/dist/evals/reporting.js.map +1 -0
  358. package/dist/evals/runner.js +29 -0
  359. package/dist/evals/runner.js.map +1 -0
  360. package/dist/evals/selectors.js +18 -0
  361. package/dist/evals/selectors.js.map +1 -0
  362. package/dist/evals/suite.js +11 -0
  363. package/dist/evals/suite.js.map +1 -0
  364. package/dist/evals/types.js +1 -0
  365. package/dist/evals/types.js.map +1 -0
  366. package/dist/extractor/extractor.js +23 -0
  367. package/dist/extractor/extractor.js.map +1 -0
  368. package/dist/extractor/index.js +16 -7
  369. package/dist/guardrails/actions.js +13 -0
  370. package/dist/guardrails/actions.js.map +1 -0
  371. package/dist/guardrails/index.d.ts +3 -4
  372. package/dist/guardrails/index.js +15 -7
  373. package/dist/guardrails/message.js +9 -0
  374. package/dist/guardrails/message.js.map +1 -0
  375. package/dist/guardrails/policy.js +17 -0
  376. package/dist/guardrails/policy.js.map +1 -0
  377. package/dist/guardrails/runtime.js +11 -0
  378. package/dist/guardrails/runtime.js.map +1 -0
  379. package/dist/guardrails/text.js +9 -0
  380. package/dist/guardrails/text.js.map +1 -0
  381. package/dist/guardrails/types.js +1 -0
  382. package/dist/guardrails/types.js.map +1 -0
  383. package/dist/hooks/control.js +17 -0
  384. package/dist/hooks/control.js.map +1 -0
  385. package/dist/hooks/index.js +19 -0
  386. package/dist/hooks/index.js.map +1 -0
  387. package/dist/hooks/types.js +2 -0
  388. package/dist/hooks/types.js.map +1 -0
  389. package/dist/image-generation/generate-image.js +11 -0
  390. package/dist/image-generation/generate-image.js.map +1 -0
  391. package/dist/image-generation/index.js +7 -4
  392. package/dist/image-generation/types.js +2 -0
  393. package/dist/image-generation/types.js.map +1 -0
  394. package/dist/index.d.ts +5 -7
  395. package/dist/index.js +163 -57
  396. package/dist/internal/abort.js +13 -0
  397. package/dist/internal/abort.js.map +1 -0
  398. package/dist/internal/agent-runtime/agent-run.js +81 -0
  399. package/dist/internal/agent-runtime/agent-run.js.map +1 -0
  400. package/dist/internal/agent-runtime/approval-request.js +1 -0
  401. package/dist/internal/agent-runtime/approval-request.js.map +1 -0
  402. package/dist/internal/agent-runtime/approval-requirement.js +9 -0
  403. package/dist/internal/agent-runtime/approval-requirement.js.map +1 -0
  404. package/dist/internal/agent-runtime/continuation-state.js +26 -0
  405. package/dist/internal/agent-runtime/continuation-state.js.map +1 -0
  406. package/dist/internal/agent-runtime/interaction-suspension.js +25 -0
  407. package/dist/internal/agent-runtime/interaction-suspension.js.map +1 -0
  408. package/dist/internal/agent-runtime/memory-scope.js +8 -0
  409. package/dist/internal/agent-runtime/memory-scope.js.map +1 -0
  410. package/dist/internal/agent-runtime/memory.js +24 -0
  411. package/dist/internal/agent-runtime/memory.js.map +1 -0
  412. package/dist/internal/agent-runtime/prepared-tool-call.js +19 -0
  413. package/dist/internal/agent-runtime/prepared-tool-call.js.map +1 -0
  414. package/dist/internal/agent-runtime/retrieval.js +35 -0
  415. package/dist/internal/agent-runtime/retrieval.js.map +1 -0
  416. package/dist/internal/agent-runtime/run-options.js +9 -0
  417. package/dist/internal/agent-runtime/run-options.js.map +1 -0
  418. package/dist/internal/agent-runtime/run-validation.js +9 -0
  419. package/dist/internal/agent-runtime/run-validation.js.map +1 -0
  420. package/dist/internal/agent-runtime/stream-events.js +11 -0
  421. package/dist/internal/agent-runtime/stream-events.js.map +1 -0
  422. package/dist/internal/agent-runtime/structured-output.js +13 -0
  423. package/dist/internal/agent-runtime/structured-output.js.map +1 -0
  424. package/dist/internal/agent-runtime/tool-execution.js +55 -0
  425. package/dist/internal/agent-runtime/tool-execution.js.map +1 -0
  426. package/dist/internal/agent.d.ts +5 -5
  427. package/dist/internal/agent.js +93 -57
  428. package/dist/internal/agent.js.map +1 -1
  429. package/dist/internal/async-queue.js +7 -0
  430. package/dist/internal/async-queue.js.map +1 -0
  431. package/dist/internal/completion-request.js +11 -0
  432. package/dist/internal/completion-request.js.map +1 -0
  433. package/dist/internal/concurrency.js +7 -0
  434. package/dist/internal/concurrency.js.map +1 -0
  435. package/dist/internal/json-object.js +8 -0
  436. package/dist/internal/json-object.js.map +1 -0
  437. package/dist/internal/rag-text.js +7 -0
  438. package/dist/internal/rag-text.js.map +1 -0
  439. package/dist/internal/record.js +7 -0
  440. package/dist/internal/record.js.map +1 -0
  441. package/dist/internal/team-runtime/coordination.js +12 -0
  442. package/dist/internal/team-runtime/coordination.js.map +1 -0
  443. package/dist/internal/team-runtime/member.js +26 -0
  444. package/dist/internal/team-runtime/member.js.map +1 -0
  445. package/dist/internal/team-runtime/policy.js +7 -0
  446. package/dist/internal/team-runtime/policy.js.map +1 -0
  447. package/dist/internal/team-runtime/run.js +95 -0
  448. package/dist/internal/team-runtime/run.js.map +1 -0
  449. package/dist/internal/team-runtime/stream.js +9 -0
  450. package/dist/internal/team-runtime/stream.js.map +1 -0
  451. package/dist/internal/team-runtime/tools.js +17 -0
  452. package/dist/internal/team-runtime/tools.js.map +1 -0
  453. package/dist/internal/type-utils.js +1 -0
  454. package/dist/internal/type-utils.js.map +1 -0
  455. package/dist/internal/vector-search-options.js +9 -0
  456. package/dist/internal/vector-search-options.js.map +1 -0
  457. package/dist/mcp/index.js +3 -1
  458. package/dist/mcp/tool.js +7 -0
  459. package/dist/mcp/tool.js.map +1 -0
  460. package/dist/mcp/types.js +2 -0
  461. package/dist/mcp/types.js.map +1 -0
  462. package/dist/memory/assert.js +11 -0
  463. package/dist/memory/assert.js.map +1 -0
  464. package/dist/memory/compaction.js +26 -0
  465. package/dist/memory/compaction.js.map +1 -0
  466. package/dist/memory/errors.js +9 -0
  467. package/dist/memory/errors.js.map +1 -0
  468. package/dist/memory/index.js +23 -10
  469. package/dist/memory/options.js +10 -0
  470. package/dist/memory/options.js.map +1 -0
  471. package/dist/memory/scope-key.js +7 -0
  472. package/dist/memory/scope-key.js.map +1 -0
  473. package/dist/memory/types.js +2 -0
  474. package/dist/memory/types.js.map +1 -0
  475. package/dist/{types-CRda8x7p.d.ts → middleware-CWjnMbiH.d.ts} +64 -5
  476. package/dist/model-call-options.js +1 -0
  477. package/dist/model-call-options.js.map +1 -0
  478. package/dist/model-listing/errors.js +7 -0
  479. package/dist/model-listing/errors.js.map +1 -0
  480. package/dist/model-listing/index.js +4 -13
  481. package/dist/model-listing/index.js.map +1 -1
  482. package/dist/model-listing/types.js +2 -0
  483. package/dist/model-listing/types.js.map +1 -0
  484. package/dist/observability/group.js +30 -0
  485. package/dist/observability/group.js.map +1 -0
  486. package/dist/observability/index.d.ts +4 -6
  487. package/dist/observability/index.js +16 -8
  488. package/dist/observability/snapshot.js +7 -0
  489. package/dist/observability/snapshot.js.map +1 -0
  490. package/dist/observability/types.js +1 -0
  491. package/dist/observability/types.js.map +1 -0
  492. package/dist/pipeline/errors.js +9 -0
  493. package/dist/pipeline/errors.js.map +1 -0
  494. package/dist/pipeline/graph.js +21 -0
  495. package/dist/pipeline/graph.js.map +1 -0
  496. package/dist/pipeline/index.d.ts +4 -6
  497. package/dist/pipeline/index.js +27 -805
  498. package/dist/pipeline/index.js.map +1 -1
  499. package/dist/pipeline/observability.js +15 -0
  500. package/dist/pipeline/observability.js.map +1 -0
  501. package/dist/pipeline/pipeline.js +30 -0
  502. package/dist/pipeline/pipeline.js.map +1 -0
  503. package/dist/pipeline/runtime.js +17 -0
  504. package/dist/pipeline/runtime.js.map +1 -0
  505. package/dist/pipeline/types.js +1 -0
  506. package/dist/pipeline/types.js.map +1 -0
  507. package/dist/retry.js +20 -0
  508. package/dist/retry.js.map +1 -0
  509. package/dist/schema/index.js +1 -0
  510. package/dist/schema/index.js.map +1 -0
  511. package/dist/schema/zod-schema.js +7 -0
  512. package/dist/schema/zod-schema.js.map +1 -0
  513. package/dist/skills/index.js +41 -12
  514. package/dist/skills/instructions.js +7 -0
  515. package/dist/skills/instructions.js.map +1 -0
  516. package/dist/skills/load.js +39 -0
  517. package/dist/skills/load.js.map +1 -0
  518. package/dist/skills/local.js +9 -0
  519. package/dist/skills/local.js.map +1 -0
  520. package/dist/skills/tools.js +37 -0
  521. package/dist/skills/tools.js.map +1 -0
  522. package/dist/skills/types.js +7 -0
  523. package/dist/skills/types.js.map +1 -0
  524. package/dist/speech-generation/generate-speech.js +11 -0
  525. package/dist/speech-generation/generate-speech.js.map +1 -0
  526. package/dist/speech-generation/index.js +7 -4
  527. package/dist/speech-generation/types.js +2 -0
  528. package/dist/speech-generation/types.js.map +1 -0
  529. package/dist/streaming/index.js +3 -37
  530. package/dist/streaming/index.js.map +1 -1
  531. package/dist/streaming/readable-stream.js +7 -0
  532. package/dist/streaming/readable-stream.js.map +1 -0
  533. package/dist/{text-CmjXxakS.d.ts → text-GbW4WYMg.d.ts} +1 -1
  534. package/dist/tool/create-tool.js +14 -0
  535. package/dist/tool/create-tool.js.map +1 -0
  536. package/dist/tool/dynamic-tools.js +35 -0
  537. package/dist/tool/dynamic-tools.js.map +1 -0
  538. package/dist/tool/errors.js +11 -0
  539. package/dist/tool/errors.js.map +1 -0
  540. package/dist/tool/index.d.ts +3 -2
  541. package/dist/tool/index.js +41 -15
  542. package/dist/tool/middleware.js +7 -0
  543. package/dist/tool/middleware.js.map +1 -0
  544. package/dist/tool/question-tool.js +17 -0
  545. package/dist/tool/question-tool.js.map +1 -0
  546. package/dist/tool/skill-tool-marker.js +9 -0
  547. package/dist/tool/skill-tool-marker.js.map +1 -0
  548. package/dist/tool/think-tool.js +15 -0
  549. package/dist/tool/think-tool.js.map +1 -0
  550. package/dist/tool/tool.js +17 -0
  551. package/dist/tool/tool.js.map +1 -0
  552. package/dist/transcription/index.js +7 -4
  553. package/dist/transcription/transcribe.js +11 -0
  554. package/dist/transcription/transcribe.js.map +1 -0
  555. package/dist/transcription/types.js +2 -0
  556. package/dist/transcription/types.js.map +1 -0
  557. package/dist/{types-h0EL6Xn0.d.ts → types-Bqw0AuFl.d.ts} +6 -2
  558. package/dist/vector-store/filter.js +9 -0
  559. package/dist/vector-store/filter.js.map +1 -0
  560. package/dist/vector-store/index.js +31 -11
  561. package/dist/vector-store/ingest.js +19 -0
  562. package/dist/vector-store/ingest.js.map +1 -0
  563. package/dist/vector-store/lsh.js +7 -0
  564. package/dist/vector-store/lsh.js.map +1 -0
  565. package/dist/vector-store/retrieve.js +15 -0
  566. package/dist/vector-store/retrieve.js.map +1 -0
  567. package/dist/vector-store/types.js +1 -0
  568. package/dist/vector-store/types.js.map +1 -0
  569. package/package.json +8 -5
  570. package/dist/chunk-2QZJTG2E.js.map +0 -1
  571. package/dist/chunk-3RWESPUG.js.map +0 -1
  572. package/dist/chunk-4UQALF5Y.js.map +0 -1
  573. package/dist/chunk-AZB6N7P4.js +0 -320
  574. package/dist/chunk-AZB6N7P4.js.map +0 -1
  575. package/dist/chunk-JLJMVRRE.js.map +0 -1
  576. package/dist/chunk-K5L7R7XM.js.map +0 -1
  577. package/dist/chunk-OI3LSMJG.js +0 -1545
  578. package/dist/chunk-OI3LSMJG.js.map +0 -1
  579. package/dist/chunk-QGX73TSQ.js.map +0 -1
  580. package/dist/chunk-XC3LVC4K.js +0 -753
  581. package/dist/chunk-XC3LVC4K.js.map +0 -1
  582. package/dist/chunk-XEVOC433.js.map +0 -1
  583. package/dist/chunk-XSV5C4R5.js +0 -400
  584. package/dist/chunk-XSV5C4R5.js.map +0 -1
  585. package/dist/chunk-XU54PLSD.js +0 -4786
  586. package/dist/chunk-XU54PLSD.js.map +0 -1
  587. package/dist/middleware-mY_lpjDp.d.ts +0 -59
  588. package/dist/type-utils-CtHVDRn_.d.ts +0 -6
  589. /package/dist/{chunk-YK4WAAS4.js.map → chunk-2NLINXRF.js.map} +0 -0
  590. /package/dist/{chunk-SPD4XVR7.js.map → chunk-2XSMGVBG.js.map} +0 -0
  591. /package/dist/{chunk-3XQGVDU5.js.map → chunk-4C7AXYOM.js.map} +0 -0
  592. /package/dist/{chunk-IZNOP6JG.js.map → chunk-4FIVU53H.js.map} +0 -0
  593. /package/dist/{chunk-7JLAIN6E.js.map → chunk-4ONUNWGC.js.map} +0 -0
  594. /package/dist/{chunk-KSKST3KP.js.map → chunk-H3H74RWJ.js.map} +0 -0
  595. /package/dist/{chunk-OJBFDBLG.js.map → chunk-LBYJPMHC.js.map} +0 -0
  596. /package/dist/{chunk-J6LVLV6P.js.map → chunk-PLDJCCVL.js.map} +0 -0
  597. /package/dist/{chunk-AHLKV6KP.js.map → chunk-WN6AVBO4.js.map} +0 -0
  598. /package/dist/{chunk-Q5BCNYED.js.map → chunk-XJRNBTIV.js.map} +0 -0
@@ -0,0 +1,225 @@
1
+ import {
2
+ isJsonValue
3
+ } from "./chunk-4C7AXYOM.js";
4
+
5
+ // src/completion/provider-output-error.ts
6
+ var COMPLETION_PROVIDER_OUTPUT_ERROR_CODE = "ANVIA_COMPLETION_PROVIDER_OUTPUT";
7
+ var PROVIDER_OUTPUT_ERROR_KINDS = /* @__PURE__ */ new Set([
8
+ "malformed-tool-arguments",
9
+ "invalid-tool-arguments",
10
+ "invalid-stream-event",
11
+ "invalid-response",
12
+ "incomplete-stream",
13
+ "incomplete-tool-call",
14
+ "invalid-tool-call",
15
+ "truncated-tool-call",
16
+ "filtered-tool-call"
17
+ ]);
18
+ var CompletionProviderOutputError = class extends Error {
19
+ code = COMPLETION_PROVIDER_OUTPUT_ERROR_CODE;
20
+ kind;
21
+ toolCallId;
22
+ finishReason;
23
+ usage;
24
+ constructor(options) {
25
+ assertProviderOutputErrorOptions(options);
26
+ super(providerOutputErrorMessage(options.kind, options.toolCallId));
27
+ this.name = "CompletionProviderOutputError";
28
+ this.kind = options.kind;
29
+ this.toolCallId = options.toolCallId;
30
+ this.finishReason = options.finishReason;
31
+ this.usage = options.usage === void 0 ? void 0 : copyUsage(options.usage);
32
+ }
33
+ };
34
+ function assertCompletionResponseIntegrity(options) {
35
+ const { response } = options;
36
+ const toolCalls = response.choice.filter(
37
+ (content) => content.type === "tool-call"
38
+ );
39
+ if (toolCalls.length > 0) {
40
+ if (response.finishReason !== void 0 && !isCompletionFinishReason(response.finishReason)) {
41
+ throw new CompletionProviderOutputError({
42
+ kind: "invalid-tool-call",
43
+ usage: response.usage
44
+ });
45
+ }
46
+ if (response.finishReason === "length") {
47
+ throw new CompletionProviderOutputError({
48
+ kind: "truncated-tool-call",
49
+ finishReason: response.finishReason,
50
+ usage: response.usage
51
+ });
52
+ }
53
+ if (response.finishReason === "content-filter") {
54
+ throw new CompletionProviderOutputError({
55
+ kind: "filtered-tool-call",
56
+ finishReason: response.finishReason,
57
+ usage: response.usage
58
+ });
59
+ }
60
+ if (response.finishReason === "other") {
61
+ throw new CompletionProviderOutputError({
62
+ kind: "invalid-tool-call",
63
+ finishReason: response.finishReason,
64
+ usage: response.usage
65
+ });
66
+ }
67
+ } else if (response.finishReason === "tool-calls") {
68
+ throw new CompletionProviderOutputError({
69
+ kind: "invalid-tool-call",
70
+ finishReason: response.finishReason,
71
+ usage: response.usage
72
+ });
73
+ }
74
+ const toolCallIds = /* @__PURE__ */ new Set();
75
+ const callIds = /* @__PURE__ */ new Set();
76
+ for (const toolCall of toolCalls) {
77
+ if (!isNonblankString(toolCall.toolCallId) || !isNonblankString(toolCall.toolName)) {
78
+ throw invalidToolCall(toolCall.toolCallId, response.usage);
79
+ }
80
+ if (toolCall.callId !== void 0 && !isNonblankString(toolCall.callId)) {
81
+ throw invalidToolCall(toolCall.toolCallId, response.usage);
82
+ }
83
+ if (toolCallIds.has(toolCall.toolCallId)) {
84
+ throw invalidToolCall(toolCall.toolCallId, response.usage);
85
+ }
86
+ toolCallIds.add(toolCall.toolCallId);
87
+ if (toolCall.callId !== void 0) {
88
+ if (callIds.has(toolCall.callId)) {
89
+ throw invalidToolCall(toolCall.toolCallId, response.usage);
90
+ }
91
+ callIds.add(toolCall.callId);
92
+ }
93
+ if (!isJsonValue(toolCall.input)) {
94
+ throw new CompletionProviderOutputError({
95
+ kind: "invalid-tool-arguments",
96
+ toolCallId: toolCall.toolCallId,
97
+ usage: response.usage
98
+ });
99
+ }
100
+ }
101
+ }
102
+ function invalidToolCall(toolCallId, usage) {
103
+ return new CompletionProviderOutputError({
104
+ kind: "invalid-tool-call",
105
+ toolCallId: isNonblankString(toolCallId) ? toolCallId : void 0,
106
+ usage
107
+ });
108
+ }
109
+ function assertProviderOutputErrorOptions(options) {
110
+ if (typeof options !== "object" || options === null) {
111
+ throw new TypeError("CompletionProviderOutputError options must be an object.");
112
+ }
113
+ if (!PROVIDER_OUTPUT_ERROR_KINDS.has(options.kind)) {
114
+ throw new TypeError("CompletionProviderOutputError kind is invalid.");
115
+ }
116
+ if (options.toolCallId !== void 0 && !isNonblankString(options.toolCallId)) {
117
+ throw new TypeError("CompletionProviderOutputError toolCallId must be a non-empty string.");
118
+ }
119
+ if (options.finishReason !== void 0 && !isCompletionFinishReason(options.finishReason)) {
120
+ throw new TypeError("CompletionProviderOutputError finishReason is invalid.");
121
+ }
122
+ if (options.kind === "truncated-tool-call" && options.finishReason !== "length") {
123
+ throw new TypeError('CompletionProviderOutputError truncated-tool-call requires "length".');
124
+ }
125
+ if (options.kind === "filtered-tool-call" && options.finishReason !== "content-filter") {
126
+ throw new TypeError(
127
+ 'CompletionProviderOutputError filtered-tool-call requires "content-filter".'
128
+ );
129
+ }
130
+ if (options.finishReason === "length" && options.kind !== "truncated-tool-call") {
131
+ throw new TypeError(
132
+ 'CompletionProviderOutputError finishReason "length" requires truncated-tool-call.'
133
+ );
134
+ }
135
+ if (options.finishReason === "content-filter" && options.kind !== "filtered-tool-call") {
136
+ throw new TypeError(
137
+ 'CompletionProviderOutputError finishReason "content-filter" requires filtered-tool-call.'
138
+ );
139
+ }
140
+ if (options.usage !== void 0) {
141
+ assertUsage(options.usage);
142
+ }
143
+ }
144
+ function providerOutputErrorMessage(kind, toolCallId) {
145
+ const toolCall = toolCallId === void 0 ? "tool call" : `tool call ${JSON.stringify(displayId(toolCallId))}`;
146
+ if (kind === "malformed-tool-arguments") {
147
+ return `Completion provider returned ${toolCall} with malformed JSON arguments.`;
148
+ }
149
+ if (kind === "invalid-tool-arguments") {
150
+ return `Completion provider returned ${toolCall} with arguments that are not a JSON value.`;
151
+ }
152
+ if (kind === "invalid-stream-event") {
153
+ return "Completion provider returned an invalid stream event.";
154
+ }
155
+ if (kind === "invalid-response") {
156
+ return "Completion provider returned a response that cannot be consumed safely.";
157
+ }
158
+ if (kind === "incomplete-tool-call") {
159
+ return "Completion provider stream ended before its tool call was complete.";
160
+ }
161
+ if (kind === "incomplete-stream") {
162
+ return "Completion provider stream ended without a terminal response.";
163
+ }
164
+ if (kind === "truncated-tool-call") {
165
+ return "Completion provider stopped at its output limit before a tool call could be consumed safely.";
166
+ }
167
+ if (kind === "filtered-tool-call") {
168
+ return "Completion provider content filtering prevented a tool call from being consumed safely.";
169
+ }
170
+ return `Completion provider returned an invalid ${toolCall}.`;
171
+ }
172
+ function displayId(value) {
173
+ let sanitized = "";
174
+ for (const character of value) {
175
+ const code = character.charCodeAt(0);
176
+ sanitized += code <= 31 || code === 127 ? "\uFFFD" : character;
177
+ }
178
+ return sanitized.length <= 128 ? sanitized : `${sanitized.slice(0, 127)}\u2026`;
179
+ }
180
+ function isNonblankString(value) {
181
+ return typeof value === "string" && value.trim().length > 0;
182
+ }
183
+ function isCompletionFinishReason(value) {
184
+ return value === "stop" || value === "length" || value === "content-filter" || value === "tool-calls" || value === "other";
185
+ }
186
+ function assertUsage(usage) {
187
+ for (const value of [
188
+ usage.inputTokens,
189
+ usage.outputTokens,
190
+ usage.totalTokens,
191
+ usage.cachedInputTokens,
192
+ usage.cacheCreationInputTokens
193
+ ]) {
194
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
195
+ throw new TypeError("CompletionProviderOutputError usage must contain finite token counts.");
196
+ }
197
+ }
198
+ if (usage.details !== void 0) {
199
+ for (const value of Object.values(usage.details)) {
200
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
201
+ throw new TypeError(
202
+ "CompletionProviderOutputError usage details must contain finite token counts."
203
+ );
204
+ }
205
+ }
206
+ }
207
+ }
208
+ function copyUsage(usage) {
209
+ const copied = {
210
+ inputTokens: usage.inputTokens,
211
+ outputTokens: usage.outputTokens,
212
+ totalTokens: usage.totalTokens,
213
+ cachedInputTokens: usage.cachedInputTokens,
214
+ cacheCreationInputTokens: usage.cacheCreationInputTokens
215
+ };
216
+ if (usage.details !== void 0) copied.details = { ...usage.details };
217
+ return copied;
218
+ }
219
+
220
+ export {
221
+ COMPLETION_PROVIDER_OUTPUT_ERROR_CODE,
222
+ CompletionProviderOutputError,
223
+ assertCompletionResponseIntegrity
224
+ };
225
+ //# sourceMappingURL=chunk-XQV3XNVT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/completion/provider-output-error.ts"],"sourcesContent":["import { isJsonValue } from \"./json\";\nimport type { CompletionFinishReason, CompletionResponse, ToolCallPart, Usage } from \"./types\";\n\nexport const COMPLETION_PROVIDER_OUTPUT_ERROR_CODE = \"ANVIA_COMPLETION_PROVIDER_OUTPUT\" as const;\n\nexport type CompletionProviderOutputErrorKind =\n | \"malformed-tool-arguments\"\n | \"invalid-tool-arguments\"\n | \"invalid-stream-event\"\n | \"invalid-response\"\n | \"incomplete-stream\"\n | \"incomplete-tool-call\"\n | \"invalid-tool-call\"\n | \"truncated-tool-call\"\n | \"filtered-tool-call\";\n\ntype CompletionProviderOutputErrorBaseOptions = Readonly<{\n toolCallId?: string | undefined;\n usage?: Usage | undefined;\n}>;\n\nexport type CompletionProviderOutputErrorOptions =\n | Readonly<\n CompletionProviderOutputErrorBaseOptions & {\n kind: \"truncated-tool-call\";\n finishReason: \"length\";\n }\n >\n | Readonly<\n CompletionProviderOutputErrorBaseOptions & {\n kind: \"filtered-tool-call\";\n finishReason: \"content-filter\";\n }\n >\n | Readonly<\n CompletionProviderOutputErrorBaseOptions & {\n kind: Exclude<\n CompletionProviderOutputErrorKind,\n \"truncated-tool-call\" | \"filtered-tool-call\"\n >;\n finishReason?: Exclude<CompletionFinishReason, \"length\" | \"content-filter\"> | undefined;\n }\n >;\n\nconst PROVIDER_OUTPUT_ERROR_KINDS = new Set<CompletionProviderOutputErrorKind>([\n \"malformed-tool-arguments\",\n \"invalid-tool-arguments\",\n \"invalid-stream-event\",\n \"invalid-response\",\n \"incomplete-stream\",\n \"incomplete-tool-call\",\n \"invalid-tool-call\",\n \"truncated-tool-call\",\n \"filtered-tool-call\",\n]);\n\n/**\n * A provider returned incomplete output or a tool call that cannot be consumed safely.\n *\n * The error intentionally excludes raw model arguments. Provider output can contain\n * credentials or other sensitive values and must not become log metadata by default.\n */\nexport class CompletionProviderOutputError extends Error {\n readonly code = COMPLETION_PROVIDER_OUTPUT_ERROR_CODE;\n readonly kind: CompletionProviderOutputErrorKind;\n readonly toolCallId: string | undefined;\n readonly finishReason: CompletionFinishReason | undefined;\n readonly usage: Usage | undefined;\n\n constructor(options: CompletionProviderOutputErrorOptions) {\n assertProviderOutputErrorOptions(options);\n super(providerOutputErrorMessage(options.kind, options.toolCallId));\n this.name = \"CompletionProviderOutputError\";\n this.kind = options.kind;\n this.toolCallId = options.toolCallId;\n this.finishReason = options.finishReason;\n this.usage = options.usage === undefined ? undefined : copyUsage(options.usage);\n }\n}\n\nexport function assertCompletionResponseIntegrity(\n options: Readonly<{ response: CompletionResponse }>,\n): void {\n const { response } = options;\n const toolCalls = response.choice.filter(\n (content): content is ToolCallPart => content.type === \"tool-call\",\n );\n\n if (toolCalls.length > 0) {\n if (response.finishReason !== undefined && !isCompletionFinishReason(response.finishReason)) {\n throw new CompletionProviderOutputError({\n kind: \"invalid-tool-call\",\n usage: response.usage,\n });\n }\n if (response.finishReason === \"length\") {\n throw new CompletionProviderOutputError({\n kind: \"truncated-tool-call\",\n finishReason: response.finishReason,\n usage: response.usage,\n });\n }\n if (response.finishReason === \"content-filter\") {\n throw new CompletionProviderOutputError({\n kind: \"filtered-tool-call\",\n finishReason: response.finishReason,\n usage: response.usage,\n });\n }\n if (response.finishReason === \"other\") {\n throw new CompletionProviderOutputError({\n kind: \"invalid-tool-call\",\n finishReason: response.finishReason,\n usage: response.usage,\n });\n }\n } else if (response.finishReason === \"tool-calls\") {\n throw new CompletionProviderOutputError({\n kind: \"invalid-tool-call\",\n finishReason: response.finishReason,\n usage: response.usage,\n });\n }\n\n const toolCallIds = new Set<string>();\n const callIds = new Set<string>();\n for (const toolCall of toolCalls) {\n if (!isNonblankString(toolCall.toolCallId) || !isNonblankString(toolCall.toolName)) {\n throw invalidToolCall(toolCall.toolCallId, response.usage);\n }\n if (toolCall.callId !== undefined && !isNonblankString(toolCall.callId)) {\n throw invalidToolCall(toolCall.toolCallId, response.usage);\n }\n if (toolCallIds.has(toolCall.toolCallId)) {\n throw invalidToolCall(toolCall.toolCallId, response.usage);\n }\n toolCallIds.add(toolCall.toolCallId);\n if (toolCall.callId !== undefined) {\n if (callIds.has(toolCall.callId)) {\n throw invalidToolCall(toolCall.toolCallId, response.usage);\n }\n callIds.add(toolCall.callId);\n }\n if (!isJsonValue(toolCall.input)) {\n throw new CompletionProviderOutputError({\n kind: \"invalid-tool-arguments\",\n toolCallId: toolCall.toolCallId,\n usage: response.usage,\n });\n }\n }\n}\n\nfunction invalidToolCall(toolCallId: unknown, usage: Usage): CompletionProviderOutputError {\n return new CompletionProviderOutputError({\n kind: \"invalid-tool-call\",\n toolCallId: isNonblankString(toolCallId) ? toolCallId : undefined,\n usage,\n });\n}\n\nfunction assertProviderOutputErrorOptions(options: CompletionProviderOutputErrorOptions): void {\n if (typeof options !== \"object\" || options === null) {\n throw new TypeError(\"CompletionProviderOutputError options must be an object.\");\n }\n if (!PROVIDER_OUTPUT_ERROR_KINDS.has(options.kind)) {\n throw new TypeError(\"CompletionProviderOutputError kind is invalid.\");\n }\n if (options.toolCallId !== undefined && !isNonblankString(options.toolCallId)) {\n throw new TypeError(\"CompletionProviderOutputError toolCallId must be a non-empty string.\");\n }\n if (options.finishReason !== undefined && !isCompletionFinishReason(options.finishReason)) {\n throw new TypeError(\"CompletionProviderOutputError finishReason is invalid.\");\n }\n if (options.kind === \"truncated-tool-call\" && options.finishReason !== \"length\") {\n throw new TypeError('CompletionProviderOutputError truncated-tool-call requires \"length\".');\n }\n if (options.kind === \"filtered-tool-call\" && options.finishReason !== \"content-filter\") {\n throw new TypeError(\n 'CompletionProviderOutputError filtered-tool-call requires \"content-filter\".',\n );\n }\n if (options.finishReason === \"length\" && options.kind !== \"truncated-tool-call\") {\n throw new TypeError(\n 'CompletionProviderOutputError finishReason \"length\" requires truncated-tool-call.',\n );\n }\n if (options.finishReason === \"content-filter\" && options.kind !== \"filtered-tool-call\") {\n throw new TypeError(\n 'CompletionProviderOutputError finishReason \"content-filter\" requires filtered-tool-call.',\n );\n }\n if (options.usage !== undefined) {\n assertUsage(options.usage);\n }\n}\n\nfunction providerOutputErrorMessage(\n kind: CompletionProviderOutputErrorKind,\n toolCallId: string | undefined,\n): string {\n const toolCall =\n toolCallId === undefined ? \"tool call\" : `tool call ${JSON.stringify(displayId(toolCallId))}`;\n if (kind === \"malformed-tool-arguments\") {\n return `Completion provider returned ${toolCall} with malformed JSON arguments.`;\n }\n if (kind === \"invalid-tool-arguments\") {\n return `Completion provider returned ${toolCall} with arguments that are not a JSON value.`;\n }\n if (kind === \"invalid-stream-event\") {\n return \"Completion provider returned an invalid stream event.\";\n }\n if (kind === \"invalid-response\") {\n return \"Completion provider returned a response that cannot be consumed safely.\";\n }\n if (kind === \"incomplete-tool-call\") {\n return \"Completion provider stream ended before its tool call was complete.\";\n }\n if (kind === \"incomplete-stream\") {\n return \"Completion provider stream ended without a terminal response.\";\n }\n if (kind === \"truncated-tool-call\") {\n return \"Completion provider stopped at its output limit before a tool call could be consumed safely.\";\n }\n if (kind === \"filtered-tool-call\") {\n return \"Completion provider content filtering prevented a tool call from being consumed safely.\";\n }\n return `Completion provider returned an invalid ${toolCall}.`;\n}\n\nfunction displayId(value: string): string {\n let sanitized = \"\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n sanitized += code <= 31 || code === 127 ? \"�\" : character;\n }\n return sanitized.length <= 128 ? sanitized : `${sanitized.slice(0, 127)}…`;\n}\n\nfunction isNonblankString(value: unknown): value is string {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\nfunction isCompletionFinishReason(value: unknown): value is CompletionFinishReason {\n return (\n value === \"stop\" ||\n value === \"length\" ||\n value === \"content-filter\" ||\n value === \"tool-calls\" ||\n value === \"other\"\n );\n}\n\nfunction assertUsage(usage: Usage): void {\n for (const value of [\n usage.inputTokens,\n usage.outputTokens,\n usage.totalTokens,\n usage.cachedInputTokens,\n usage.cacheCreationInputTokens,\n ]) {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(\"CompletionProviderOutputError usage must contain finite token counts.\");\n }\n }\n if (usage.details !== undefined) {\n for (const value of Object.values(usage.details)) {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(\n \"CompletionProviderOutputError usage details must contain finite token counts.\",\n );\n }\n }\n }\n}\n\nfunction copyUsage(usage: Usage): Usage {\n const copied: Usage = {\n inputTokens: usage.inputTokens,\n outputTokens: usage.outputTokens,\n totalTokens: usage.totalTokens,\n cachedInputTokens: usage.cachedInputTokens,\n cacheCreationInputTokens: usage.cacheCreationInputTokens,\n };\n if (usage.details !== undefined) copied.details = { ...usage.details };\n return copied;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,58 @@
1
+ import {
2
+ assertToolApprovalRequirement
3
+ } from "./chunk-YZVFIW5D.js";
4
+ import {
5
+ attachPreparedToolOwner,
6
+ preparedToolInput,
7
+ withoutPreparedToolInput
8
+ } from "./chunk-MHOJJYDK.js";
9
+ import {
10
+ toProviderJsonSchema
11
+ } from "./chunk-SQAAVYJG.js";
12
+
13
+ // src/tool/create-tool.ts
14
+ function createTool(options) {
15
+ const { name, description, inputSchema, outputSchema, execute } = options;
16
+ const requiresApproval = snapshotApprovalRequirement(options.requiresApproval);
17
+ if (requiresApproval !== void 0) {
18
+ assertToolApprovalRequirement(requiresApproval, { allowFunction: true });
19
+ }
20
+ const parameters = toProviderJsonSchema(inputSchema);
21
+ const preparedInputOwner = {};
22
+ const definition = () => ({
23
+ name,
24
+ description,
25
+ parameters: globalThis.structuredClone(parameters)
26
+ });
27
+ const call = async (args, context = {}) => {
28
+ const prepared = preparedToolInput(context, preparedInputOwner);
29
+ const parsedArgs = prepared === void 0 ? inputSchema.parse(args) : prepared.input;
30
+ const executionContext = prepared === void 0 ? context : withoutPreparedToolInput(context);
31
+ const result = await execute(parsedArgs, executionContext);
32
+ return outputSchema === void 0 ? result : outputSchema.parse(result);
33
+ };
34
+ const parseInput = (args) => inputSchema.parse(args);
35
+ const tool = {
36
+ name,
37
+ definition,
38
+ call,
39
+ parseInput
40
+ };
41
+ if (requiresApproval !== void 0) {
42
+ Object.defineProperty(tool, "requiresApproval", {
43
+ configurable: false,
44
+ enumerable: true,
45
+ value: requiresApproval,
46
+ writable: false
47
+ });
48
+ }
49
+ return attachPreparedToolOwner(tool, preparedInputOwner);
50
+ }
51
+ function snapshotApprovalRequirement(requirement) {
52
+ return typeof requirement === "object" && requirement !== null ? Object.freeze({ ...requirement }) : requirement;
53
+ }
54
+
55
+ export {
56
+ createTool
57
+ };
58
+ //# sourceMappingURL=chunk-XV3DH5GC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tool/create-tool.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport { assertToolApprovalRequirement } from \"../internal/agent-runtime/approval-requirement\";\nimport {\n attachPreparedToolOwner,\n preparedToolInput,\n withoutPreparedToolInput,\n} from \"../internal/agent-runtime/prepared-tool-call\";\nimport { toProviderJsonSchema, type ZodSchema } from \"../schema/zod-schema\";\nimport type { Tool, ToolCallContext, ToolRequiresApproval } from \"./tool\";\n\nexport type CreateToolOptions<\n InputSchema extends ZodSchema,\n OutputSchema extends ZodSchema | undefined = undefined,\n Output = unknown,\n> = {\n name: string;\n description: string;\n inputSchema: InputSchema;\n outputSchema?: OutputSchema;\n requiresApproval?: ToolRequiresApproval<z.output<InputSchema>>;\n execute(\n args: z.output<InputSchema>,\n context: ToolCallContext,\n ): OutputSchema extends ZodSchema\n ? z.input<OutputSchema> | Promise<z.input<OutputSchema>>\n : Output | Promise<Output>;\n};\n\ntype CreateToolOutput<\n OutputSchema extends ZodSchema | undefined,\n Output,\n> = OutputSchema extends ZodSchema ? z.output<OutputSchema> : Output;\n\nexport function createTool<InputSchema extends ZodSchema, Output = unknown>(\n options: CreateToolOptions<InputSchema, undefined, Output> & { outputSchema?: undefined },\n): Tool<z.output<InputSchema>, Output>;\n\nexport function createTool<InputSchema extends ZodSchema, OutputSchema extends ZodSchema>(\n options: CreateToolOptions<InputSchema, OutputSchema>,\n): Tool<z.output<InputSchema>, z.output<OutputSchema>>;\n\nexport function createTool<\n InputSchema extends ZodSchema,\n OutputSchema extends ZodSchema | undefined = undefined,\n Output = unknown,\n>(\n options: CreateToolOptions<InputSchema, OutputSchema, Output>,\n): Tool<z.output<InputSchema>, CreateToolOutput<OutputSchema, Output>> {\n const { name, description, inputSchema, outputSchema, execute } = options;\n const requiresApproval = snapshotApprovalRequirement(options.requiresApproval);\n if (requiresApproval !== undefined) {\n assertToolApprovalRequirement(requiresApproval, { allowFunction: true });\n }\n const parameters = toProviderJsonSchema(inputSchema);\n const preparedInputOwner = {};\n const definition = () => ({\n name,\n description,\n parameters: globalThis.structuredClone(parameters),\n });\n const call = async (\n args: z.output<InputSchema>,\n context: ToolCallContext = {},\n ): Promise<CreateToolOutput<OutputSchema, Output>> => {\n const prepared = preparedToolInput(context, preparedInputOwner);\n const parsedArgs =\n prepared === undefined ? inputSchema.parse(args) : (prepared.input as z.output<InputSchema>);\n const executionContext = prepared === undefined ? context : withoutPreparedToolInput(context);\n const result = await execute(parsedArgs, executionContext);\n return (outputSchema === undefined ? result : outputSchema.parse(result)) as CreateToolOutput<\n OutputSchema,\n Output\n >;\n };\n const parseInput = (args: unknown): z.output<InputSchema> => inputSchema.parse(args);\n\n const tool: Tool<z.output<InputSchema>, CreateToolOutput<OutputSchema, Output>> = {\n name,\n definition,\n call,\n parseInput,\n };\n if (requiresApproval !== undefined) {\n Object.defineProperty(tool, \"requiresApproval\", {\n configurable: false,\n enumerable: true,\n value: requiresApproval,\n writable: false,\n });\n }\n return attachPreparedToolOwner(tool, preparedInputOwner);\n}\n\nfunction snapshotApprovalRequirement<Args>(\n requirement: ToolRequiresApproval<Args> | undefined,\n): ToolRequiresApproval<Args> | undefined {\n return typeof requirement === \"object\" && requirement !== null\n ? Object.freeze({ ...requirement })\n : requirement;\n}\n"],"mappings":";;;;;;;;;;;;;AAyCO,SAAS,WAKd,SACqE;AACrE,QAAM,EAAE,MAAM,aAAa,aAAa,cAAc,QAAQ,IAAI;AAClE,QAAM,mBAAmB,4BAA4B,QAAQ,gBAAgB;AAC7E,MAAI,qBAAqB,QAAW;AAClC,kCAA8B,kBAAkB,EAAE,eAAe,KAAK,CAAC;AAAA,EACzE;AACA,QAAM,aAAa,qBAAqB,WAAW;AACnD,QAAM,qBAAqB,CAAC;AAC5B,QAAM,aAAa,OAAO;AAAA,IACxB;AAAA,IACA;AAAA,IACA,YAAY,WAAW,gBAAgB,UAAU;AAAA,EACnD;AACA,QAAM,OAAO,OACX,MACA,UAA2B,CAAC,MACwB;AACpD,UAAM,WAAW,kBAAkB,SAAS,kBAAkB;AAC9D,UAAM,aACJ,aAAa,SAAY,YAAY,MAAM,IAAI,IAAK,SAAS;AAC/D,UAAM,mBAAmB,aAAa,SAAY,UAAU,yBAAyB,OAAO;AAC5F,UAAM,SAAS,MAAM,QAAQ,YAAY,gBAAgB;AACzD,WAAQ,iBAAiB,SAAY,SAAS,aAAa,MAAM,MAAM;AAAA,EAIzE;AACA,QAAM,aAAa,CAAC,SAAyC,YAAY,MAAM,IAAI;AAEnF,QAAM,OAA4E;AAAA,IAChF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,MAAI,qBAAqB,QAAW;AAClC,WAAO,eAAe,MAAM,oBAAoB;AAAA,MAC9C,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAO,wBAAwB,MAAM,kBAAkB;AACzD;AAEA,SAAS,4BACP,aACwC;AACxC,SAAO,OAAO,gBAAgB,YAAY,gBAAgB,OACtD,OAAO,OAAO,EAAE,GAAG,YAAY,CAAC,IAChC;AACN;","names":[]}
@@ -0,0 +1,43 @@
1
+ // src/internal/agent-runtime/stream-events.ts
2
+ function addTurn(turn, event) {
3
+ if (event.type === "text_delta") {
4
+ return { type: "text_delta", turn, delta: event.delta };
5
+ }
6
+ if (event.type === "reasoning_delta") {
7
+ const mapped = { type: "reasoning_delta", turn, delta: event.delta };
8
+ if (event.id !== void 0) mapped.id = event.id;
9
+ if (event.contentType !== void 0) mapped.contentType = event.contentType;
10
+ if (event.signature !== void 0) mapped.signature = event.signature;
11
+ return mapped;
12
+ }
13
+ if (event.type === "source") {
14
+ return { type: "source", turn, source: event.source };
15
+ }
16
+ if (event.type === "provider_tool_call") {
17
+ return { type: "provider_tool_call", turn, toolCall: event.toolCall };
18
+ }
19
+ return { type: "tool_call", turn, toolCall: event.toolCall };
20
+ }
21
+ function addTurnToToolCallDelta(turn, event) {
22
+ const mapped = {
23
+ type: "tool_call_delta",
24
+ turn,
25
+ id: event.id
26
+ };
27
+ if (event.callId !== void 0) mapped.callId = event.callId;
28
+ if (event.name !== void 0) mapped.name = event.name;
29
+ if (event.argumentsDelta !== void 0) mapped.argumentsDelta = event.argumentsDelta;
30
+ if (event.argumentsMode !== void 0) mapped.argumentsMode = event.argumentsMode;
31
+ if (event.signature !== void 0) mapped.signature = event.signature;
32
+ return mapped;
33
+ }
34
+ function isGenerationDeltaEvent(type) {
35
+ return type === "text_delta" || type === "reasoning_delta" || type === "tool_call_delta" || type === "tool_call" || type === "source" || type === "provider_tool_call";
36
+ }
37
+
38
+ export {
39
+ addTurn,
40
+ addTurnToToolCallDelta,
41
+ isGenerationDeltaEvent
42
+ };
43
+ //# sourceMappingURL=chunk-YWRXOPHC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/agent-runtime/stream-events.ts"],"sourcesContent":["import type {\n AgentDeltaEvent,\n AgentStreamEvent,\n AgentToolCallDeltaEvent,\n} from \"../../agent/run-types\";\nimport type { CompletionModelStreamEvent } from \"../../completion/types\";\n\nexport function addTurn(turn: number, event: AgentDeltaEvent): AgentStreamEvent {\n if (event.type === \"text_delta\") {\n return { type: \"text_delta\", turn, delta: event.delta };\n }\n if (event.type === \"reasoning_delta\") {\n const mapped: AgentStreamEvent = { type: \"reasoning_delta\", turn, delta: event.delta };\n if (event.id !== undefined) mapped.id = event.id;\n if (event.contentType !== undefined) mapped.contentType = event.contentType;\n if (event.signature !== undefined) mapped.signature = event.signature;\n return mapped;\n }\n if (event.type === \"source\") {\n return { type: \"source\", turn, source: event.source };\n }\n if (event.type === \"provider_tool_call\") {\n return { type: \"provider_tool_call\", turn, toolCall: event.toolCall };\n }\n return { type: \"tool_call\", turn, toolCall: event.toolCall };\n}\n\nexport function addTurnToToolCallDelta(\n turn: number,\n event: Extract<CompletionModelStreamEvent, { type: \"tool_call_delta\" }>,\n): AgentToolCallDeltaEvent {\n const mapped: AgentToolCallDeltaEvent = {\n type: \"tool_call_delta\",\n turn,\n id: event.id,\n };\n if (event.callId !== undefined) mapped.callId = event.callId;\n if (event.name !== undefined) mapped.name = event.name;\n if (event.argumentsDelta !== undefined) mapped.argumentsDelta = event.argumentsDelta;\n if (event.argumentsMode !== undefined) mapped.argumentsMode = event.argumentsMode;\n if (event.signature !== undefined) mapped.signature = event.signature;\n return mapped;\n}\n\nexport function isGenerationDeltaEvent(type: string): boolean {\n return (\n type === \"text_delta\" ||\n type === \"reasoning_delta\" ||\n type === \"tool_call_delta\" ||\n type === \"tool_call\" ||\n type === \"source\" ||\n type === \"provider_tool_call\"\n );\n}\n"],"mappings":";AAOO,SAAS,QAAQ,MAAc,OAA0C;AAC9E,MAAI,MAAM,SAAS,cAAc;AAC/B,WAAO,EAAE,MAAM,cAAc,MAAM,OAAO,MAAM,MAAM;AAAA,EACxD;AACA,MAAI,MAAM,SAAS,mBAAmB;AACpC,UAAM,SAA2B,EAAE,MAAM,mBAAmB,MAAM,OAAO,MAAM,MAAM;AACrF,QAAI,MAAM,OAAO,OAAW,QAAO,KAAK,MAAM;AAC9C,QAAI,MAAM,gBAAgB,OAAW,QAAO,cAAc,MAAM;AAChE,QAAI,MAAM,cAAc,OAAW,QAAO,YAAY,MAAM;AAC5D,WAAO;AAAA,EACT;AACA,MAAI,MAAM,SAAS,UAAU;AAC3B,WAAO,EAAE,MAAM,UAAU,MAAM,QAAQ,MAAM,OAAO;AAAA,EACtD;AACA,MAAI,MAAM,SAAS,sBAAsB;AACvC,WAAO,EAAE,MAAM,sBAAsB,MAAM,UAAU,MAAM,SAAS;AAAA,EACtE;AACA,SAAO,EAAE,MAAM,aAAa,MAAM,UAAU,MAAM,SAAS;AAC7D;AAEO,SAAS,uBACd,MACA,OACyB;AACzB,QAAM,SAAkC;AAAA,IACtC,MAAM;AAAA,IACN;AAAA,IACA,IAAI,MAAM;AAAA,EACZ;AACA,MAAI,MAAM,WAAW,OAAW,QAAO,SAAS,MAAM;AACtD,MAAI,MAAM,SAAS,OAAW,QAAO,OAAO,MAAM;AAClD,MAAI,MAAM,mBAAmB,OAAW,QAAO,iBAAiB,MAAM;AACtE,MAAI,MAAM,kBAAkB,OAAW,QAAO,gBAAgB,MAAM;AACpE,MAAI,MAAM,cAAc,OAAW,QAAO,YAAY,MAAM;AAC5D,SAAO;AACT;AAEO,SAAS,uBAAuB,MAAuB;AAC5D,SACE,SAAS,gBACT,SAAS,qBACT,SAAS,qBACT,SAAS,eACT,SAAS,YACT,SAAS;AAEb;","names":[]}
@@ -0,0 +1,27 @@
1
+ // src/internal/agent-runtime/approval-requirement.ts
2
+ function toolMayRequireApproval(requirement) {
3
+ return requirement !== void 0 && requirement !== false;
4
+ }
5
+ function assertToolApprovalRequirement(requirement, options) {
6
+ if (typeof requirement === "boolean") {
7
+ return;
8
+ }
9
+ if (options.allowFunction && typeof requirement === "function") {
10
+ return;
11
+ }
12
+ if (typeof requirement !== "object" || requirement === null || Array.isArray(requirement)) {
13
+ throw new TypeError(
14
+ 'Tool "requiresApproval" must be a boolean, a function, or an object with an optional string reason.'
15
+ );
16
+ }
17
+ const reason = requirement.reason;
18
+ if (reason !== void 0 && typeof reason !== "string") {
19
+ throw new TypeError('Tool "requiresApproval.reason" must be a string.');
20
+ }
21
+ }
22
+
23
+ export {
24
+ toolMayRequireApproval,
25
+ assertToolApprovalRequirement
26
+ };
27
+ //# sourceMappingURL=chunk-YZVFIW5D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/agent-runtime/approval-requirement.ts"],"sourcesContent":["import type { ToolApprovalRequirement } from \"../../tool/tool\";\n\nexport function toolMayRequireApproval(requirement: unknown): boolean {\n return requirement !== undefined && requirement !== false;\n}\n\nexport function assertToolApprovalRequirement(\n requirement: unknown,\n options: { allowFunction: boolean },\n): asserts requirement is boolean | ToolApprovalRequirement | ((...args: never[]) => unknown) {\n if (typeof requirement === \"boolean\") {\n return;\n }\n if (options.allowFunction && typeof requirement === \"function\") {\n return;\n }\n if (typeof requirement !== \"object\" || requirement === null || Array.isArray(requirement)) {\n throw new TypeError(\n 'Tool \"requiresApproval\" must be a boolean, a function, or an object with an optional string reason.',\n );\n }\n const reason = (requirement as { reason?: unknown }).reason;\n if (reason !== undefined && typeof reason !== \"string\") {\n throw new TypeError('Tool \"requiresApproval.reason\" must be a string.');\n }\n}\n"],"mappings":";AAEO,SAAS,uBAAuB,aAA+B;AACpE,SAAO,gBAAgB,UAAa,gBAAgB;AACtD;AAEO,SAAS,8BACd,aACA,SAC4F;AAC5F,MAAI,OAAO,gBAAgB,WAAW;AACpC;AAAA,EACF;AACA,MAAI,QAAQ,iBAAiB,OAAO,gBAAgB,YAAY;AAC9D;AAAA,EACF;AACA,MAAI,OAAO,gBAAgB,YAAY,gBAAgB,QAAQ,MAAM,QAAQ,WAAW,GAAG;AACzF,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,SAAU,YAAqC;AACrD,MAAI,WAAW,UAAa,OAAO,WAAW,UAAU;AACtD,UAAM,IAAI,UAAU,kDAAkD;AAAA,EACxE;AACF;","names":[]}
@@ -0,0 +1,33 @@
1
+ import {
2
+ assertFiniteMinScore,
3
+ assertPositiveSearchLimit
4
+ } from "./chunk-5V533R7F.js";
5
+
6
+ // src/agent/vector-context.ts
7
+ function createVectorContext(options) {
8
+ const topK = assertPositiveSearchLimit(options.topK);
9
+ const minScore = assertFiniteMinScore(options.minScore);
10
+ let context = {
11
+ ...options,
12
+ topK,
13
+ kind: "vector-context"
14
+ };
15
+ if (minScore !== void 0) {
16
+ context = { ...context, minScore };
17
+ }
18
+ return Object.freeze(context);
19
+ }
20
+ function isVectorContext(value) {
21
+ if (typeof value !== "object" || value === null) return false;
22
+ const candidate = value;
23
+ if (candidate.kind !== "vector-context" || typeof candidate.store?.search !== "function") {
24
+ return false;
25
+ }
26
+ return candidate.model !== void 0 || candidate.models?.dense !== void 0 && candidate.models.sparse !== void 0;
27
+ }
28
+
29
+ export {
30
+ createVectorContext,
31
+ isVectorContext
32
+ };
33
+ //# sourceMappingURL=chunk-ZHC5CD6J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/agent/vector-context.ts"],"sourcesContent":["import type { Document } from \"../completion\";\nimport type { EmbeddingModel, SparseEmbeddingModel } from \"../embeddings\";\nimport { assertFiniteMinScore, assertPositiveSearchLimit } from \"../internal/vector-search-options\";\nimport type { RetrySetting } from \"../retry\";\nimport type {\n HybridVectorStore,\n VectorFilter,\n VectorFusion,\n VectorSearchResult,\n VectorStore,\n} from \"../vector-store\";\n\nexport type VectorContextBaseOptions<T = unknown> = {\n topK: number;\n minScore?: number | undefined;\n filter?: VectorFilter | undefined;\n retries?: RetrySetting | undefined;\n format?(result: VectorSearchResult<T>): Document;\n};\n\nexport type CreateVectorContextOptions<T = unknown> = VectorContextBaseOptions<T> & {\n store: VectorStore<T>;\n model: EmbeddingModel;\n models?: never;\n};\n\nexport type CreateHybridVectorContextOptions<T = unknown> = VectorContextBaseOptions<T> & {\n store: HybridVectorStore<T>;\n model?: never;\n models: { dense: EmbeddingModel; sparse: SparseEmbeddingModel };\n fusion?: VectorFusion | undefined;\n};\n\nexport type VectorContext<T = unknown> = (\n | CreateVectorContextOptions<T>\n | CreateHybridVectorContextOptions<T>\n) & {\n readonly kind: \"vector-context\";\n};\n\nexport function createVectorContext<T>(options: CreateVectorContextOptions<T>): VectorContext<T>;\nexport function createVectorContext<T>(\n options: CreateHybridVectorContextOptions<T>,\n): VectorContext<T>;\nexport function createVectorContext<T>(\n options: CreateVectorContextOptions<T> | CreateHybridVectorContextOptions<T>,\n): VectorContext<T> {\n const topK = assertPositiveSearchLimit(options.topK);\n const minScore = assertFiniteMinScore(options.minScore);\n let context: VectorContext<T> = {\n ...options,\n topK,\n kind: \"vector-context\" as const,\n };\n if (minScore !== undefined) {\n context = { ...context, minScore };\n }\n return Object.freeze(context);\n}\n\nexport function isVectorContext(value: unknown): value is VectorContext {\n if (typeof value !== \"object\" || value === null) return false;\n const candidate = value as {\n kind?: unknown;\n store?: { search?: unknown };\n model?: unknown;\n models?: { dense?: unknown; sparse?: unknown };\n };\n if (candidate.kind !== \"vector-context\" || typeof candidate.store?.search !== \"function\") {\n return false;\n }\n return (\n candidate.model !== undefined ||\n (candidate.models?.dense !== undefined && candidate.models.sparse !== undefined)\n );\n}\n"],"mappings":";;;;;;AA4CO,SAAS,oBACd,SACkB;AAClB,QAAM,OAAO,0BAA0B,QAAQ,IAAI;AACnD,QAAM,WAAW,qBAAqB,QAAQ,QAAQ;AACtD,MAAI,UAA4B;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,IACA,MAAM;AAAA,EACR;AACA,MAAI,aAAa,QAAW;AAC1B,cAAU,EAAE,GAAG,SAAS,SAAS;AAAA,EACnC;AACA,SAAO,OAAO,OAAO,OAAO;AAC9B;AAEO,SAAS,gBAAgB,OAAwC;AACtE,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,QAAM,YAAY;AAMlB,MAAI,UAAU,SAAS,oBAAoB,OAAO,UAAU,OAAO,WAAW,YAAY;AACxF,WAAO;AAAA,EACT;AACA,SACE,UAAU,UAAU,UACnB,UAAU,QAAQ,UAAU,UAAa,UAAU,OAAO,WAAW;AAE1E;","names":[]}
@@ -0,0 +1,23 @@
1
+ // src/memory/assert.ts
2
+ function assertPositiveInteger(value, name) {
3
+ if (!Number.isSafeInteger(value) || value < 1) {
4
+ throw new RangeError(`${name} must be a positive integer.`);
5
+ }
6
+ }
7
+ function assertNonnegativeInteger(value, name) {
8
+ if (!Number.isSafeInteger(value) || value < 0) {
9
+ throw new RangeError(`${name} must be a nonnegative integer.`);
10
+ }
11
+ }
12
+ function assertFiniteNumber(value, name) {
13
+ if (!Number.isFinite(value)) {
14
+ throw new RangeError(`${name} must be finite.`);
15
+ }
16
+ }
17
+
18
+ export {
19
+ assertPositiveInteger,
20
+ assertNonnegativeInteger,
21
+ assertFiniteNumber
22
+ };
23
+ //# sourceMappingURL=chunk-ZPJFXRQZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/memory/assert.ts"],"sourcesContent":["export function assertPositiveInteger(value: number, name: string): void {\n if (!Number.isSafeInteger(value) || value < 1) {\n throw new RangeError(`${name} must be a positive integer.`);\n }\n}\n\nexport function assertNonnegativeInteger(value: number, name: string): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new RangeError(`${name} must be a nonnegative integer.`);\n }\n}\n\nexport function assertFiniteNumber(value: number, name: string): void {\n if (!Number.isFinite(value)) {\n throw new RangeError(`${name} must be finite.`);\n }\n}\n"],"mappings":";AAAO,SAAS,sBAAsB,OAAe,MAAoB;AACvE,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,UAAM,IAAI,WAAW,GAAG,IAAI,8BAA8B;AAAA,EAC5D;AACF;AAEO,SAAS,yBAAyB,OAAe,MAAoB;AAC1E,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,UAAM,IAAI,WAAW,GAAG,IAAI,iCAAiC;AAAA,EAC/D;AACF;AAEO,SAAS,mBAAmB,OAAe,MAAoB;AACpE,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,UAAM,IAAI,WAAW,GAAG,IAAI,kBAAkB;AAAA,EAChD;AACF;","names":[]}
@@ -0,0 +1,57 @@
1
+ import {
2
+ defaultOutputValue,
3
+ formatValue
4
+ } from "./chunk-ZYXMWEL4.js";
5
+
6
+ // src/evals/selectors.ts
7
+ function selectPromptOutput(args) {
8
+ if (typeof args.output !== "object" || args.output === null || !("output" in args.output) || typeof args.output.output !== "string") {
9
+ throw new TypeError("selectPromptOutput requires an output object with a string output field.");
10
+ }
11
+ return args.output.output;
12
+ }
13
+ function selectEvalCaseIds(result, outcomes = ["fail", "invalid"]) {
14
+ const selected = new Set(outcomes);
15
+ return result.results.filter((caseResult) => selected.has(caseResult.outcome)).map((caseResult) => caseResult.case.id);
16
+ }
17
+ async function resolveActual(selector, args) {
18
+ return selector === void 0 ? defaultOutputValue(args.output) : selector(args);
19
+ }
20
+ async function resolveActualText(selector, args) {
21
+ const value = selector === void 0 ? defaultOutputValue(args.output) : await selector(args);
22
+ if (typeof value === "string") return value;
23
+ try {
24
+ const serialized = JSON.stringify(value);
25
+ if (serialized !== void 0) return serialized;
26
+ } catch {
27
+ }
28
+ throw new TypeError("Text metric actual value must be a string or JSON-serializable value.");
29
+ }
30
+ async function resolveExpected(selectorOrValue, args) {
31
+ if (selectorOrValue === void 0) {
32
+ return args.case.expected;
33
+ }
34
+ return typeof selectorOrValue === "function" ? selectorOrValue(args) : selectorOrValue;
35
+ }
36
+ async function resolveJudgePrompt(selector, args) {
37
+ if (selector !== void 0) {
38
+ return selector(args);
39
+ }
40
+ return [
41
+ `Suite: ${args.suiteName}`,
42
+ `Case: ${args.case.id}`,
43
+ `Input: ${formatValue(args.case.input)}`,
44
+ `Expected: ${formatValue(args.case.expected)}`,
45
+ `Output: ${formatValue(defaultOutputValue(args.output))}`
46
+ ].join("\n\n");
47
+ }
48
+
49
+ export {
50
+ selectPromptOutput,
51
+ selectEvalCaseIds,
52
+ resolveActual,
53
+ resolveActualText,
54
+ resolveExpected,
55
+ resolveJudgePrompt
56
+ };
57
+ //# sourceMappingURL=chunk-ZPXOBQDS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/evals/selectors.ts"],"sourcesContent":["import { defaultOutputValue, formatValue } from \"./format\";\nimport type {\n EvalMetricArgs,\n EvalOutcomeStatus,\n EvalSuiteResult,\n SelectorOrValue,\n ValueSelector,\n} from \"./types\";\n\nexport function selectPromptOutput(args: EvalMetricArgs<unknown, unknown, unknown>): string {\n if (\n typeof args.output !== \"object\" ||\n args.output === null ||\n !(\"output\" in args.output) ||\n typeof args.output.output !== \"string\"\n ) {\n throw new TypeError(\"selectPromptOutput requires an output object with a string output field.\");\n }\n return args.output.output;\n}\n\nexport function selectEvalCaseIds(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n outcomes: readonly EvalOutcomeStatus[] = [\"fail\", \"invalid\"],\n): string[] {\n const selected = new Set(outcomes);\n return result.results\n .filter((caseResult) => selected.has(caseResult.outcome))\n .map((caseResult) => caseResult.case.id);\n}\n\nexport async function resolveActual<Input, Output, Expected>(\n selector: ValueSelector<Input, Output, Expected, unknown> | undefined,\n args: EvalMetricArgs<Input, Output, Expected>,\n): Promise<unknown> {\n return selector === undefined ? defaultOutputValue(args.output) : selector(args);\n}\n\nexport async function resolveActualText<Input, Output, Expected>(\n selector: ValueSelector<Input, Output, Expected, string> | undefined,\n args: EvalMetricArgs<Input, Output, Expected>,\n): Promise<string> {\n const value = selector === undefined ? defaultOutputValue(args.output) : await selector(args);\n if (typeof value === \"string\") return value;\n try {\n const serialized = JSON.stringify(value);\n if (serialized !== undefined) return serialized;\n } catch {\n // The caller receives one consistent boundary error below.\n }\n throw new TypeError(\"Text metric actual value must be a string or JSON-serializable value.\");\n}\n\nexport async function resolveExpected<Input, Output, Expected, Value>(\n selectorOrValue: SelectorOrValue<Input, Output, Expected, Value> | undefined,\n args: EvalMetricArgs<Input, Output, Expected>,\n): Promise<Value | Expected | undefined> {\n if (selectorOrValue === undefined) {\n return args.case.expected;\n }\n return typeof selectorOrValue === \"function\"\n ? (selectorOrValue as ValueSelector<Input, Output, Expected, Value>)(args)\n : selectorOrValue;\n}\n\nexport async function resolveJudgePrompt<Input, Output, Expected>(\n selector: ValueSelector<Input, Output, Expected, string> | undefined,\n args: EvalMetricArgs<Input, Output, Expected>,\n): Promise<string> {\n if (selector !== undefined) {\n return selector(args);\n }\n return [\n `Suite: ${args.suiteName}`,\n `Case: ${args.case.id}`,\n `Input: ${formatValue(args.case.input)}`,\n `Expected: ${formatValue(args.case.expected)}`,\n `Output: ${formatValue(defaultOutputValue(args.output))}`,\n ].join(\"\\n\\n\");\n}\n"],"mappings":";;;;;;AASO,SAAS,mBAAmB,MAAyD;AAC1F,MACE,OAAO,KAAK,WAAW,YACvB,KAAK,WAAW,QAChB,EAAE,YAAY,KAAK,WACnB,OAAO,KAAK,OAAO,WAAW,UAC9B;AACA,UAAM,IAAI,UAAU,0EAA0E;AAAA,EAChG;AACA,SAAO,KAAK,OAAO;AACrB;AAEO,SAAS,kBACd,QACA,WAAyC,CAAC,QAAQ,SAAS,GACjD;AACV,QAAM,WAAW,IAAI,IAAI,QAAQ;AACjC,SAAO,OAAO,QACX,OAAO,CAAC,eAAe,SAAS,IAAI,WAAW,OAAO,CAAC,EACvD,IAAI,CAAC,eAAe,WAAW,KAAK,EAAE;AAC3C;AAEA,eAAsB,cACpB,UACA,MACkB;AAClB,SAAO,aAAa,SAAY,mBAAmB,KAAK,MAAM,IAAI,SAAS,IAAI;AACjF;AAEA,eAAsB,kBACpB,UACA,MACiB;AACjB,QAAM,QAAQ,aAAa,SAAY,mBAAmB,KAAK,MAAM,IAAI,MAAM,SAAS,IAAI;AAC5F,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI;AACF,UAAM,aAAa,KAAK,UAAU,KAAK;AACvC,QAAI,eAAe,OAAW,QAAO;AAAA,EACvC,QAAQ;AAAA,EAER;AACA,QAAM,IAAI,UAAU,uEAAuE;AAC7F;AAEA,eAAsB,gBACpB,iBACA,MACuC;AACvC,MAAI,oBAAoB,QAAW;AACjC,WAAO,KAAK,KAAK;AAAA,EACnB;AACA,SAAO,OAAO,oBAAoB,aAC7B,gBAAkE,IAAI,IACvE;AACN;AAEA,eAAsB,mBACpB,UACA,MACiB;AACjB,MAAI,aAAa,QAAW;AAC1B,WAAO,SAAS,IAAI;AAAA,EACtB;AACA,SAAO;AAAA,IACL,UAAU,KAAK,SAAS;AAAA,IACxB,SAAS,KAAK,KAAK,EAAE;AAAA,IACrB,UAAU,YAAY,KAAK,KAAK,KAAK,CAAC;AAAA,IACtC,aAAa,YAAY,KAAK,KAAK,QAAQ,CAAC;AAAA,IAC5C,WAAW,YAAY,mBAAmB,KAAK,MAAM,CAAC,CAAC;AAAA,EACzD,EAAE,KAAK,MAAM;AACf;","names":[]}