promptfoo 0.121.1 → 0.121.3

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 (316) hide show
  1. package/README.md +2 -0
  2. package/dist/src/{accounts-xrUGFA6n.js → accounts-B2XmGjty.js} +5 -5
  3. package/dist/src/{accounts-Bx-x3bmW.cjs → accounts-BPyfpSeU.cjs} +5 -5
  4. package/dist/src/{accounts-CMqkzrVf.js → accounts-CFLK3mnD.js} +6 -6
  5. package/dist/src/{accounts-BgNJDBE6.js → accounts-Xatc0RYb.js} +5 -5
  6. package/dist/src/{agentic-utils-BKIN5PKu.js → agentic-utils-36epdqwB.js} +3 -3
  7. package/dist/src/{cometapi-DkXrKi5z.js → agentic-utils-D8yXo5Lm.js} +4 -61
  8. package/dist/src/{cometapi-vY6aDZgo.cjs → agentic-utils-DAVsChuB.cjs} +24 -62
  9. package/dist/src/agentic-utils-DIYAAYE7.js +153 -0
  10. package/dist/src/{agents-C-dDThPK.js → agents-BBVJCIYr.js} +226 -13
  11. package/dist/src/{agents-CErsqg5U.cjs → agents-BBWxKSM0.cjs} +7 -7
  12. package/dist/src/{agents-Dy2YpZpa.js → agents-Bqgfdokm.js} +227 -14
  13. package/dist/src/{agents-B0f4HICh.cjs → agents-CAYbM7qD.cjs} +226 -13
  14. package/dist/src/{agents-CVIn-Utx.js → agents-CLQ-P15P.js} +7 -7
  15. package/dist/src/{agents-DeH4Gu94.js → agents-CgBniSlI.js} +8 -8
  16. package/dist/src/{agents-CXknwsFX.js → agents-DSSTV4bv.js} +226 -13
  17. package/dist/src/{agents-aF4-T121.js → agents-wg3ohknq.js} +7 -7
  18. package/dist/src/{aimlapi-tg0Gkcvr.cjs → aimlapi-Bv8Fmc-b.cjs} +14 -14
  19. package/dist/src/{aimlapi-BNfTBexL.js → aimlapi-BwGC1TtS.js} +13 -13
  20. package/dist/src/{aimlapi-BAGZDo5G.js → aimlapi-DaC3qZ-o.js} +14 -14
  21. package/dist/src/{aimlapi-DHRKlBEA.js → aimlapi-MgSLdvy7.js} +13 -13
  22. package/dist/src/app/assets/index-B6l9CVVb.js +439 -0
  23. package/dist/src/app/assets/index-DyZ0Ep37.css +1 -0
  24. package/dist/src/app/assets/sync-CStkzc6u.js +4 -0
  25. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
  26. package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +29 -0
  27. package/dist/src/app/index.html +4 -4
  28. package/dist/src/{audio-tf_NBjlC.js → audio-Bn44pQxv.js} +4 -4
  29. package/dist/src/{audio-CHQ4r-RV.js → audio-DDA5WHdx.js} +4 -4
  30. package/dist/src/{audio-BWeaWovU.cjs → audio-DVFjQ67_.cjs} +4 -4
  31. package/dist/src/{audio-BRODU0UK.js → audio-DjU9GswO.js} +5 -5
  32. package/dist/src/{base-DBtwl2FR.cjs → base-BboXIF_0.cjs} +3 -3
  33. package/dist/src/{base-B4QJRyFS.js → base-CKjwebIH.js} +3 -3
  34. package/dist/src/{base-B0tcrnq_.js → base-CqzQ4K8j.js} +3 -3
  35. package/dist/src/{base-fEDN28WM.js → base-Cz2ZC_iA.js} +3 -3
  36. package/dist/src/{blobs-BAU-dXan.js → blobs-B1JriOyi.js} +3 -3
  37. package/dist/src/{blobs-qTYm-1PY.js → blobs-BUWmKWzo.js} +3 -3
  38. package/dist/src/{blobs-DvS-O6be.cjs → blobs-C6j0bvFz.cjs} +3 -3
  39. package/dist/src/{blobs-Bpg5rH6i.js → blobs-DXTl6J3H.js} +3 -3
  40. package/dist/src/{cache-COish3-W.cjs → cache-C5yFZ4gC.cjs} +75 -58
  41. package/dist/src/{cache-8XhNqPKW.js → cache-CaT5tPgo.js} +75 -58
  42. package/dist/src/cache-CyCanoMu.js +6 -0
  43. package/dist/src/{cache-CG0SlR1d.js → cache-DSqR6ezl.js} +75 -58
  44. package/dist/src/cache-Df_QFDNu.cjs +5 -0
  45. package/dist/src/{cache-D3eqDYGU.js → cache-HP0NP4k3.js} +75 -58
  46. package/dist/src/{chat-DHMH-N64.js → chat-B-52XYI1.js} +12 -12
  47. package/dist/src/{chat-BKm79wib.js → chat-B0iaWhoh.js} +16 -14
  48. package/dist/src/{chat-DxysjBvt.js → chat-BE0qTA8e.js} +13 -13
  49. package/dist/src/{chat-CRWNNq73.js → chat-BEwdgGEg.js} +16 -14
  50. package/dist/src/{chat-2K608PeQ.cjs → chat-BtIKkLKx.cjs} +13 -13
  51. package/dist/src/{chat-DaqekjFr.cjs → chat-CM8qWR3_.cjs} +17 -15
  52. package/dist/src/{chat-CM_kyI8B.js → chat-DK1U-eZ-.js} +12 -12
  53. package/dist/src/{chat-CznLWr_D.js → chat-pxmiVpWe.js} +16 -14
  54. package/dist/src/{chatkit-65VXf5SR.js → chatkit-BYGQlHlV.js} +4 -4
  55. package/dist/src/{chatkit-DKyPi1Gs.cjs → chatkit-Cx174XI3.cjs} +4 -4
  56. package/dist/src/{chatkit-BxFvW8KY.js → chatkit-_8eJqKcD.js} +4 -4
  57. package/dist/src/{chatkit-Be-Q-a9F.js → chatkit-a2D6mY6s.js} +4 -4
  58. package/dist/src/{claude-agent-sdk-CJH22shf.cjs → claude-agent-sdk-8ddRp1L2.cjs} +35 -17
  59. package/dist/src/{claude-agent-sdk-Dy5lT-Tx.js → claude-agent-sdk-Bq5EArsX.js} +33 -15
  60. package/dist/src/{claude-agent-sdk-BLTu0WBO.js → claude-agent-sdk-CMjh4LFH.js} +33 -15
  61. package/dist/src/{claude-agent-sdk-D6_k9FKA.js → claude-agent-sdk-HgbFioFw.js} +33 -15
  62. package/dist/src/cloud-DE3t1-ZI.js +4 -0
  63. package/dist/src/{cloud-Bc9526yV.js → cloud-z8KZpUoa.js} +3 -3
  64. package/dist/src/{cloudflare-ai-CWWJCRim.js → cloudflare-ai-BGyXlpXJ.js} +13 -13
  65. package/dist/src/{cloudflare-ai-C9r2sRhw.js → cloudflare-ai-Bbp26N0L.js} +13 -13
  66. package/dist/src/{cloudflare-ai-ClWSdor4.cjs → cloudflare-ai-C62x6MQG.cjs} +14 -14
  67. package/dist/src/{cloudflare-ai-ICsOuD-z.js → cloudflare-ai-DdKP9TKT.js} +14 -14
  68. package/dist/src/{cloudflare-gateway-D6xFc5pa.js → cloudflare-gateway-BwAaUgeW.js} +14 -14
  69. package/dist/src/{cloudflare-gateway-D6O7AlYb.js → cloudflare-gateway-D-e9i1Sn.js} +15 -15
  70. package/dist/src/{cloudflare-gateway-pXGHxJ47.js → cloudflare-gateway-DXhtXDRb.js} +15 -163
  71. package/dist/src/{cloudflare-gateway-C2_-KG5o.cjs → cloudflare-gateway-Dx36ftqF.cjs} +15 -15
  72. package/dist/src/{codex-sdk-DUwKWezN.js → codex-sdk-BQEw16R_.js} +180 -11
  73. package/dist/src/{codex-sdk-C6UMlxwV.js → codex-sdk-C_07GuVS.js} +180 -11
  74. package/dist/src/{codex-sdk-GGAw0qbD.js → codex-sdk-DE5G18dx.js} +180 -11
  75. package/dist/src/{codex-sdk-fAO0c3yA.cjs → codex-sdk-ZLKfDjqP.cjs} +181 -12
  76. package/dist/src/cometapi-BDyV-NNm.js +62 -0
  77. package/dist/src/cometapi-C3hOlM7-.cjs +62 -0
  78. package/dist/src/{cometapi-Bbjp5V4x.js → cometapi-hhL4TAh3.js} +14 -14
  79. package/dist/src/{cometapi-BasUi7-_.js → cometapi-sp7sJpBD.js} +15 -15
  80. package/dist/src/{completion-C_P3ypkJ.js → completion-BCimtq-h.js} +6 -6
  81. package/dist/src/{completion-6Mx_iXxK.js → completion-DCjv7RZ3.js} +6 -6
  82. package/dist/src/{completion-CDOouNzq.cjs → completion-DlXUhj5c.cjs} +6 -6
  83. package/dist/src/{completion-C5rtR_9P.js → completion-DoYy49ti.js} +6 -6
  84. package/dist/src/{createHash-CfZSc0b4.cjs → createHash-BYwImsYv.cjs} +2 -2
  85. package/dist/src/{docker-BwsKwxFs.cjs → docker-Cqj2-QVi.cjs} +14 -14
  86. package/dist/src/{docker-CZnqU1XV.js → docker-CxCkwMzc.js} +13 -13
  87. package/dist/src/{docker-DzxyDPIj.js → docker-DpguQj-w.js} +14 -14
  88. package/dist/src/{docker-5KcG-_86.js → docker-FeBni2dw.js} +13 -13
  89. package/dist/src/{esm-C03C-mv3.js → esm-7UIl0pPM.js} +2 -2
  90. package/dist/src/{esm-Cd1AjG1D.js → esm-CKWP3u_P.js} +3 -3
  91. package/dist/src/{esm-CnNt7sI4.cjs → esm-CipptfDu.cjs} +2 -2
  92. package/dist/src/{esm-CaIwzWR5.js → esm-SUNIX1x3.js} +3 -3
  93. package/dist/src/eval-7aEqoMs3.js +15 -0
  94. package/dist/src/{eval-DmFyWU7i.js → eval-BTqTn7lb.js} +10 -10
  95. package/dist/src/{evalResult-CDQiuUuf.js → evalResult-BkIhRdTe.js} +7 -7
  96. package/dist/src/evalResult-CYNHkk5A.js +12 -0
  97. package/dist/src/evalResult-CuvJeNiM.js +10 -0
  98. package/dist/src/{evalResult-CTG2AHOS.js → evalResult-DUDShQrm.js} +7 -7
  99. package/dist/src/{evalResult-Dap2CekP.cjs → evalResult-DpARzUCb.cjs} +7 -7
  100. package/dist/src/evalResult-tGdilrWt.cjs +10 -0
  101. package/dist/src/evaluator-BBUqRhz1.js +36 -0
  102. package/dist/src/{evaluator-DPFRbFIL.js → evaluator-BcvOGaam.js} +833 -79
  103. package/dist/src/{extractor-YMU_Gvt8.js → extractor-C8XwivI9.js} +6 -6
  104. package/dist/src/{extractor-CFG6bcWJ.js → extractor-CAZ2G3Kh.js} +6 -6
  105. package/dist/src/{extractor-DX36oYEv.cjs → extractor-DG3sSfXE.cjs} +6 -6
  106. package/dist/src/{extractor-M67RUtg6.js → extractor-D_wd8jxt.js} +6 -6
  107. package/dist/src/{fetch-4M3YRaqL.js → fetch-BiYv2BZc.js} +3 -3
  108. package/dist/src/{fetch-BxUk8odA.cjs → fetch-BnR9wSnm.cjs} +3 -3
  109. package/dist/src/{fetch-60Gzydls.js → fetch-CVAtKnI3.js} +3 -3
  110. package/dist/src/{fetch-BMv0O527.js → fetch-DoVRJZhJ.js} +4 -4
  111. package/dist/src/fetch-UWU706qb.js +5 -0
  112. package/dist/src/{genaiTracer-DN4dQywX.cjs → genaiTracer-BfxrvSUb.cjs} +2 -2
  113. package/dist/src/{graders-DOXycdlG.cjs → graders-BElhu9ZY.cjs} +126 -55
  114. package/dist/src/{graders-R9rYUM0d.js → graders-BXAJ0sbS.js} +120 -55
  115. package/dist/src/graders-BxfEguVY.js +32 -0
  116. package/dist/src/graders-CzVMbEnv.js +34 -0
  117. package/dist/src/{graders-CpdqD9PI.js → graders-DG7mhg-b.js} +120 -55
  118. package/dist/src/graders-DjCXfj0l.cjs +32 -0
  119. package/dist/src/{graders-CHO8EPM4.js → graders-RjHF8VfG.js} +120 -55
  120. package/dist/src/graders-kHzIWOKu.js +32 -0
  121. package/dist/src/{image-DTedmQPg.cjs → image--F58eEIn.cjs} +6 -6
  122. package/dist/src/{image-DJEvKveK.js → image-6WQXK8m8.js} +4 -4
  123. package/dist/src/{image-pAX56tPG.js → image-B8b6f36E.js} +6 -6
  124. package/dist/src/{image-BmEZqVmk.js → image-CoxZp9PZ.js} +6 -6
  125. package/dist/src/{image-gvmivTEe.js → image-DO0RYnjH.js} +5 -5
  126. package/dist/src/{image-CBBVXWuT.js → image-PoF6DN3x.js} +6 -6
  127. package/dist/src/{image-CDLQOcqT.cjs → image-fza3zuKs.cjs} +4 -4
  128. package/dist/src/{image-tL5hIOFh.js → image-xNbw5ph2.js} +4 -4
  129. package/dist/src/index.cjs +863 -110
  130. package/dist/src/index.d.cts +833 -60
  131. package/dist/src/index.d.ts +833 -60
  132. package/dist/src/index.js +860 -108
  133. package/dist/src/{interactiveCheck-BgLZUIt3.js → interactiveCheck-BnMYOjMu.js} +2 -2
  134. package/dist/src/{knowledgeBase-CoU-UQBg.js → knowledgeBase-Bi7CmDbx.js} +7 -7
  135. package/dist/src/{knowledgeBase-CLJybhnF.js → knowledgeBase-Ce3ofVan.js} +8 -8
  136. package/dist/src/{knowledgeBase-DjWPVqSb.js → knowledgeBase-DFRXPZl_.js} +7 -7
  137. package/dist/src/{knowledgeBase-wkxuRFhA.cjs → knowledgeBase-DqrLX8fy.cjs} +7 -7
  138. package/dist/src/{litellm-B9Hysuri.js → litellm-Bo2gQXpo.js} +16 -15
  139. package/dist/src/{litellm-ePxtr9F1.js → litellm-CKiAxnoM.js} +15 -14
  140. package/dist/src/{litellm-NYpQ8RQu.cjs → litellm-CnHI69aj.cjs} +16 -15
  141. package/dist/src/{litellm-CTfa0hqi.js → litellm-Tc294Jhj.js} +15 -14
  142. package/dist/src/{logger-KkObSCzq.js → logger-BcJBzSSA.js} +10 -14
  143. package/dist/src/{logger-DLcq4dWf.js → logger-BnkjG2jt.js} +10 -14
  144. package/dist/src/{logger-Cp1GPUjj.cjs → logger-D5iKBpu_.cjs} +27 -13
  145. package/dist/src/{logger-CT3IKMKA.js → logger-DO8_zM18.js} +10 -14
  146. package/dist/src/{luma-ray-BW9IRGIc.js → luma-ray-0ehMPt5N.js} +10 -10
  147. package/dist/src/{luma-ray-BE2mOt6N.js → luma-ray-C9q8rdQe.js} +9 -9
  148. package/dist/src/{luma-ray-Cm1KZBhs.js → luma-ray-DP0QA9qn.js} +9 -9
  149. package/dist/src/{luma-ray-B0GGNRc1.cjs → luma-ray-m9Ku2meV.cjs} +9 -9
  150. package/dist/src/main.js +69 -71
  151. package/dist/src/{messages-1x9atZmP.js → messages-DJNo37Ko.js} +14 -9
  152. package/dist/src/{messages-BLbWdsyt.js → messages-Dy9QecMs.js} +14 -9
  153. package/dist/src/{messages-1JrJs91T.cjs → messages-HJsyEh4o.cjs} +15 -10
  154. package/dist/src/{messages-D8EA0oDc.js → messages-biC_ex-p.js} +14 -9
  155. package/dist/src/{modelslab-C1OLRmVX.js → modelslab-B5J-ZM5c.js} +9 -9
  156. package/dist/src/{modelslab-CqXBy3U8.js → modelslab-BI458moT.js} +10 -10
  157. package/dist/src/{modelslab-X5-4LroM.js → modelslab-BTOT8FUO.js} +9 -9
  158. package/dist/src/{modelslab-DcOSFwKh.cjs → modelslab-IQbNg-r7.cjs} +9 -9
  159. package/dist/src/{nova-reel-DihqLeol.js → nova-reel-BZ9y-Y5s.js} +9 -9
  160. package/dist/src/{nova-reel-D9xfaMBs.cjs → nova-reel-CE5etkv9.cjs} +9 -9
  161. package/dist/src/{nova-reel-D2ZkOSyr.js → nova-reel-DEeQlnOJ.js} +10 -10
  162. package/dist/src/{nova-reel-BgS1ZWuK.js → nova-reel-Xw1SXLpg.js} +9 -9
  163. package/dist/src/{nova-sonic-Q3BOJeig.js → nova-sonic-DWswpN1E.js} +7 -7
  164. package/dist/src/{nova-sonic-DezhVUYT.js → nova-sonic-DXTLpi-r.js} +6 -6
  165. package/dist/src/{nova-sonic-DVu3mMIy.cjs → nova-sonic-N0yCm0vb.cjs} +6 -6
  166. package/dist/src/{nova-sonic-P-CdUMlV.js → nova-sonic-Ogqf-csn.js} +6 -6
  167. package/dist/src/{openai-DhbB7eWK.js → openai-BMcwgD5C.js} +2 -2
  168. package/dist/src/{openai-j-sE2O7r.js → openai-BcB5KlTk.js} +2 -2
  169. package/dist/src/{openai-Cuif0GEt.cjs → openai-CoxGAQwn.cjs} +2 -2
  170. package/dist/src/{openai-DElQ-fPX.js → openai-D6wITiVn.js} +2 -2
  171. package/dist/src/{openclaw-Bv1DINsX.js → openclaw-0Sv7AK3O.js} +172 -109
  172. package/dist/src/{openclaw-DAfWQn-o.cjs → openclaw-CXxbKgDH.cjs} +174 -110
  173. package/dist/src/{openclaw-BiSZPL7J.js → openclaw-D1FSCps-.js} +172 -109
  174. package/dist/src/{openclaw-D1D_ej1z.js → openclaw-D2ENvu7a.js} +173 -110
  175. package/dist/src/{opencode-sdk-D95s6SnR.js → opencode-sdk-C71Z0ehR.js} +13 -13
  176. package/dist/src/{opencode-sdk-DxUPkLT7.js → opencode-sdk-CHCs7dEb.js} +12 -12
  177. package/dist/src/{opencode-sdk-C7m-wRfI.js → opencode-sdk-DDxj4QqH.js} +12 -12
  178. package/dist/src/{opencode-sdk-CfaLN8PY.cjs → opencode-sdk-WWJhnbKr.cjs} +16 -16
  179. package/dist/src/{otlpReceiver-g3ByGaXs.js → otlpReceiver-C9KlUtxh.js} +6 -6
  180. package/dist/src/{otlpReceiver--AIRW_S4.js → otlpReceiver-CZL48YfC.js} +6 -6
  181. package/dist/src/{otlpReceiver-Bn5wGB1v.js → otlpReceiver-CavGAA6k.js} +6 -6
  182. package/dist/src/{otlpReceiver-Diec4cln.cjs → otlpReceiver-DHKqJlsz.cjs} +6 -6
  183. package/dist/src/{providerRegistry-B0RUOLI_.js → providerRegistry-B9lh-_tx.js} +2 -2
  184. package/dist/src/{providerRegistry-Civky8Ar.cjs → providerRegistry-BTDgfV5h.cjs} +2 -2
  185. package/dist/src/{providerRegistry-CD8MEar9.js → providerRegistry-BkzVH5Ba.js} +2 -2
  186. package/dist/src/{providerRegistry-DM8rZYol.js → providerRegistry-CUWki5mQ.js} +2 -2
  187. package/dist/src/providers-BSLEaIQG.js +32 -0
  188. package/dist/src/{providers-CFu-TZl-.cjs → providers-CScd1wN6.cjs} +733 -464
  189. package/dist/src/{providers-CFLy1_ji.js → providers-Ch6Mr0gn.js} +795 -526
  190. package/dist/src/{providers-BKRJTjBz.js → providers-Cn73d5sr.js} +795 -526
  191. package/dist/src/providers-D-FnDg8k.cjs +31 -0
  192. package/dist/src/providers-DEYiFVAo.js +30 -0
  193. package/dist/src/{providers-B3HvufyI.js → providers-DvddrgxL.js} +795 -526
  194. package/dist/src/providers-sS2WI8YD.js +30 -0
  195. package/dist/src/{pythonUtils-D6fwaDSg.js → pythonUtils-Bzwbgpbg.js} +3 -3
  196. package/dist/src/{pythonUtils-D5nxkQ0P.js → pythonUtils-Cpo0Ez1p.js} +3 -3
  197. package/dist/src/{pythonUtils-CTU3Y3lw.cjs → pythonUtils-dAVigVK-.cjs} +3 -3
  198. package/dist/src/{pythonUtils-C3py6GC1.js → pythonUtils-wIqk7zAf.js} +3 -3
  199. package/dist/src/{quiverai-CI6gYJVI.js → quiverai-BeofbLVc.js} +4 -4
  200. package/dist/src/{quiverai-MHSxbmmZ.js → quiverai-CCQn73lq.js} +5 -5
  201. package/dist/src/{quiverai-CLkWkyZc.cjs → quiverai-CcUhPIBg.cjs} +4 -4
  202. package/dist/src/{quiverai-C2jVwbH1.js → quiverai-DVSEqJiq.js} +4 -4
  203. package/dist/src/{render-Drod8m7K.js → render-BHl6QVq9.js} +3 -3
  204. package/dist/src/{responses-CGw0DCzh.js → responses-BKP_WYis.js} +16 -12
  205. package/dist/src/{responses-BKqJmhhc.js → responses-CQb1Tj69.js} +16 -12
  206. package/dist/src/{responses-jxdehPkC.js → responses-CgNyTPsY.js} +16 -12
  207. package/dist/src/{responses-tD4Bd4dc.cjs → responses-mo0KQDbu.cjs} +16 -12
  208. package/dist/src/rubyUtils-B1HXG4ej.cjs +4 -0
  209. package/dist/src/{rubyUtils-DhCAlxZr.cjs → rubyUtils-CGeUtCfW.cjs} +3 -3
  210. package/dist/src/{rubyUtils-Boc4HZzX.js → rubyUtils-CiVfln3g.js} +3 -3
  211. package/dist/src/{rubyUtils-BcuGX77l.js → rubyUtils-DECSbsfY.js} +3 -3
  212. package/dist/src/{rubyUtils-BUVePouc.js → rubyUtils-PgU-gHmx.js} +3 -3
  213. package/dist/src/rubyUtils-Rt6pKA96.js +5 -0
  214. package/dist/src/{sagemaker-BK4Zb993.js → sagemaker-CVv8W7so.js} +17 -17
  215. package/dist/src/{sagemaker-D2Q1c-sD.js → sagemaker-CqeASYE5.js} +17 -17
  216. package/dist/src/{sagemaker-BfiWTmvn.js → sagemaker-MUbD5V3v.js} +18 -18
  217. package/dist/src/{sagemaker-CcQHM1jV.cjs → sagemaker-jiw1wQa-.cjs} +17 -17
  218. package/dist/src/{scanner-J8CA3LsV.js → scanner-DVDeUz1r.js} +10 -10
  219. package/dist/src/server/index.js +864 -112
  220. package/dist/src/server-B0Xh1Gx-.js +7 -0
  221. package/dist/src/{server-B0PPuDw-.cjs → server-BtoCXeXI.cjs} +4 -4
  222. package/dist/src/{server-BC7XJFgr.js → server-CP9qKM40.js} +4 -4
  223. package/dist/src/{server-OAs3nBRT.js → server-Cns05F1j.js} +5 -5
  224. package/dist/src/server-DJTKu9IR.cjs +5 -0
  225. package/dist/src/{server-DbFphssR.js → server-DZ9MtCn0.js} +6 -6
  226. package/dist/src/{signal-BOTbd53Z.js → signal-C3ZTsUgi.js} +3 -3
  227. package/dist/src/{slack-DXMKtA-f.js → slack-2sdpGzbt.js} +2 -2
  228. package/dist/src/{slack-BmVAVGaK.cjs → slack-94iG3T0s.cjs} +2 -2
  229. package/dist/src/{slack-DCUPTzS2.js → slack-BR0HtO3K.js} +2 -2
  230. package/dist/src/{slack-DOdy_kyv.js → slack-DCEV-vWP.js} +2 -2
  231. package/dist/src/store-C5u6MgC8.js +6 -0
  232. package/dist/src/{store-BSc-TF2w.cjs → store-CLyU7AtI.cjs} +17 -5
  233. package/dist/src/store-CNHk-De4.cjs +5 -0
  234. package/dist/src/{store-DQLEjuEO.js → store-Cj258DgL.js} +17 -5
  235. package/dist/src/{store-D1tv90v3.js → store-P8OKm19S.js} +17 -5
  236. package/dist/src/{store-Ub2vaGJ1.js → store-VB0GP46K.js} +17 -5
  237. package/dist/src/{tables-xKANLRBD.js → tables-BEIFz2tM.js} +3 -3
  238. package/dist/src/{tables-C7K-XKWp.cjs → tables-BdZQEpRz.cjs} +3 -3
  239. package/dist/src/{tables-D36WTqKX.js → tables-DmzvLbeZ.js} +3 -3
  240. package/dist/src/{tables-5EvT_Bwn.js → tables-kC7R5kiK.js} +3 -3
  241. package/dist/src/{telemetry-C2YDkUQH.js → telemetry-BnH5VJAU.js} +4 -4
  242. package/dist/src/{telemetry-C15ziL8u.js → telemetry-BugWqKiu.js} +4 -4
  243. package/dist/src/{telemetry-DMb2Mpfm.js → telemetry-DPXLd7UE.js} +4 -4
  244. package/dist/src/telemetry-Yig0Tino.js +7 -0
  245. package/dist/src/telemetry-p8Pwqm1i.cjs +5 -0
  246. package/dist/src/{telemetry-CbrnxHp_.cjs → telemetry-re627Lre.cjs} +4 -4
  247. package/dist/src/{transcription-CL78qbOU.cjs → transcription-BvtsrzRG.cjs} +13 -13
  248. package/dist/src/{transcription-DAtxHhAM.js → transcription-CaMivnjG.js} +13 -13
  249. package/dist/src/{transcription-QHh3AH6Z.js → transcription-DOMMTu01.js} +14 -14
  250. package/dist/src/{transcription-LNZTNUUL.js → transcription-Hb3VnC4M.js} +13 -13
  251. package/dist/src/{transform-DOcQeLld.cjs → transform-0BwoBsvO.cjs} +19 -5
  252. package/dist/src/{transform-DGxXocjk.js → transform-B2-jIv68.js} +8 -6
  253. package/dist/src/{transform-DECvGmzp.js → transform-BqPkNPYm.js} +4 -4
  254. package/dist/src/{transform-aa6tmVpZ.js → transform-BzK09Q_9.js} +4 -4
  255. package/dist/src/transform-ChNIpHz7.js +6 -0
  256. package/dist/src/{transform-Cgi24fJ7.js → transform-DrleutM3.js} +8 -6
  257. package/dist/src/{transform-DGLazrMm.js → transform-DyDAwEpE.js} +8 -6
  258. package/dist/src/transform-PtQ6rAE3.cjs +5 -0
  259. package/dist/src/{transform-CzK1Q0zl.cjs → transform-ZrG2dvlo.cjs} +4 -4
  260. package/dist/src/{transform-DilY9wbS.js → transform-ljLYHEPh.js} +4 -4
  261. package/dist/src/{transformersAvailability-CEVM2GNQ.js → transformersAvailability-BGkzavwb.js} +1 -1
  262. package/dist/src/{transformersAvailability-CwayUSlh.cjs → transformersAvailability-DKoRtQLy.cjs} +1 -1
  263. package/dist/src/{types-CH3Ge2sE.js → types-CIhFeUC4.js} +45 -11
  264. package/dist/src/{types-CN_TZ2GJ.js → types-Cd3ygw8W.js} +45 -11
  265. package/dist/src/{types-LJ0r3wbR.cjs → types-D8cGDZbL.cjs} +46 -12
  266. package/dist/src/{types-CLKiCBW3.js → types-q8GXGF65.js} +45 -11
  267. package/dist/src/{util-CchiqXh_.cjs → util--9u9UVCt.cjs} +3 -3
  268. package/dist/src/{util-5cB-L7U3.js → util-BLvy9qfE.js} +7 -11
  269. package/dist/src/{util-YT5HPZaS.js → util-Bm3E9jpK.js} +7 -11
  270. package/dist/src/{util-6-GqIvzS.js → util-BtoGs5Cb.js} +18 -4
  271. package/dist/src/{util-Db0a0AFH.cjs → util-CFj4YKIn.cjs} +18 -4
  272. package/dist/src/{util-Dlz_Wvgm.js → util-CMMkIxfU.js} +7 -11
  273. package/dist/src/{util-Betm42rL.js → util-CgDCK4KI.js} +18 -4
  274. package/dist/src/{util-Yz-1aEhW.cjs → util-CuLo2pMR.cjs} +7 -11
  275. package/dist/src/{util-C-PPYSMq.js → util-DM2rTn_6.js} +18 -4
  276. package/dist/src/{util-B7T3SiBS.js → util-DMFeUvLz.js} +3 -3
  277. package/dist/src/{util-ZZH-3QZz.js → util-DbVG-yZU.js} +3 -3
  278. package/dist/src/{util-DaWTWKBK.js → util-vNmDL5DT.js} +3 -3
  279. package/dist/src/{utils-XiOAgly5.js → utils-CFxO9KGo.js} +2 -2
  280. package/dist/src/{utils-f2-Moju7.js → utils-DEuL4VNB.js} +2 -2
  281. package/dist/src/{utils-Cz9qXqII.cjs → utils-DKw8mrgr.cjs} +3 -3
  282. package/dist/src/{utils-dLokC-eR.js → utils-DOjD4dTC.js} +2 -2
  283. package/dist/tsconfig.tsbuildinfo +1 -1
  284. package/package.json +38 -38
  285. package/dist/src/app/assets/index-BFCZg7hQ.js +0 -439
  286. package/dist/src/app/assets/index-NCn4eVBv.css +0 -1
  287. package/dist/src/app/assets/sync-9qqYcY-B.js +0 -4
  288. package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
  289. package/dist/src/app/assets/vendor-markdown-0tekx3KX.js +0 -29
  290. package/dist/src/cache-Bbn1Nyrd.cjs +0 -5
  291. package/dist/src/cache-BwsMSda7.js +0 -6
  292. package/dist/src/cloud-DmE0EwsY.js +0 -4
  293. package/dist/src/eval-17JizQIv.js +0 -15
  294. package/dist/src/evalResult-Cqj8pldJ.js +0 -12
  295. package/dist/src/evalResult-DvcJAWJU.cjs +0 -10
  296. package/dist/src/evalResult-Hftn-S_i.js +0 -10
  297. package/dist/src/evaluator-B2CFNt-P.js +0 -36
  298. package/dist/src/fetch-KV5kNASw.js +0 -5
  299. package/dist/src/graders-Bu0H9nXi.js +0 -32
  300. package/dist/src/graders-Cfhkvx-e.js +0 -34
  301. package/dist/src/graders-DClJVpGP.cjs +0 -32
  302. package/dist/src/graders-DcnJsrMO.js +0 -32
  303. package/dist/src/providers-C1rOSHiR.js +0 -32
  304. package/dist/src/providers-CxmDwEFf.cjs +0 -31
  305. package/dist/src/providers-Dodakqr0.js +0 -30
  306. package/dist/src/providers-GIQ2TcsA.js +0 -30
  307. package/dist/src/rubyUtils-BUHu6PhO.js +0 -5
  308. package/dist/src/rubyUtils-CP42kMvq.cjs +0 -4
  309. package/dist/src/server-B1vi21hA.js +0 -7
  310. package/dist/src/server-Cm9Kai_h.cjs +0 -5
  311. package/dist/src/store-BNmZ1KAz.cjs +0 -5
  312. package/dist/src/store-BltJg2cd.js +0 -6
  313. package/dist/src/telemetry-5BCRNBbe.cjs +0 -5
  314. package/dist/src/telemetry-D4W5hboe.js +0 -7
  315. package/dist/src/transform-DTGDnAzW.js +0 -6
  316. package/dist/src/transform-m3qNw4KP.cjs +0 -5
