promptfoo 0.120.19 → 0.120.20

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 (157) hide show
  1. package/dist/src/{accounts-BOvOkabC.js → accounts-BHfBA-Za.js} +13 -5
  2. package/dist/src/{accounts-Dx12dE-e.js → accounts-DJfbIRgY.js} +14 -6
  3. package/dist/src/{accounts-rQPfTvyL.cjs → accounts-DfyqdjC_.cjs} +13 -5
  4. package/dist/src/{agentic-utils-DPqqYXAT.js → agentic-utils-B45MzZi6.js} +2 -2
  5. package/dist/src/{agents-DJpPPHQt.js → agents-C36GeQ5u.js} +3 -3
  6. package/dist/src/{agents-BCW-0psh.js → agents-D7ARkRCi.js} +6 -6
  7. package/dist/src/{agents-DyRJYZcS.cjs → agents-DnpgMGt3.cjs} +2 -2
  8. package/dist/src/{agents-OzSECFJx.js → agents-DwtMmbXZ.js} +7 -7
  9. package/dist/src/{agents-CNsrPxfK.cjs → agents-Y31RIRTh.cjs} +6 -6
  10. package/dist/src/{agents-C9yJGJ7m.js → agents-Yin2z5Kn.js} +2 -2
  11. package/dist/src/{aimlapi-DOl5pjf3.cjs → aimlapi-D3OZKcn5.cjs} +8 -8
  12. package/dist/src/{aimlapi-BLfqG9Tj.js → aimlapi-SAJHSOPE.js} +8 -8
  13. package/dist/src/{aimlapi-IDHY8IEN.js → aimlapi-Wjb06Bah.js} +9 -9
  14. package/dist/src/app/assets/{index-B67Lm4tH.js → index-4xjRc_fL.js} +3 -3
  15. package/dist/src/app/index.html +1 -1
  16. package/dist/src/{audio-BeWXlhWt.js → audio-Brps1fuk.js} +4 -4
  17. package/dist/src/{audio-d_FIYKQM.js → audio-C38iLDAB.js} +3 -3
  18. package/dist/src/{audio-BMPRDWhd.cjs → audio-CcUQfg9X.cjs} +3 -3
  19. package/dist/src/{base-EzX1aSmn.js → base-B8U5SHXx.js} +2 -2
  20. package/dist/src/{base-StiNGvCZ.js → base-WiBej9QS.js} +2 -2
  21. package/dist/src/{base-B9awyolW.cjs → base-nJoKRrqL.cjs} +2 -2
  22. package/dist/src/{cache-D14swCFw.js → cache-0U1JFKrH.js} +2 -2
  23. package/dist/src/{cache-DL7YSN6U.js → cache-B4zPlX_O.js} +3 -3
  24. package/dist/src/cache-CBUAeE_t.cjs +6 -0
  25. package/dist/src/{cache-D5COhd0N.cjs → cache-DH-n6i0J.cjs} +2 -2
  26. package/dist/src/{cache-BtJ6MsDq.js → cache-DPtUPxsV.js} +2 -2
  27. package/dist/src/{cache-BABLMlsC.js → cache-DSW7FdwS.js} +2 -2
  28. package/dist/src/{chat-BReGLly7.js → chat-B-HICxQx.js} +6 -6
  29. package/dist/src/{chat-CXmtA9na.cjs → chat-BVx3VSrF.cjs} +7 -7
  30. package/dist/src/{chat-ChdbJPXa.cjs → chat-CAz560qk.cjs} +6 -6
  31. package/dist/src/{chat-Dlt1E4OV.js → chat-CaE-RGG8.js} +6 -6
  32. package/dist/src/{chat-BeZmmSe9.js → chat-CvvszsHN.js} +7 -7
  33. package/dist/src/{chat-BZwhlDYK.js → chat-MgkuB86e.js} +8 -8
  34. package/dist/src/{claude-agent-sdk-ByvKNKBh.cjs → claude-agent-sdk-CN0DZ7th.cjs} +7 -7
  35. package/dist/src/{claude-agent-sdk-BKEnMLoQ.js → claude-agent-sdk-D5rj_Ea0.js} +7 -7
  36. package/dist/src/{claude-agent-sdk-CvRQSh16.js → claude-agent-sdk-DOskVF1k.js} +8 -8
  37. package/dist/src/{cloud-CJOhE7mZ.js → cloud-DNVSEJSi.js} +1 -1
  38. package/dist/src/{cloud-CptJ6EsI.js → cloud-Dko_iduu.js} +2 -2
  39. package/dist/src/{cloudflare-ai-CWCns9rH.cjs → cloudflare-ai-DprcEccc.cjs} +8 -8
  40. package/dist/src/{cloudflare-ai-DmM3QdT5.js → cloudflare-ai-Dr1y8QP4.js} +9 -9
  41. package/dist/src/{cloudflare-ai-CctMifKl.js → cloudflare-ai-VsN126nx.js} +8 -8
  42. package/dist/src/{cloudflare-gateway-Cfc4PBWH.cjs → cloudflare-gateway-BmW0gnqL.cjs} +9 -9
  43. package/dist/src/{cloudflare-gateway-CxU5op5F.js → cloudflare-gateway-DgjUxplU.js} +10 -10
  44. package/dist/src/{cloudflare-gateway-BzNwGcPb.js → cloudflare-gateway-otVcitx5.js} +9 -9
  45. package/dist/src/{cometapi-BYLaQ_5k.js → cometapi-BBc0IkML.js} +10 -10
  46. package/dist/src/{cometapi-DqdNx7k8.js → cometapi-Bx_MtdL4.js} +9 -9
  47. package/dist/src/{cometapi-BcrzNz4M.cjs → cometapi-pdpp7qdD.cjs} +9 -9
  48. package/dist/src/{completion-0LMLnsEv.cjs → completion-CBZRdGsT.cjs} +4 -4
  49. package/dist/src/{completion-C6TyxSiO.js → completion-CPcNIGDj.js} +4 -4
  50. package/dist/src/{completion-BAvBvdy-.js → completion-HgnjwNon.js} +4 -4
  51. package/dist/src/{docker-vflV0YFm.js → docker-0bNrc9qY.js} +8 -8
  52. package/dist/src/{docker-DnAH0PEP.js → docker-DOfv8QBM.js} +9 -9
  53. package/dist/src/{docker-B8vvdIq6.cjs → docker-FpnGk-RO.cjs} +8 -8
  54. package/dist/src/{eval-DP8YO_H_.js → eval-BmsK5G6w.js} +3 -3
  55. package/dist/src/{eval-jI2C0BgQ.js → eval-Cela9vA_.js} +4 -4
  56. package/dist/src/{evaluator-U43FIjA2.js → evaluator-CWgN_5z0.js} +16 -13
  57. package/dist/src/{evaluator-DdruTGdr.js → evaluator-TnhtNntI.js} +18 -18
  58. package/dist/src/fetch--YHFEMjB.cjs +4 -0
  59. package/dist/src/{fetch-BmrX-3Yk.js → fetch-4xPs0SRF.js} +3 -3
  60. package/dist/src/{fetch-Zqh23d9T.js → fetch-C4Ayt83U.js} +2 -2
  61. package/dist/src/{fetch-CpS_W5VO.js → fetch-CHaJ96Ar.js} +1 -1
  62. package/dist/src/{fetch-CKwIcyh4.js → fetch-CdID49pr.js} +3 -3
  63. package/dist/src/{fetch-CoTshzk1.cjs → fetch-ZkfbmPN0.cjs} +3 -3
  64. package/dist/src/{graders-D7cSgaoR.js → graders-CBgOtMMc.js} +11 -11
  65. package/dist/src/graders-CK6283YT.js +33 -0
  66. package/dist/src/graders-DJ8_OqGI.js +35 -0
  67. package/dist/src/{graders-Du2eHZjJ.cjs → graders-DfmphqsB.cjs} +11 -11
  68. package/dist/src/{graders-T69xuWKB.js → graders-fl4oDEbO.js} +11 -11
  69. package/dist/src/graders-yURfYDTT.cjs +32 -0
  70. package/dist/src/{image-BuDCfMGF.cjs → image-B37-rsqw.cjs} +3 -3
  71. package/dist/src/{image-VwU7Fgmt.js → image-Be4Cv2Ap.js} +4 -4
  72. package/dist/src/{image-DIHMm_uS.cjs → image-CwxKZ9Qm.cjs} +4 -4
  73. package/dist/src/{image-BheDe7qE.js → image-czMf6JFT.js} +3 -3
  74. package/dist/src/{image-BsCUIzkl.js → image-pFZckGf6.js} +4 -4
  75. package/dist/src/{image-DxmoIEcv.js → image-puqO7EY9.js} +4 -4
  76. package/dist/src/index.cjs +29 -19
  77. package/dist/src/index.d.cts +1 -0
  78. package/dist/src/index.d.ts +1 -0
  79. package/dist/src/index.js +29 -19
  80. package/dist/src/{knowledgeBase-DVpDZz44.cjs → knowledgeBase-1vz9MpF5.cjs} +6 -6
  81. package/dist/src/{knowledgeBase-rp4NDPWw.js → knowledgeBase-Bym8Z8gT.js} +7 -7
  82. package/dist/src/{knowledgeBase-BkTbRLSY.js → knowledgeBase-J9xLiKP_.js} +6 -6
  83. package/dist/src/{litellm-CDqCGQ20.js → litellm-B_D6voCs.js} +9 -9
  84. package/dist/src/{litellm-D4C6FxJF.cjs → litellm-CrWeKkyH.cjs} +8 -8
  85. package/dist/src/{litellm-CADkCSEE.js → litellm-ZI_U6gIn.js} +8 -8
  86. package/dist/src/{luma-ray-Ds_3cBNH.js → luma-ray--vNushxI.js} +6 -6
  87. package/dist/src/{luma-ray-Dmq3sGEF.js → luma-ray-BP75qLao.js} +5 -5
  88. package/dist/src/{luma-ray-B6_p4jam.cjs → luma-ray-hYZqDwv0.cjs} +5 -5
  89. package/dist/src/main.js +38 -31
  90. package/dist/src/{messages-DiMgbkKh.cjs → messages-BbRLnkcl.cjs} +6 -6
  91. package/dist/src/{messages-CJtWOZIe.js → messages-BcF7bG5m.js} +6 -6
  92. package/dist/src/{messages-CdRpwFDc.js → messages-DCdqoM1h.js} +6 -6
  93. package/dist/src/{nova-reel-DX7KIvWb.cjs → nova-reel-C8GArew-.cjs} +5 -5
  94. package/dist/src/{nova-reel-DVq-cSuu.js → nova-reel-CSpdBb3a.js} +6 -6
  95. package/dist/src/{nova-reel-8IkBy1bs.js → nova-reel-D_jqP6kb.js} +5 -5
  96. package/dist/src/{nova-sonic-DKJO_ptV.cjs → nova-sonic-0ut5nkiM.cjs} +5 -5
  97. package/dist/src/{nova-sonic-BiCK-PQ3.js → nova-sonic-DiDPBlrb.js} +6 -6
  98. package/dist/src/{nova-sonic-C98Cr-bl.js → nova-sonic-t3jj_ExJ.js} +5 -5
  99. package/dist/src/{opencode-sdk-CO9yOwAY.js → opencode-sdk-BUW2q-KN.js} +4 -4
  100. package/dist/src/{opencode-sdk-CI0OPbtp.js → opencode-sdk-Q1wkY3Xg.js} +5 -5
  101. package/dist/src/{opencode-sdk-C0N4ADX6.cjs → opencode-sdk-_yGru3cH.cjs} +4 -4
  102. package/dist/src/{providers-BVqrddQM.js → providers-36egbUej.js} +47 -46
  103. package/dist/src/{providers-DH0ICePr.js → providers-C1RMz1vi.js} +15 -15
  104. package/dist/src/{providers-r-EGKjsm.js → providers-CUZ1fbU-.js} +46 -45
  105. package/dist/src/providers-CV7JmSho.cjs +31 -0
  106. package/dist/src/{providers-DEJW_Mce.cjs → providers-Ce2-tX4F.cjs} +46 -45
  107. package/dist/src/{providers-Bwck09KP.js → providers-DSS-5-GM.js} +16 -16
  108. package/dist/src/{quiverai-CXcGf0Um.cjs → quiverai-B3C7YEQa.cjs} +7 -7
  109. package/dist/src/{quiverai-BWEgg_1V.js → quiverai-SJqXxYQi.js} +7 -7
  110. package/dist/src/{quiverai-CI9qdLGN.js → quiverai-yXSeKESB.js} +8 -8
  111. package/dist/src/{sagemaker-BkdikoFs.cjs → sagemaker--Hi2Fxvd.cjs} +11 -11
  112. package/dist/src/{sagemaker-Dta-KLLd.js → sagemaker-C9Yq_6kN.js} +11 -11
  113. package/dist/src/{sagemaker-BBDqG-W8.js → sagemaker-DGrb1iJ_.js} +12 -12
  114. package/dist/src/{scanner-gfoMOYdM.js → scanner-DmwNPoMy.js} +5 -5
  115. package/dist/src/server/index.js +83 -12
  116. package/dist/src/server-Bxi_MUy9.js +8 -0
  117. package/dist/src/server-CaIt5Y81.cjs +6 -0
  118. package/dist/src/{server-CtEbjMpQ.js → server-D-2mB-Yu.js} +4 -4
  119. package/dist/src/{server-B0D7JD2f.cjs → server-DX6ARNiP.cjs} +3 -3
  120. package/dist/src/{server-B4yi16P8.js → server-DkpSTHE4.js} +3 -3
  121. package/dist/src/server-O0XFWkdH.js +6 -0
  122. package/dist/src/telemetry-B7NBYEJL.js +8 -0
  123. package/dist/src/telemetry-Budp4rCL.cjs +6 -0
  124. package/dist/src/{telemetry-CyL66OIi.cjs → telemetry-C7zkNdSS.cjs} +3 -3
  125. package/dist/src/telemetry-C9E9uVvP.js +6 -0
  126. package/dist/src/{telemetry-xbASaZAi.js → telemetry-CBTAdhX5.js} +3 -3
  127. package/dist/src/{telemetry-JcC4Un7b.js → telemetry-ZbgTumMK.js} +3 -3
  128. package/dist/src/{transcription-BhvJa8yz.cjs → transcription-BzdAFFsQ.cjs} +5 -5
  129. package/dist/src/{transcription-Cnh4jliu.js → transcription-CS-VCjQi.js} +6 -6
  130. package/dist/src/{transcription-CwnR9UNe.js → transcription-D--d4kFo.js} +5 -5
  131. package/dist/src/{transform-Ctink4VC.js → transform-BEceP7Wd.js} +3 -3
  132. package/dist/src/{transform-CtircVOE.cjs → transform-CGHhgwFQ.cjs} +3 -3
  133. package/dist/src/{transform-CtJtjE7H.js → transform-DF_Z_INN.js} +3 -3
  134. package/dist/src/{util-CEXgbRYQ.cjs → util-BNInkV3p.cjs} +72 -2
  135. package/dist/src/{util-lPsuGCqV.cjs → util-CHAqsUj1.cjs} +3 -3
  136. package/dist/src/{util-TJNby7Z5.js → util-CgOQNts4.js} +3 -3
  137. package/dist/src/{util-DFelG9dA.js → util-CkT8x9dM.js} +3 -3
  138. package/dist/src/{util-z_rE4MmR.js → util-DKlIKOnZ.js} +55 -3
  139. package/dist/src/{util-B7ONNK1t.js → util-DOcN7fV7.js} +55 -3
  140. package/dist/src/{util-LKEXb2h5.js → util-GUeNxVoV.js} +3 -3
  141. package/dist/src/{util-BQf2eeq2.cjs → util-YP1N9HUu.cjs} +3 -3
  142. package/dist/src/{util-BM9hqrp1.js → util-ktUxLAOK.js} +3 -3
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +6 -6
  145. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  146. package/dist/src/cache-BGccg2_k.cjs +0 -6
  147. package/dist/src/fetch-CJysKd5G.cjs +0 -4
  148. package/dist/src/graders-B8qxIJAB.js +0 -33
  149. package/dist/src/graders-BXdxLi9_.js +0 -35
  150. package/dist/src/graders-Ds93CLzw.cjs +0 -32
  151. package/dist/src/providers-BC8JZJr6.cjs +0 -31
  152. package/dist/src/server-B-hs9cF3.js +0 -6
  153. package/dist/src/server-Ca2C9UWY.js +0 -8
  154. package/dist/src/server-ChNovG9J.cjs +0 -6
  155. package/dist/src/telemetry-DG35u3yJ.cjs +0 -6
  156. package/dist/src/telemetry-Dhvj6byE.js +0 -6
  157. package/dist/src/telemetry-lfD09fPi.js +0 -8
