promptfoo 0.122.1 → 0.122.2

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 (418) hide show
  1. package/dist/src/{accounts-Jug2Ciel.js → accounts-B8CVRmIl.js} +4 -4
  2. package/dist/src/{accounts-mch0qw47.js → accounts-BDud3p32.js} +4 -4
  3. package/dist/src/{accounts-CAjSMkuH.js → accounts-DApS8Gpe.js} +5 -5
  4. package/dist/src/{accounts-CZFxG3Og.cjs → accounts-DosZWKJy.cjs} +4 -4
  5. package/dist/src/{agentic-utils-CAL6OL48.js → agentic-utils-B94-_ExD.js} +12 -3
  6. package/dist/src/{agentic-utils-B3r4NpU-.cjs → agentic-utils-CMewaQ09.cjs} +13 -4
  7. package/dist/src/{agentic-utils-Cswmio9j.js → agentic-utils-DOMq4mqJ.js} +12 -3
  8. package/dist/src/{agentic-utils-CR5IyddC.js → agentic-utils-DneHhExJ.js} +12 -3
  9. package/dist/src/{agents-BYZQa11K.js → agents-99i09OkS.js} +4 -4
  10. package/dist/src/{agents-CfaaStfu.cjs → agents-BXDQ1xw_.cjs} +2 -2
  11. package/dist/src/{agents-CUSOo7ly.js → agents-BzOkbtWo.js} +2 -2
  12. package/dist/src/{agents-DgKZ1aMv.js → agents-CmgJALGp.js} +2 -2
  13. package/dist/src/{agents-CzaXVlpn.js → agents-CqqOAB9i.js} +4 -4
  14. package/dist/src/{agents-t29fGe9S.js → agents-CroOVBY1.js} +4 -4
  15. package/dist/src/{agents-CKOdC5bg.cjs → agents-DtmugJpS.cjs} +4 -4
  16. package/dist/src/{agents-B2aTR8k4.js → agents-mNkg-c-D.js} +2 -2
  17. package/dist/src/{ai.studio-DprNFGT7.js → ai.studio-4CqyrhMr.js} +7 -6
  18. package/dist/src/{ai.studio-BTbBobIe.js → ai.studio-Bw7HGWAy.js} +7 -6
  19. package/dist/src/{ai.studio-DdDttvQ_.js → ai.studio-BySqRQcL.js} +7 -6
  20. package/dist/src/{ai.studio-lJHgVtc3.js → ai.studio-CmQz4HRF.js} +1 -1
  21. package/dist/src/{ai.studio-Cfr1uqJd.cjs → ai.studio-CzWiW2J3.cjs} +11 -10
  22. package/dist/src/{aimlapi-agQErPC7.cjs → aimlapi-BPLx5bkN.cjs} +6 -6
  23. package/dist/src/{aimlapi-C7aw_Yci.js → aimlapi-CPHuwytR.js} +6 -6
  24. package/dist/src/{aimlapi-BbhgeGRG.js → aimlapi-CtFNhGfQ.js} +6 -6
  25. package/dist/src/{aimlapi-Cj1shS5g.js → aimlapi-DvORJAqy.js} +6 -6
  26. package/dist/src/{anthropicMessages-DM4fND86.cjs → anthropicMessages-CV6LTNAW.cjs} +2 -2
  27. package/dist/src/{anthropicMessages-B2lCmO9a.js → anthropicMessages-D7C1kjQD.js} +2 -2
  28. package/dist/src/{anthropicMessages-B3DWK3KH.js → anthropicMessages-Dnuashu8.js} +2 -2
  29. package/dist/src/{anthropicMessages-CIzwoHC7.js → anthropicMessages-HcZgERmB.js} +2 -2
  30. package/dist/src/app/assets/{index-A24J7UxV.css → index-4gjyvw3y.css} +1 -1
  31. package/dist/src/app/assets/{index-BSBYsw_6.js → index-nyJ_XC0u.js} +55 -55
  32. package/dist/src/app/index.html +2 -2
  33. package/dist/src/{audio-FK9OJM6x.js → audio-BdlJQepT.js} +3 -3
  34. package/dist/src/{audio-DJSX3nfH.cjs → audio-CT31dzi3.cjs} +3 -3
  35. package/dist/src/{audio-BLydpzg4.js → audio-CZ4800_-.js} +3 -3
  36. package/dist/src/{audio-BFL3WPG8.js → audio-CuAl9sNH.js} +3 -3
  37. package/dist/src/{authoritativeMarkupInjection-C79vhK3h.js → authoritativeMarkupInjection-Bk-2UAXm.js} +6 -6
  38. package/dist/src/{authoritativeMarkupInjection-DSEnwId_.cjs → authoritativeMarkupInjection-BkZvUL3M.cjs} +6 -6
  39. package/dist/src/{authoritativeMarkupInjection-D7PPkR2H.js → authoritativeMarkupInjection-CO3XuBsw.js} +6 -6
  40. package/dist/src/{authoritativeMarkupInjection-a2WZAWI8.js → authoritativeMarkupInjection-CsW2Rlxr.js} +6 -6
  41. package/dist/src/{aws-GuyZqnyf.js → aws-BatJ_yy7.js} +20 -20
  42. package/dist/src/{aws-BHmi7gOy.cjs → aws-DhQCXH3c.cjs} +20 -20
  43. package/dist/src/{aws-Bzt3WQU2.js → aws-VLbhCTiT.js} +20 -20
  44. package/dist/src/{aws-BS8qSHy8.js → aws-iSX9DyrD.js} +20 -20
  45. package/dist/src/{base-nbJrRpSV.js → base-C6jKTbCS.js} +7 -6
  46. package/dist/src/{base-CoTAT5vv.cjs → base-CJEf9k2O.cjs} +8 -7
  47. package/dist/src/{base-DEkuzxBW.js → base-CWyDTNcT.js} +2 -2
  48. package/dist/src/{base-mEWUSyIi.cjs → base-CeTzVZ7f.cjs} +2 -2
  49. package/dist/src/{base-CcYX8Sl7.js → base-CnzvtFbT.js} +2 -2
  50. package/dist/src/{base-BW_ro6TZ.js → base-Dd6PX7qL.js} +7 -6
  51. package/dist/src/{base-e2pL9Dg2.js → base-IFkEP-f1.js} +2 -2
  52. package/dist/src/{base-Bya3Xq-l.js → base-wuaktSuM.js} +7 -6
  53. package/dist/src/{bestOfN-6RYHfbeS.js → bestOfN-B99Kp3n1.js} +7 -7
  54. package/dist/src/{bestOfN-DsHy4gMF.cjs → bestOfN-BtBlH3Y1.cjs} +7 -7
  55. package/dist/src/{bestOfN-DDkIdZME.js → bestOfN-C7cPgSak.js} +7 -7
  56. package/dist/src/{bestOfN-Cbw8nnar.js → bestOfN-YNF3sLNc.js} +7 -7
  57. package/dist/src/{billing-nlGj2fi4.js → billing-BhTrP4CT.js} +2 -2
  58. package/dist/src/{billing-_izMSTD8.js → billing-D0eg28TA.js} +2 -2
  59. package/dist/src/{billing-K5i9I9vT.cjs → billing-Q1c9C5Or.cjs} +2 -2
  60. package/dist/src/{billing-CXk1T-EF.js → billing-eFe0xWZw.js} +2 -2
  61. package/dist/src/cache-Cjok8TBD.js +3 -0
  62. package/dist/src/{cache-Bwj_lNIo.js → cache-DTOVFNqA.js} +10 -4
  63. package/dist/src/{cache-C41JuZ74.js → cache-ePPAC5hy.js} +10 -4
  64. package/dist/src/{cache-DU82DyKI.cjs → cache-g3VTrtsd.cjs} +10 -4
  65. package/dist/src/{cache-NhFSRGTI.js → cache-xL5UULpy.js} +10 -5
  66. package/dist/src/{chat-Dt05zdU6.js → chat-1nt-gftw.js} +2 -2
  67. package/dist/src/{chat-Bh-Qkkm0.js → chat-64whAu1x.js} +2 -2
  68. package/dist/src/{chat-B43K4ZEW.cjs → chat-B5hzLi-1.cjs} +2 -2
  69. package/dist/src/{chat-6XCdGjXy.js → chat-BNY6oewj.js} +2 -2
  70. package/dist/src/{chat-Ds6f4gIO.js → chat-BPcmJMS6.js} +3 -3
  71. package/dist/src/{chat-CsmFtqbm.js → chat-BbVy4fHI.js} +2 -2
  72. package/dist/src/{chat-BPZNYAci.js → chat-BfWSvpJp.js} +3 -3
  73. package/dist/src/{chat-g28uolEO.cjs → chat-BuHuQ8dN.cjs} +13 -12
  74. package/dist/src/{chat-BUPwwei1.js → chat-C9Xi0123.js} +2 -2
  75. package/dist/src/{chat-D6SUUPHc.js → chat-CQkXljIT.js} +11 -10
  76. package/dist/src/{chat-BJT_S-0-.cjs → chat-DQfpTnnW.cjs} +2 -2
  77. package/dist/src/{chat-BjEpVBWz.js → chat-DQhTLvCt.js} +2 -2
  78. package/dist/src/{chat-b1tvD2yV.js → chat-Dn1Z6reC.js} +3 -3
  79. package/dist/src/{chat-DYIP7MZz.js → chat-DqUm2XRG.js} +11 -10
  80. package/dist/src/{chat-ByXWx4Jn.js → chat-WpIdBaCf.js} +11 -10
  81. package/dist/src/{chat-D9DdQU09.cjs → chat-psXx3S3c.cjs} +3 -3
  82. package/dist/src/{claude-agent-sdk-BOt139Ms.js → claude-agent-sdk-ByLXefcP.js} +4 -4
  83. package/dist/src/{claude-agent-sdk-BbO4g2C3.cjs → claude-agent-sdk-CXAxCt84.cjs} +4 -4
  84. package/dist/src/{claude-agent-sdk-ClB69ybZ.js → claude-agent-sdk-Ccqr4OHD.js} +4 -4
  85. package/dist/src/{claude-agent-sdk-DDgSb327.js → claude-agent-sdk-DFDGkJC4.js} +4 -4
  86. package/dist/src/{client-nl7Ghern.js → client-4bErwdpG.js} +3 -3
  87. package/dist/src/{client-DvRyvBRs.cjs → client-B8cIFzy1.cjs} +3 -3
  88. package/dist/src/{client-QLK1dAIt.js → client-Bz_qkOt7.js} +3 -3
  89. package/dist/src/{client-BpIjXLJ0.js → client-C8mYuoRi.js} +3 -3
  90. package/dist/src/cloud-BzpJioZO.js +3 -0
  91. package/dist/src/{cloud-D3FRkXX5.js → cloud-D9lRDzlx.js} +43 -7
  92. package/dist/src/{cloudflare-ai-CerptSv1.js → cloudflare-ai-BduG_WGt.js} +4 -4
  93. package/dist/src/{cloudflare-ai-BEu-xQ5J.cjs → cloudflare-ai-C0cr71_N.cjs} +4 -4
  94. package/dist/src/{cloudflare-ai-Cnaag2kZ.js → cloudflare-ai-DNNHsdi_.js} +4 -4
  95. package/dist/src/{cloudflare-ai-DpwGGVCv.js → cloudflare-ai-GiqeJOW2.js} +4 -4
  96. package/dist/src/{cloudflare-gateway-yWM6dZYR.js → cloudflare-gateway-BCd15euW.js} +3 -3
  97. package/dist/src/{cloudflare-gateway-D_M6cCM_.cjs → cloudflare-gateway-CNwgkjWa.cjs} +3 -3
  98. package/dist/src/{cloudflare-gateway-DC_kOGWf.js → cloudflare-gateway-D6gTnn0M.js} +3 -3
  99. package/dist/src/{cloudflare-gateway-BDO7Oy1M.js → cloudflare-gateway-j8ioV3mO.js} +3 -3
  100. package/dist/src/{codex-app-server-CwK6Xbfe.cjs → codex-app-server-CeT18Dkz.cjs} +6 -6
  101. package/dist/src/{codex-app-server-YZmDON1h.js → codex-app-server-CjOwEU74.js} +1 -1
  102. package/dist/src/{codex-app-server-Caz528S8.js → codex-app-server-DW77otWv.js} +5 -5
  103. package/dist/src/{codex-app-server-DK4HYKYU.js → codex-app-server-GlPHXwGV.js} +5 -5
  104. package/dist/src/{codex-app-server-DTZ30MNj.js → codex-app-server-krirlx9j.js} +5 -5
  105. package/dist/src/codex-runtime-BjmQ9rWv.js +5 -0
  106. package/dist/src/codex-runtime-DYQUgTW-.js +4 -0
  107. package/dist/src/codex-runtime-o7SyHeWu.js +4 -0
  108. package/dist/src/codex-runtime-sKhQvTow.cjs +3 -0
  109. package/dist/src/{codex-sdk-C5VGCVuq.js → codex-sdk-B3LZgJqW.js} +6 -5
  110. package/dist/src/{codex-sdk-Bxihv7gJ.cjs → codex-sdk-BrhzHGrr.cjs} +7 -6
  111. package/dist/src/{codex-sdk-BRCGs7KO.js → codex-sdk-DZ_mKG21.js} +6 -5
  112. package/dist/src/codex-sdk-DkbU2gJR.js +3 -0
  113. package/dist/src/{codex-sdk-AzoGV5xQ.js → codex-sdk-Gv0vgj5a.js} +6 -5
  114. package/dist/src/codex-security-71xcR7s3.js +382 -0
  115. package/dist/src/codex-security-A8dTt6Ov.cjs +386 -0
  116. package/dist/src/codex-security-DSYUnVdR.js +383 -0
  117. package/dist/src/codex-security-DqVPI2Th.js +382 -0
  118. package/dist/src/{cometapi-CFOBA79U.js → cometapi-BdmjhPSR.js} +7 -7
  119. package/dist/src/{cometapi-Dq70nB-i.js → cometapi-Bst9fl8W.js} +7 -7
  120. package/dist/src/{cometapi-DEVvRD5z.cjs → cometapi-CPjQpopA.cjs} +7 -7
  121. package/dist/src/{cometapi-C3SQRHPF.js → cometapi-Duei84Pe.js} +7 -7
  122. package/dist/src/{completion-Ci8l1pSN.js → completion-BwID-cTv.js} +5 -5
  123. package/dist/src/{completion-CcbYZDub.js → completion-D90cHpyH.js} +5 -5
  124. package/dist/src/{completion-wKp5JlDu.js → completion-DSVbiAms.js} +5 -5
  125. package/dist/src/{completion-Ch4qZHiN.cjs → completion-fjqwBQIQ.cjs} +5 -5
  126. package/dist/src/{crescendo-QA8kgoFA.cjs → crescendo-Cism3YAo.cjs} +18 -18
  127. package/dist/src/{crescendo-DXTA2eKd.js → crescendo-Cpj-F0iB.js} +13 -13
  128. package/dist/src/{crescendo-Dgco_cd5.js → crescendo-DJ3dxaZ8.js} +13 -13
  129. package/dist/src/{crescendo-By5ZfUli.js → crescendo-DiAK4mXf.js} +13 -13
  130. package/dist/src/{custom-fIO2MwcN.js → custom-BcSQF7OR.js} +11 -11
  131. package/dist/src/{custom-CobMcSKD.js → custom-CpA8_KgN.js} +11 -11
  132. package/dist/src/{custom-CPTsrJYI.js → custom-DfeRaakX.js} +11 -11
  133. package/dist/src/{custom-DQMMH6yL.cjs → custom-WyC-PH98.cjs} +14 -14
  134. package/dist/src/{docker-Bhb-hDqU.cjs → docker-5g1NcdAE.cjs} +5 -5
  135. package/dist/src/{docker-bXiMHPBm.js → docker-B97bdCFf.js} +5 -5
  136. package/dist/src/{docker-CdqlpwxU.js → docker-CgvCV_lT.js} +5 -5
  137. package/dist/src/{docker-CLatgAgj.js → docker-D2q5yAnA.js} +5 -5
  138. package/dist/src/{embedding-DMnl5l3W.js → embedding-B3RQXlr7.js} +5 -5
  139. package/dist/src/{embedding-cJ7sWqTp.cjs → embedding-C2BHs7bs.cjs} +5 -5
  140. package/dist/src/{embedding-DWeAJwIi.js → embedding-DgjYhcCm.js} +5 -5
  141. package/dist/src/{embedding-Kx2Jhb7b.js → embedding-qvISOYlD.js} +5 -5
  142. package/dist/src/{eval-XZjM8PtE.js → eval-BB4Rvl3w.js} +4 -4
  143. package/dist/src/{eval-yT4SKSzC.js → eval-BFqlPFXm.js} +1 -1
  144. package/dist/src/{evalResult-CmUmgA2I.js → evalResult-C9ntrv7r.js} +2 -2
  145. package/dist/src/{evaluator-BNYv5Xws.js → evaluator-BxDpurGf.js} +21 -20
  146. package/dist/src/evaluator-DxIVNCZm.js +3 -0
  147. package/dist/src/{evaluatorHelpers-D2ObFR8i.cjs → evaluatorHelpers-B2c1yYV4.cjs} +8 -7
  148. package/dist/src/{evaluatorHelpers-C60uhMf4.js → evaluatorHelpers-Bd8xun4J.js} +5 -4
  149. package/dist/src/{evaluatorHelpers-lNii4N30.js → evaluatorHelpers-CZ2p3rWG.js} +5 -4
  150. package/dist/src/{evaluatorHelpers-G6saWD9g.js → evaluatorHelpers-CgcFRjns.js} +5 -4
  151. package/dist/src/fetch-BO4sLtRp.js +3 -0
  152. package/dist/src/{fetch-BCrWkFgb.js → fetch-CKqW5dym.js} +2 -2
  153. package/dist/src/{fetch-DxQ9oCzS.cjs → fetch-CQfF18HC.cjs} +2 -2
  154. package/dist/src/{fetch-DDiGmyRM.js → fetch-Cm0VICza.js} +2 -2
  155. package/dist/src/{fetch-DTnUr1aF.cjs → fetch-D54lzFcD.cjs} +69 -18
  156. package/dist/src/{fetch-BdWQKDMj.js → fetch-DnDg-Ics.js} +64 -19
  157. package/dist/src/{fetch-JNQMF9vN.js → fetch-Dwv9LIL3.js} +2 -2
  158. package/dist/src/{fetch-Bnj1JCJi.js → fetch-KD8O9oZZ.js} +24 -15
  159. package/dist/src/{fetch-BjXG13jC.js → fetch-tOnj-VPG.js} +64 -19
  160. package/dist/src/{functionCallbackUtils-Ck1qbh7p.js → functionCallbackUtils-B-fNUZ4T.js} +3 -3
  161. package/dist/src/{functionCallbackUtils-BJ2I_9tt.js → functionCallbackUtils-B7KGl5xQ.js} +3 -3
  162. package/dist/src/{functionCallbackUtils-VbcI1Aub.cjs → functionCallbackUtils-BDroEgNs.cjs} +3 -3
  163. package/dist/src/{functionCallbackUtils-BGXXxhrC.js → functionCallbackUtils-EjWy67uz.js} +3 -3
  164. package/dist/src/{gemini-image-8YxPzaSx.js → gemini-image-B4vMqMOQ.js} +4 -4
  165. package/dist/src/{gemini-image-C5qQIQhS.js → gemini-image-B6ZTrDe5.js} +4 -4
  166. package/dist/src/{gemini-image-DxTRWDFj.cjs → gemini-image-DYd6vsTn.cjs} +4 -4
  167. package/dist/src/{gemini-image-CfkY7fEx.js → gemini-image-D_-_Yxtw.js} +4 -4
  168. package/dist/src/{goat-CR4LFL8E.js → goat-B80KUvGW.js} +14 -14
  169. package/dist/src/{goat-Dg7N-qgd.js → goat-BKhidS2l.js} +14 -14
  170. package/dist/src/{goat-D_thj1jf.cjs → goat-Dorh32Ub.cjs} +18 -18
  171. package/dist/src/{goat-BVp2yIw-.js → goat-jg8kFsKP.js} +14 -14
  172. package/dist/src/{goblin-4D8Nfpnl.cjs → goblin-B_rz0LjO.cjs} +2 -2
  173. package/dist/src/{goblin-CZAgIkjX.js → goblin-C8-aCrlP.js} +2 -2
  174. package/dist/src/{goblin-Dlox542E.js → goblin-CqLJeleh.js} +2 -2
  175. package/dist/src/{goblin-OrBEar64.js → goblin-CuznsHt0.js} +2 -2
  176. package/dist/src/{google-CC83MIsJ.cjs → google-8szBGwzV.cjs} +11 -11
  177. package/dist/src/{google-DRsee0nT.js → google-B1v8u6hy.js} +11 -11
  178. package/dist/src/{google-Dbpyq6la.js → google-B6p_pWxZ.js} +11 -11
  179. package/dist/src/{google-LtdcKmFu.js → google-DCn7b9au.js} +11 -11
  180. package/dist/src/graders-B8dB5kSQ.js +3 -0
  181. package/dist/src/{graders-vHzBsfHT.js → graders-BPmH2YVm.js} +20 -19
  182. package/dist/src/{graders-C77c5GiF.js → graders-BWtqxJ75.js} +20 -19
  183. package/dist/src/{graders-43jk_163.js → graders-CS8YkOd5.js} +21 -20
  184. package/dist/src/{graders-D7xtBg2s.cjs → graders-DpPGnz8u.cjs} +26 -25
  185. package/dist/src/{hydra-BBkVh274.js → hydra-CXR6iPRp.js} +12 -12
  186. package/dist/src/{hydra-CvGcOAZn.js → hydra-Cr1WleCi.js} +1 -1
  187. package/dist/src/{hydra-WACE_1Zb.js → hydra-DCp4JZxW.js} +12 -12
  188. package/dist/src/{hydra-DlPvPWLB.js → hydra-HgjWEGIf.js} +12 -12
  189. package/dist/src/{hydra-B0Aqb-zg.cjs → hydra-RlGwrC81.cjs} +12 -12
  190. package/dist/src/{image-B7HA9bRW.js → image-B4B444eV.js} +3 -3
  191. package/dist/src/{image-CLljmxcq.cjs → image-Bkns4wpz.cjs} +3 -3
  192. package/dist/src/{image-D_yzoOlU.js → image-BqF4qDz6.js} +5 -5
  193. package/dist/src/{image-RxcUfS9c.js → image-C1bIho6n.js} +4 -4
  194. package/dist/src/{image-BQf2QP3f.js → image-CFtq9j1u.js} +4 -4
  195. package/dist/src/{image-B-BLrwzM.js → image-CeAMtI2v.js} +5 -5
  196. package/dist/src/{image-DD9l6-Hi.cjs → image-ChCkFmER.cjs} +5 -5
  197. package/dist/src/{image-DQB7ft5H.js → image-Cy0nxgir.js} +3 -3
  198. package/dist/src/{image-HHqjkpmw.js → image-DDJ5HtyW.js} +3 -3
  199. package/dist/src/{image-N49IDbzx.cjs → image-DSLZ3_9_.cjs} +4 -4
  200. package/dist/src/{image-C1Tc1hrH.js → image-Dde5ywa6.js} +4 -4
  201. package/dist/src/{image-Dll064X0.js → image-G65m_Tkp.js} +5 -5
  202. package/dist/src/index.cjs +37 -35
  203. package/dist/src/index.d.cts +2 -1
  204. package/dist/src/index.d.ts +2 -1
  205. package/dist/src/index.js +26 -24
  206. package/dist/src/{indirectWebPwn-g-F3__Gp.js → indirectWebPwn-BFdbbs6S.js} +5 -5
  207. package/dist/src/{indirectWebPwn-Dg4gS14o.js → indirectWebPwn-BeNTvIGX.js} +4 -4
  208. package/dist/src/{indirectWebPwn-BVsvAUZv.js → indirectWebPwn-BhuZ26Yd.js} +4 -4
  209. package/dist/src/{indirectWebPwn-DmNLSb0J.js → indirectWebPwn-C-pe6OEr.js} +5 -5
  210. package/dist/src/{indirectWebPwn-Ch0EQWKt.cjs → indirectWebPwn-CwSQCQGM.cjs} +4 -4
  211. package/dist/src/{indirectWebPwn-2HDLyS-4.js → indirectWebPwn-DahWlbTc.js} +4 -4
  212. package/dist/src/{indirectWebPwn-lUx8flGh.cjs → indirectWebPwn-Dcc2nw9e.cjs} +5 -5
  213. package/dist/src/{indirectWebPwn-P3GLMBT7.js → indirectWebPwn-Dcn8pufK.js} +5 -5
  214. package/dist/src/{interactions-CqITU8xN.js → interactions-BC_LipMV.js} +5 -5
  215. package/dist/src/{interactions-vSEfKNox.js → interactions-BUojcIo3.js} +5 -5
  216. package/dist/src/{interactions-BkHdiUV_.cjs → interactions-CBWiz1sE.cjs} +10 -10
  217. package/dist/src/{interactions-BwaVVpFQ.js → interactions-FdIt-wCm.js} +5 -5
  218. package/dist/src/{iterative-CJqvJcCg.cjs → iterative-C03QAXol.cjs} +17 -17
  219. package/dist/src/{iterative-CmzmX0Ud.js → iterative-C6PvGSZG.js} +13 -13
  220. package/dist/src/{iterative-BrCMcCPN.js → iterative-C6dOO1pV.js} +13 -13
  221. package/dist/src/{iterative-Ny9s9zYD.js → iterative-Dm9ed-k9.js} +13 -13
  222. package/dist/src/{iterativeImage-6UW4D5PR.js → iterativeImage-C1eEEQTU.js} +4 -4
  223. package/dist/src/{iterativeImage-MQuACdQM.js → iterativeImage-CPdjUydZ.js} +4 -4
  224. package/dist/src/{iterativeImage-C9ti-N0n.js → iterativeImage-Drxk9690.js} +4 -4
  225. package/dist/src/{iterativeImage-DrKM797g.cjs → iterativeImage-qpfLOoXo.cjs} +6 -6
  226. package/dist/src/{iterativeMeta-BFyT65qP.js → iterativeMeta-Bcfzi4sI.js} +12 -12
  227. package/dist/src/{iterativeMeta-0J6M1Vdv.js → iterativeMeta-CpW_wQO6.js} +12 -12
  228. package/dist/src/{iterativeMeta-GZVbjagU.cjs → iterativeMeta-DPgnNAss.cjs} +12 -12
  229. package/dist/src/{iterativeMeta-C1Dh7MxZ.js → iterativeMeta-weggsGV_.js} +12 -12
  230. package/dist/src/{iterativeTree-BrUcgg6W.js → iterativeTree-CKuB2Z6S.js} +12 -12
  231. package/dist/src/{iterativeTree-D3_N68uI.js → iterativeTree-Uw3DtvA4.js} +12 -12
  232. package/dist/src/{iterativeTree-CypPTiqZ.js → iterativeTree-Z5eESQAW.js} +12 -12
  233. package/dist/src/{iterativeTree-CZMTUJkt.cjs → iterativeTree-sq1SXe1H.cjs} +23 -23
  234. package/dist/src/{knowledgeBase-oPMm43ZU.js → knowledgeBase-2fh31P8U.js} +4 -4
  235. package/dist/src/{knowledgeBase-DSmUn4aP.js → knowledgeBase-CZwpvp9c.js} +4 -4
  236. package/dist/src/{knowledgeBase-BIZW29tN.js → knowledgeBase-Cfr9fuln.js} +4 -4
  237. package/dist/src/{knowledgeBase-dv8uETfk.cjs → knowledgeBase-Cy5S2dUm.cjs} +4 -4
  238. package/dist/src/{litellm-CCNfY67w.cjs → litellm-BX6YVwnT.cjs} +4 -4
  239. package/dist/src/{litellm-CPWGXO61.js → litellm-Bwskx_kf.js} +4 -4
  240. package/dist/src/{litellm-D2w4bj_z.js → litellm-DG8dC_1P.js} +4 -4
  241. package/dist/src/{litellm-DB7MRouZ.js → litellm-RtR3zWqA.js} +4 -4
  242. package/dist/src/{live-CDBvrFTF.cjs → live-BIYLKr6M.cjs} +4 -4
  243. package/dist/src/{live-BFul3lOj.js → live-BloWTLms.js} +4 -4
  244. package/dist/src/{live-A1fk8Tl-.js → live-C2hVmTZg.js} +4 -4
  245. package/dist/src/{live-CRIdbA0o.js → live-CCPXSaYj.js} +4 -4
  246. package/dist/src/{luma-ray-5CZM_02a.cjs → luma-ray-B3Mt-cN9.cjs} +2 -2
  247. package/dist/src/{luma-ray-D68mWNcj.js → luma-ray-BGYY3Y9D.js} +2 -2
  248. package/dist/src/{luma-ray-5Y_J9rjd.js → luma-ray-DTvqEeAb.js} +2 -2
  249. package/dist/src/{luma-ray-lD3WwDx2.js → luma-ray-Te_YbEBL.js} +2 -2
  250. package/dist/src/main.js +41 -38
  251. package/dist/src/{mantleChat-B9O0prU3.js → mantleChat-B7ZGnN3G.js} +2 -2
  252. package/dist/src/{mantleChat-BRtCbGNb.js → mantleChat-BEwZSACi.js} +2 -2
  253. package/dist/src/{mantleChat-BNYodgnM.cjs → mantleChat-DRHEiiq7.cjs} +2 -2
  254. package/dist/src/{mantleChat-aXRLgaar.js → mantleChat-bG3JUmId.js} +2 -2
  255. package/dist/src/{memoryPoisoning-BP8lqzRR.js → memoryPoisoning-CRCeE8o0.js} +5 -5
  256. package/dist/src/{memoryPoisoning-CXlBD_-Y.js → memoryPoisoning-DPz_mF21.js} +5 -5
  257. package/dist/src/{memoryPoisoning-B2dsdKye.cjs → memoryPoisoning-DRIrT0Zv.cjs} +5 -5
  258. package/dist/src/{memoryPoisoning-C2cyu0C-.js → memoryPoisoning-DUqPlY5F.js} +5 -5
  259. package/dist/src/{messages-B5cYbsZJ.cjs → messages-BDbtGaqI.cjs} +8 -8
  260. package/dist/src/{messages-C1diy8zs.js → messages-C306BIuu.js} +8 -8
  261. package/dist/src/{messages-C9rJcTgf.js → messages-Cqi4nZlY.js} +8 -8
  262. package/dist/src/{messages-C3_Aa793.js → messages-W898zuCm.js} +8 -8
  263. package/dist/src/{mischievousUser-BM8LRsDW.js → mischievousUser-4wlyqv76.js} +5 -5
  264. package/dist/src/{mischievousUser-SPu0AbcD.js → mischievousUser-B1-HU9CD.js} +5 -5
  265. package/dist/src/{mischievousUser-BVr9ULj0.js → mischievousUser-BJQRmmfP.js} +5 -5
  266. package/dist/src/{mischievousUser-BDv5f6eO.cjs → mischievousUser-CHIJi5vr.cjs} +5 -5
  267. package/dist/src/{modelslab-9k-zzEfW.cjs → modelslab-CLDbPmPX.cjs} +3 -3
  268. package/dist/src/{modelslab-VVi56eHt.js → modelslab-CZ03gaHC.js} +3 -3
  269. package/dist/src/{modelslab-SFmxkyC5.js → modelslab-Cj0cBlIy.js} +3 -3
  270. package/dist/src/{modelslab-CvNCpR5m.js → modelslab-DPG6v3Oa.js} +3 -3
  271. package/dist/src/{nova-reel-DvEcNfJd.js → nova-reel-B401inIg.js} +2 -2
  272. package/dist/src/{nova-reel-DZRncxke.cjs → nova-reel-D8AFHBH-.cjs} +2 -2
  273. package/dist/src/{nova-reel-Dtr84O_-.js → nova-reel-RFBr44SY.js} +2 -2
  274. package/dist/src/{nova-reel-C7RtmR9_.js → nova-reel-sCfu2U7B.js} +2 -2
  275. package/dist/src/{nova-sonic-B4wexztM.cjs → nova-sonic-B1QLKfJe.cjs} +2 -2
  276. package/dist/src/{nova-sonic-DXnFfrox.js → nova-sonic-D3CP2Y2f.js} +2 -2
  277. package/dist/src/{nova-sonic-KyVv4RyY.js → nova-sonic-DPbzYDKH.js} +2 -2
  278. package/dist/src/{nova-sonic-Doe7LDx_.js → nova-sonic-DlgK5oIa.js} +2 -2
  279. package/dist/src/{openaiResponses-C3Ml3xst.cjs → openaiResponses-Be2L8u1C.cjs} +2 -2
  280. package/dist/src/{openaiResponses-CE5BAFhg.js → openaiResponses-CDvzqtsT.js} +2 -2
  281. package/dist/src/{openaiResponses-CEPZVzZz.js → openaiResponses-CPVWxpRK.js} +2 -2
  282. package/dist/src/{openaiResponses-DhO4eHg0.js → openaiResponses-sdWTgYPz.js} +2 -2
  283. package/dist/src/{openclaw-DOZfTvJO.js → openclaw-CKvd8EzM.js} +5 -5
  284. package/dist/src/{openclaw-XMg8C92z.cjs → openclaw-CSWfAv7N.cjs} +5 -5
  285. package/dist/src/{openclaw-CbJpj7T8.js → openclaw-Cusi9mm2.js} +5 -5
  286. package/dist/src/{openclaw-Bugs4BPX.js → openclaw-SY4Ur74P.js} +5 -5
  287. package/dist/src/{opencode-sdk-CoCVfums.js → opencode-sdk-AGZbtWlq.js} +2 -2
  288. package/dist/src/{opencode-sdk-Cid8t6m7.cjs → opencode-sdk-B9Dcws4x.cjs} +2 -2
  289. package/dist/src/{opencode-sdk-CKbY24l_.js → opencode-sdk-ClpPufaf.js} +2 -2
  290. package/dist/src/{opencode-sdk-mkkCU9O6.js → opencode-sdk-CwBVY4H1.js} +2 -2
  291. package/dist/src/{openinterpreter-esp9h7Qu.js → openinterpreter-BF1BIP3x.js} +3 -3
  292. package/dist/src/{openinterpreter-B09Fvndf.js → openinterpreter-Ba9uEUB3.js} +3 -3
  293. package/dist/src/{openinterpreter-O-8L3wHT.js → openinterpreter-CjAfk7zr.js} +3 -3
  294. package/dist/src/{openinterpreter-DmCcocbX.cjs → openinterpreter-CjvjRmfR.cjs} +4 -4
  295. package/dist/src/{promptfoo-BzTq3CZR.cjs → promptfoo-B3EDkr9n.cjs} +4 -4
  296. package/dist/src/{promptfoo-BnRYCHWo.js → promptfoo-BeCm2WDJ.js} +4 -4
  297. package/dist/src/{promptfoo-DmLIq1Fg.js → promptfoo-ByMuyN2p.js} +4 -4
  298. package/dist/src/{promptfoo-DFE6FPtn.js → promptfoo-HD40ugrk.js} +4 -4
  299. package/dist/src/{providers-YJTtc38R.js → providers-BbgOo13t.js} +68 -48
  300. package/dist/src/{providers-Dbcg914T.js → providers-BmppqfDI.js} +70 -50
  301. package/dist/src/{providers-DbRpLhoc.js → providers-C75KcJPJ.js} +68 -48
  302. package/dist/src/{providers-ASKoKjG0.cjs → providers-CRCoPqQH.cjs} +116 -96
  303. package/dist/src/{providers-59LpYr3g.js → providers-DI6OXKnh.js} +1 -1
  304. package/dist/src/{quiverai-BsabGKm2.js → quiverai-8--n-u4s.js} +3 -3
  305. package/dist/src/{quiverai-dEV-iH9x.cjs → quiverai-CPa-eT-O.cjs} +3 -3
  306. package/dist/src/{quiverai-CfQpkyAP.js → quiverai-Cyt6JU4X.js} +3 -3
  307. package/dist/src/{quiverai-D4M0KkyD.js → quiverai-pbddNqGK.js} +3 -3
  308. package/dist/src/{registry-QpHnWcMr.cjs → registry-3k9Gai1o.cjs} +15 -15
  309. package/dist/src/{registry-C_cHVcat.js → registry-BdsjaDF0.js} +15 -15
  310. package/dist/src/{registry-BAiKTqod.js → registry-C63p_cTi.js} +15 -15
  311. package/dist/src/{registry-BnTKy_CX.js → registry-C842b92A.js} +15 -15
  312. package/dist/src/{remoteGeneration-PxK1EefI.cjs → remoteGeneration-C0Ev99MO.cjs} +4 -4
  313. package/dist/src/{remoteGeneration-B0eQSIHo.js → remoteGeneration-Cc78LDjQ.js} +4 -4
  314. package/dist/src/{remoteGeneration-CwQ0KBdC.js → remoteGeneration-DGJxSMYI.js} +4 -4
  315. package/dist/src/{remoteGeneration-CopIeiNI.js → remoteGeneration-DnSGqkoH.js} +4 -4
  316. package/dist/src/render-BRIaR8VG.js +348 -0
  317. package/dist/src/render-C1VJjFT2.cjs +383 -0
  318. package/dist/src/render-DIhuKgcQ.js +347 -0
  319. package/dist/src/render-zarxdXS7.js +347 -0
  320. package/dist/src/{responses-Cf45MBI8.js → responses-B72c3dpg.js} +8 -7
  321. package/dist/src/{responses-CB2IgICL.js → responses-DVF5R5Il.js} +8 -7
  322. package/dist/src/{responses-Doa5xhY1.cjs → responses-DiZCcd1S.cjs} +10 -9
  323. package/dist/src/{responses-Ci3OK0i0.js → responses-ykcvZ0oE.js} +8 -7
  324. package/dist/src/{runtimeTransform-BiANYoNE.cjs → runtimeTransform-6aaLbaUN.cjs} +2 -2
  325. package/dist/src/{runtimeTransform-DCRyBnI7.js → runtimeTransform-Bf5Aif-g.js} +2 -2
  326. package/dist/src/{runtimeTransform-Dvxqdevg.js → runtimeTransform-DVpy5lDj.js} +2 -2
  327. package/dist/src/{runtimeTransform-PGM7l51H.js → runtimeTransform-rEgJC2VZ.js} +2 -2
  328. package/dist/src/{sagemaker-D8O3f2bO.js → sagemaker-BzAkO4HL.js} +9 -9
  329. package/dist/src/{sagemaker-mlPtR7-q.js → sagemaker-C35al2QN.js} +9 -9
  330. package/dist/src/{sagemaker-2TZPOS4O.js → sagemaker-D8HnIjWK.js} +9 -9
  331. package/dist/src/{sagemaker-OlHR8fru.cjs → sagemaker-I0Ei2kNn.cjs} +9 -9
  332. package/dist/src/{scanner-Dt3oFdeb.js → scanner-De5yM_DC.js} +5 -5
  333. package/dist/src/server/index.js +31 -29
  334. package/dist/src/server-B5-TIxn2.js +3 -0
  335. package/dist/src/{server-MNuRsmJQ.js → server-BaM1Q5gD.js} +4 -4
  336. package/dist/src/{server-CkrRpgsu.cjs → server-BpmZ1EP0.cjs} +3 -3
  337. package/dist/src/{server-L884Wtbc.js → server-CqQtEkS_.js} +4 -4
  338. package/dist/src/{server-lm2H6tXC.js → server-DB1I8Xl3.js} +3 -3
  339. package/dist/src/{shared-D5rN2VlH.js → shared-BkcgE6vB.js} +14 -14
  340. package/dist/src/{shared-IP25vMkJ.cjs → shared-Bl84k1Oo.cjs} +14 -14
  341. package/dist/src/{shared-Dk1AVE9w.js → shared-CkERSpeg.js} +14 -14
  342. package/dist/src/{shared-yyb3qFQd.js → shared-jcnXW0lA.js} +16 -16
  343. package/dist/src/{simulatedUser-9Ru_f_dX.js → simulatedUser-BK0F6Lub.js} +5 -4
  344. package/dist/src/{simulatedUser-6ys8hxx_.js → simulatedUser-BTox0iZp.js} +5 -4
  345. package/dist/src/{simulatedUser-BQghw48z.cjs → simulatedUser-ByVb7gXp.cjs} +8 -7
  346. package/dist/src/{simulatedUser-BHmmQ4hb.js → simulatedUser-C8WconFg.js} +5 -4
  347. package/dist/src/{slack-C--lAIHY.js → slack-7DG3xMM4.js} +2 -2
  348. package/dist/src/{slack-CxCLWDSi.js → slack-BvWGK3kV.js} +2 -2
  349. package/dist/src/{slack-6c3iW1pP.cjs → slack-DqFNyAEf.cjs} +2 -2
  350. package/dist/src/{slack-D_QGURhP.js → slack-spSrgvZu.js} +2 -2
  351. package/dist/src/{storage-BFmq8CKG.cjs → storage-BX5ws4jD.cjs} +11 -11
  352. package/dist/src/{storage-J-nYoltq.js → storage-B_t-NiUa.js} +11 -11
  353. package/dist/src/{storage-BC3GVwPL.js → storage-CVVbTVYC.js} +11 -11
  354. package/dist/src/{storage-DGeXeJj0.js → storage-CrqPUKqY.js} +12 -12
  355. package/dist/src/{strategies-C6oBZHYF.js → strategies-CaqOj9gZ.js} +10 -10
  356. package/dist/src/{strategies-Bn1z2exW.cjs → strategies-DJfqHuoT.cjs} +10 -10
  357. package/dist/src/{strategies-BMxIs2Jx.js → strategies-DVRYSzm8.js} +10 -10
  358. package/dist/src/{strategies-cFTP9vSw.js → strategies-DpZ1ydwx.js} +11 -11
  359. package/dist/src/{telemetry-D64Cj0UR.js → telemetry-BD4xF9d_.js} +3 -3
  360. package/dist/src/{telemetry-Bqa8fxWp.js → telemetry-BQZTDom3.js} +3 -3
  361. package/dist/src/{telemetry-CIaL2pmn.js → telemetry-CJdYAcRk.js} +3 -3
  362. package/dist/src/telemetry-ClfmjQQj.js +3 -0
  363. package/dist/src/{telemetry-DVYPYBQH.cjs → telemetry-cZi2RTrN.cjs} +3 -3
  364. package/dist/src/{traceContext-CNp7smkn.js → traceContext-2sZXHY0h.js} +2 -2
  365. package/dist/src/{traceContext-D7liCnkq.js → traceContext-B3qWxoa7.js} +2 -2
  366. package/dist/src/{traceContext-BuXw2Yxu.cjs → traceContext-achbslCl.cjs} +2 -2
  367. package/dist/src/{traceContext-B4vypxe_.js → traceContext-jOhKJ5Ty.js} +2 -2
  368. package/dist/src/{transcription-SiDe8ogZ.js → transcription-1iEk_fG7.js} +4 -4
  369. package/dist/src/{transcription-Dq6gB3km.js → transcription-CtogIwZI.js} +4 -4
  370. package/dist/src/{transcription-BQg4-zD7.cjs → transcription-CuNQgPv9.cjs} +4 -4
  371. package/dist/src/{transcription-Zq-_5uca.js → transcription-RRwDmQBI.js} +4 -4
  372. package/dist/src/{transform-CdcZMCo-.js → transform-2ldksCeN.js} +3 -3
  373. package/dist/src/{transform-BfiH9c1w.js → transform-BesK7nGM.js} +3 -3
  374. package/dist/src/{transform-CCHDyuc8.cjs → transform-DS2y12jo.cjs} +3 -3
  375. package/dist/src/{transform-D0QSXU95.js → transform-ciU2euIH.js} +3 -3
  376. package/dist/src/{util-tlprLsf4.js → util-9K7THVcA2.js} +2 -2
  377. package/dist/src/{util-BoTwsVvn.js → util-BKfPcBQN.js} +4 -4
  378. package/dist/src/{util-L5T81aJ0.cjs → util-BPkxeLuk.cjs} +10 -387
  379. package/dist/src/{util-Ur5TGF_w.js → util-BPlSGvsQ.js} +4 -3
  380. package/dist/src/{util-uYYKYi7_.js → util-BPtpPW4O.js} +5 -346
  381. package/dist/src/{util-EBjz-RBV.js → util-BaGd-bCr.js} +2 -2
  382. package/dist/src/{util-BJ42x4mo.js → util-Bac0h5Sr.js} +2 -2
  383. package/dist/src/{util-ChbabPn9.cjs → util-Bd8_MhVm.cjs} +2 -2
  384. package/dist/src/{util-BxmNax2U.js → util-BdN7DdPq.js} +4 -3
  385. package/dist/src/{util-DdGIEAK_.js → util-BnytsHEr.js} +5 -346
  386. package/dist/src/{util-COyt9Xaf.cjs → util-BuKoPAn3.cjs} +4 -4
  387. package/dist/src/{util-BVDvJqrO.js → util-CEecmC3Y.js} +4 -4
  388. package/dist/src/{util-CZ9shpIL.js → util-CJi6Bgno.js} +3 -3
  389. package/dist/src/{util-BdAsuWmv.js → util-CZyLhvIk.js} +6 -347
  390. package/dist/src/{util-CeP1x2P-.cjs → util-Cadd9fGT.cjs} +3 -3
  391. package/dist/src/{util-DT7Jko3E.js → util-CzWbxb9R.js} +4 -3
  392. package/dist/src/{util-CVbeMrg1.js → util-DHtnWbEL.js} +3 -3
  393. package/dist/src/{util-BDDaDhsI.cjs → util-DSwbJPgL.cjs} +7 -6
  394. package/dist/src/{util-BNvjVvcH.cjs → util-DhtW6BNS.cjs} +5 -4
  395. package/dist/src/{util-CmRx53hM.js → util-DiVs2Kf-.js} +4 -3
  396. package/dist/src/{util-DxyypCZC.js → util-DlFpV1xV.js} +4 -4
  397. package/dist/src/{util-DtOvD10k.js → util-DlT2H1W5.js} +3 -3
  398. package/dist/src/{util-PX9qBGnk.js → util-InmFNqSw.js} +4 -3
  399. package/dist/src/{util-CwUz9jYN.js → util-Rbl6Om9L2.js} +4 -3
  400. package/dist/src/{vertex-BGBoge5t.js → vertex-BJYJC-Tr.js} +8 -7
  401. package/dist/src/{vertex-BKhWzpAp.js → vertex-CRMbWhh2.js} +8 -7
  402. package/dist/src/{vertex-BpaCFvPe.js → vertex-DWXywdFu.js} +8 -7
  403. package/dist/src/{vertex-FM6gcfuB.cjs → vertex-DXmhY_4R.cjs} +10 -9
  404. package/dist/src/{vertex-DPgy1bci.js → vertex-Xq6Hc4hv.js} +1 -1
  405. package/dist/src/{video-CLhmUJuz.js → video-1uQOdg9A.js} +3 -3
  406. package/dist/src/{video-C4hvGFWO.js → video-BMnt4dq9.js} +3 -3
  407. package/dist/src/{video-DV7VnFDb.js → video-CZ5He3fP.js} +3 -3
  408. package/dist/src/{video-CFJeZvvL.cjs → video-ChxZLKTs.cjs} +3 -3
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +7 -6
  411. package/dist/src/cache-Ca6QI7yz.js +0 -3
  412. package/dist/src/cloud-aeP705RD.js +0 -3
  413. package/dist/src/codex-sdk-CMTTOSVq.js +0 -3
  414. package/dist/src/evaluator-CRrA6xHS.js +0 -3
  415. package/dist/src/fetch-BYe9zZ94.js +0 -3
  416. package/dist/src/graders-fvvHDb5X.js +0 -3
  417. package/dist/src/server-DmrHjxNq.js +0 -3
  418. package/dist/src/telemetry-BvzHQKBp.js +0 -3