@@ -1,10 +1,43 @@
1
- const require_logger = require("./logger-Cp1GPUjj.cjs");
2
- const require_esm = require("./esm-CnNt7sI4.cjs");
3
- const require_fetch = require("./fetch-BxUk8odA.cjs");
4
- const require_openai = require("./openai-Cuif0GEt.cjs");
1
+ const require_logger = require("./logger-D5iKBpu_.cjs");
2
+ const require_esm = require("./esm-CipptfDu.cjs");
3
+ const require_fetch = require("./fetch-BnR9wSnm.cjs");
4
+ const require_openai = require("./openai-CoxGAQwn.cjs");
5
5
  let path = require("path");
6
6
  path = require_logger.__toESM(path);
7
7
  let _openai_agents = require("@openai/agents");
8
+ //#region src/providers/openai/agents-model-settings.ts
9
+ function resolveModelSettings(modelSettings) {
10
+ if (!modelSettings) return;
11
+ const retry = modelSettings.retry ? {
12
+ ...modelSettings.retry,
13
+ policy: resolveRetryPolicy(modelSettings.retry.policy)
14
+ } : void 0;
15
+ return {
16
+ ...modelSettings,
17
+ retry
18
+ };
19
+ }
20
+ function resolveRetryPolicy(policy) {
21
+ if (!policy) return;
22
+ if (typeof policy === "function") return policy;
23
+ if (typeof policy === "string") switch (policy) {
24
+ case "never": return _openai_agents.retryPolicies.never();
25
+ case "providerSuggested": return _openai_agents.retryPolicies.providerSuggested();
26
+ case "networkError": return _openai_agents.retryPolicies.networkError();
27
+ case "retryAfter": return _openai_agents.retryPolicies.retryAfter();
28
+ default: return;
29
+ }
30
+ if ("httpStatus" in policy) return _openai_agents.retryPolicies.httpStatus(policy.httpStatus);
31
+ if ("any" in policy) {
32
+ const policies = policy.any.map((nestedPolicy) => resolveRetryPolicy(nestedPolicy)).filter((nestedPolicy) => !!nestedPolicy);
33
+ return policies.length ? _openai_agents.retryPolicies.any(...policies) : void 0;
34
+ }
35
+ if ("all" in policy) {
36
+ const policies = policy.all.map((nestedPolicy) => resolveRetryPolicy(nestedPolicy)).filter((nestedPolicy) => !!nestedPolicy);
37
+ return policies.length ? _openai_agents.retryPolicies.all(...policies) : void 0;
38
+ }
39
+ }
40
+ //#endregion
8
41
  //#region src/providers/openai/agents-loader.ts
