@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 @@
1
+ {"version":3,"sources":["../src/evals/cli.ts"],"sourcesContent":["import { runEvalSuite } from \"./runner\";\nimport type {\n EvalMetric,\n EvalOutcomeStatus,\n EvalSuiteResult,\n EvalTotals,\n RunEvalSuiteOptions,\n} from \"./types\";\n\nexport type EvalOutputFormat = \"pretty\" | \"json\" | \"quiet\";\n\nexport type EvalExpectedTotals = Partial<EvalTotals> & {\n metrics?: Partial<EvalTotals> | undefined;\n cases?: Partial<EvalTotals> | undefined;\n};\n\nexport type EvalExpectedOutcomes = Record<string, Record<string, EvalOutcomeStatus>>;\n\nexport type EvalExpectations = {\n totals?: EvalExpectedTotals | undefined;\n outcomes?: EvalExpectedOutcomes | undefined;\n};\n\nexport type EvalOutputWriters = {\n stdout?(text: string): void;\n stderr?(text: string): void;\n};\n\nexport type EvalRedactionContext = {\n kind:\n | \"input\"\n | \"expected\"\n | \"context\"\n | \"retrievalContext\"\n | \"output\"\n | \"score\"\n | \"comment\"\n | \"metadata\"\n | \"error\";\n caseId?: string | undefined;\n metricName?: string | undefined;\n};\n\nexport type EvalRedactor = (value: unknown, context: EvalRedactionContext) => unknown;\n\nexport type PrintEvalResultOptions = {\n format?: EvalOutputFormat | undefined;\n output?: EvalOutputWriters | undefined;\n maxValueLength?: number | undefined;\n redact?: EvalRedactor | undefined;\n};\n\ntype EvalSuiteShape = {\n cases: readonly { id: string }[];\n metrics: readonly { name: string }[];\n};\n\nexport type EvalExpectedOutcomesFor<Suite extends EvalSuiteShape> = Partial<\n Record<\n Suite[\"cases\"][number][\"id\"],\n Partial<Record<Suite[\"metrics\"][number][\"name\"], EvalOutcomeStatus>>\n >\n>;\n\nexport type EvalExpectationsFor<Suite extends EvalSuiteShape> = Omit<\n EvalExpectations,\n \"outcomes\"\n> & {\n outcomes?: EvalExpectedOutcomesFor<Suite> | undefined;\n};\n\nexport type RunEvalCliOptions<\n Input,\n Output,\n Expected = unknown,\n Metrics extends readonly EvalMetric<\n NoInfer<Input>,\n NoInfer<Output>,\n unknown,\n NoInfer<Expected>,\n string\n >[] = readonly EvalMetric<NoInfer<Input>, NoInfer<Output>, unknown, NoInfer<Expected>, string>[],\n> = RunEvalSuiteOptions<Input, Output, Expected, Metrics> & {\n format?: EvalOutputFormat | undefined;\n exitCode?: boolean | undefined;\n expectations?: EvalExpectations | undefined;\n output?: EvalOutputWriters | undefined;\n maxValueLength?: number | undefined;\n redact?: EvalRedactor | undefined;\n};\n\nexport class EvalAssertionError extends Error {\n readonly mismatches: string[];\n\n constructor(message: string, mismatches: string[]) {\n super(`${message}\\n${mismatches.map((mismatch) => `- ${mismatch}`).join(\"\\n\")}`);\n this.name = \"EvalAssertionError\";\n this.mismatches = mismatches;\n }\n}\n\nexport function defineEvalExpectations<const Suite extends EvalSuiteShape>(\n _suite: Suite,\n expectations: EvalExpectationsFor<NoInfer<Suite>>,\n): EvalExpectationsFor<Suite> {\n return expectations;\n}\n\nexport function formatEvalResult(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n options: Omit<PrintEvalResultOptions, \"output\"> = {},\n): string {\n const format = options.format ?? \"pretty\";\n if (format === \"quiet\") return \"\";\n validatePrintOptions(options);\n return format === \"json\" ? jsonResult(result, options) : prettyResult(result, options);\n}\n\nexport function printEvalResult(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n options: PrintEvalResultOptions = {},\n): void {\n const format = options.format ?? \"pretty\";\n if (format === \"quiet\") return;\n const write = options.output?.stdout ?? ((text: string) => process.stdout.write(text));\n write(`${formatEvalResult(result, options)}\\n`);\n}\n\nexport function evalExitCode(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expectations?: EvalExpectations,\n): 0 | 1 | 2 {\n const hasExpectations =\n expectations?.totals !== undefined || expectations?.outcomes !== undefined;\n const mismatches = hasExpectations ? expectationMismatches(result, expectations) : [];\n if (hasExpectations && mismatches.length === 0) return 0;\n if (hasExpectations && hasUnexpectedInvalid(result, expectations)) return 2;\n if (hasExpectations) return 1;\n if (requiredMetricCount(result, \"invalid\") > 0) return 2;\n return requiredMetricCount(result, \"fail\") > 0 ? 1 : 0;\n}\n\nexport function assertEvalTotals(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expected: EvalExpectedTotals,\n): void {\n const mismatches = totalMismatches(result, expected);\n if (mismatches.length > 0) {\n throw new EvalAssertionError(\"Evaluation totals did not match expectations.\", mismatches);\n }\n}\n\nexport function assertEvalOutcomes(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expected: EvalExpectedOutcomes,\n): void {\n const mismatches = outcomeMismatches(result, expected);\n if (mismatches.length > 0) {\n throw new EvalAssertionError(\"Evaluation outcomes did not match expectations.\", mismatches);\n }\n}\n\nexport async function runEvalCli<\n Input,\n Output,\n Expected = unknown,\n const Metrics extends readonly EvalMetric<\n NoInfer<Input>,\n NoInfer<Output>,\n unknown,\n NoInfer<Expected>,\n string\n >[] = readonly EvalMetric<NoInfer<Input>, NoInfer<Output>, unknown, NoInfer<Expected>, string>[],\n>(\n options: RunEvalCliOptions<Input, Output, Expected, Metrics>,\n): Promise<EvalSuiteResult<Input, Output, Expected, Metrics>> {\n const { format, exitCode, expectations, output, maxValueLength, redact, ...suiteOptions } =\n options;\n const result = await runEvalSuite(\n suiteOptions as RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n );\n printEvalResult(result, { format, output, maxValueLength, redact });\n const code = evalExitCode(result, expectations);\n const mismatches = expectationMismatches(result, expectations);\n if (mismatches.length > 0 && format !== \"quiet\") {\n const write = output?.stderr ?? ((text: string) => process.stderr.write(text));\n write(\n `Evaluation expectation mismatches:\\n${mismatches.map((value) => `- ${value}`).join(\"\\n\")}\\n`,\n );\n }\n const currentExitCode =\n typeof process.exitCode === \"number\" ? process.exitCode : Number(process.exitCode ?? 0);\n if (exitCode === true && code > currentExitCode) process.exitCode = code;\n return result;\n}\n\nfunction prettyResult(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n options: Omit<PrintEvalResultOptions, \"output\">,\n): string {\n const lines = [\n `${result.name} (${result.run.id})`,\n `Cases: ${totalsText(result.cases)}`,\n `Metrics: ${totalsText(result.metrics)}`,\n ];\n for (const caseResult of result.results) {\n lines.push(``, `[${caseResult.outcome.toUpperCase()}] ${caseResult.case.id}`);\n if (caseResult.targetStatus === \"succeeded\") {\n lines.push(\n ` output: ${displayValue(\n redact(caseResult.output, options, { kind: \"output\", caseId: caseResult.case.id }),\n options.maxValueLength,\n )}`,\n );\n }\n if (caseResult.targetStatus === \"failed\") {\n lines.push(\n ` target error: ${errorText(\n redact(caseResult.targetError, options, { kind: \"error\", caseId: caseResult.case.id }),\n options.maxValueLength,\n )}`,\n );\n }\n for (const metric of caseResult.metrics) {\n const parts = [` - ${metric.metricName}: ${metric.outcome.outcome}`];\n if (metric.outcome.score !== undefined) {\n parts.push(\n `score=${displayValue(\n redact(metric.outcome.score, options, {\n kind: \"score\",\n caseId: caseResult.case.id,\n metricName: metric.metricName,\n }),\n options.maxValueLength,\n )}`,\n );\n }\n if (metric.threshold !== undefined) parts.push(`threshold=${metric.threshold}`);\n if (metric.direction !== undefined) parts.push(`direction=${metric.direction}`);\n if (!metric.required) parts.push(\"optional\");\n lines.push(parts.join(\" | \"));\n const explanation =\n metric.outcome.comment ??\n (metric.outcome.outcome === \"invalid\" ? metric.outcome.reason : undefined);\n if (explanation !== undefined) {\n lines.push(\n ` ${displayValue(\n redact(explanation, options, {\n kind: \"comment\",\n caseId: caseResult.case.id,\n metricName: metric.metricName,\n }),\n options.maxValueLength,\n )}`,\n );\n }\n }\n }\n lines.push(\n ``,\n `Usage: target=${result.usage.target.totalTokens} evaluation=${result.usage.evaluation.totalTokens} total=${result.usage.total.totalTokens} tokens`,\n );\n if (result.cost !== undefined) {\n lines.push(\n `Cost: target=${result.cost.target} evaluation=${result.cost.evaluation} total=${result.cost.total} ${result.cost.currency}`,\n );\n }\n lines.push(`Duration: ${result.durationMs}ms`);\n return lines.join(\"\\n\");\n}\n\nfunction jsonResult(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n options: Omit<PrintEvalResultOptions, \"output\">,\n): string {\n return JSON.stringify(\n redactJsonResult(result, options),\n (_key, value: unknown) => {\n if (value instanceof Error) {\n return { name: value.name, message: value.message, stack: value.stack };\n }\n if (value instanceof RegExp) return String(value);\n if (typeof value === \"string\") return truncate(value, options.maxValueLength);\n return value;\n },\n 2,\n );\n}\n\nfunction expectationMismatches(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expectations?: EvalExpectations,\n): string[] {\n if (expectations === undefined) return [];\n const mismatches: string[] = [];\n if (expectations.totals !== undefined) {\n mismatches.push(...totalMismatches(result, expectations.totals));\n }\n if (expectations.outcomes !== undefined) {\n mismatches.push(...outcomeMismatches(result, expectations.outcomes));\n }\n return mismatches;\n}\n\nfunction totalMismatches(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expected: EvalExpectedTotals,\n): string[] {\n const directMetrics: Partial<EvalTotals> = {};\n if (expected.total !== undefined) directMetrics.total = expected.total;\n if (expected.passed !== undefined) directMetrics.passed = expected.passed;\n if (expected.failed !== undefined) directMetrics.failed = expected.failed;\n if (expected.invalid !== undefined) directMetrics.invalid = expected.invalid;\n return [\n ...totalsGroupMismatches(\"metrics\", result.metrics, {\n ...directMetrics,\n ...expected.metrics,\n }),\n ...totalsGroupMismatches(\"cases\", result.cases, expected.cases),\n ];\n}\n\nfunction totalsGroupMismatches(\n label: string,\n actual: EvalTotals,\n expected: Partial<EvalTotals> | undefined,\n): string[] {\n if (expected === undefined) return [];\n const mismatches: string[] = [];\n for (const key of [\"total\", \"passed\", \"failed\", \"invalid\"] as const) {\n if (expected[key] !== undefined && actual[key] !== expected[key]) {\n mismatches.push(`${label}.${key}: expected ${expected[key]}, received ${actual[key]}`);\n }\n }\n return mismatches;\n}\n\nfunction outcomeMismatches(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expected: EvalExpectedOutcomes,\n): string[] {\n const mismatches: string[] = [];\n const actualCases = new Map(result.results.map((caseResult) => [caseResult.case.id, caseResult]));\n for (const [caseId, metrics] of Object.entries(expected)) {\n const caseResult = actualCases.get(caseId);\n if (caseResult === undefined) {\n mismatches.push(`${caseId}: expected case was not present`);\n continue;\n }\n for (const [metricName, expectedOutcome] of Object.entries(metrics)) {\n const metric = caseResult.metrics.find((candidate) => candidate.metricName === metricName);\n if (metric === undefined) {\n mismatches.push(`${caseId}.${metricName}: expected metric was not present`);\n } else if (metric.outcome.outcome !== expectedOutcome) {\n mismatches.push(\n `${caseId}.${metricName}: expected ${expectedOutcome}, received ${metric.outcome.outcome}`,\n );\n }\n }\n }\n for (const caseResult of result.results) {\n for (const metric of caseResult.metrics) {\n if (!metric.required) continue;\n const expectedOutcome = expected[caseResult.case.id]?.[metric.metricName] ?? \"pass\";\n if (metric.outcome.outcome !== expectedOutcome) {\n const message = `${caseResult.case.id}.${metric.metricName}: expected ${expectedOutcome}, received ${metric.outcome.outcome}`;\n if (!mismatches.includes(message)) mismatches.push(message);\n }\n }\n }\n return mismatches;\n}\n\nfunction hasUnexpectedInvalid(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n expectations: EvalExpectations | undefined,\n): boolean {\n if (expectations?.outcomes !== undefined) {\n return result.results.some((caseResult) =>\n caseResult.metrics.some(\n (metric) =>\n metric.required &&\n metric.outcome.outcome === \"invalid\" &&\n expectations.outcomes?.[caseResult.case.id]?.[metric.metricName] !== \"invalid\",\n ),\n );\n }\n const expectedInvalid = expectations?.totals?.metrics?.invalid ?? expectations?.totals?.invalid;\n return result.metrics.invalid > (expectedInvalid ?? 0);\n}\n\nfunction requiredMetricCount(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n status: \"fail\" | \"invalid\",\n): number {\n return result.results.reduce(\n (total, caseResult) =>\n total +\n caseResult.metrics.filter((metric) => metric.required && metric.outcome.outcome === status)\n .length,\n 0,\n );\n}\n\nfunction totalsText(totals: EvalTotals): string {\n return `${totals.total} total / ${totals.passed} pass / ${totals.failed} fail / ${totals.invalid} invalid`;\n}\n\nfunction displayValue(value: unknown, maxValueLength?: number): string {\n let text: string;\n if (typeof value === \"string\") text = value;\n else {\n try {\n text = JSON.stringify(value) ?? String(value);\n } catch {\n text = String(value);\n }\n }\n return truncate(text, maxValueLength);\n}\n\nfunction errorText(error: unknown, maxValueLength?: number): string {\n return truncate(error instanceof Error ? error.message : displayValue(error), maxValueLength);\n}\n\nfunction truncate(value: string, maxValueLength: number | undefined): string {\n return maxValueLength !== undefined && value.length > maxValueLength\n ? `${value.slice(0, maxValueLength)}…`\n : value;\n}\n\nfunction redact(\n value: unknown,\n options: Omit<PrintEvalResultOptions, \"output\">,\n context: EvalRedactionContext,\n): unknown {\n return options.redact === undefined ? value : options.redact(value, context);\n}\n\nfunction redactJsonResult(\n result: EvalSuiteResult<unknown, unknown, unknown>,\n options: Omit<PrintEvalResultOptions, \"output\">,\n): unknown {\n return {\n ...result,\n run: {\n ...result.run,\n metadata:\n result.run.metadata === undefined\n ? undefined\n : (redact(result.run.metadata, options, {\n kind: \"metadata\",\n }) as typeof result.run.metadata),\n },\n results: result.results.map((caseResult) => ({\n ...caseResult,\n case: {\n ...caseResult.case,\n input: redact(caseResult.case.input, options, {\n kind: \"input\",\n caseId: caseResult.case.id,\n }),\n expected: redact(caseResult.case.expected, options, {\n kind: \"expected\",\n caseId: caseResult.case.id,\n }),\n context: redact(caseResult.case.context, options, {\n kind: \"context\",\n caseId: caseResult.case.id,\n }),\n retrievalContext: redact(caseResult.case.retrievalContext, options, {\n kind: \"retrievalContext\",\n caseId: caseResult.case.id,\n }),\n metadata:\n caseResult.case.metadata === undefined\n ? undefined\n : (redact(caseResult.case.metadata, options, {\n kind: \"metadata\",\n caseId: caseResult.case.id,\n }) as typeof caseResult.case.metadata),\n },\n output:\n caseResult.targetStatus === \"succeeded\"\n ? redact(caseResult.output, options, { kind: \"output\", caseId: caseResult.case.id })\n : undefined,\n targetError:\n caseResult.targetStatus === \"failed\"\n ? redact(caseResult.targetError, options, {\n kind: \"error\",\n caseId: caseResult.case.id,\n })\n : undefined,\n metrics: caseResult.metrics.map((metric) => ({\n ...metric,\n reporterErrors: metric.reporterErrors.map((error) =>\n redact(error, options, {\n kind: \"error\",\n caseId: caseResult.case.id,\n metricName: metric.metricName,\n }),\n ),\n outcome: redactOutcome(metric.outcome, options, caseResult.case.id, metric.metricName),\n })),\n scores: Object.fromEntries(\n caseResult.metrics.map((metric) => [\n metric.metricName,\n redactOutcome(metric.outcome, options, caseResult.case.id, metric.metricName),\n ]),\n ),\n })),\n reporterErrors: result.reporterErrors.map((error) => redact(error, options, { kind: \"error\" })),\n };\n}\n\nfunction redactOutcome(\n outcome: EvalSuiteResult<\n unknown,\n unknown,\n unknown\n >[\"results\"][number][\"metrics\"][number][\"outcome\"],\n options: Omit<PrintEvalResultOptions, \"output\">,\n caseId: string,\n metricName: string,\n): unknown {\n return {\n ...outcome,\n ...(outcome.score === undefined\n ? {}\n : { score: redact(outcome.score, options, { kind: \"score\", caseId, metricName }) }),\n ...(outcome.comment === undefined\n ? {}\n : { comment: redact(outcome.comment, options, { kind: \"comment\", caseId, metricName }) }),\n ...(!(\"reason\" in outcome) || outcome.reason === undefined\n ? {}\n : { reason: redact(outcome.reason, options, { kind: \"comment\", caseId, metricName }) }),\n ...(outcome.metadata === undefined\n ? {}\n : {\n metadata: redact(outcome.metadata, options, {\n kind: \"metadata\",\n caseId,\n metricName,\n }),\n }),\n ...(!(\"error\" in outcome) || outcome.error === undefined\n ? {}\n : { error: redact(outcome.error, options, { kind: \"error\", caseId, metricName }) }),\n };\n}\n\nfunction validatePrintOptions(options: Omit<PrintEvalResultOptions, \"output\">): void {\n if (\n options.maxValueLength !== undefined &&\n (!Number.isSafeInteger(options.maxValueLength) || options.maxValueLength < 1)\n ) {\n throw new RangeError(\"Evaluation maxValueLength must be a positive integer.\");\n }\n}\n"],"mappings":"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","names":["redact"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-5S7T2URX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,19 @@
1
+ // src/internal/vector-search-options.ts
2
+ function assertPositiveSearchLimit(value, name = "topK") {
3
+ if (!Number.isSafeInteger(value) || value <= 0) {
4
+ throw new RangeError(`${name} must be a positive safe integer.`);
5
+ }
6
+ return value;
7
+ }
8
+ function assertFiniteMinScore(value, name = "minScore") {
9
+ if (value !== void 0 && !Number.isFinite(value)) {
10
+ throw new RangeError(`${name} must be a finite number.`);
11
+ }
12
+ return value;
13
+ }
14
+
15
+ export {
16
+ assertPositiveSearchLimit,
17
+ assertFiniteMinScore
18
+ };
19
+ //# sourceMappingURL=chunk-5V533R7F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/vector-search-options.ts"],"sourcesContent":["export function assertPositiveSearchLimit(value: number, name = \"topK\"): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new RangeError(`${name} must be a positive safe integer.`);\n }\n return value;\n}\n\nexport function assertFiniteMinScore(\n value: number | undefined,\n name = \"minScore\",\n): number | undefined {\n if (value !== undefined && !Number.isFinite(value)) {\n throw new RangeError(`${name} must be a finite number.`);\n }\n return value;\n}\n"],"mappings":";AAAO,SAAS,0BAA0B,OAAe,OAAO,QAAgB;AAC9E,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,SAAS,GAAG;AAC9C,UAAM,IAAI,WAAW,GAAG,IAAI,mCAAmC;AAAA,EACjE;AACA,SAAO;AACT;AAEO,SAAS,qBACd,OACA,OAAO,YACa;AACpB,MAAI,UAAU,UAAa,CAAC,OAAO,SAAS,KAAK,GAAG;AAClD,UAAM,IAAI,WAAW,GAAG,IAAI,2BAA2B;AAAA,EACzD;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,56 @@
1
+ // src/vector-store/filter.ts
2
+ var vectorFilter = {
3
+ eq(key, value) {
4
+ return { type: "eq", key, value };
5
+ },
6
+ gt(key, value) {
7
+ return { type: "gt", key, value };
8
+ },
9
+ lt(key, value) {
10
+ return { type: "lt", key, value };
11
+ },
12
+ and(left, right) {
13
+ return { type: "and", filters: [left, right] };
14
+ },
15
+ or(left, right) {
16
+ return { type: "or", filters: [left, right] };
17
+ }
18
+ };
19
+ function matchesVectorFilter(metadata, filter) {
20
+ if (filter === void 0) {
21
+ return true;
22
+ }
23
+ if (metadata === void 0) {
24
+ return false;
25
+ }
26
+ switch (filter.type) {
27
+ case "eq":
28
+ return metadata[filter.key] === filter.value;
29
+ case "gt":
30
+ return compare(metadata[filter.key], filter.value) > 0;
31
+ case "lt":
32
+ return compare(metadata[filter.key], filter.value) < 0;
33
+ case "and":
34
+ return matchesVectorFilter(metadata, filter.filters[0]) && matchesVectorFilter(metadata, filter.filters[1]);
35
+ case "or":
36
+ return matchesVectorFilter(metadata, filter.filters[0]) || matchesVectorFilter(metadata, filter.filters[1]);
37
+ }
38
+ }
39
+ function compare(left, right) {
40
+ if (typeof left === "number" && typeof right === "number") {
41
+ return left - right;
42
+ }
43
+ if (typeof left === "string" && typeof right === "string") {
44
+ return left.localeCompare(right);
45
+ }
46
+ if (typeof left === "boolean" && typeof right === "boolean") {
47
+ return Number(left) - Number(right);
48
+ }
49
+ return 0;
50
+ }
51
+
52
+ export {
53
+ vectorFilter,
54
+ matchesVectorFilter
55
+ };
56
+ //# sourceMappingURL=chunk-5WLIHNNJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vector-store/filter.ts"],"sourcesContent":["import type { VectorMetadata, VectorMetadataValue } from \"../embeddings\";\nimport type { VectorFilter } from \"./types\";\n\nexport type { VectorFilter } from \"./types\";\n\nexport const vectorFilter = {\n eq(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"eq\", key, value };\n },\n gt(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"gt\", key, value };\n },\n lt(key: string, value: VectorMetadataValue): VectorFilter {\n return { type: \"lt\", key, value };\n },\n and(left: VectorFilter, right: VectorFilter): VectorFilter {\n return { type: \"and\", filters: [left, right] };\n },\n or(left: VectorFilter, right: VectorFilter): VectorFilter {\n return { type: \"or\", filters: [left, right] };\n },\n};\n\nexport function matchesVectorFilter(\n metadata: VectorMetadata | undefined,\n filter: VectorFilter | undefined,\n): boolean {\n if (filter === undefined) {\n return true;\n }\n if (metadata === undefined) {\n return false;\n }\n\n switch (filter.type) {\n case \"eq\":\n return metadata[filter.key] === filter.value;\n case \"gt\":\n return compare(metadata[filter.key], filter.value) > 0;\n case \"lt\":\n return compare(metadata[filter.key], filter.value) < 0;\n case \"and\":\n return (\n matchesVectorFilter(metadata, filter.filters[0]) &&\n matchesVectorFilter(metadata, filter.filters[1])\n );\n case \"or\":\n return (\n matchesVectorFilter(metadata, filter.filters[0]) ||\n matchesVectorFilter(metadata, filter.filters[1])\n );\n }\n}\n\nfunction compare(left: VectorMetadataValue | undefined, right: VectorMetadataValue): number {\n if (typeof left === \"number\" && typeof right === \"number\") {\n return left - right;\n }\n if (typeof left === \"string\" && typeof right === \"string\") {\n return left.localeCompare(right);\n }\n if (typeof left === \"boolean\" && typeof right === \"boolean\") {\n return Number(left) - Number(right);\n }\n return 0;\n}\n"],"mappings":";AAKO,IAAM,eAAe;AAAA,EAC1B,GAAG,KAAa,OAA0C;AACxD,WAAO,EAAE,MAAM,MAAM,KAAK,MAAM;AAAA,EAClC;AAAA,EACA,GAAG,KAAa,OAA0C;AACxD,WAAO,EAAE,MAAM,MAAM,KAAK,MAAM;AAAA,EAClC;AAAA,EACA,GAAG,KAAa,OAA0C;AACxD,WAAO,EAAE,MAAM,MAAM,KAAK,MAAM;AAAA,EAClC;AAAA,EACA,IAAI,MAAoB,OAAmC;AACzD,WAAO,EAAE,MAAM,OAAO,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC/C;AAAA,EACA,GAAG,MAAoB,OAAmC;AACxD,WAAO,EAAE,MAAM,MAAM,SAAS,CAAC,MAAM,KAAK,EAAE;AAAA,EAC9C;AACF;AAEO,SAAS,oBACd,UACA,QACS;AACT,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT;AACA,MAAI,aAAa,QAAW;AAC1B,WAAO;AAAA,EACT;AAEA,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,SAAS,OAAO,GAAG,MAAM,OAAO;AAAA,IACzC,KAAK;AACH,aAAO,QAAQ,SAAS,OAAO,GAAG,GAAG,OAAO,KAAK,IAAI;AAAA,IACvD,KAAK;AACH,aAAO,QAAQ,SAAS,OAAO,GAAG,GAAG,OAAO,KAAK,IAAI;AAAA,IACvD,KAAK;AACH,aACE,oBAAoB,UAAU,OAAO,QAAQ,CAAC,CAAC,KAC/C,oBAAoB,UAAU,OAAO,QAAQ,CAAC,CAAC;AAAA,IAEnD,KAAK;AACH,aACE,oBAAoB,UAAU,OAAO,QAAQ,CAAC,CAAC,KAC/C,oBAAoB,UAAU,OAAO,QAAQ,CAAC,CAAC;AAAA,EAErD;AACF;AAEA,SAAS,QAAQ,MAAuC,OAAoC;AAC1F,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,WAAO,OAAO;AAAA,EAChB;AACA,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,WAAO,KAAK,cAAc,KAAK;AAAA,EACjC;AACA,MAAI,OAAO,SAAS,aAAa,OAAO,UAAU,WAAW;AAC3D,WAAO,OAAO,IAAI,IAAI,OAAO,KAAK;AAAA,EACpC;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,37 @@
1
+ // src/guardrails/policy.ts
2
+ function defineGuardrailPolicy(options) {
3
+ return {
4
+ id: options.id,
5
+ mode: options.mode ?? "enforce",
6
+ input: options.input ?? [],
7
+ output: options.output ?? []
8
+ };
9
+ }
10
+ function defineInputGuardrail(guardrail) {
11
+ return guardrail;
12
+ }
13
+ function defineOutputGuardrail(guardrail) {
14
+ return guardrail;
15
+ }
16
+ function normalizeGuardrailPolicies(policies) {
17
+ if (policies === void 0) {
18
+ return [];
19
+ }
20
+ return Array.isArray(policies) ? policies : [policies];
21
+ }
22
+ function appendGuardrailPolicies(current, next) {
23
+ return [...current, ...normalizeGuardrailPolicies(next)];
24
+ }
25
+ function hasEnforcedOutputGuardrails(policies) {
26
+ return policies.some((policy) => policy.mode === "enforce" && policy.output.length > 0);
27
+ }
28
+
29
+ export {
30
+ defineGuardrailPolicy,
31
+ defineInputGuardrail,
32
+ defineOutputGuardrail,
33
+ normalizeGuardrailPolicies,
34
+ appendGuardrailPolicies,
35
+ hasEnforcedOutputGuardrails
36
+ };
37
+ //# sourceMappingURL=chunk-6BTJC3ES.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/guardrails/policy.ts"],"sourcesContent":["import type {\n GuardrailPolicy,\n GuardrailPolicyInput,\n GuardrailPolicyOptions,\n InputGuardrail,\n OutputGuardrail,\n} from \"./types\";\n\nexport function defineGuardrailPolicy(options: GuardrailPolicyOptions): GuardrailPolicy {\n return {\n id: options.id,\n mode: options.mode ?? \"enforce\",\n input: options.input ?? [],\n output: options.output ?? [],\n };\n}\n\nexport function defineInputGuardrail(guardrail: InputGuardrail): InputGuardrail {\n return guardrail;\n}\n\nexport function defineOutputGuardrail(guardrail: OutputGuardrail): OutputGuardrail {\n return guardrail;\n}\n\nexport function normalizeGuardrailPolicies(\n policies: GuardrailPolicyInput | undefined,\n): GuardrailPolicy[] {\n if (policies === undefined) {\n return [];\n }\n return Array.isArray(policies) ? policies : [policies];\n}\n\nexport function appendGuardrailPolicies(\n current: GuardrailPolicy[],\n next: GuardrailPolicyInput,\n): GuardrailPolicy[] {\n return [...current, ...normalizeGuardrailPolicies(next)];\n}\n\nexport function hasEnforcedOutputGuardrails(policies: GuardrailPolicy[]): boolean {\n return policies.some((policy) => policy.mode === \"enforce\" && policy.output.length > 0);\n}\n"],"mappings":";AAQO,SAAS,sBAAsB,SAAkD;AACtF,SAAO;AAAA,IACL,IAAI,QAAQ;AAAA,IACZ,MAAM,QAAQ,QAAQ;AAAA,IACtB,OAAO,QAAQ,SAAS,CAAC;AAAA,IACzB,QAAQ,QAAQ,UAAU,CAAC;AAAA,EAC7B;AACF;AAEO,SAAS,qBAAqB,WAA2C;AAC9E,SAAO;AACT;AAEO,SAAS,sBAAsB,WAA6C;AACjF,SAAO;AACT;AAEO,SAAS,2BACd,UACmB;AACnB,MAAI,aAAa,QAAW;AAC1B,WAAO,CAAC;AAAA,EACV;AACA,SAAO,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AACvD;AAEO,SAAS,wBACd,SACA,MACmB;AACnB,SAAO,CAAC,GAAG,SAAS,GAAG,2BAA2B,IAAI,CAAC;AACzD;AAEO,SAAS,4BAA4B,UAAsC;AAChF,SAAO,SAAS,KAAK,CAAC,WAAW,OAAO,SAAS,aAAa,OAAO,OAAO,SAAS,CAAC;AACxF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import {
2
+ createTool
3
+ } from "./chunk-XV3DH5GC.js";
4
+
5
+ // src/tool/think-tool.ts
6
+ import { z } from "zod";
7
+ var defaultThinkToolDescription = "Use this tool to record a thought while reasoning through a complex task. It does not retrieve information, store memory, or change external state.";
8
+ var thinkToolInput = z.object({
9
+ thought: z.string().describe("A thought to record while reasoning through a task.")
10
+ });
11
+ function createThinkTool(options = {}) {
12
+ return createTool({
13
+ name: options.name ?? "think",
14
+ description: options.description ?? defaultThinkToolDescription,
15
+ inputSchema: thinkToolInput,
16
+ outputSchema: z.string(),
17
+ execute: (args) => args.thought
18
+ });
19
+ }
20
+
21
+ export {
22
+ createThinkTool
23
+ };
24
+ //# sourceMappingURL=chunk-6N4ENZO4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tool/think-tool.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { createTool } from \"./create-tool\";\n\nconst defaultThinkToolDescription =\n \"Use this tool to record a thought while reasoning through a complex task. It does not retrieve information, store memory, or change external state.\";\n\nconst thinkToolInput = z.object({\n thought: z.string().describe(\"A thought to record while reasoning through a task.\"),\n});\n\nexport type CreateThinkToolOptions = {\n name?: string;\n description?: string;\n};\n\nexport function createThinkTool(options: CreateThinkToolOptions = {}) {\n return createTool({\n name: options.name ?? \"think\",\n description: options.description ?? defaultThinkToolDescription,\n inputSchema: thinkToolInput,\n outputSchema: z.string(),\n execute: (args) => args.thought,\n });\n}\n"],"mappings":";;;;;AAAA,SAAS,SAAS;AAGlB,IAAM,8BACJ;AAEF,IAAM,iBAAiB,EAAE,OAAO;AAAA,EAC9B,SAAS,EAAE,OAAO,EAAE,SAAS,qDAAqD;AACpF,CAAC;AAOM,SAAS,gBAAgB,UAAkC,CAAC,GAAG;AACpE,SAAO,WAAW;AAAA,IAChB,MAAM,QAAQ,QAAQ;AAAA,IACtB,aAAa,QAAQ,eAAe;AAAA,IACpC,aAAa;AAAA,IACb,cAAc,EAAE,OAAO;AAAA,IACvB,SAAS,CAAC,SAAS,KAAK;AAAA,EAC1B,CAAC;AACH;","names":[]}
@@ -75,43 +75,9 @@ function mergeCompletionControlValues(defaults, overrides) {
75
75
  return Object.keys(values).length === 0 ? void 0 : Object.freeze(values);
76
76
  }
77
77
 
78
- // src/completion/documents.ts
79
- function normalizeDocuments(documents) {
80
- if (documents.length === 0) {
81
- return void 0;
82
- }
83
- return { role: "user", content: documents.map(formatDocument).join("\n") };
84
- }
85
- function formatDocument(document) {
86
- return `<file id: ${document.id}>
87
- ${formatDocumentBody(document)}
88
- </file>
89
- `;
90
- }
91
- function formatDocumentBody(document) {
92
- const metadata = formatMetadata(document.additionalProps);
93
- return metadata === void 0 ? document.text : `${metadata}
94
- ${document.text}`;
95
- }
96
- function formatMetadata(additionalProps) {
97
- if (additionalProps === void 0) {
98
- return void 0;
99
- }
100
- const entries = Object.entries(additionalProps).sort(
101
- ([left], [right]) => left.localeCompare(right)
102
- );
103
- if (entries.length === 0) {
104
- return void 0;
105
- }
106
- const metadata = entries.map(([key, value]) => `${key}: ${JSON.stringify(value)}`).join(" ");
107
- return `<metadata ${metadata} />`;
108
- }
109
-
110
78
  export {
111
79
  REASONING_EFFORT_CONTROL_ID,
112
80
  defineCompletionModelControls,
113
- mergeCompletionControlValues,
114
- normalizeDocuments,
115
- formatDocument
81
+ mergeCompletionControlValues
116
82
  };
117
- //# sourceMappingURL=chunk-4UQALF5Y.js.map
83
+ //# sourceMappingURL=chunk-6RQYWZI3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/completion/controls.ts"],"sourcesContent":["import type {\n CompletionControlValues,\n CompletionModelControls,\n CompletionModelSelectControl,\n} from \"./types\";\n\nexport const REASONING_EFFORT_CONTROL_ID = \"reasoningEffort\";\n\nexport type ReasoningEffortControls<Effort extends string = string> = Readonly<{\n reasoningEffort: CompletionModelSelectControl<Effort>;\n}>;\n\nexport function defineCompletionModelControls<const Controls extends CompletionModelControls>(\n controls: Controls,\n): Controls {\n if (typeof controls !== \"object\" || controls === null || Array.isArray(controls)) {\n throw new TypeError(\"Completion model controls must be an object.\");\n }\n const snapshot: Record<string, CompletionModelSelectControl> = {};\n for (const [id, control] of Object.entries(controls)) {\n if (id.trim().length === 0) {\n throw new TypeError(\"Completion control ids must not be empty.\");\n }\n if (typeof control !== \"object\" || control === null || Array.isArray(control)) {\n throw new TypeError(`Completion control \"${id}\" must be an object.`);\n }\n if (control.type !== \"select\") {\n throw new TypeError(`Completion control \"${id}\" must have type \"select\".`);\n }\n if (typeof control.label !== \"string\" || control.label.trim().length === 0) {\n throw new TypeError(`Completion control \"${id}\" must have a non-empty label.`);\n }\n if (!Array.isArray(control.options) || control.options.length === 0) {\n throw new TypeError(`Completion control \"${id}\" must declare at least one option.`);\n }\n const options = control.options.map((option) => {\n if (typeof option !== \"string\" || option.trim().length === 0) {\n throw new TypeError(`Completion control \"${id}\" options must not be empty.`);\n }\n return option;\n });\n if (new Set(options).size !== options.length) {\n throw new TypeError(`Completion control \"${id}\" options must be unique.`);\n }\n if (\n control.defaultValue !== undefined &&\n (typeof control.defaultValue !== \"string\" || !options.includes(control.defaultValue))\n ) {\n throw new TypeError(\n `Completion control \"${id}\" defaultValue must be one of its declared options.`,\n );\n }\n if (control.description !== undefined && typeof control.description !== \"string\") {\n throw new TypeError(`Completion control \"${id}\" description must be a string.`);\n }\n let next: CompletionModelSelectControl = {\n type: \"select\",\n label: control.label,\n options: Object.freeze(options),\n };\n if (control.description !== undefined) {\n next = { ...next, description: control.description };\n }\n if (control.defaultValue !== undefined) {\n next = { ...next, defaultValue: control.defaultValue };\n }\n Object.defineProperty(snapshot, id, {\n value: Object.freeze(next),\n enumerable: true,\n configurable: false,\n writable: false,\n });\n }\n return Object.freeze(snapshot) as Controls;\n}\n\nexport function mergeCompletionControlValues<Controls extends CompletionModelControls>(\n defaults: CompletionControlValues<Controls> | undefined,\n overrides: CompletionControlValues<Controls> | undefined,\n): Readonly<Record<string, string>> | undefined {\n if (defaults === undefined && overrides === undefined) return undefined;\n const values: Record<string, string> = {};\n for (const source of [defaults, overrides]) {\n for (const [id, value] of Object.entries(source ?? {})) {\n if (typeof value !== \"string\") continue;\n Object.defineProperty(values, id, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n }\n return Object.keys(values).length === 0 ? undefined : Object.freeze(values);\n}\n"],"mappings":";AAMO,IAAM,8BAA8B;AAMpC,SAAS,8BACd,UACU;AACV,MAAI,OAAO,aAAa,YAAY,aAAa,QAAQ,MAAM,QAAQ,QAAQ,GAAG;AAChF,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACpE;AACA,QAAM,WAAyD,CAAC;AAChE,aAAW,CAAC,IAAI,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACpD,QAAI,GAAG,KAAK,EAAE,WAAW,GAAG;AAC1B,YAAM,IAAI,UAAU,2CAA2C;AAAA,IACjE;AACA,QAAI,OAAO,YAAY,YAAY,YAAY,QAAQ,MAAM,QAAQ,OAAO,GAAG;AAC7E,YAAM,IAAI,UAAU,uBAAuB,EAAE,sBAAsB;AAAA,IACrE;AACA,QAAI,QAAQ,SAAS,UAAU;AAC7B,YAAM,IAAI,UAAU,uBAAuB,EAAE,4BAA4B;AAAA,IAC3E;AACA,QAAI,OAAO,QAAQ,UAAU,YAAY,QAAQ,MAAM,KAAK,EAAE,WAAW,GAAG;AAC1E,YAAM,IAAI,UAAU,uBAAuB,EAAE,gCAAgC;AAAA,IAC/E;AACA,QAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,KAAK,QAAQ,QAAQ,WAAW,GAAG;AACnE,YAAM,IAAI,UAAU,uBAAuB,EAAE,qCAAqC;AAAA,IACpF;AACA,UAAM,UAAU,QAAQ,QAAQ,IAAI,CAAC,WAAW;AAC9C,UAAI,OAAO,WAAW,YAAY,OAAO,KAAK,EAAE,WAAW,GAAG;AAC5D,cAAM,IAAI,UAAU,uBAAuB,EAAE,8BAA8B;AAAA,MAC7E;AACA,aAAO;AAAA,IACT,CAAC;AACD,QAAI,IAAI,IAAI,OAAO,EAAE,SAAS,QAAQ,QAAQ;AAC5C,YAAM,IAAI,UAAU,uBAAuB,EAAE,2BAA2B;AAAA,IAC1E;AACA,QACE,QAAQ,iBAAiB,WACxB,OAAO,QAAQ,iBAAiB,YAAY,CAAC,QAAQ,SAAS,QAAQ,YAAY,IACnF;AACA,YAAM,IAAI;AAAA,QACR,uBAAuB,EAAE;AAAA,MAC3B;AAAA,IACF;AACA,QAAI,QAAQ,gBAAgB,UAAa,OAAO,QAAQ,gBAAgB,UAAU;AAChF,YAAM,IAAI,UAAU,uBAAuB,EAAE,iCAAiC;AAAA,IAChF;AACA,QAAI,OAAqC;AAAA,MACvC,MAAM;AAAA,MACN,OAAO,QAAQ;AAAA,MACf,SAAS,OAAO,OAAO,OAAO;AAAA,IAChC;AACA,QAAI,QAAQ,gBAAgB,QAAW;AACrC,aAAO,EAAE,GAAG,MAAM,aAAa,QAAQ,YAAY;AAAA,IACrD;AACA,QAAI,QAAQ,iBAAiB,QAAW;AACtC,aAAO,EAAE,GAAG,MAAM,cAAc,QAAQ,aAAa;AAAA,IACvD;AACA,WAAO,eAAe,UAAU,IAAI;AAAA,MAClC,OAAO,OAAO,OAAO,IAAI;AAAA,MACzB,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAO,OAAO,OAAO,QAAQ;AAC/B;AAEO,SAAS,6BACd,UACA,WAC8C;AAC9C,MAAI,aAAa,UAAa,cAAc,OAAW,QAAO;AAC9D,QAAM,SAAiC,CAAC;AACxC,aAAW,UAAU,CAAC,UAAU,SAAS,GAAG;AAC1C,eAAW,CAAC,IAAI,KAAK,KAAK,OAAO,QAAQ,UAAU,CAAC,CAAC,GAAG;AACtD,UAAI,OAAO,UAAU,SAAU;AAC/B,aAAO,eAAe,QAAQ,IAAI;AAAA,QAChC;AAAA,QACA,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO,OAAO,KAAK,MAAM,EAAE,WAAW,IAAI,SAAY,OAAO,OAAO,MAAM;AAC5E;","names":[]}
@@ -0,0 +1,86 @@
1
+ import {
2
+ defineInputGuardrail,
3
+ defineOutputGuardrail
4
+ } from "./chunk-6BTJC3ES.js";
5
+ import {
6
+ allow,
7
+ block
8
+ } from "./chunk-MT3BLVYN.js";
9
+
10
+ // src/guardrails/text.ts
11
+ var guardrails = {
12
+ blockText,
13
+ redactText
14
+ };
15
+ function blockText(options) {
16
+ return textPatternGuardrail(options, "block");
17
+ }
18
+ function redactText(options) {
19
+ return textPatternGuardrail(options, "rewrite");
20
+ }
21
+ function textPatternGuardrail(options, action) {
22
+ if (options.boundary === "input") {
23
+ return defineInputGuardrail({
24
+ id: options.id,
25
+ check(ctx, actions) {
26
+ return textPatternAction(
27
+ ctx.inputText,
28
+ options,
29
+ action,
30
+ (value) => actions.rewrite({ inputText: value, reason: options.reason })
31
+ );
32
+ }
33
+ });
34
+ }
35
+ return defineOutputGuardrail({
36
+ id: options.id,
37
+ check(ctx, actions) {
38
+ return textPatternAction(
39
+ ctx.outputText,
40
+ options,
41
+ action,
42
+ (value) => actions.rewrite({ outputText: value, reason: options.reason })
43
+ );
44
+ }
45
+ });
46
+ }
47
+ function textPatternAction(text, options, action, rewrite) {
48
+ const matched = options.patterns.some((pattern) => textPatternMatches(text, pattern));
49
+ if (!matched) {
50
+ return allow();
51
+ }
52
+ if (action === "block") {
53
+ return block({
54
+ reason: options.reason,
55
+ message: options.message
56
+ });
57
+ }
58
+ let current = text;
59
+ for (const pattern of options.patterns) {
60
+ current = replaceTextPattern(current, pattern, options.replacement ?? "[redacted]");
61
+ }
62
+ return rewrite(current);
63
+ }
64
+ function textPatternMatches(text, pattern) {
65
+ if (typeof pattern === "string") {
66
+ return text.includes(pattern);
67
+ }
68
+ pattern.lastIndex = 0;
69
+ const matched = pattern.test(text);
70
+ pattern.lastIndex = 0;
71
+ return matched;
72
+ }
73
+ function replaceTextPattern(text, pattern, replacement) {
74
+ if (typeof pattern === "string") {
75
+ return text.split(pattern).join(replacement);
76
+ }
77
+ pattern.lastIndex = 0;
78
+ const flags = pattern.flags.replace("y", "");
79
+ const globalFlags = flags.includes("g") ? flags : `${flags}g`;
80
+ return text.replace(new RegExp(pattern.source, globalFlags), replacement);
81
+ }
82
+
83
+ export {
84
+ guardrails
85
+ };
86
+ //# sourceMappingURL=chunk-6TAWRKFK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/guardrails/text.ts"],"sourcesContent":["import { allow, block } from \"./actions\";\nimport { defineInputGuardrail, defineOutputGuardrail } from \"./policy\";\nimport type { GuardrailAllow, GuardrailBlock, InputGuardrail, OutputGuardrail } from \"./types\";\n\nexport const guardrails = {\n blockText,\n redactText,\n};\n\ntype TextPatternBoundary = \"input\" | \"output\";\n\ntype TextPatternGuardrailFor<Boundary extends TextPatternBoundary> = Boundary extends \"input\"\n ? InputGuardrail\n : OutputGuardrail;\n\ntype TextPatternGuardrailOptions<Boundary extends TextPatternBoundary = TextPatternBoundary> = {\n id: string;\n boundary: Boundary;\n patterns: Array<string | RegExp>;\n reason: string;\n message?: string | undefined;\n};\n\ntype TextPatternRedactOptions<Boundary extends TextPatternBoundary = TextPatternBoundary> =\n TextPatternGuardrailOptions<Boundary> & { replacement?: string | undefined };\n\nfunction blockText<Boundary extends TextPatternBoundary>(\n options: TextPatternGuardrailOptions<Boundary>,\n): TextPatternGuardrailFor<Boundary> {\n return textPatternGuardrail(options, \"block\");\n}\n\nfunction redactText<Boundary extends TextPatternBoundary>(\n options: TextPatternRedactOptions<Boundary>,\n): TextPatternGuardrailFor<Boundary> {\n return textPatternGuardrail(options, \"rewrite\");\n}\n\nfunction textPatternGuardrail<Boundary extends TextPatternBoundary>(\n options: TextPatternRedactOptions<Boundary>,\n action: \"block\" | \"rewrite\",\n): TextPatternGuardrailFor<Boundary> {\n if (options.boundary === \"input\") {\n return defineInputGuardrail({\n id: options.id,\n check(ctx, actions) {\n return textPatternAction(ctx.inputText, options, action, (value) =>\n actions.rewrite({ inputText: value, reason: options.reason }),\n );\n },\n }) as TextPatternGuardrailFor<Boundary>;\n }\n return defineOutputGuardrail({\n id: options.id,\n check(ctx, actions) {\n return textPatternAction(ctx.outputText, options, action, (value) =>\n actions.rewrite({ outputText: value, reason: options.reason }),\n );\n },\n }) as TextPatternGuardrailFor<Boundary>;\n}\n\nfunction textPatternAction<TRewrite>(\n text: string,\n options: TextPatternGuardrailOptions & { replacement?: string | undefined },\n action: \"block\" | \"rewrite\",\n rewrite: (value: string) => TRewrite,\n): GuardrailAllow | GuardrailBlock | TRewrite {\n const matched = options.patterns.some((pattern) => textPatternMatches(text, pattern));\n if (!matched) {\n return allow();\n }\n if (action === \"block\") {\n return block({\n reason: options.reason,\n message: options.message,\n });\n }\n let current = text;\n for (const pattern of options.patterns) {\n current = replaceTextPattern(current, pattern, options.replacement ?? \"[redacted]\");\n }\n return rewrite(current);\n}\n\nfunction textPatternMatches(text: string, pattern: string | RegExp): boolean {\n if (typeof pattern === \"string\") {\n return text.includes(pattern);\n }\n pattern.lastIndex = 0;\n const matched = pattern.test(text);\n pattern.lastIndex = 0;\n return matched;\n}\n\nfunction replaceTextPattern(text: string, pattern: string | RegExp, replacement: string): string {\n if (typeof pattern === \"string\") {\n return text.split(pattern).join(replacement);\n }\n pattern.lastIndex = 0;\n const flags = pattern.flags.replace(\"y\", \"\");\n const globalFlags = flags.includes(\"g\") ? flags : `${flags}g`;\n return text.replace(new RegExp(pattern.source, globalFlags), replacement);\n}\n"],"mappings":";;;;;;;;;;AAIO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;AAmBA,SAAS,UACP,SACmC;AACnC,SAAO,qBAAqB,SAAS,OAAO;AAC9C;AAEA,SAAS,WACP,SACmC;AACnC,SAAO,qBAAqB,SAAS,SAAS;AAChD;AAEA,SAAS,qBACP,SACA,QACmC;AACnC,MAAI,QAAQ,aAAa,SAAS;AAChC,WAAO,qBAAqB;AAAA,MAC1B,IAAI,QAAQ;AAAA,MACZ,MAAM,KAAK,SAAS;AAClB,eAAO;AAAA,UAAkB,IAAI;AAAA,UAAW;AAAA,UAAS;AAAA,UAAQ,CAAC,UACxD,QAAQ,QAAQ,EAAE,WAAW,OAAO,QAAQ,QAAQ,OAAO,CAAC;AAAA,QAC9D;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,sBAAsB;AAAA,IAC3B,IAAI,QAAQ;AAAA,IACZ,MAAM,KAAK,SAAS;AAClB,aAAO;AAAA,QAAkB,IAAI;AAAA,QAAY;AAAA,QAAS;AAAA,QAAQ,CAAC,UACzD,QAAQ,QAAQ,EAAE,YAAY,OAAO,QAAQ,QAAQ,OAAO,CAAC;AAAA,MAC/D;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,SAAS,kBACP,MACA,SACA,QACA,SAC4C;AAC5C,QAAM,UAAU,QAAQ,SAAS,KAAK,CAAC,YAAY,mBAAmB,MAAM,OAAO,CAAC;AACpF,MAAI,CAAC,SAAS;AACZ,WAAO,MAAM;AAAA,EACf;AACA,MAAI,WAAW,SAAS;AACtB,WAAO,MAAM;AAAA,MACX,QAAQ,QAAQ;AAAA,MAChB,SAAS,QAAQ;AAAA,IACnB,CAAC;AAAA,EACH;AACA,MAAI,UAAU;AACd,aAAW,WAAW,QAAQ,UAAU;AACtC,cAAU,mBAAmB,SAAS,SAAS,QAAQ,eAAe,YAAY;AAAA,EACpF;AACA,SAAO,QAAQ,OAAO;AACxB;AAEA,SAAS,mBAAmB,MAAc,SAAmC;AAC3E,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,KAAK,SAAS,OAAO;AAAA,EAC9B;AACA,UAAQ,YAAY;AACpB,QAAM,UAAU,QAAQ,KAAK,IAAI;AACjC,UAAQ,YAAY;AACpB,SAAO;AACT;AAEA,SAAS,mBAAmB,MAAc,SAA0B,aAA6B;AAC/F,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,KAAK,MAAM,OAAO,EAAE,KAAK,WAAW;AAAA,EAC7C;AACA,UAAQ,YAAY;AACpB,QAAM,QAAQ,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAC3C,QAAM,cAAc,MAAM,SAAS,GAAG,IAAI,QAAQ,GAAG,KAAK;AAC1D,SAAO,KAAK,QAAQ,IAAI,OAAO,QAAQ,QAAQ,WAAW,GAAG,WAAW;AAC1E;","names":[]}
@@ -0,0 +1,53 @@
1
+ // src/embeddings/distance.ts
2
+ function dotProduct(left, right) {
3
+ assertSameDimensions(left, right);
4
+ return left.reduce((sum, value, index) => sum + value * right[index], 0);
5
+ }
6
+ function cosineSimilarity(left, right) {
7
+ assertSameDimensions(left, right);
8
+ const leftMagnitude = magnitude(left);
9
+ const rightMagnitude = magnitude(right);
10
+ if (leftMagnitude === 0 || rightMagnitude === 0) {
11
+ return 0;
12
+ }
13
+ return dotProduct(left, right) / (leftMagnitude * rightMagnitude);
14
+ }
15
+ function angularDistance(left, right) {
16
+ const similarity = Math.max(-1, Math.min(1, cosineSimilarity(left, right)));
17
+ return Math.acos(similarity) / Math.PI;
18
+ }
19
+ function euclideanDistance(left, right) {
20
+ assertSameDimensions(left, right);
21
+ return Math.sqrt(
22
+ left.reduce((sum, value, index) => sum + (value - right[index]) ** 2, 0)
23
+ );
24
+ }
25
+ function manhattanDistance(left, right) {
26
+ assertSameDimensions(left, right);
27
+ return left.reduce((sum, value, index) => sum + Math.abs(value - right[index]), 0);
28
+ }
29
+ function chebyshevDistance(left, right) {
30
+ assertSameDimensions(left, right);
31
+ return left.reduce(
32
+ (max, value, index) => Math.max(max, Math.abs(value - right[index])),
33
+ 0
34
+ );
35
+ }
36
+ function magnitude(vector) {
37
+ return Math.sqrt(vector.reduce((sum, value) => sum + value ** 2, 0));
38
+ }
39
+ function assertSameDimensions(left, right) {
40
+ if (left.length !== right.length) {
41
+ throw new Error(`Vector dimension mismatch: ${left.length} !== ${right.length}`);
42
+ }
43
+ }
44
+
45
+ export {
46
+ dotProduct,
47
+ cosineSimilarity,
48
+ angularDistance,
49
+ euclideanDistance,
50
+ manhattanDistance,
51
+ chebyshevDistance
52
+ };
53
+ //# sourceMappingURL=chunk-7F53DOML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/embeddings/distance.ts"],"sourcesContent":["export function dotProduct(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce((sum, value, index) => sum + value * (right[index] as number), 0);\n}\n\nexport function cosineSimilarity(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n const leftMagnitude = magnitude(left);\n const rightMagnitude = magnitude(right);\n if (leftMagnitude === 0 || rightMagnitude === 0) {\n return 0;\n }\n return dotProduct(left, right) / (leftMagnitude * rightMagnitude);\n}\n\nexport function angularDistance(left: number[], right: number[]): number {\n const similarity = Math.max(-1, Math.min(1, cosineSimilarity(left, right)));\n return Math.acos(similarity) / Math.PI;\n}\n\nexport function euclideanDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return Math.sqrt(\n left.reduce((sum, value, index) => sum + (value - (right[index] as number)) ** 2, 0),\n );\n}\n\nexport function manhattanDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce((sum, value, index) => sum + Math.abs(value - (right[index] as number)), 0);\n}\n\nexport function chebyshevDistance(left: number[], right: number[]): number {\n assertSameDimensions(left, right);\n return left.reduce(\n (max, value, index) => Math.max(max, Math.abs(value - (right[index] as number))),\n 0,\n );\n}\n\nfunction magnitude(vector: number[]): number {\n return Math.sqrt(vector.reduce((sum, value) => sum + value ** 2, 0));\n}\n\nfunction assertSameDimensions(left: number[], right: number[]): void {\n if (left.length !== right.length) {\n throw new Error(`Vector dimension mismatch: ${left.length} !== ${right.length}`);\n }\n}\n"],"mappings":";AAAO,SAAS,WAAW,MAAgB,OAAyB;AAClE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,MAAM,QAAS,MAAM,KAAK,GAAc,CAAC;AACrF;AAEO,SAAS,iBAAiB,MAAgB,OAAyB;AACxE,uBAAqB,MAAM,KAAK;AAChC,QAAM,gBAAgB,UAAU,IAAI;AACpC,QAAM,iBAAiB,UAAU,KAAK;AACtC,MAAI,kBAAkB,KAAK,mBAAmB,GAAG;AAC/C,WAAO;AAAA,EACT;AACA,SAAO,WAAW,MAAM,KAAK,KAAK,gBAAgB;AACpD;AAEO,SAAS,gBAAgB,MAAgB,OAAyB;AACvE,QAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,iBAAiB,MAAM,KAAK,CAAC,CAAC;AAC1E,SAAO,KAAK,KAAK,UAAU,IAAI,KAAK;AACtC;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK;AAAA,IACV,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,OAAO,QAAS,MAAM,KAAK,MAAiB,GAAG,CAAC;AAAA,EACrF;AACF;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK,OAAO,CAAC,KAAK,OAAO,UAAU,MAAM,KAAK,IAAI,QAAS,MAAM,KAAK,CAAY,GAAG,CAAC;AAC/F;AAEO,SAAS,kBAAkB,MAAgB,OAAyB;AACzE,uBAAqB,MAAM,KAAK;AAChC,SAAO,KAAK;AAAA,IACV,CAAC,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK,KAAK,IAAI,QAAS,MAAM,KAAK,CAAY,CAAC;AAAA,IAC/E;AAAA,EACF;AACF;AAEA,SAAS,UAAU,QAA0B;AAC3C,SAAO,KAAK,KAAK,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,SAAS,GAAG,CAAC,CAAC;AACrE;AAEA,SAAS,qBAAqB,MAAgB,OAAuB;AACnE,MAAI,KAAK,WAAW,MAAM,QAAQ;AAChC,UAAM,IAAI,MAAM,8BAA8B,KAAK,MAAM,QAAQ,MAAM,MAAM,EAAE;AAAA,EACjF;AACF;","names":[]}
@@ -0,0 +1,112 @@
1
+ import {
2
+ resolveMemoryOptions
3
+ } from "./chunk-K4IBS7VB.js";
4
+ import {
5
+ appendGuardrailPolicies
6
+ } from "./chunk-6BTJC3ES.js";
7
+ import {
8
+ isToolIndex
9
+ } from "./chunk-23GEYG2X.js";
10
+ import {
11
+ isMcpTool
12
+ } from "./chunk-PLDJCCVL.js";
13
+ import {
14
+ isProviderTool
15
+ } from "./chunk-IDNL6IH4.js";
16
+
17
+ // src/agent/resolve-options.ts
18
+ var resolvedAgentOptions = /* @__PURE__ */ Symbol("resolvedAgentOptions");
19
+ function resolveAgentOptions(options) {
20
+ if (isInternalAgentOptions(options)) {
21
+ return options;
22
+ }
23
+ const toolsByName = /* @__PURE__ */ new Map();
24
+ const providerTools = [];
25
+ const toolIndexes = [];
26
+ for (const tool of options.tools ?? []) {
27
+ if (isProviderTool(tool)) {
28
+ providerTools.push(tool);
29
+ } else if (isToolIndex(tool)) {
30
+ toolIndexes.push(tool);
31
+ } else if (tool.kind === "tool-index") {
32
+ throw new TypeError("Invalid tool index: search, tools, and a numeric topK are required.");
33
+ } else if (isMcpTool(tool)) {
34
+ throw new TypeError(
35
+ `MCP tool "${tool.name}" must be registered through Agent.mcpServers, not Agent.tools.`
36
+ );
37
+ } else {
38
+ addUniqueTool(toolsByName, tool, "local tool");
39
+ }
40
+ }
41
+ if (options.skills !== void 0) {
42
+ for (const tool of options.skills.tools) {
43
+ if (isMcpTool(tool)) {
44
+ throw new TypeError(
45
+ `MCP tool "${tool.name}" must be registered through Agent.mcpServers, not Agent.skills.`
46
+ );
47
+ }
48
+ addUniqueTool(toolsByName, tool, "skill tool");
49
+ }
50
+ }
51
+ const memory = resolveAgentMemory(options);
52
+ const instructions = [options.instructions, options.skills?.instructions].filter((part) => part !== void 0 && part.length > 0).join("\n\n");
53
+ return {
54
+ id: options.id,
55
+ name: options.name,
56
+ description: options.description,
57
+ model: options.model,
58
+ instructions: instructions.length === 0 ? void 0 : instructions,
59
+ context: [...options.context ?? []],
60
+ temperature: options.temperature,
61
+ maxTokens: options.maxTokens,
62
+ providerOptions: options.providerOptions,
63
+ controls: options.controls,
64
+ retries: options.retries,
65
+ tools: [...toolsByName.values()],
66
+ mcpServers: [...options.mcpServers ?? []],
67
+ providerTools,
68
+ toolIndexes,
69
+ toolChoice: options.toolChoice,
70
+ defaultMaxTurns: options.maxTurns,
71
+ lifecycle: options.lifecycle,
72
+ outputSchema: options.outputSchema,
73
+ observability: options.observability,
74
+ guardrails: options.guardrails === void 0 ? [] : appendGuardrailPolicies([], options.guardrails),
75
+ middlewares: [...options.middlewares ?? []],
76
+ memory
77
+ };
78
+ }
79
+ function markResolvedAgentOptions(options) {
80
+ return {
81
+ ...options,
82
+ [resolvedAgentOptions]: true
83
+ };
84
+ }
85
+ function isInternalAgentOptions(options) {
86
+ return options[resolvedAgentOptions] === true;
87
+ }
88
+ function resolveAgentMemory(options) {
89
+ if (options.memory === void 0) {
90
+ return void 0;
91
+ }
92
+ const { store, ...memoryOptions } = options.memory;
93
+ const resolvedOptions = resolveMemoryOptions(memoryOptions);
94
+ if (resolvedOptions.compaction !== void 0 && store.compaction === void 0) {
95
+ throw new TypeError(
96
+ "Memory compaction requires a store with the optional compaction capability."
97
+ );
98
+ }
99
+ return { store, ...resolvedOptions };
100
+ }
101
+ function addUniqueTool(tools, tool, source) {
102
+ if (tools.has(tool.name)) {
103
+ throw new TypeError(`Duplicate ${source} name "${tool.name}".`);
104
+ }
105
+ tools.set(tool.name, tool);
106
+ }
107
+
108
+ export {
109
+ resolveAgentOptions,
110
+ markResolvedAgentOptions
111
+ };
112
+ //# sourceMappingURL=chunk-7KAGWJ5M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/agent/resolve-options.ts"],"sourcesContent":["import type { CompletionModel, ProviderTool } from \"../completion\";\nimport { isProviderTool } from \"../completion/types\";\nimport { appendGuardrailPolicies } from \"../guardrails\";\nimport { isMcpTool } from \"../mcp\";\nimport { resolveMemoryOptions } from \"../memory/options\";\nimport { isToolIndex, type ToolIndex } from \"../tool/dynamic-tools\";\nimport type { AnyTool } from \"../tool/tool\";\nimport type { AgentMemory, AgentOptions, ResolvedAgentOptions } from \"./types\";\n\nconst resolvedAgentOptions = Symbol(\"resolvedAgentOptions\");\n\ntype InternalAgentOptions<\n Output,\n M extends CompletionModel,\n ContextDocument,\n> = ResolvedAgentOptions<Output, M, ContextDocument> & {\n [resolvedAgentOptions]: true;\n};\n\nexport function resolveAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n options: AgentOptions<Output, M, ContextDocument>,\n): ResolvedAgentOptions<Output, M, ContextDocument> {\n if (isInternalAgentOptions(options)) {\n return options as unknown as ResolvedAgentOptions<Output, M, ContextDocument>;\n }\n\n const toolsByName = new Map<string, AnyTool>();\n const providerTools: ProviderTool[] = [];\n const toolIndexes: ToolIndex[] = [];\n for (const tool of options.tools ?? []) {\n if (isProviderTool(tool)) {\n providerTools.push(tool);\n } else if (isToolIndex(tool)) {\n toolIndexes.push(tool);\n } else if ((tool as { kind?: unknown }).kind === \"tool-index\") {\n throw new TypeError(\"Invalid tool index: search, tools, and a numeric topK are required.\");\n } else if (isMcpTool(tool)) {\n throw new TypeError(\n `MCP tool \"${tool.name}\" must be registered through Agent.mcpServers, not Agent.tools.`,\n );\n } else {\n addUniqueTool(toolsByName, tool, \"local tool\");\n }\n }\n if (options.skills !== undefined) {\n for (const tool of options.skills.tools) {\n if (isMcpTool(tool)) {\n throw new TypeError(\n `MCP tool \"${tool.name}\" must be registered through Agent.mcpServers, not Agent.skills.`,\n );\n }\n addUniqueTool(toolsByName, tool, \"skill tool\");\n }\n }\n const memory = resolveAgentMemory(options);\n const instructions = [options.instructions, options.skills?.instructions]\n .filter((part): part is string => part !== undefined && part.length > 0)\n .join(\"\\n\\n\");\n\n return {\n id: options.id,\n name: options.name,\n description: options.description,\n model: options.model,\n instructions: instructions.length === 0 ? undefined : instructions,\n context: [...(options.context ?? [])],\n temperature: options.temperature,\n maxTokens: options.maxTokens,\n providerOptions: options.providerOptions,\n controls: options.controls,\n retries: options.retries,\n tools: [...toolsByName.values()],\n mcpServers: [...(options.mcpServers ?? [])],\n providerTools,\n toolIndexes,\n toolChoice: options.toolChoice,\n defaultMaxTurns: options.maxTurns,\n lifecycle: options.lifecycle,\n outputSchema: options.outputSchema,\n observability: options.observability,\n guardrails:\n options.guardrails === undefined ? [] : appendGuardrailPolicies([], options.guardrails),\n middlewares: [...(options.middlewares ?? [])],\n memory,\n };\n}\n\nexport function markResolvedAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n options: ResolvedAgentOptions<Output, M, ContextDocument>,\n): AgentOptions<Output, M, ContextDocument> {\n return {\n ...options,\n [resolvedAgentOptions]: true,\n } as unknown as AgentOptions<Output, M, ContextDocument>;\n}\n\nfunction isInternalAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n options: AgentOptions<Output, M, ContextDocument>,\n): boolean {\n return (\n (options as unknown as Partial<InternalAgentOptions<Output, M, ContextDocument>>)[\n resolvedAgentOptions\n ] === true\n );\n}\n\nfunction resolveAgentMemory<Output, M extends CompletionModel, ContextDocument>(\n options: AgentOptions<Output, M, ContextDocument>,\n): AgentMemory | undefined {\n if (options.memory === undefined) {\n return undefined;\n }\n const { store, ...memoryOptions } = options.memory;\n const resolvedOptions = resolveMemoryOptions(memoryOptions);\n if (resolvedOptions.compaction !== undefined && store.compaction === undefined) {\n throw new TypeError(\n \"Memory compaction requires a store with the optional compaction capability.\",\n );\n }\n return { store, ...resolvedOptions };\n}\n\nfunction addUniqueTool(tools: Map<string, AnyTool>, tool: AnyTool, source: string): void {\n if (tools.has(tool.name)) {\n throw new TypeError(`Duplicate ${source} name \"${tool.name}\".`);\n }\n tools.set(tool.name, tool);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-7LBPRXZP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,25 @@
1
+ // src/agent/tool-state.ts
2
+ var agentToolStates = /* @__PURE__ */ new WeakMap();
3
+ function registerAgentToolState(agent, publicState, toolsByName) {
4
+ agentToolStates.set(agent, { publicState, toolsByName });
5
+ }
6
+ function getAgentToolState(agent) {
7
+ return getStoredAgentToolState(agent).publicState;
8
+ }
9
+ function getRegisteredAgentTool(agent, toolName) {
10
+ return getStoredAgentToolState(agent).toolsByName.get(toolName);
11
+ }
12
+ function getStoredAgentToolState(agent) {
13
+ const state = agentToolStates.get(agent);
14
+ if (state === void 0) {
15
+ throw new TypeError("Agent tool state is unavailable.");
16
+ }
17
+ return state;
18
+ }
19
+
20
+ export {
21
+ registerAgentToolState,
22
+ getAgentToolState,
23
+ getRegisteredAgentTool
24
+ };
25
+ //# sourceMappingURL=chunk-A7BXVZXZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/agent/tool-state.ts"],"sourcesContent":["import type { ProviderTool } from \"../completion\";\nimport type { ToolIndex } from \"../tool/dynamic-tools\";\nimport type { AnyTool } from \"../tool/tool\";\n\nexport type AgentToolState = {\n configuredTools: readonly AnyTool[];\n staticTools: readonly AnyTool[];\n providerTools: readonly ProviderTool[];\n toolIndexes: readonly ToolIndex[];\n};\n\ntype StoredAgentToolState = {\n publicState: AgentToolState;\n toolsByName: Map<string, AnyTool>;\n};\n\nconst agentToolStates = new WeakMap<object, StoredAgentToolState>();\n\nexport function registerAgentToolState(\n agent: object,\n publicState: AgentToolState,\n toolsByName: Map<string, AnyTool>,\n): void {\n agentToolStates.set(agent, { publicState, toolsByName });\n}\n\nexport function getAgentToolState(agent: object): AgentToolState {\n return getStoredAgentToolState(agent).publicState;\n}\n\nexport function getRegisteredAgentTool(agent: object, toolName: string): AnyTool | undefined {\n return getStoredAgentToolState(agent).toolsByName.get(toolName);\n}\n\nfunction getStoredAgentToolState(agent: object): StoredAgentToolState {\n const state = agentToolStates.get(agent);\n if (state === undefined) {\n throw new TypeError(\"Agent tool state is unavailable.\");\n }\n return state;\n}\n"],"mappings":";AAgBA,IAAM,kBAAkB,oBAAI,QAAsC;AAE3D,SAAS,uBACd,OACA,aACA,aACM;AACN,kBAAgB,IAAI,OAAO,EAAE,aAAa,YAAY,CAAC;AACzD;AAEO,SAAS,kBAAkB,OAA+B;AAC/D,SAAO,wBAAwB,KAAK,EAAE;AACxC;AAEO,SAAS,uBAAuB,OAAe,UAAuC;AAC3F,SAAO,wBAAwB,KAAK,EAAE,YAAY,IAAI,QAAQ;AAChE;AAEA,SAAS,wBAAwB,OAAqC;AACpE,QAAM,QAAQ,gBAAgB,IAAI,KAAK;AACvC,MAAI,UAAU,QAAW;AACvB,UAAM,IAAI,UAAU,kCAAkC;AAAA,EACxD;AACA,SAAO;AACT;","names":[]}