@@ -1,5 +1,5 @@
1
1
  import { C as isCI, b as getEnvString, i as logger_default } from "./logger-q5I8CByj.js";
2
- import { d as writeGlobalConfigPartial, l as readGlobalConfig, r as fetchWithTimeout, s as CloudConfig, u as writeGlobalConfig, w as TERMINAL_MAX_WIDTH } from "./fetch-BmrX-3Yk.js";
2
+ import { d as writeGlobalConfigPartial, l as readGlobalConfig, r as fetchWithTimeout, s as CloudConfig, u as writeGlobalConfig, w as TERMINAL_MAX_WIDTH } from "./fetch-4xPs0SRF.js";
3
3
  import chalk from "chalk";
4
4
  import { z } from "zod";
5
5
  import input from "@inquirer/input";
@@ -78,7 +78,7 @@ function getAuthMethod() {
78
78
  * Used by both CLI and server routes
79
79
  */
80
80
  async function checkEmailStatus(options) {
81
- const { default: telemetry } = await import("./telemetry-Dhvj6byE.js");
81
+ const { default: telemetry } = await import("./telemetry-C9E9uVvP.js");
82
82
  const userEmail = isCI() ? "ci-placeholder@promptfoo.dev" : getUserEmail();
83
83
  if (!userEmail) return {
84
84
  status: NO_EMAIL_STATUS,
@@ -112,7 +112,7 @@ async function checkEmailStatus(options) {
112
112
  }
113
113
  }
114
114
  async function promptForEmailUnverified() {
115
- const { default: telemetry } = await import("./telemetry-Dhvj6byE.js");
115
+ const { default: telemetry } = await import("./telemetry-C9E9uVvP.js");
116
116
  const existingEmail = getUserEmail();
117
117
  let email = isCI() ? "ci-placeholder@promptfoo.dev" : existingEmail;
118
118
  const existingEmailNeedsValidation = !isCI() && getUserEmailNeedsValidation();
@@ -120,10 +120,18 @@ async function promptForEmailUnverified() {
120
120
  let emailNeedsValidation = existingEmailNeedsValidation && !existingEmailValidated;
121
121
  if (!email) {
122
122
  await telemetry.record("feature_used", { feature: "promptForEmailUnverified" });
123
+ const border = "─".repeat(TERMINAL_MAX_WIDTH);
124
+ logger_default.info("");
125
+ logger_default.info(chalk.cyan(border));
126
+ logger_default.info(chalk.cyan.bold(" Email Verification Required"));
127
+ logger_default.info(chalk.cyan(border));
128
+ logger_default.info("");
129
+ logger_default.info(" Red team scans require email verification to continue.");
130
+ logger_default.info("");
123
131
  const emailSchema = z.email();
124
132
  try {
125
133
  email = await input({
126
- message: "Redteam evals require email verification. Please enter your work email:",
134
+ message: chalk.bold("Work email:"),
127
135
  validate: (input) => {
128
136
  const result = emailSchema.safeParse(input);
129
137
  return result.success || result.error.issues[0].message;
@@ -165,4 +173,4 @@ async function checkEmailStatusAndMaybeExit(options) {
165
173
 
166
174
  //#endregion
167
175
  export { getUserId as a, setUserEmail as c, getUserEmail as i, EMAIL_OK_STATUS as l, getAuthMethod as n, isLoggedIntoCloud as o, getAuthor as r, promptForEmailUnverified as s, checkEmailStatusAndMaybeExit as t };
168
- //# sourceMappingURL=accounts-BOvOkabC.js.map
176
+ //# sourceMappingURL=accounts-BHfBA-Za.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { C as getEnvString, E as isCI, o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { r as fetchWithTimeout, y as TERMINAL_MAX_WIDTH } from "./fetch-CKwIcyh4.js";
4
- import { a as readGlobalConfig, o as writeGlobalConfig, r as CloudConfig, s as writeGlobalConfigPartial } from "./cloud-CptJ6EsI.js";
3
+ import { r as fetchWithTimeout, y as TERMINAL_MAX_WIDTH } from "./fetch-CdID49pr.js";
4
+ import { a as readGlobalConfig, o as writeGlobalConfig, r as CloudConfig, s as writeGlobalConfigPartial } from "./cloud-Dko_iduu.js";
5
5
  import { z } from "zod";
6
6
  import input from "@inquirer/input";
7
7
  import chalk from "chalk";
@@ -85,7 +85,7 @@ function getAuthMethod() {
85
85
  * Used by both CLI and server routes
86
86
  */
87
87
  async function checkEmailStatus(options) {
88
- const { default: telemetry } = await import("./telemetry-lfD09fPi.js");
88
+ const { default: telemetry } = await import("./telemetry-B7NBYEJL.js");
89
89
  const userEmail = isCI() ? "ci-placeholder@promptfoo.dev" : getUserEmail();
90
90
  if (!userEmail) return {
91
91
  status: NO_EMAIL_STATUS,
@@ -119,7 +119,7 @@ async function checkEmailStatus(options) {
119
119
  }
120
120
  }
121
121
  async function promptForEmailUnverified() {
122
- const { default: telemetry } = await import("./telemetry-lfD09fPi.js");
122
+ const { default: telemetry } = await import("./telemetry-B7NBYEJL.js");
123
123
  const existingEmail = getUserEmail();
124
124
  let email = isCI() ? "ci-placeholder@promptfoo.dev" : existingEmail;
125
125
  const existingEmailNeedsValidation = !isCI() && getUserEmailNeedsValidation();
@@ -127,10 +127,18 @@ async function promptForEmailUnverified() {
127
127
  let emailNeedsValidation = existingEmailNeedsValidation && !existingEmailValidated;
128
128
  if (!email) {
129
129
  await telemetry.record("feature_used", { feature: "promptForEmailUnverified" });
130
+ const border = "─".repeat(TERMINAL_MAX_WIDTH);
131
+ logger_default.info("");
132
+ logger_default.info(chalk.cyan(border));
133
+ logger_default.info(chalk.cyan.bold(" Email Verification Required"));
134
+ logger_default.info(chalk.cyan(border));
135
+ logger_default.info("");
136
+ logger_default.info(" Red team scans require email verification to continue.");
137
+ logger_default.info("");
130
138
  const emailSchema = z.email();
131
139
  try {
132
140
  email = await input({
133
- message: "Redteam evals require email verification. Please enter your work email:",
141
+ message: chalk.bold("Work email:"),
134
142
  validate: (input) => {
135
143
  const result = emailSchema.safeParse(input);
136
144
  return result.success || result.error.issues[0].message;
@@ -172,4 +180,4 @@ async function checkEmailStatusAndMaybeExit(options) {
172
180
 
173
181
  //#endregion
174
182
  export { getAuthor as a, isLoggedIntoCloud as c, EMAIL_OK_STATUS as d, getAuthMethod as i, promptForEmailUnverified as l, checkEmailStatusAndMaybeExit as n, getUserEmail as o, clearUserEmail as r, getUserId as s, checkEmailStatus as t, setUserEmail as u };
175
- //# sourceMappingURL=accounts-Dx12dE-e.js.map
183
+ //# sourceMappingURL=accounts-DJfbIRgY.js.map
@@ -1,5 +1,5 @@
1
1
  const require_logger = require('./logger-CMp-NS-e.cjs');
2
- const require_fetch = require('./fetch-CoTshzk1.cjs');
2
+ const require_fetch = require('./fetch-ZkfbmPN0.cjs');
3
3
  let chalk = require("chalk");
4
4
  chalk = require_logger.__toESM(chalk);
5
5
  let zod = require("zod");
@@ -80,7 +80,7 @@ function getAuthMethod() {
80
80
  * Used by both CLI and server routes
81
81
  */
82
82
  async function checkEmailStatus(options) {
83
- const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-DG35u3yJ.cjs"));
83
+ const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-Budp4rCL.cjs"));
84
84
  const userEmail = require_logger.isCI() ? "ci-placeholder@promptfoo.dev" : getUserEmail();
85
85
  if (!userEmail) return {
86
86
  status: NO_EMAIL_STATUS,
@@ -114,7 +114,7 @@ async function checkEmailStatus(options) {
114
114
  }
115
115
  }
116
116
  async function promptForEmailUnverified() {
117
- const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-DG35u3yJ.cjs"));
117
+ const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-Budp4rCL.cjs"));
118
118
  const existingEmail = getUserEmail();
119
119
  let email = require_logger.isCI() ? "ci-placeholder@promptfoo.dev" : existingEmail;
120
120
  const existingEmailNeedsValidation = !require_logger.isCI() && getUserEmailNeedsValidation();
@@ -122,10 +122,18 @@ async function promptForEmailUnverified() {
122
122
  let emailNeedsValidation = existingEmailNeedsValidation && !existingEmailValidated;
123
123
  if (!email) {
124
124
  await telemetry.record("feature_used", { feature: "promptForEmailUnverified" });
125
+ const border = "─".repeat(require_fetch.TERMINAL_MAX_WIDTH);
126
+ require_logger.logger_default.info("");
127
+ require_logger.logger_default.info(chalk.default.cyan(border));
128
+ require_logger.logger_default.info(chalk.default.cyan.bold(" Email Verification Required"));
129
+ require_logger.logger_default.info(chalk.default.cyan(border));
130
+ require_logger.logger_default.info("");
131
+ require_logger.logger_default.info(" Red team scans require email verification to continue.");
132
+ require_logger.logger_default.info("");
125
133
  const emailSchema = zod.z.email();
126
134
  try {
127
135
  email = await (0, _inquirer_input.default)({
128
- message: "Redteam evals require email verification. Please enter your work email:",
136
+ message: chalk.default.bold("Work email:"),
129
137
  validate: (input) => {
130
138
  const result = emailSchema.safeParse(input);
131
139
  return result.success || result.error.issues[0].message;
@@ -220,4 +228,4 @@ Object.defineProperty(exports, 'setUserEmail', {
220
228
  return setUserEmail;
221
229
  }
222
230
  });
223
- //# sourceMappingURL=accounts-rQPfTvyL.cjs.map
231
+ //# sourceMappingURL=accounts-DfyqdjC_.cjs.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { o as getCache, s as isCacheEnabled } from "./cache-BtJ6MsDq.js";
3
+ import { o as getCache, s as isCacheEnabled } from "./cache-DPtUPxsV.js";
4
4
  import fs from "fs";
5
5
  import path from "path";
6
6
  import dedent from "dedent";
@@ -146,4 +146,4 @@ async function cacheResponse(cacheResult, response, debugContext) {
146
146
 
147
147
  //#endregion
148
148
  export { getCachedResponse as n, initializeAgenticCache as r, cacheResponse as t };
149
- //# sourceMappingURL=agentic-utils-DPqqYXAT.js.map
149
+ //# sourceMappingURL=agentic-utils-B45MzZi6.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { O as cliState_default, o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { t as fetchWithProxy } from "./fetch-CKwIcyh4.js";
4
- import "./cloud-CptJ6EsI.js";
3
+ import { t as fetchWithProxy } from "./fetch-CdID49pr.js";
4
+ import "./cloud-Dko_iduu.js";
5
5
  import { r as importModule } from "./esm-Bwuh5HXW.js";
6
6
  import { t as OpenAiGenericProvider } from "./openai-D_5h8sBa.js";
7
7
  import path from "path";
@@ -432,4 +432,4 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
432
432
 
433
433
  //#endregion
434
434
  export { OpenAiAgentsProvider };
435
- //# sourceMappingURL=agents-DJpPPHQt.js.map
435
+ //# sourceMappingURL=agents-C36GeQ5u.js.map
@@ -1,10 +1,10 @@
1
1
  import "./chunk-FhC4c-0y.js";
2
2
  import { b as getEnvString, i as logger_default, y as getEnvInt } from "./logger-q5I8CByj.js";
3
- import "./fetch-BmrX-3Yk.js";
4
- import { o as getCache, s as isCacheEnabled } from "./cache-BABLMlsC.js";
5
- import "./accounts-BOvOkabC.js";
6
- import { n as telemetry_default } from "./telemetry-xbASaZAi.js";
7
- import { t as AwsBedrockGenericProvider } from "./base-EzX1aSmn.js";
3
+ import "./fetch-4xPs0SRF.js";
4
+ import { o as getCache, s as isCacheEnabled } from "./cache-DSW7FdwS.js";
5
+ import "./accounts-BHfBA-Za.js";
6
+ import { n as telemetry_default } from "./telemetry-CBTAdhX5.js";
7
+ import { t as AwsBedrockGenericProvider } from "./base-B8U5SHXx.js";
8
8
 
9
9
  //#region src/providers/bedrock/agents.ts
10
10
  /**
@@ -239,4 +239,4 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
239
239
 
240
240
  //#endregion
241
241
  export { AwsBedrockAgentsProvider };
242
- //# sourceMappingURL=agents-BCW-0psh.js.map
242
+ //# sourceMappingURL=agents-D7ARkRCi.js.map
@@ -1,6 +1,6 @@
1
1
  const require_logger = require('./logger-CMp-NS-e.cjs');
2
2
  const require_esm = require('./esm-gWVPXn3r.cjs');
3
- const require_fetch = require('./fetch-CoTshzk1.cjs');
3
+ const require_fetch = require('./fetch-ZkfbmPN0.cjs');
4
4
  const require_openai = require('./openai-eZz8QsxY.cjs');
5
5
  let path = require("path");
6
6
  path = require_logger.__toESM(path);
@@ -431,4 +431,4 @@ var OpenAiAgentsProvider = class extends require_openai.OpenAiGenericProvider {
431
431
 
432
432
  //#endregion
433
433
  exports.OpenAiAgentsProvider = OpenAiAgentsProvider;
434
- //# sourceMappingURL=agents-DyRJYZcS.cjs.map
434
+ //# sourceMappingURL=agents-DnpgMGt3.cjs.map
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import "./chunk-DHDDz29n.js";
3
3
  import { C as getEnvString, S as getEnvInt, o as logger_default } from "./logger-Bzi5o47S.js";
4
- import "./fetch-CKwIcyh4.js";
5
- import "./accounts-Dx12dE-e.js";
6
- import "./cloud-CptJ6EsI.js";
7
- import { r as telemetry_default } from "./telemetry-JcC4Un7b.js";
8
- import { o as getCache, s as isCacheEnabled } from "./cache-BtJ6MsDq.js";
9
- import { t as AwsBedrockGenericProvider } from "./base-StiNGvCZ.js";
4
+ import "./fetch-CdID49pr.js";
5
+ import "./accounts-DJfbIRgY.js";
6
+ import "./cloud-Dko_iduu.js";
7
+ import { r as telemetry_default } from "./telemetry-ZbgTumMK.js";
8
+ import { o as getCache, s as isCacheEnabled } from "./cache-DPtUPxsV.js";
9
+ import { t as AwsBedrockGenericProvider } from "./base-WiBej9QS.js";
10
10
 
11
11
  //#region src/providers/bedrock/agents.ts
12
12
  /**
@@ -241,4 +241,4 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
241
241
 
242
242
  //#endregion
243
243
  export { AwsBedrockAgentsProvider };
244
- //# sourceMappingURL=agents-OzSECFJx.js.map
244
+ //# sourceMappingURL=agents-DwtMmbXZ.js.map
@@ -1,9 +1,9 @@
1
1
  const require_logger = require('./logger-CMp-NS-e.cjs');
2
- require('./fetch-CoTshzk1.cjs');
3
- const require_cache = require('./cache-D5COhd0N.cjs');
4
- require('./accounts-rQPfTvyL.cjs');
5
- const require_telemetry = require('./telemetry-CyL66OIi.cjs');
6
- const require_base = require('./base-B9awyolW.cjs');
2
+ require('./fetch-ZkfbmPN0.cjs');
3
+ const require_cache = require('./cache-DH-n6i0J.cjs');
4
+ require('./accounts-DfyqdjC_.cjs');
5
+ const require_telemetry = require('./telemetry-C7zkNdSS.cjs');
6
+ const require_base = require('./base-nJoKRrqL.cjs');
7
7
 
8
8
  //#region src/providers/bedrock/agents.ts
9
9
  /**
@@ -238,4 +238,4 @@ var AwsBedrockAgentsProvider = class extends require_base.AwsBedrockGenericProvi
238
238
 
239
239
  //#endregion
240
240
  exports.AwsBedrockAgentsProvider = AwsBedrockAgentsProvider;
241
- //# sourceMappingURL=agents-CNsrPxfK.cjs.map
241
+ //# sourceMappingURL=agents-Y31RIRTh.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { i as logger_default, w as cliState_default } from "./logger-q5I8CByj.js";
2
2
  import { r as importModule } from "./esm-D40XsWlR.js";
3
- import { t as fetchWithProxy } from "./fetch-BmrX-3Yk.js";
3
+ import { t as fetchWithProxy } from "./fetch-4xPs0SRF.js";
4
4
  import { t as OpenAiGenericProvider } from "./openai-CQozD_Ef.js";
5
5
  import path from "path";
6
6
  import { BatchTraceProcessor, addTraceProcessor, getOrCreateTrace, run, startTraceExportLoop } from "@openai/agents";
@@ -430,4 +430,4 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
430
430
 
431
431
  //#endregion
432
432
  export { OpenAiAgentsProvider };
433
- //# sourceMappingURL=agents-C9yJGJ7m.js.map
433
+ //# sourceMappingURL=agents-Yin2z5Kn.js.map
@@ -2,15 +2,15 @@ require('./logger-CMp-NS-e.cjs');
2
2
  require('./esm-gWVPXn3r.cjs');
3
3
  require('./pythonUtils-rOCm9w_5.cjs');
4
4
  require('./types-DY--pQrH.cjs');
5
- require('./util-CEXgbRYQ.cjs');
6
- require('./fetch-CoTshzk1.cjs');
7
- require('./cache-D5COhd0N.cjs');
5
+ require('./util-BNInkV3p.cjs');
6
+ require('./fetch-ZkfbmPN0.cjs');
7
+ require('./cache-DH-n6i0J.cjs');
8
8
  require('./genaiTracer-zK0Mtd_D.cjs');
9
- const require_chat = require('./chat-ChdbJPXa.cjs');
10
- require('./transform-CtircVOE.cjs');
9
+ const require_chat = require('./chat-CAz560qk.cjs');
10
+ require('./transform-CGHhgwFQ.cjs');
11
11
  require('./openai-eZz8QsxY.cjs');
12
- require('./util-lPsuGCqV.cjs');
13
- const require_completion = require('./completion-0LMLnsEv.cjs');
12
+ require('./util-CHAqsUj1.cjs');
13
+ const require_completion = require('./completion-CBZRdGsT.cjs');
14
14
 
15
15
  //#region src/providers/aimlapi.ts
16
16
  /**
@@ -36,4 +36,4 @@ function createAimlApiProvider(providerPath, options = {}) {
36
36
 
37
37
  //#endregion
38
38
  exports.createAimlApiProvider = createAimlApiProvider;
39
- //# sourceMappingURL=aimlapi-DOl5pjf3.cjs.map
39
+ //# sourceMappingURL=aimlapi-D3OZKcn5.cjs.map
@@ -3,15 +3,15 @@ import "./logger-q5I8CByj.js";
3
3
  import "./esm-D40XsWlR.js";
4
4
  import "./pythonUtils-eNq6Wsfr.js";
5
5
  import "./types-CyCiwPFa.js";
6
- import "./util-z_rE4MmR.js";
7
- import "./fetch-BmrX-3Yk.js";
8
- import "./cache-BABLMlsC.js";
6
+ import "./util-DKlIKOnZ.js";
7
+ import "./fetch-4xPs0SRF.js";
8
+ import "./cache-DSW7FdwS.js";
9
9
  import "./genaiTracer-CNawybn-.js";
10
- import { t as OpenAiChatCompletionProvider } from "./chat-Dlt1E4OV.js";
11
- import "./transform-CtJtjE7H.js";
10
+ import { t as OpenAiChatCompletionProvider } from "./chat-CaE-RGG8.js";
11
+ import "./transform-DF_Z_INN.js";
12
12
  import "./openai-CQozD_Ef.js";
13
- import "./util-BM9hqrp1.js";
14
- import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-BAvBvdy-.js";
13
+ import "./util-ktUxLAOK.js";
14
+ import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-HgnjwNon.js";
15
15
 
16
16
  //#region src/providers/aimlapi.ts
17
17
  /**
@@ -37,4 +37,4 @@ function createAimlApiProvider(providerPath, options = {}) {
37
37
 
38
38
  //#endregion
39
39
  export { createAimlApiProvider };
40
- //# sourceMappingURL=aimlapi-BLfqG9Tj.js.map
40
+ //# sourceMappingURL=aimlapi-SAJHSOPE.js.map
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import "./chunk-DHDDz29n.js";
3
3
  import "./logger-Bzi5o47S.js";
4
- import "./fetch-CKwIcyh4.js";
5
- import "./cloud-CptJ6EsI.js";
4
+ import "./fetch-CdID49pr.js";
5
+ import "./cloud-Dko_iduu.js";
6
6
  import "./types-BDVhkn1l.js";
7
- import "./cache-BtJ6MsDq.js";
8
- import "./util-B7ONNK1t.js";
7
+ import "./cache-DPtUPxsV.js";
8
+ import "./util-DOcN7fV7.js";
9
9
  import "./esm-Bwuh5HXW.js";
10
10
  import "./pythonUtils-mprm8p4h.js";
11
11
  import "./genaiTracer-CqNnnXrE.js";
12
- import { t as OpenAiChatCompletionProvider } from "./chat-BReGLly7.js";
13
- import "./transform-Ctink4VC.js";
12
+ import { t as OpenAiChatCompletionProvider } from "./chat-B-HICxQx.js";
13
+ import "./transform-BEceP7Wd.js";
14
14
  import "./openai-D_5h8sBa.js";
15
- import "./util-TJNby7Z5.js";
16
- import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-C6TyxSiO.js";
15
+ import "./util-CgOQNts4.js";
16
+ import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-CPcNIGDj.js";
17
17
 
18
18
  //#region src/providers/aimlapi.ts
19
19
  /**
@@ -39,4 +39,4 @@ function createAimlApiProvider(providerPath, options = {}) {
39
39
 
40
40
  //#endregion
41
41
  export { createAimlApiProvider };
42
- //# sourceMappingURL=aimlapi-IDHY8IEN.js.map
42
+ //# sourceMappingURL=aimlapi-Wjb06Bah.js.map