9
42
  /**
10
43
  * Load agent definition from file path or return inline definition
@@ -29,6 +62,82 @@ async function loadAgentDefinition(agentConfig) {
29
62
  throw new Error("Invalid agent configuration: expected Agent instance, file:// URL, or inline definition");
30
63
  }
31
64
  /**
65
+ * Load tools from file path or return inline definitions
66
+ */
67
+ async function loadTools(toolsConfig) {
68
+ if (!toolsConfig) return;
69
+ if (typeof toolsConfig === "string" && toolsConfig.startsWith("file://")) {
70
+ require_logger.logger.debug("[AgentsLoader] Loading tools from file", { path: toolsConfig });
71
+ return await loadToolsFromFile(toolsConfig);
72
+ }
73
+ if (Array.isArray(toolsConfig)) {
74
+ require_logger.logger.debug("[AgentsLoader] Using inline tool definitions");
75
+ return normalizeTools(toolsConfig);
76
+ }
77
+ require_logger.logger.debug("[AgentsLoader] Invalid tools configuration", {
78
+ type: typeof toolsConfig,
79
+ isArray: Array.isArray(toolsConfig)
80
+ });
81
+ throw new Error("Invalid tools configuration: expected file:// URL or array");
82
+ }
83
+ /**
84
+ * Load handoffs from file path or return inline definitions
85
+ */
86
+ async function loadHandoffs(handoffsConfig) {
87
+ if (!handoffsConfig) return;
88
+ if (typeof handoffsConfig === "string" && handoffsConfig.startsWith("file://")) {
89
+ require_logger.logger.debug("[AgentsLoader] Loading handoffs from file", { path: handoffsConfig });
90
+ return await loadHandoffsFromFile(handoffsConfig);
91
+ }
92
+ if (Array.isArray(handoffsConfig)) {
93
+ require_logger.logger.debug("[AgentsLoader] Using inline handoff definitions");
94
+ return normalizeHandoffs(handoffsConfig);
95
+ }
96
+ require_logger.logger.debug("[AgentsLoader] Invalid handoffs configuration", {
97
+ type: typeof handoffsConfig,
98
+ isArray: Array.isArray(handoffsConfig)
99
+ });
100
+ throw new Error("Invalid handoffs configuration: expected file:// URL or array");
101
+ }
102
+ /**
103
+ * Load input guardrails from file path or return inline definitions
104
+ */
105
+ async function loadInputGuardrails(guardrailsConfig) {
106
+ if (!guardrailsConfig) return;
107
+ if (typeof guardrailsConfig === "string" && guardrailsConfig.startsWith("file://")) {
108
+ require_logger.logger.debug("[AgentsLoader] Loading input guardrails from file", { path: guardrailsConfig });
109
+ return await loadArrayFromFile(guardrailsConfig, "input guardrails");
110
+ }
111
+ if (Array.isArray(guardrailsConfig)) {
112
+ require_logger.logger.debug("[AgentsLoader] Using inline input guardrails");
113
+ return guardrailsConfig;
114
+ }
115
+ require_logger.logger.debug("[AgentsLoader] Invalid input guardrails configuration", {
116
+ type: typeof guardrailsConfig,
117
+ isArray: Array.isArray(guardrailsConfig)
118
+ });
119
+ throw new Error("Invalid input guardrails configuration: expected file:// URL or array");
120
+ }
121
+ /**
122
+ * Load output guardrails from file path or return inline definitions
123
+ */
124
+ async function loadOutputGuardrails(guardrailsConfig) {
125
+ if (!guardrailsConfig) return;
126
+ if (typeof guardrailsConfig === "string" && guardrailsConfig.startsWith("file://")) {
127
+ require_logger.logger.debug("[AgentsLoader] Loading output guardrails from file", { path: guardrailsConfig });
128
+ return await loadArrayFromFile(guardrailsConfig, "output guardrails");
129
+ }
130
+ if (Array.isArray(guardrailsConfig)) {
131
+ require_logger.logger.debug("[AgentsLoader] Using inline output guardrails");
132
+ return guardrailsConfig;
133
+ }
134
+ require_logger.logger.debug("[AgentsLoader] Invalid output guardrails configuration", {
135
+ type: typeof guardrailsConfig,
136
+ isArray: Array.isArray(guardrailsConfig)
137
+ });
138
+ throw new Error("Invalid output guardrails configuration: expected file:// URL or array");
139
+ }
140
+ /**
32
141
  * Load agent from file
33
142
  */