@@ -0,0 +1,347 @@
1
+ import { R as state, j as getEnvBool, o as logger } from "./logger-BKiOczgq.js";
2
+ import nunjucks from "nunjucks";
3
+ //#region src/util/templates.ts
4
+ function isNunjucksAstNode(value) {
5
+ return Boolean(value && typeof value === "object" && typeof value.typename === "string");
6
+ }
7
+ function getNunjucksParser() {
8
+ return nunjucks.parser;
9
+ }
10
+ function parseNunjucksTemplate(template) {
11
+ const parser = getNunjucksParser();
12
+ if (!parser || typeof parser.parse !== "function") {
13
+ logger.debug("[templates] nunjucks.parser.parse is not available; falling back to conservative detection");
14
+ return { ok: false };
15
+ }
16
+ try {
17
+ return {
18
+ ok: true,
19
+ ast: parser.parse(template)
20
+ };
21
+ } catch (err) {
22
+ logger.debug("[templates] nunjucks parse failed; falling back to conservative detection", { error: err instanceof Error ? err.message : String(err) });
23
+ return { ok: false };
24
+ }
25
+ }
26
+ function isNonReferenceSymbol(parent) {
27
+ if (!parent) return false;
28
+ return parent.node.typename === "Pair" && parent.field === "key" || parent.node.typename === "Filter" && parent.field === "name" || parent.node.typename === "Is" && parent.field === "right" || parent.node.typename === "Set" && parent.field === "targets" || isForLikeNode(parent.node) && parent.field === "name" || parent.node.typename === "Macro" && parent.field === "name" || parent.node.typename === "Import" && parent.field === "target" || parent.node.typename === "FromImport" && parent.field === "names";
29
+ }
30
+ function getSymbolName(node) {
31
+ return isNunjucksAstNode(node) && node.typename === "Symbol" && typeof node.value === "string" ? node.value : void 0;
32
+ }
33
+ function collectBindingNames(node) {
34
+ if (Array.isArray(node)) return node.flatMap((item) => collectBindingNames(item));
35
+ const symbolName = getSymbolName(node);
36
+ if (symbolName) return [symbolName];
37
+ if (!isNunjucksAstNode(node) || !Array.isArray(node.children)) return [];
38
+ return node.children.flatMap((child) => collectBindingNames(child));
39
+ }
40
+ function addBindingNames(scope, node) {
41
+ const nextScope = new Set(scope);
42
+ for (const name of collectBindingNames(node)) nextScope.add(name);
43
+ return nextScope;
44
+ }
45
+ function addNamesToScope(scope, names) {
46
+ const nextScope = new Set(scope);
47
+ for (const name of names) nextScope.add(name);
48
+ return nextScope;
49
+ }
50
+ function collectFromImportBindingNames(namesNode) {
51
+ if (!isNunjucksAstNode(namesNode) || !Array.isArray(namesNode.children)) return [];
52
+ const names = [];
53
+ for (const child of namesNode.children) {
54
+ const plainImportName = getSymbolName(child);
55
+ if (plainImportName) {
56
+ names.push(plainImportName);
57
+ continue;
58
+ }
59
+ if (isNunjucksAstNode(child) && child.typename === "Pair") {
60
+ const aliasName = getSymbolName(child.value);
61
+ if (aliasName) names.push(aliasName);
62
+ }
63
+ }
64
+ return names;
65
+ }
66
+ function astNodeListReferencesVariable(nodes, variableName, parent, boundSymbols) {
67
+ let scope = new Set(boundSymbols);
68
+ for (const item of nodes) {
69
+ if (!isNunjucksAstNode(item)) continue;
70
+ if (astReferencesVariable(item, variableName, parent, scope)) return true;
71
+ if (item.typename === "Set") scope = addBindingNames(scope, item.targets);
72
+ else if (item.typename === "Macro") scope = addBindingNames(scope, item.name);
73
+ else if (item.typename === "Import") scope = addBindingNames(scope, item.target);
74
+ else if (item.typename === "FromImport") scope = addNamesToScope(scope, collectFromImportBindingNames(item.names));
75
+ }
76
+ return false;
77
+ }
78
+ function astChildReferencesVariable(node, field, variableName, boundSymbols) {
79
+ const child = node[field];
80
+ if (Array.isArray(child)) return child.some((item) => isNunjucksAstNode(item) && astReferencesVariable(item, variableName, {
81
+ field,
82
+ node
83
+ }, boundSymbols));
84
+ return isNunjucksAstNode(child) && astReferencesVariable(child, variableName, {
85
+ field,
86
+ node
87
+ }, boundSymbols);
88
+ }
89
+ function isForLikeNode(node) {
90
+ return node.typename === "For" || node.typename === "AsyncEach" || node.typename === "AsyncAll";
91
+ }
92
+ function forLikeNodeReferencesVariable(node, variableName, boundSymbols) {
93
+ const loopScope = addBindingNames(boundSymbols, node.name);
94
+ return astChildReferencesVariable(node, "arr", variableName, boundSymbols) || astChildReferencesVariable(node, "body", variableName, loopScope) || astChildReferencesVariable(node, "else_", variableName, boundSymbols);
95
+ }
96
+ /**
97
+ * Walk a Nunjucks macro/caller signature left-to-right. Positional args and
98
+ * earlier keyword defaults are visible to later defaults, but the current
99
+ * keyword is not bound until its own default value has been evaluated.
100
+ */
101
+ function analyzeSignatureArgs(argsNode, variableName, boundSymbols) {
102
+ const paramNames = [];
103
+ if (!isNunjucksAstNode(argsNode) || !Array.isArray(argsNode.children)) return {
104
+ paramNames,
105
+ referencesVariable: false
106
+ };
107
+ const defaultScope = new Set(boundSymbols);
108
+ for (const child of argsNode.children) {
109
+ if (!isNunjucksAstNode(child)) continue;
110
+ const positionalParamName = getSymbolName(child);
111
+ if (positionalParamName) {
112
+ paramNames.push(positionalParamName);
113
+ defaultScope.add(positionalParamName);
114
+ continue;
115
+ }
116
+ if (child.typename === "KeywordArgs" && Array.isArray(child.children)) {
117
+ for (const pair of child.children) {
118
+ const keywordParamName = isNunjucksAstNode(pair) && pair.typename === "Pair" ? getSymbolName(pair.key) : void 0;
119
+ if (isNunjucksAstNode(pair) && pair.typename === "Pair" && astChildReferencesVariable(pair, "value", variableName, defaultScope)) return {
120
+ paramNames,
121
+ referencesVariable: true
122
+ };
123
+ if (keywordParamName) {
124
+ paramNames.push(keywordParamName);
125
+ defaultScope.add(keywordParamName);
126
+ }
127
+ }
128
+ continue;
129
+ }
130
+ if (astReferencesVariable(child, variableName, {
131
+ field: "children",
132
+ node: argsNode
133
+ }, defaultScope)) return {
134
+ paramNames,
135
+ referencesVariable: true
136
+ };
137
+ }
138
+ return {
139
+ paramNames,
140
+ referencesVariable: false
141
+ };
142
+ }
143
+ function macroNodeReferencesVariable(node, variableName, boundSymbols) {
144
+ const { paramNames, referencesVariable } = analyzeSignatureArgs(node.args, variableName, boundSymbols);
145
+ if (referencesVariable) return true;
146
+ const macroScope = addNamesToScope(boundSymbols, paramNames);
147
+ const macroName = getSymbolName(node.name);
148
+ if (macroName) macroScope.add(macroName);
149
+ return astChildReferencesVariable(node, "body", variableName, macroScope);
150
+ }
151
+ function isNodeReferencesVariable(node, variableName, boundSymbols) {
152
+ if (astChildReferencesVariable(node, "left", variableName, boundSymbols)) return true;
153
+ const right = node.right;
154
+ if (!isNunjucksAstNode(right)) return false;
155
+ if (right.typename === "FunCall") return astChildReferencesVariable(right, "args", variableName, boundSymbols);
156
+ return right.typename !== "Symbol" && astReferencesVariable(right, variableName, {
157
+ field: "right",
158
+ node
159
+ }, boundSymbols);
160
+ }
161
+ function setNodeReferencesVariable(node, variableName, boundSymbols) {
162
+ return astChildReferencesVariable(node, "value", variableName, boundSymbols) || astChildReferencesVariable(node, "body", variableName, boundSymbols);
163
+ }
164
+ function fromImportNodeReferencesVariable(node, variableName, boundSymbols) {
165
+ return astChildReferencesVariable(node, "template", variableName, boundSymbols);
166
+ }
167
+ function blockNodeReferencesVariable(node, variableName, boundSymbols) {
168
+ return astChildReferencesVariable(node, "body", variableName, boundSymbols);
169
+ }
170
+ function callerNodeReferencesVariable(node, variableName, boundSymbols) {
171
+ const { paramNames, referencesVariable } = analyzeSignatureArgs(node.args, variableName, boundSymbols);
172
+ if (referencesVariable) return true;
173
+ return astChildReferencesVariable(node, "body", variableName, addNamesToScope(boundSymbols, paramNames));
174
+ }
175
+ function astFieldsReferenceVariable(node, variableName, boundSymbols) {
176
+ return (node.fields ?? []).some((field) => astChildReferencesVariable(node, field, variableName, boundSymbols));
177
+ }
178
+ function astReferencesVariable(node, variableName, parent, boundSymbols = /* @__PURE__ */ new Set()) {
179
+ if (node.typename === "Symbol" && node.value === variableName) return !boundSymbols.has(variableName) && !isNonReferenceSymbol(parent);
180
+ if ((node.typename === "Root" || node.typename === "NodeList") && Array.isArray(node.children)) return astNodeListReferencesVariable(node.children, variableName, {
181
+ field: "children",
182
+ node
183
+ }, boundSymbols);
184
+ if (isForLikeNode(node)) return forLikeNodeReferencesVariable(node, variableName, boundSymbols);
185
+ if (node.typename === "Macro") return macroNodeReferencesVariable(node, variableName, boundSymbols);
186
+ if (node.typename === "Is") return isNodeReferencesVariable(node, variableName, boundSymbols);
187
+ if (node.typename === "Set") return setNodeReferencesVariable(node, variableName, boundSymbols);
188
+ if (node.typename === "FromImport") return fromImportNodeReferencesVariable(node, variableName, boundSymbols);
189
+ if (node.typename === "Block") return blockNodeReferencesVariable(node, variableName, boundSymbols);
190
+ if (node.typename === "Caller") return callerNodeReferencesVariable(node, variableName, boundSymbols);
191
+ return astFieldsReferenceVariable(node, variableName, boundSymbols);
192
+ }
193
+ /**
194
+ * Get a Nunjucks engine instance with optional filters and configuration.
195
+ * @param filters - Optional map of custom Nunjucks filters.
196
+ * @param throwOnUndefined - Whether to throw an error on undefined variables.
197
+ * @param isGrader - Whether this engine is being used in a grader context.
198
+ * Nunjucks is always enabled in grader mode.
199
+ * @returns A configured Nunjucks environment.
200
+ */
201
+ function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
202
+ if (!isGrader && getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
203
+ const env = nunjucks.configure({
204
+ autoescape: false,
205
+ throwOnUndefined
206
+ });
207
+ const envGlobals = {
208
+ ...getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
209
+ ...state.config?.env
210
+ };
211
+ env.addGlobal("env", envGlobals);
212
+ env.addFilter("load", function(str) {
213
+ return JSON.parse(str);
214
+ });
215
+ if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
216
+ return env;
217
+ }
218
+ /**
219
+ * Parse Nunjucks template to extract variables.
220
+ * @param template - The Nunjucks template string.
221
+ * @returns An array of variables used in the template.
222
+ */
223
+ function extractVariablesFromTemplate(template) {
224
+ const variableSet = /* @__PURE__ */ new Set();
225
+ const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
226
+ template = template.replace(/\{#[\s\S]*?#\}/g, "");
227
+ let match;
228
+ while ((match = regex.exec(template)) !== null) {
229
+ const variable = match[1] || match[2];
230
+ if (variable) variableSet.add(variable);
231
+ }
232
+ const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
233
+ while ((match = forLoopRegex.exec(template)) !== null) {
234
+ variableSet.delete(match[1]);
235
+ variableSet.add(match[2]);
236
+ }
237
+ return Array.from(variableSet);
238
+ }
239
+ /**
240
+ * Extract variables from multiple Nunjucks templates.
241
+ * @param templates - An array of Nunjucks template strings.
242
+ * @returns An array of variables used in the templates.
243
+ */
244
+ function extractVariablesFromTemplates(templates) {
245
+ const variableSet = /* @__PURE__ */ new Set();
246
+ for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
247
+ return Array.from(variableSet);
248
+ }
249
+ /**
250
+ * Classify whether a template references `variableName` as a real Nunjucks
251
+ * expression symbol, and surface whether the template parsed successfully.
252
+ *
253
+ * Callers that cache results should avoid caching when `parsed` is `false`,
254
+ * otherwise a transient parse failure would poison the cache for the lifetime
255
+ * of the process.
256
+ */
257
+ function analyzeTemplateReference(template, variableName) {
258
+ if (!variableName || !template.includes(variableName)) return {
259
+ referenced: false,
260
+ parsed: true
261
+ };
262
+ const parseResult = parseNunjucksTemplate(template);
263
+ if (!parseResult.ok) return {
264
+ referenced: true,
265
+ parsed: false
266
+ };
267
+ return {
268
+ referenced: astReferencesVariable(parseResult.ast, variableName),
269
+ parsed: true
270
+ };
271
+ }
272
+ //#endregion
273
+ //#region src/util/render.ts
274
+ /**
275
+ * Renders ONLY environment variable templates in an object, leaving all other templates untouched.
276
+ * This allows env vars to be resolved at provider load time while preserving runtime var templates.
277
+ *
278
+ * Supports full Nunjucks syntax for env vars including filters and expressions:
279
+ * - {{ env.VAR_NAME }}
280
+ * - {{ env['VAR-NAME'] }}
281
+ * - {{ env["VAR-NAME"] }}
282
+ * - {{ env.VAR | default('fallback') }}
283
+ * - {{ env.VAR | upper }}
284
+ *
285
+ * Preserves non-env templates for runtime rendering:
286
+ * - {{ vars.x }} - preserved as literal
287
+ * - {{ prompt }} - preserved as literal
288
+ *
289
+ * Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
290
+ * This ensures full Nunjucks feature support while preserving non-env templates.
291
+ *
292
+ * @param obj - The object to process
293
+ * @param envOverrides - Optional env vars to merge with (or replace) the base env
294
+ * @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
295
+ * @returns The object with only env templates rendered
296
+ */
297
+ function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
298
+ if (getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
299
+ if (typeof obj === "string") {
300
+ const nunjucks = getNunjucksEngine();
301
+ const baseEnvGlobals = nunjucks.getGlobal("env");
302
+ const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
303
+ ...baseEnvGlobals,
304
+ ...envOverrides
305
+ } : baseEnvGlobals;
306
+ return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
307
+ if (!match.match(/\benv\.|env\[/)) return match;
308
+ const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
309
+ const varName = varMatch?.[1] || varMatch?.[2];
310
+ if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
311
+ return nunjucks.renderString(match, { env: envGlobals });
312
+ } catch (error) {
313
+ logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
314
+ return match;
315
+ }
316
+ return match;
317
+ });
318
+ }
319
+ if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
320
+ if (typeof obj === "object" && obj !== null) {
321
+ const result = {};
322
+ for (const key in obj) {
323
+ if (key === "_conversation") {
324
+ result[key] = obj[key];
325
+ continue;
326
+ }
327
+ result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
328
+ }
329
+ return result;
330
+ }
331
+ return obj;
332
+ }
333
+ function renderVarsInObject(obj, vars) {
334
+ if (!vars || getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
335
+ if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
336
+ if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
337
+ if (typeof obj === "object" && obj !== null) {
338
+ const result = {};
339
+ for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
340
+ return result;
341
+ } else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
342
+ return obj;
343
+ }
344
+ //#endregion
345
+ export { extractVariablesFromTemplates as a, extractVariablesFromTemplate as i, renderVarsInObject as n, getNunjucksEngine as o, analyzeTemplateReference as r, renderEnvOnlyInObject as t };
346
+
347
+ //# sourceMappingURL=render-zarxdXS7.js.map
@@ -1,14 +1,15 @@
1
1
  import { M as getEnvFloat, N as getEnvInt, P as getEnvString, o as logger, u as isSecretField, v as sanitizeUrl } from "./logger-BKiOczgq.js";
2
- import { X as maybeLoadResponseFormatFromExternalFile, Z as maybeLoadToolsFromExternalFile, ct as renderVarsInObject } from "./util-DdGIEAK_.js";
3
- import { S as LONG_RUNNING_MODEL_TIMEOUT_MS, T as getRequestTimeoutMs, f as HttpRateLimitError, g as isAbortError, h as formatRateLimitErrorMessage, n as fetchWithRetries } from "./fetch-BjXG13jC.js";
2
+ import { X as maybeLoadResponseFormatFromExternalFile, Z as maybeLoadToolsFromExternalFile } from "./util-BnytsHEr.js";
3
+ import { C as LONG_RUNNING_MODEL_TIMEOUT_MS, E as getRequestTimeoutMs, _ as isAbortError, g as formatRateLimitErrorMessage, n as fetchWithRetries, p as HttpRateLimitError } from "./fetch-tOnj-VPG.js";
4
4
  import { n as sleep } from "./time-BPNW8jwJ.js";
5
5
  import { f as withGenAISpan, i as buildChatSpanContext, s as extractProviderResponseAttributes } from "./genaiTracer-Ch7k9W3C.js";
6
6
  import { n as sha256 } from "./createHash-D7vud8fe.js";
7
- import { c as getScopedCacheKey, i as fetchWithCache, l as isCacheEnabled, n as claimCacheKeyOnce } from "./cache-Bwj_lNIo.js";
8
- import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-CVbeMrg1.js";
9
- import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-CXk1T-EF.js";
7
+ import { c as getScopedCacheKey, i as fetchWithCache, l as isCacheEnabled, n as claimCacheKeyOnce } from "./cache-DTOVFNqA.js";
8
+ import { n as renderVarsInObject } from "./render-zarxdXS7.js";
9
+ import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-DHtnWbEL.js";
10
+ import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-BhTrP4CT.js";
10
11
  import "./tracing-Dq2SYDNR.js";
11
- import { t as FunctionCallbackHandler } from "./functionCallbackUtils-Ck1qbh7p.js";
12
+ import { t as FunctionCallbackHandler } from "./functionCallbackUtils-B-fNUZ4T.js";
12
13
  import { n as OpenAiGenericProvider } from "./openai-D05D9Qqa.js";
13
14
  //#region src/providers/responses/processor.ts
14
15
  /**
@@ -1142,4 +1143,4 @@ var OpenAiResponsesProvider = class extends OpenAiGenericProvider {
1142
1143
  //#endregion
1143
1144
  export { readResponsesStream as n, ResponsesProcessor as r, OpenAiResponsesProvider as t };
1144
1145
 
1145
- //# sourceMappingURL=responses-Cf45MBI8.js.map
1146
+ //# sourceMappingURL=responses-B72c3dpg.js.map
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { I as getEnvFloat, L as getEnvInt, R as getEnvString, c as logger, f as isSecretField, x as sanitizeUrl } from "./logger-YzVIwMVq.js";
3
- import { E as LONG_RUNNING_MODEL_TIMEOUT_MS, b as isAbortError, g as HttpRateLimitError, i as fetchWithRetries, k as getRequestTimeoutMs, y as formatRateLimitErrorMessage } from "./fetch-Bnj1JCJi.js";
3
+ import { A as getRequestTimeoutMs, D as LONG_RUNNING_MODEL_TIMEOUT_MS, _ as HttpRateLimitError, b as formatRateLimitErrorMessage, i as fetchWithRetries, x as isAbortError } from "./fetch-KD8O9oZZ.js";
4
4
  import { n as sleep } from "./time-Ct6CnABs.js";
5
5
  import { f as withGenAISpan, i as buildChatSpanContext, s as extractProviderResponseAttributes } from "./genaiTracer-BRW5P2xD.js";
6
- import { B as maybeLoadResponseFormatFromExternalFile, Q as renderVarsInObject, V as maybeLoadToolsFromExternalFile } from "./util-BdAsuWmv.js";
7
6
  import { n as sha256 } from "./createHash-DqA6GWxE.js";
8
- import { c as getScopedCacheKey, i as fetchWithCache, l as isCacheEnabled, t as claimCacheKeyOnce } from "./cache-NhFSRGTI.js";
9
- import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-DtOvD10k.js";
10
- import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-_izMSTD8.js";
7
+ import { i as fetchWithCache, l as getScopedCacheKey, t as claimCacheKeyOnce, u as isCacheEnabled } from "./cache-xL5UULpy.js";
8
+ import { B as maybeLoadResponseFormatFromExternalFile, V as maybeLoadToolsFromExternalFile } from "./util-CZyLhvIk.js";
9
+ import { n as renderVarsInObject } from "./render-BRIaR8VG.js";
10
+ import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-DlT2H1W5.js";
11
+ import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-D0eg28TA.js";
11
12
  import "./tracing-D7QJcXmX.js";
12
- import { t as FunctionCallbackHandler } from "./functionCallbackUtils-BJ2I_9tt.js";
13
+ import { t as FunctionCallbackHandler } from "./functionCallbackUtils-B7KGl5xQ.js";
13
14
  import { n as OpenAiGenericProvider } from "./openai-2MxDZEzF.js";
14
15
  //#region src/providers/responses/processor.ts
15
16
  /**
@@ -1143,4 +1144,4 @@ var OpenAiResponsesProvider = class extends OpenAiGenericProvider {
1143
1144
  //#endregion
1144
1145
  export { readResponsesStream as n, ResponsesProcessor as r, OpenAiResponsesProvider as t };
1145
1146
 
1146
- //# sourceMappingURL=responses-CB2IgICL.js.map
1147
+ //# sourceMappingURL=responses-DVF5R5Il.js.map
@@ -1,14 +1,15 @@
1
1
  const require_logger = require("./logger-BN3n9c1R.cjs");
2
- const require_util = require("./util-L5T81aJ0.cjs");
3
- const require_fetch = require("./fetch-DTnUr1aF.cjs");
2
+ const require_util = require("./util-BPkxeLuk.cjs");
3
+ const require_fetch = require("./fetch-D54lzFcD.cjs");
4
4
  const require_time = require("./time-B7AqDy5g.cjs");
5
5
  const require_genaiTracer = require("./genaiTracer-D_3mCxrD.cjs");
6
6
  const require_createHash = require("./createHash-sm6Q6LWg.cjs");
7
- const require_cache = require("./cache-DU82DyKI.cjs");
8
- const require_util$1 = require("./util-CeP1x2P-.cjs");
9
- const require_billing = require("./billing-K5i9I9vT.cjs");
7
+ const require_cache = require("./cache-g3VTrtsd.cjs");
8
+ const require_render = require("./render-C1VJjFT2.cjs");
9
+ const require_util$1 = require("./util-Cadd9fGT.cjs");
10
+ const require_billing = require("./billing-Q1c9C5Or.cjs");
10
11
  require("./tracing-DFewlCzC.cjs");
11
- const require_functionCallbackUtils = require("./functionCallbackUtils-VbcI1Aub.cjs");
12
+ const require_functionCallbackUtils = require("./functionCallbackUtils-BDroEgNs.cjs");
12
13
  const require_openai = require("./openai-D6d29SL8.cjs");
13
14
  //#region src/providers/responses/processor.ts
14
15
  /**
@@ -768,8 +769,8 @@ var OpenAiResponsesProvider = class extends require_openai.OpenAiGenericProvider
768
769
  const maxOutputTokensDefault = config.omitDefaults ? require_logger.getEnvString("OPENAI_MAX_TOKENS") === void 0 ? void 0 : require_logger.getEnvInt("OPENAI_MAX_TOKENS") : require_logger.getEnvInt("OPENAI_MAX_TOKENS", 1024);
769
770
  const reasoningMaxOutputTokensDefault = require_logger.getEnvInt("OPENAI_MAX_COMPLETION_TOKENS") ?? require_logger.getEnvInt("OPENAI_MAX_TOKENS");
770
771
  const maxOutputTokens = config.max_output_tokens ?? (isReasoningModel ? reasoningMaxOutputTokensDefault : maxOutputTokensDefault);
771
- const renderedReasoning = require_util.renderVarsInObject(config.reasoning, context?.vars);
772
- const renderedReasoningEffort = isReasoningModel ? require_util.renderVarsInObject(config.reasoning_effort, context?.vars) : void 0;
772
+ const renderedReasoning = require_render.renderVarsInObject(config.reasoning, context?.vars);
773
+ const renderedReasoningEffort = isReasoningModel ? require_render.renderVarsInObject(config.reasoning_effort, context?.vars) : void 0;
773
774
  const effectiveReasoningEffort = renderedReasoning?.effort ?? renderedReasoningEffort;
774
775
  const hasAzureReasoningEffort = isAzureResponsesDeploymentWithReasoningConfig && effectiveReasoningEffort !== void 0 && effectiveReasoningEffort !== "none";
775
776
  const temperatureDefault = config.omitDefaults ? require_logger.getEnvString("OPENAI_TEMPERATURE") === void 0 ? void 0 : require_logger.getEnvFloat("OPENAI_TEMPERATURE") : require_logger.getEnvFloat("OPENAI_TEMPERATURE", 0);
@@ -1159,4 +1160,4 @@ Object.defineProperty(exports, "readResponsesStream", {
1159
1160
  }
1160
1161
  });
1161
1162
 
1162
- //# sourceMappingURL=responses-Doa5xhY1.cjs.map
1163
+ //# sourceMappingURL=responses-DiZCcd1S.cjs.map
@@ -1,14 +1,15 @@
1
1
  import { F as getEnvInt, I as getEnvString, P as getEnvFloat, o as logger, u as isSecretField, y as sanitizeUrl } from "./logger-D4ion89i.js";
2
- import { Et as renderVarsInObject, ft as maybeLoadResponseFormatFromExternalFile, pt as maybeLoadToolsFromExternalFile } from "./util-uYYKYi7_.js";
3
- import { A as getRequestTimeoutMs, D as LONG_RUNNING_MODEL_TIMEOUT_MS, _ as HttpRateLimitError, b as formatRateLimitErrorMessage, n as fetchWithRetries, x as isAbortError } from "./fetch-BdWQKDMj.js";
2
+ import { ft as maybeLoadResponseFormatFromExternalFile, pt as maybeLoadToolsFromExternalFile } from "./util-BPtpPW4O.js";
3
+ import { O as LONG_RUNNING_MODEL_TIMEOUT_MS, S as isAbortError, j as getRequestTimeoutMs, n as fetchWithRetries, v as HttpRateLimitError, x as formatRateLimitErrorMessage } from "./fetch-DnDg-Ics.js";
4
4
  import { n as sleep } from "./time-BPNW8jwJ.js";
5
5
  import { f as withGenAISpan, i as buildChatSpanContext, s as extractProviderResponseAttributes } from "./genaiTracer-Cp9O3qLz.js";
6
6
  import { n as sha256 } from "./createHash-D7vud8fe.js";
7
- import { c as getScopedCacheKey, i as fetchWithCache, l as isCacheEnabled, n as claimCacheKeyOnce } from "./cache-C41JuZ74.js";
8
- import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-CZ9shpIL.js";
9
- import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-nlGj2fi4.js";
7
+ import { c as getScopedCacheKey, i as fetchWithCache, l as isCacheEnabled, n as claimCacheKeyOnce } from "./cache-ePPAC5hy.js";
8
+ import { n as renderVarsInObject } from "./render-DIhuKgcQ.js";
9
+ import { _ as hasSensitiveOpenAiCacheString, c as appendOpenAiApiPath, f as formatOpenAiError, g as hasSensitiveOpenAiCachePath, h as getTokenUsage$1, l as assertOpenAiApiModel, m as getOpenAICompletionTokenDetails } from "./util-CJi6Bgno.js";
10
+ import { n as calculateOpenAIUsageCost, t as calculateObservableOpenAIToolCost } from "./billing-eFe0xWZw.js";
10
11
  import "./tracing-Ct2HWfTt.js";
11
- import { t as FunctionCallbackHandler } from "./functionCallbackUtils-BGXXxhrC.js";
12
+ import { t as FunctionCallbackHandler } from "./functionCallbackUtils-EjWy67uz.js";
12
13
  import { n as OpenAiGenericProvider } from "./openai-lWgF8NfI.js";
13
14
  //#region src/providers/responses/processor.ts
14
15
  /**
@@ -1142,4 +1143,4 @@ var OpenAiResponsesProvider = class extends OpenAiGenericProvider {
1142
1143
  //#endregion
1143
1144
  export { readResponsesStream as n, ResponsesProcessor as r, OpenAiResponsesProvider as t };
1144
1145
 
1145
- //# sourceMappingURL=responses-Ci3OK0i0.js.map
1146
+ //# sourceMappingURL=responses-ykcvZ0oE.js.map
@@ -1,6 +1,6 @@
1
1
  const require_logger = require("./logger-BN3n9c1R.cjs");
2
2
  const require_tokenUsageUtils = require("./tokenUsageUtils-BbqyaBi4.cjs");
3
- const require_remoteGeneration = require("./remoteGeneration-PxK1EefI.cjs");
3
+ const require_remoteGeneration = require("./remoteGeneration-C0Ev99MO.cjs");
4
4
  //#region src/redteam/shared/runtimeTransform.ts
5
5
  /**
6
6
  * Runtime transform utility for applying strategy transforms per-turn.
@@ -158,4 +158,4 @@ Object.defineProperty(exports, "applyRuntimeTransforms", {
158
158
  }
159
159
  });
160
160
 
161
- //# sourceMappingURL=runtimeTransform-BiANYoNE.cjs.map
161
+ //# sourceMappingURL=runtimeTransform-6aaLbaUN.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { o as logger } from "./logger-D4ion89i.js";
2
2
  import { c as accumulateTokenUsage } from "./tokenUsageUtils-T-dUB6UI.js";
3
- import { p as remoteGenerationContextPayload } from "./remoteGeneration-CwQ0KBdC.js";
3
+ import { p as remoteGenerationContextPayload } from "./remoteGeneration-DGJxSMYI.js";
4
4
  //#region src/redteam/shared/runtimeTransform.ts
5
5
  /**
6
6
  * Runtime transform utility for applying strategy transforms per-turn.
@@ -153,4 +153,4 @@ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategie
153
153
  //#endregion
154
154
  export { applyRuntimeTransforms as t };
155
155
 
156
- //# sourceMappingURL=runtimeTransform-DCRyBnI7.js.map
156
+ //# sourceMappingURL=runtimeTransform-Bf5Aif-g.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { c as logger } from "./logger-YzVIwMVq.js";
3
3
  import { c as accumulateTokenUsage } from "./tokenUsageUtils-Cf6nFV6z.js";
4
- import { p as remoteGenerationContextPayload } from "./remoteGeneration-B0eQSIHo.js";
4
+ import { p as remoteGenerationContextPayload } from "./remoteGeneration-Cc78LDjQ.js";
5
5
  //#region src/redteam/shared/runtimeTransform.ts
6
6
  /**
7
7
  * Runtime transform utility for applying strategy transforms per-turn.
@@ -154,4 +154,4 @@ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategie
154
154
  //#endregion
155
155
  export { applyRuntimeTransforms as t };
156
156
 
157
- //# sourceMappingURL=runtimeTransform-Dvxqdevg.js.map
157
+ //# sourceMappingURL=runtimeTransform-DVpy5lDj.js.map
@@ -1,6 +1,6 @@
1
1
  import { o as logger } from "./logger-BKiOczgq.js";
2
2
  import { c as accumulateTokenUsage } from "./tokenUsageUtils-BCYRro5h.js";
3
- import { p as remoteGenerationContextPayload } from "./remoteGeneration-CopIeiNI.js";
3
+ import { p as remoteGenerationContextPayload } from "./remoteGeneration-DnSGqkoH.js";
4
4
  //#region src/redteam/shared/runtimeTransform.ts
5
5
  /**
6
6
  * Runtime transform utility for applying strategy transforms per-turn.
@@ -153,4 +153,4 @@ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategie
153
153
  //#endregion
154
154
  export { applyRuntimeTransforms as t };
155
155
 
156
- //# sourceMappingURL=runtimeTransform-PGM7l51H.js.map
156
+ //# sourceMappingURL=runtimeTransform-rEgJC2VZ.js.map
@@ -2,7 +2,7 @@ import { n as StringOrFunctionSchema } from "./shared-BED4JRhV.js";
2
2
  import { M as getEnvFloat, N as getEnvInt, P as getEnvString, o as logger } from "./logger-BKiOczgq.js";
3
3
  import "./fileExtensions-ISrPd1Hs.js";
4
4
  import { i as getTransformErrorMessage, o as transform, r as TransformInputType } from "./transform-Ccf_EBqd.js";
5
- import { t as telemetry } from "./telemetry-CIaL2pmn.js";
5
+ import { t as telemetry } from "./telemetry-CJdYAcRk.js";
6
6
  import { z as z$1 } from "zod";
7
7
  import crypto from "crypto";
8
8
  //#region src/providers/sagemaker.ts
@@ -409,7 +409,7 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
409
409
  * Invoke SageMaker endpoint for text generation with caching, delay support, and transformations
410
410
  */
411
411
  async callApi(prompt, context, _options) {
412
- const { isCacheEnabled, getCache } = await import("./cache-Bwj_lNIo.js").then((n) => n.t);
412
+ const { isCacheEnabled, getCache } = await import("./cache-DTOVFNqA.js").then((n) => n.t);
413
413
  const delayMs = context?.originalProvider?.delay || this.delay;
414
414
  const transformResult = await this.runTransformSafely(prompt, context, "SageMaker transform error");
415
415
  if (!transformResult.ok) return { error: transformResult.error };
@@ -423,7 +423,7 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
423
423
  const bustCache = context?.bustCache ?? context?.debug === true;
424
424
  if (isCacheEnabled() && !bustCache) {
425
425
  const cacheKey = this.getCacheKey(transformedPrompt);
426
- const cachedResult = await (getCache ? getCache() : await import("./cache-Bwj_lNIo.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
426
+ const cachedResult = await (getCache ? getCache() : await import("./cache-DTOVFNqA.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
427
427
  if (cachedResult) {
428
428
  logger.debug(`Using cached SageMaker response for ${this.getEndpointName()}`);
429
429
  try {
@@ -497,7 +497,7 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
497
497
  };
498
498
  if (isCacheEnabled() && !bustCache && result.output && !result.error) {
499
499
  const cacheKey = this.getCacheKey(transformedPrompt);
500
- const cache = getCache ? getCache() : await import("./cache-Bwj_lNIo.js").then((n) => n.t).then((m) => m.getCache());
500
+ const cache = getCache ? getCache() : await import("./cache-DTOVFNqA.js").then((n) => n.t).then((m) => m.getCache());
501
501
  const resultToCache = JSON.stringify(result);
502
502
  try {
503
503
  await cache.set(cacheKey, resultToCache);
@@ -542,7 +542,7 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
542
542
  * Invoke SageMaker endpoint for embeddings with caching, delay support, and transformations
543
543
  */
544
544
  async callEmbeddingApi(text, context) {
545
- const { isCacheEnabled, getCache } = await import("./cache-Bwj_lNIo.js").then((n) => n.t);
545
+ const { isCacheEnabled, getCache } = await import("./cache-DTOVFNqA.js").then((n) => n.t);
546
546
  const delayMs = context?.originalProvider?.delay || this.delay;
547
547
  const transformResult = await this.runTransformSafely(text, context, "SageMaker embedding transform error");
548
548
  if (!transformResult.ok) return { error: transformResult.error };
@@ -556,7 +556,7 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
556
556
  const bustCache = context?.debug === true;
557
557
  if (isCacheEnabled() && !bustCache) {
558
558
  const cacheKey = this.getCacheKey(transformedText);
559
- const cachedResult = await (await getCache ? await getCache() : await import("./cache-Bwj_lNIo.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
559
+ const cachedResult = await (await getCache ? await getCache() : await import("./cache-DTOVFNqA.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
560
560
  if (cachedResult) {
561
561
  logger.debug(`Using cached SageMaker embedding response for ${this.getEndpointName()}`);
562
562
  try {
@@ -668,11 +668,11 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
668
668
  * Helper method to cache embedding results
669
669
  */
670
670
  async cacheEmbeddingResult(result, text, context, isTransformed = false, originalText) {
671
- const { isCacheEnabled, getCache } = await import("./cache-Bwj_lNIo.js").then((n) => n.t);
671
+ const { isCacheEnabled, getCache } = await import("./cache-DTOVFNqA.js").then((n) => n.t);
672
672
  const bustCache = context?.debug === true;
673
673
  if (isCacheEnabled() && !bustCache && result.embedding && !result.error) {
674
674
  const cacheKey = this.getCacheKey(text);
675
- const cache = await getCache ? await getCache() : await import("./cache-Bwj_lNIo.js").then((n) => n.t).then((m) => m.getCache());
675
+ const cache = await getCache ? await getCache() : await import("./cache-DTOVFNqA.js").then((n) => n.t).then((m) => m.getCache());
676
676
  if (isTransformed && originalText && !result.metadata) result.metadata = {
677
677
  transformed: true,
678
678
  originalText
@@ -694,4 +694,4 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
694
694
  //#endregion
695
695
  export { SageMakerCompletionProvider, SageMakerEmbeddingProvider };
696
696
 
697
- //# sourceMappingURL=sagemaker-D8O3f2bO.js.map
697
+ //# sourceMappingURL=sagemaker-BzAkO4HL.js.map