34
143
  async function loadAgentFromFile(filePath) {
@@ -48,19 +157,39 @@ async function loadAgentFromFile(filePath) {
48
157
  }
49
158
  }
50
159
  /**
160
+ * Load tools from file
161
+ */
162
+ async function loadToolsFromFile(filePath) {
163
+ return await normalizeTools(await loadArrayFromFile(filePath, "tools")) ?? [];
164
+ }
165
+ /**
166
+ * Load handoffs from file
167
+ */
168
+ async function loadHandoffsFromFile(filePath) {
169
+ return await normalizeHandoffs(await loadArrayFromFile(filePath, "handoffs")) ?? [];
170
+ }
171
+ /**
51
172
  * Create an Agent instance from an inline definition
52
173
  */
53
174
  async function createAgentFromDefinition(definition) {
54
175
  try {
55
- const { Agent } = await import("@openai/agents");
56
- return new Agent({
176
+ const tools = await normalizeTools(definition.tools);
177
+ const handoffs = await normalizeHandoffs(definition.handoffs);
178
+ return new _openai_agents.Agent({
57
179
  name: definition.name,
58
180
  instructions: definition.instructions,
181
+ prompt: definition.prompt,
59
182
  model: definition.model,
183
+ modelSettings: resolveModelSettings(definition.modelSettings),
60
184
  handoffDescription: definition.handoffDescription,
61
185
  outputType: definition.outputType,
62
- tools: definition.tools,
63
- handoffs: definition.handoffs
186
+ tools,
187
+ handoffs,
188
+ inputGuardrails: definition.inputGuardrails,
189
+ outputGuardrails: definition.outputGuardrails,
190
+ mcpServers: definition.mcpServers,
191
+ toolUseBehavior: definition.toolUseBehavior,
192
+ resetToolChoice: definition.resetToolChoice
64
193
  });
65
194
  } catch (error) {
66
195
  require_logger.logger.error("[AgentsLoader] Failed to create agent from definition", {
@@ -77,7 +206,52 @@ async function createAgentFromDefinition(definition) {
77
206
  * Check if a value is an Agent instance
78
207
  */
79
208
  function isAgentInstance(value) {
80
- return value && typeof value === "object" && "name" in value && "instructions" in value && typeof value.name === "string";
209
+ return value instanceof _openai_agents.Agent;
210
+ }
211
+ function isToolInstance(value) {
212
+ return !!value && typeof value === "object" && "type" in value && typeof value.type === "string";
213
+ }
214
+ function isHandoffInstance(value) {
215
+ return !!value && typeof value === "object" && "agent" in value && "getHandoffAsFunctionTool" in value && typeof value.getHandoffAsFunctionTool === "function";
216
+ }
217
+ async function normalizeTools(definitions) {
218
+ if (!definitions?.length) return;
219
+ return definitions.map((definition) => {
220
+ if (isToolInstance(definition)) return definition;
221
+ return (0, _openai_agents.tool)({
222
+ name: definition.name,
223
+ description: definition.description,
224
+ parameters: definition.parameters,
225
+ strict: definition.strict ?? true,
226
+ deferLoading: definition.deferLoading,
227
+ execute: typeof definition.execute === "function" ? definition.execute : async () => definition.execute
228
+ });
229
+ });
230
+ }
231
+ async function normalizeHandoffs(definitions) {
232
+ if (!definitions?.length) return;
233
+ return Promise.all(definitions.map(async (definition) => {
234
+ if (isAgentInstance(definition) || isHandoffInstance(definition)) return definition;
235
+ const agent = await loadAgentDefinition(definition.agent);
236
+ if (!definition.description) return agent;
237
+ return (0, _openai_agents.handoff)(agent, { toolDescriptionOverride: definition.description });
238
+ }));
239
+ }
240
+ async function loadArrayFromFile(filePath, label) {
241
+ const resolvedPath = resolveFilePath(filePath);
242
+ require_logger.logger.debug(`[AgentsLoader] Loading ${label} from resolved path`, { path: resolvedPath });
243
+ try {
244
+ const module = await require_esm.importModule(resolvedPath);
245
+ const exported = module.default || module;
246
+ if (!Array.isArray(exported)) throw new Error(`File ${resolvedPath} does not export an array of ${label}`);
247
+ return exported;
248
+ } catch (error) {
249
+ require_logger.logger.error(`[AgentsLoader] Failed to load ${label} from file`, {
250
+ path: resolvedPath,
251
+ error
252
+ });
253
+ throw new Error(`Failed to load ${label} from ${resolvedPath}: ${error}`);
254
+ }
81
255
  }
82
256
  /**
83
257
  * Resolve file:// path to absolute file system path
@@ -329,8 +503,27 @@ var OpenAiAgentsProvider = class extends require_openai.OpenAiGenericProvider {
329
503
  if (!this.agentConfig.agent) throw new Error("No agent configuration provided");
330
504
  try {
331
505
  const agent = await loadAgentDefinition(this.agentConfig.agent);
332
- require_logger.logger.debug("[AgentsProvider] Agent initialized successfully", { name: agent.name });
333
- return agent;
506
+ const [tools, handoffs, inputGuardrails, outputGuardrails] = await Promise.all([
507
+ loadTools(this.agentConfig.tools),
508
+ loadHandoffs(this.agentConfig.handoffs),
509
+ loadInputGuardrails(this.agentConfig.inputGuardrails),
510
+ loadOutputGuardrails(this.agentConfig.outputGuardrails)
511
+ ]);
512
+ const configuredAgent = agent.clone({
513
+ tools: mergeArrays(agent.tools, tools),
514
+ handoffs: mergeArrays(agent.handoffs, handoffs),
515
+ inputGuardrails: mergeArrays(agent.inputGuardrails, inputGuardrails),
516
+ outputGuardrails: mergeArrays(agent.outputGuardrails, outputGuardrails)
517
+ });
518
+ const mockAwareAgent = this.wrapToolsIfNeeded(configuredAgent);
519
+ require_logger.logger.debug("[AgentsProvider] Agent initialized successfully", {
520
+ name: mockAwareAgent.name,
521
+ toolCount: mockAwareAgent.tools.length,
522
+ handoffCount: mockAwareAgent.handoffs.length,
523
+ inputGuardrailCount: mockAwareAgent.inputGuardrails.length,
524
+ outputGuardrailCount: mockAwareAgent.outputGuardrails.length
525
+ });
526
+ return mockAwareAgent;
334
527
  } catch (error) {
335
528
  require_logger.logger.error("[AgentsProvider] Failed to initialize agent", { error });
336
529
  throw new Error(`Failed to initialize agent: ${error}`);
@@ -389,7 +582,7 @@ var OpenAiAgentsProvider = class extends require_openai.OpenAiGenericProvider {
389
582
  signal: callApiOptions?.abortSignal
390
583
  };
391
584
  if (this.agentConfig.model || this.modelName) runOptions.model = this.agentConfig.model || this.modelName;
392
- if (this.agentConfig.modelSettings) runOptions.modelSettings = this.agentConfig.modelSettings;
585
+ if (this.agentConfig.modelSettings) runOptions.modelSettings = resolveModelSettings(this.agentConfig.modelSettings);
393
586
  const result = await (0, _openai_agents.getOrCreateTrace)(async () => {
394
587
  return await (0, _openai_agents.run)(this.agent, prompt, runOptions);
395
588
  });
@@ -424,8 +617,28 @@ var OpenAiAgentsProvider = class extends require_openai.OpenAiGenericProvider {
424
617
  * Calculate cost from agent result
425
618
  */
426
619
  calculateCost(_result) {}
620
+ wrapToolsIfNeeded(agent) {
621
+ if (this.agentConfig.executeTools !== false && this.agentConfig.executeTools !== "mock") return agent;
622
+ const toolMocks = this.agentConfig.toolMocks ?? {};
623
+ const tools = agent.tools.map((tool) => {
624
+ if (tool.type !== "function") return tool;
625
+ const mockValue = toolMocks[tool.name];
626
+ return {
627
+ ...tool,
628
+ invoke: async () => mockValue ?? {
629
+ mocked: true,
630
+ tool: tool.name
631
+ }
632
+ };
633
+ });
634
+ return agent.clone({ tools });
635
+ }
427
636
  };
637
+ function mergeArrays(existing, additions) {
638
+ if (!existing?.length && !additions?.length) return;
639
+ return [...existing ?? [], ...additions ?? []];
640
+ }
428
641
  //#endregion
429
642
  exports.OpenAiAgentsProvider = OpenAiAgentsProvider;
430
643
 
431
- //# sourceMappingURL=agents-B0f4HICh.cjs.map
644
+ //# sourceMappingURL=agents-CAYbM7qD.cjs.map
@@ -1,9 +1,9 @@
1
- import { i as logger, y as getEnvInt } from "./logger-DLcq4dWf.js";
2
- import "./fetch-4M3YRaqL.js";
3
- import "./accounts-BgNJDBE6.js";
4
- import { a as isCacheEnabled, i as getCache } from "./cache-D3eqDYGU.js";
5
- import { n as telemetry } from "./telemetry-DMb2Mpfm.js";
6
- import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-fEDN28WM.js";
1
+ import { S as getEnvInt, a as logger } from "./logger-DO8_zM18.js";
2
+ import "./fetch-CVAtKnI3.js";
3
+ import { a as isCacheEnabled, i as getCache } from "./cache-CaT5tPgo.js";
4
+ import "./accounts-B2XmGjty.js";
5
+ import { t as telemetry } from "./telemetry-BugWqKiu.js";
6
+ import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-CqzQ4K8j.js";
7
7
  //#region src/providers/bedrock/agents.ts
8
8
  /**
9
9
  * AWS Bedrock Agents provider for invoking deployed AI agents.
@@ -230,4 +230,4 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
230
230
  //#endregion
231
231
  export { AwsBedrockAgentsProvider };
232
232
 
233
- //# sourceMappingURL=agents-CVIn-Utx.js.map
233
+ //# sourceMappingURL=agents-CLQ-P15P.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { S as getEnvInt, o as logger } from "./logger-KkObSCzq.js";
3
- import "./fetch-BMv0O527.js";
4
- import "./accounts-CMqkzrVf.js";
5
- import "./cloud-Bc9526yV.js";
6
- import { r as telemetry } from "./telemetry-C2YDkUQH.js";
7
- import { o as getCache, s as isCacheEnabled } from "./cache-CG0SlR1d.js";
8
- import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-B4QJRyFS.js";
2
+ import { T as getEnvInt, s as logger } from "./logger-BcJBzSSA.js";
3
+ import "./fetch-DoVRJZhJ.js";
4
+ import "./accounts-CFLK3mnD.js";
5
+ import "./cloud-z8KZpUoa.js";
6
+ import { r as telemetry } from "./telemetry-BnH5VJAU.js";
7
+ import { o as getCache, s as isCacheEnabled } from "./cache-DSqR6ezl.js";
8
+ import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-CKjwebIH.js";
9
9
  //#region src/providers/bedrock/agents.ts
10
10
  /**
11
11
  * AWS Bedrock Agents provider for invoking deployed AI agents.
@@ -232,4 +232,4 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
232
232
  //#endregion
233
233
  export { AwsBedrockAgentsProvider };
234
234
 
235
- //# sourceMappingURL=agents-DeH4Gu94.js.map
235
+ //# sourceMappingURL=agents-CgBniSlI.js.map
@@ -1,9 +1,42 @@
1
- import { i as logger, w as state } from "./logger-DLcq4dWf.js";
2
- import { t as fetchWithProxy } from "./fetch-4M3YRaqL.js";
3
- import { r as importModule } from "./esm-CaIwzWR5.js";
4
- import { t as OpenAiGenericProvider } from "./openai-j-sE2O7r.js";
1
+ import { D as state, a as logger } from "./logger-BnkjG2jt.js";
2
+ import { t as fetchWithProxy } from "./fetch-BiYv2BZc.js";
3
+ import { r as importModule } from "./esm-CKWP3u_P.js";
4
+ import { t as OpenAiGenericProvider } from "./openai-D6wITiVn.js";
5
5
  import path from "path";
6
- import { BatchTraceProcessor, addTraceProcessor, getOrCreateTrace, run, startTraceExportLoop } from "@openai/agents";
6
+ import { Agent, BatchTraceProcessor, addTraceProcessor, getOrCreateTrace, handoff, retryPolicies, run, startTraceExportLoop, tool } from "@openai/agents";
7
+ //#region src/providers/openai/agents-model-settings.ts
8
+ function resolveModelSettings(modelSettings) {
9
+ if (!modelSettings) return;
10
+ const retry = modelSettings.retry ? {
11
+ ...modelSettings.retry,
12
+ policy: resolveRetryPolicy(modelSettings.retry.policy)
13
+ } : void 0;
14
+ return {
15
+ ...modelSettings,
16
+ retry
17
+ };
18
+ }
19
+ function resolveRetryPolicy(policy) {
20
+ if (!policy) return;
21
+ if (typeof policy === "function") return policy;
22
+ if (typeof policy === "string") switch (policy) {
23
+ case "never": return retryPolicies.never();
24
+ case "providerSuggested": return retryPolicies.providerSuggested();
25
+ case "networkError": return retryPolicies.networkError();
26
+ case "retryAfter": return retryPolicies.retryAfter();
27
+ default: return;
28
+ }
29
+ if ("httpStatus" in policy) return retryPolicies.httpStatus(policy.httpStatus);
30
+ if ("any" in policy) {
31
+ const policies = policy.any.map((nestedPolicy) => resolveRetryPolicy(nestedPolicy)).filter((nestedPolicy) => !!nestedPolicy);
32
+ return policies.length ? retryPolicies.any(...policies) : void 0;
33
+ }
34
+ if ("all" in policy) {
35
+ const policies = policy.all.map((nestedPolicy) => resolveRetryPolicy(nestedPolicy)).filter((nestedPolicy) => !!nestedPolicy);
36
+ return policies.length ? retryPolicies.all(...policies) : void 0;
37
+ }
38
+ }
39
+ //#endregion
7
40
  //#region src/providers/openai/agents-loader.ts
8
41
  /**
9
42
  * Load agent definition from file path or return inline definition
@@ -28,6 +61,82 @@ async function loadAgentDefinition(agentConfig) {
28
61
  throw new Error("Invalid agent configuration: expected Agent instance, file:// URL, or inline definition");
29
62
  }
30
63
  /**
64
+ * Load tools from file path or return inline definitions
65
+ */
66
+ async function loadTools(toolsConfig) {
67
+ if (!toolsConfig) return;
68
+ if (typeof toolsConfig === "string" && toolsConfig.startsWith("file://")) {
69
+ logger.debug("[AgentsLoader] Loading tools from file", { path: toolsConfig });
70
+ return await loadToolsFromFile(toolsConfig);
71
+ }
72
+ if (Array.isArray(toolsConfig)) {
73
+ logger.debug("[AgentsLoader] Using inline tool definitions");
74
+ return normalizeTools(toolsConfig);
75
+ }
76
+ logger.debug("[AgentsLoader] Invalid tools configuration", {
77
+ type: typeof toolsConfig,
78
+ isArray: Array.isArray(toolsConfig)
79
+ });
80
+ throw new Error("Invalid tools configuration: expected file:// URL or array");
81
+ }
82
+ /**
83
+ * Load handoffs from file path or return inline definitions
84
+ */
85
+ async function loadHandoffs(handoffsConfig) {
86
+ if (!handoffsConfig) return;
87
+ if (typeof handoffsConfig === "string" && handoffsConfig.startsWith("file://")) {
88
+ logger.debug("[AgentsLoader] Loading handoffs from file", { path: handoffsConfig });
89
+ return await loadHandoffsFromFile(handoffsConfig);
90
+ }
91
+ if (Array.isArray(handoffsConfig)) {
92
+ logger.debug("[AgentsLoader] Using inline handoff definitions");
93
+ return normalizeHandoffs(handoffsConfig);
94
+ }
95
+ logger.debug("[AgentsLoader] Invalid handoffs configuration", {
96
+ type: typeof handoffsConfig,
97
+ isArray: Array.isArray(handoffsConfig)
98
+ });
99
+ throw new Error("Invalid handoffs configuration: expected file:// URL or array");
100
+ }
101
+ /**
102
+ * Load input guardrails from file path or return inline definitions
103
+ */
104
+ async function loadInputGuardrails(guardrailsConfig) {
105
+ if (!guardrailsConfig) return;
106
+ if (typeof guardrailsConfig === "string" && guardrailsConfig.startsWith("file://")) {
107
+ logger.debug("[AgentsLoader] Loading input guardrails from file", { path: guardrailsConfig });
108
+ return await loadArrayFromFile(guardrailsConfig, "input guardrails");
109
+ }
110
+ if (Array.isArray(guardrailsConfig)) {
111
+ logger.debug("[AgentsLoader] Using inline input guardrails");
112
+ return guardrailsConfig;
113
+ }
114
+ logger.debug("[AgentsLoader] Invalid input guardrails configuration", {
115
+ type: typeof guardrailsConfig,
116
+ isArray: Array.isArray(guardrailsConfig)
117
+ });
118
+ throw new Error("Invalid input guardrails configuration: expected file:// URL or array");
119
+ }
120
+ /**
121
+ * Load output guardrails from file path or return inline definitions
122
+ */
123
+ async function loadOutputGuardrails(guardrailsConfig) {
124
+ if (!guardrailsConfig) return;
125
+ if (typeof guardrailsConfig === "string" && guardrailsConfig.startsWith("file://")) {
126
+ logger.debug("[AgentsLoader] Loading output guardrails from file", { path: guardrailsConfig });
127
+ return await loadArrayFromFile(guardrailsConfig, "output guardrails");
128
+ }
129
+ if (Array.isArray(guardrailsConfig)) {
130
+ logger.debug("[AgentsLoader] Using inline output guardrails");
131
+ return guardrailsConfig;
132
+ }
133
+ logger.debug("[AgentsLoader] Invalid output guardrails configuration", {
134
+ type: typeof guardrailsConfig,
135
+ isArray: Array.isArray(guardrailsConfig)
136
+ });
137
+ throw new Error("Invalid output guardrails configuration: expected file:// URL or array");
138
+ }
139
+ /**
31
140
  * Load agent from file
32
141
  */
33
142
  async function loadAgentFromFile(filePath) {
@@ -47,19 +156,39 @@ async function loadAgentFromFile(filePath) {
47
156
  }
48
157
  }
49
158
  /**
159
+ * Load tools from file
160
+ */
161
+ async function loadToolsFromFile(filePath) {
162
+ return await normalizeTools(await loadArrayFromFile(filePath, "tools")) ?? [];
163
+ }
164
+ /**
165
+ * Load handoffs from file
166
+ */
167
+ async function loadHandoffsFromFile(filePath) {
168
+ return await normalizeHandoffs(await loadArrayFromFile(filePath, "handoffs")) ?? [];
169
+ }
170
+ /**
50
171
  * Create an Agent instance from an inline definition
51
172
  */
52
173
  async function createAgentFromDefinition(definition) {
53
174
  try {
54
- const { Agent } = await import("@openai/agents");
175
+ const tools = await normalizeTools(definition.tools);
176
+ const handoffs = await normalizeHandoffs(definition.handoffs);
55
177
  return new Agent({
56
178
  name: definition.name,
57
179
  instructions: definition.instructions,
180
+ prompt: definition.prompt,
58
181
  model: definition.model,
182
+ modelSettings: resolveModelSettings(definition.modelSettings),
59
183
  handoffDescription: definition.handoffDescription,
60
184
  outputType: definition.outputType,
61
- tools: definition.tools,
62
- handoffs: definition.handoffs
185
+ tools,
186
+ handoffs,
187
+ inputGuardrails: definition.inputGuardrails,
188
+ outputGuardrails: definition.outputGuardrails,
189
+ mcpServers: definition.mcpServers,
190
+ toolUseBehavior: definition.toolUseBehavior,
191
+ resetToolChoice: definition.resetToolChoice
63
192
  });
64
193
  } catch (error) {
65
194
  logger.error("[AgentsLoader] Failed to create agent from definition", {
@@ -76,7 +205,52 @@ async function createAgentFromDefinition(definition) {
76
205
  * Check if a value is an Agent instance
77
206
  */
78
207
  function isAgentInstance(value) {
79
- return value && typeof value === "object" && "name" in value && "instructions" in value && typeof value.name === "string";
208
+ return value instanceof Agent;
209
+ }
210
+ function isToolInstance(value) {
211
+ return !!value && typeof value === "object" && "type" in value && typeof value.type === "string";
212
+ }
213
+ function isHandoffInstance(value) {
214
+ return !!value && typeof value === "object" && "agent" in value && "getHandoffAsFunctionTool" in value && typeof value.getHandoffAsFunctionTool === "function";
215
+ }
216
+ async function normalizeTools(definitions) {
217
+ if (!definitions?.length) return;
218
+ return definitions.map((definition) => {
219
+ if (isToolInstance(definition)) return definition;
220
+ return tool({
221
+ name: definition.name,
222
+ description: definition.description,
223
+ parameters: definition.parameters,
224
+ strict: definition.strict ?? true,
225
+ deferLoading: definition.deferLoading,
226
+ execute: typeof definition.execute === "function" ? definition.execute : async () => definition.execute
227
+ });
228
+ });
229
+ }
230
+ async function normalizeHandoffs(definitions) {
231
+ if (!definitions?.length) return;
232
+ return Promise.all(definitions.map(async (definition) => {
233
+ if (isAgentInstance(definition) || isHandoffInstance(definition)) return definition;
234
+ const agent = await loadAgentDefinition(definition.agent);
235
+ if (!definition.description) return agent;
236
+ return handoff(agent, { toolDescriptionOverride: definition.description });
237
+ }));
238
+ }
239
+ async function loadArrayFromFile(filePath, label) {
240
+ const resolvedPath = resolveFilePath(filePath);
241
+ logger.debug(`[AgentsLoader] Loading ${label} from resolved path`, { path: resolvedPath });
242
+ try {
243
+ const module = await importModule(resolvedPath);
244
+ const exported = module.default || module;
245
+ if (!Array.isArray(exported)) throw new Error(`File ${resolvedPath} does not export an array of ${label}`);
246
+ return exported;
247
+ } catch (error) {
248
+ logger.error(`[AgentsLoader] Failed to load ${label} from file`, {
249
+ path: resolvedPath,
250
+ error
251
+ });
252
+ throw new Error(`Failed to load ${label} from ${resolvedPath}: ${error}`);
253
+ }
80
254
  }
81
255
  /**
82
256
  * Resolve file:// path to absolute file system path
@@ -328,8 +502,27 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
328
502
  if (!this.agentConfig.agent) throw new Error("No agent configuration provided");
329
503
  try {
330
504
  const agent = await loadAgentDefinition(this.agentConfig.agent);
331
- logger.debug("[AgentsProvider] Agent initialized successfully", { name: agent.name });
332
- return agent;
505
+ const [tools, handoffs, inputGuardrails, outputGuardrails] = await Promise.all([
506
+ loadTools(this.agentConfig.tools),
507
+ loadHandoffs(this.agentConfig.handoffs),
508
+ loadInputGuardrails(this.agentConfig.inputGuardrails),
509
+ loadOutputGuardrails(this.agentConfig.outputGuardrails)
510
+ ]);
511
+ const configuredAgent = agent.clone({
512
+ tools: mergeArrays(agent.tools, tools),
513
+ handoffs: mergeArrays(agent.handoffs, handoffs),
514
+ inputGuardrails: mergeArrays(agent.inputGuardrails, inputGuardrails),
515
+ outputGuardrails: mergeArrays(agent.outputGuardrails, outputGuardrails)
516
+ });
517
+ const mockAwareAgent = this.wrapToolsIfNeeded(configuredAgent);
518
+ logger.debug("[AgentsProvider] Agent initialized successfully", {
519
+ name: mockAwareAgent.name,
520
+ toolCount: mockAwareAgent.tools.length,
521
+ handoffCount: mockAwareAgent.handoffs.length,
522
+ inputGuardrailCount: mockAwareAgent.inputGuardrails.length,
523
+ outputGuardrailCount: mockAwareAgent.outputGuardrails.length
524
+ });
525
+ return mockAwareAgent;
333
526
  } catch (error) {
334
527
  logger.error("[AgentsProvider] Failed to initialize agent", { error });
335
528
  throw new Error(`Failed to initialize agent: ${error}`);
@@ -388,7 +581,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
388
581
  signal: callApiOptions?.abortSignal
389
582
  };
390
583
  if (this.agentConfig.model || this.modelName) runOptions.model = this.agentConfig.model || this.modelName;
391
- if (this.agentConfig.modelSettings) runOptions.modelSettings = this.agentConfig.modelSettings;
584
+ if (this.agentConfig.modelSettings) runOptions.modelSettings = resolveModelSettings(this.agentConfig.modelSettings);
392
585
  const result = await getOrCreateTrace(async () => {
393
586
  return await run(this.agent, prompt, runOptions);
394
587
  });
@@ -423,8 +616,28 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
423
616
  * Calculate cost from agent result
424
617
  */
425
618
  calculateCost(_result) {}
619
+ wrapToolsIfNeeded(agent) {
620
+ if (this.agentConfig.executeTools !== false && this.agentConfig.executeTools !== "mock") return agent;
621
+ const toolMocks = this.agentConfig.toolMocks ?? {};
622
+ const tools = agent.tools.map((tool) => {
623
+ if (tool.type !== "function") return tool;
624
+ const mockValue = toolMocks[tool.name];
625
+ return {
626
+ ...tool,
627
+ invoke: async () => mockValue ?? {
628
+ mocked: true,
629
+ tool: tool.name
630
+ }
631
+ };
632
+ });
633
+ return agent.clone({ tools });
634
+ }
426
635
  };
636
+ function mergeArrays(existing, additions) {
637
+ if (!existing?.length && !additions?.length) return;
638
+ return [...existing ?? [], ...additions ?? []];
639
+ }
427
640
  //#endregion
428
641
  export { OpenAiAgentsProvider };
429
642
 
430
- //# sourceMappingURL=agents-CXknwsFX.js.map
643
+ //# sourceMappingURL=agents-DSSTV4bv.js.map
@@ -1,9 +1,9 @@
1
- import { i as logger, y as getEnvInt } from "./logger-CT3IKMKA.js";
2
- import "./fetch-60Gzydls.js";
3
- import { a as isCacheEnabled, i as getCache } from "./cache-8XhNqPKW.js";
4
- import "./accounts-xrUGFA6n.js";
5
- import { t as telemetry } from "./telemetry-C15ziL8u.js";
6
- import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-B0tcrnq_.js";
1
+ import { S as getEnvInt, a as logger } from "./logger-BnkjG2jt.js";
2
+ import "./fetch-BiYv2BZc.js";
3
+ import "./accounts-Xatc0RYb.js";
4
+ import { a as isCacheEnabled, i as getCache } from "./cache-HP0NP4k3.js";
5
+ import { n as telemetry } from "./telemetry-DPXLd7UE.js";
6
+ import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-Cz2ZC_iA.js";
7
7
  //#region src/providers/bedrock/agents.ts
8
8
  /**
9
9
  * AWS Bedrock Agents provider for invoking deployed AI agents.
@@ -230,4 +230,4 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
230
230
  //#endregion
231
231
  export { AwsBedrockAgentsProvider };
232
232
 
233
- //# sourceMappingURL=agents-aF4-T121.js.map
233
+ //# sourceMappingURL=agents-wg3ohknq.js.map