promptfoo 0.120.27 → 0.121.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 (355) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{ListApp-8WOe2nT6.js → ListApp-Du7YVwj5.js} +2 -4
  3. package/dist/src/accounts-B0pgC1oV.js +206 -0
  4. package/dist/src/{accounts-DVINui-2.js → accounts-Bm2D8Db9.js} +39 -34
  5. package/dist/src/{accounts-CPDRAMND.js → accounts-CiBLOnA7.js} +38 -33
  6. package/dist/src/{accounts-Fl2J3_Fu.cjs → accounts-gtkH-5KX.cjs} +77 -78
  7. package/dist/src/{agentic-utils-D922n6mm.js → agentic-utils-DS1g3GLF.js} +9 -10
  8. package/dist/src/{agents-BcsN_BgB.js → agents-9qiOy0ho.js} +16 -12
  9. package/dist/src/{agents-BXLmVsxR.js → agents-CBr9A01V.js} +37 -37
  10. package/dist/src/{agents-pMfppv9Z.js → agents-CmvBq8LV.js} +16 -18
  11. package/dist/src/{agents-hqgSV-3o.js → agents-D__IdAlg.js} +39 -40
  12. package/dist/src/{agents-BO2n8Z0d.cjs → agents-DbRtpYxR.cjs} +37 -40
  13. package/dist/src/{agents-BdUTAwi-.js → agents-DgF2zDag.js} +37 -42
  14. package/dist/src/{agents-DgJf2-ez.cjs → agents-Di9DKPzn.cjs} +16 -17
  15. package/dist/src/{agents-DNvSH78i.js → agents-cLXA8a_8.js} +17 -19
  16. package/dist/src/{aimlapi-DtgPI0nE.js → aimlapi-B4rcnZgv.js} +15 -17
  17. package/dist/src/{aimlapi-BE_Tg9Fl.cjs → aimlapi-BvlNH0gr.cjs} +15 -16
  18. package/dist/src/{aimlapi-DOib86oE.js → aimlapi-CnkC2HqE.js} +16 -18
  19. package/dist/src/{aimlapi-DTPACCB1.js → aimlapi-DHJU_kcV.js} +15 -4
  20. package/dist/src/app/assets/index-4LKxG2CG.js +439 -0
  21. package/dist/src/app/assets/{index-NCn4eVBv.css → index-C3zcsZFQ.css} +1 -1
  22. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
  23. package/dist/src/app/index.html +3 -3
  24. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  25. package/dist/src/{audio-BnRUGAm_.js → audio-Bkv46et0.js} +6 -5
  26. package/dist/src/{audio-Cwo68yZS.cjs → audio-CGMyULza.cjs} +6 -7
  27. package/dist/src/{audio-MSRki4JU.js → audio-ClI_AFre.js} +6 -8
  28. package/dist/src/{audio-BRYU0BFo.js → audio-Dz3z7s3J.js} +7 -9
  29. package/dist/src/{base-pGVmXNl4.cjs → base-CGrhspbK.cjs} +36 -38
  30. package/dist/src/{base-h961VXYk.js → base-CpjcHe4e.js} +11 -13
  31. package/dist/src/base-DLKtKMFh.js +193 -0
  32. package/dist/src/{base-XB2tDJrB.js → base-Dy1V8--Z.js} +11 -13
  33. package/dist/src/blobs-BDbfYdrJ.js +236 -0
  34. package/dist/src/{blobs-CR5C4Ihh.js → blobs-CBO20krR.js} +9 -12
  35. package/dist/src/{blobs-BM_e6hCa.js → blobs-CMHN0Qcz.js} +9 -12
  36. package/dist/src/{blobs-B-KQAFhX.cjs → blobs-D23XLin-.cjs} +34 -37
  37. package/dist/src/{cache-jsiwsAJv.js → cache-BVeDlD87.js} +132 -117
  38. package/dist/src/{cache-CIpsoBZR.js → cache-C4Nxf52C.js} +132 -118
  39. package/dist/src/cache-CeUpFm3M.cjs +5 -0
  40. package/dist/src/{cache-BTVYfbka.cjs → cache-Dh5WtQps.cjs} +182 -168
  41. package/dist/src/cache-i1P6crbO.js +756 -0
  42. package/dist/src/cache-n-RCJ-hL.js +6 -0
  43. package/dist/src/{chat-BcPjZXIp.js → chat-BiKyneZl.js} +45 -46
  44. package/dist/src/{chat-D31K7C4u.cjs → chat-C1Qst7jL.cjs} +20 -21
  45. package/dist/src/{chat-B84t99NW.js → chat-C2jrdPMx.js} +20 -9
  46. package/dist/src/{chat-BE44YOc6.cjs → chat-CgF-J-Jj.cjs} +65 -66
  47. package/dist/src/{chat-DwWifjxi.js → chat-CzkrVDfz.js} +20 -22
  48. package/dist/src/chat-DJIw17u0.js +766 -0
  49. package/dist/src/{chat-CcUCysjU.js → chat-DqxYYtWA.js} +45 -46
  50. package/dist/src/{chat-DZM2GUHO.js → chat-qmatte1u.js} +21 -23
  51. package/dist/src/{chatkit-D67HS_0b.js → chatkit-65VXf5SR.js} +58 -58
  52. package/dist/src/{chatkit-DAB_qfzI.js → chatkit-Be-Q-a9F.js} +58 -60
  53. package/dist/src/{chatkit-Biqb_wsD.js → chatkit-BxFvW8KY.js} +58 -60
  54. package/dist/src/{chatkit-PGG4ZYIn.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  55. package/dist/src/chunk-DEq-mXcV.js +15 -0
  56. package/dist/src/chunk-DRamLcfz.js +16 -0
  57. package/dist/src/{claude-agent-sdk-SVM6AdBu.js → claude-agent-sdk-Apiy0iaz.js} +31 -31
  58. package/dist/src/{claude-agent-sdk-C-IOTPfo.js → claude-agent-sdk-D2bJee9S.js} +31 -29
  59. package/dist/src/{claude-agent-sdk-C9SiaQub.cjs → claude-agent-sdk-D9Z5Pr9X.cjs} +31 -28
  60. package/dist/src/{claude-agent-sdk-CiluSyW1.js → claude-agent-sdk-DfCoW0E6.js} +33 -20
  61. package/dist/src/cloud-BBh91EUK.js +4 -0
  62. package/dist/src/{cloud-CZ-q9Ier.js → cloud-C0dlstV_.js} +7 -9
  63. package/dist/src/{cloudflare-ai-BahKHyhh.js → cloudflare-ai-8TDxHR0x.js} +16 -18
  64. package/dist/src/{cloudflare-ai-v_qZD6_q.js → cloudflare-ai-BxAGvfju.js} +17 -19
  65. package/dist/src/{cloudflare-ai-Dfahv5SY.cjs → cloudflare-ai-CknbZ5LJ.cjs} +16 -17
  66. package/dist/src/{cloudflare-ai-Dxyt50Nl.js → cloudflare-ai-g7PB6VHR.js} +16 -4
  67. package/dist/src/{cloudflare-gateway-Bi_FpOFy.js → cloudflare-gateway-B9HWA5wf.js} +23 -23
  68. package/dist/src/{cloudflare-gateway-BPWoZIzJ.cjs → cloudflare-gateway-BSnDmHYo.cjs} +21 -22
  69. package/dist/src/{cloudflare-gateway-C0guUNwk.js → cloudflare-gateway-CKDb4dJ8.js} +26 -14
  70. package/dist/src/{cloudflare-gateway-btS7h1OZ.js → cloudflare-gateway-CP9QEWYS.js} +21 -25
  71. package/dist/src/{codex-sdk-DSxAnbfT.js → codex-sdk-C6UMlxwV.js} +28 -29
  72. package/dist/src/{codex-sdk-IYVi9fuM.js → codex-sdk-DUwKWezN.js} +28 -27
  73. package/dist/src/{codex-sdk-DulY0ZRq.js → codex-sdk-GGAw0qbD.js} +28 -29
  74. package/dist/src/{codex-sdk-DFKMtAyf.cjs → codex-sdk-fAO0c3yA.cjs} +28 -29
  75. package/dist/src/{cometapi-DzrR3SR_.js → cometapi-BL9yvj_f.js} +16 -4
  76. package/dist/src/{cometapi-DIO64tf4.cjs → cometapi-C4xSqeID.cjs} +21 -22
  77. package/dist/src/{cometapi-C9EEpJzT.js → cometapi-CUQq3H_a.js} +21 -24
  78. package/dist/src/{cometapi-DkNBMk0G.js → cometapi-DFNiKmSz.js} +17 -19
  79. package/dist/src/{completion-CG29bfKX.js → completion-5MzrpJxT.js} +11 -13
  80. package/dist/src/{completion-CCRT4kX1.cjs → completion-CM6oK8PS.cjs} +21 -23
  81. package/dist/src/{completion-Bgf1VJoq.js → completion-DZ083F31.js} +11 -13
  82. package/dist/src/completion-qRoZAYRB.js +120 -0
  83. package/dist/src/{createHash-Dw_iLu31.js → createHash-CTQmL3G2.js} +2 -3
  84. package/dist/src/{createHash-CYQy4YeL.cjs → createHash-CfZSc0b4.cjs} +13 -14
  85. package/dist/src/{createHash-CJcfskIZ.js → createHash-Da8fMwqB.js} +2 -3
  86. package/dist/src/createHash-DmPQkvBh.js +15 -0
  87. package/dist/src/{docker-D-ayp2FW.js → docker-Bb5dcxr8.js} +18 -20
  88. package/dist/src/{docker-B81N0t4e.js → docker-BvfL2BrW.js} +19 -21
  89. package/dist/src/{docker-DNcLR4Ig.cjs → docker-DcF2pRrj.cjs} +18 -19
  90. package/dist/src/{docker-egERKxCF.js → docker-ExVyLp0S.js} +18 -7
  91. package/dist/src/entrypoint.js +2 -3
  92. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  93. package/dist/src/{esm-B9dPm_BF.js → esm-C03C-mv3.js} +17 -20
  94. package/dist/src/{esm-D2pZ87fL.js → esm-CaIwzWR5.js} +18 -21
  95. package/dist/src/esm-Cd1AjG1D.js +379 -0
  96. package/dist/src/{esm-Ct-Joyue.cjs → esm-CnNt7sI4.cjs} +47 -49
  97. package/dist/src/eval-B3r2CVXr.js +15 -0
  98. package/dist/src/{eval-C-Nr6wX_.js → eval-Dg2nG4v2.js} +47 -54
  99. package/dist/src/evalResult-5xwYnECe.js +12 -0
  100. package/dist/src/evalResult-71lY93Kj.cjs +10 -0
  101. package/dist/src/{evalResult-DXMWJ3sx.js → evalResult-BBRNtX4I.js} +10 -11
  102. package/dist/src/{evalResult-4BzI2tmj.js → evalResult-BDMqrapS.js} +16 -12
  103. package/dist/src/evalResult-Dx5P5cIv.js +10 -0
  104. package/dist/src/{evalResult-CX8wQecI.cjs → evalResult-fuaI8HkH.cjs} +20 -21
  105. package/dist/src/{evaluator-8aGyV12L.js → evaluator-BhoWwp5b.js} +211 -235
  106. package/dist/src/evaluator-Jx6bRZV6.js +36 -0
  107. package/dist/src/{extractor-V5x_m1i0.js → extractor-C0EVHewb.js} +22 -24
  108. package/dist/src/extractor-D25qpmGX.js +374 -0
  109. package/dist/src/{extractor-CD5yKL-G.js → extractor-DReVID0K.js} +22 -24
  110. package/dist/src/{extractor-C031XmTA.cjs → extractor-pYLLi3wS.cjs} +37 -39
  111. package/dist/src/{fetch-BmbD-v1L.cjs → fetch-BPkYtG8K.cjs} +244 -277
  112. package/dist/src/fetch-BxNb_Lp3.js +5 -0
  113. package/dist/src/{fetch-D3OHf-lV.js → fetch-Cwxnd8zz.js} +36 -44
  114. package/dist/src/{fetch-CXZI9RRr.js → fetch-Dxpd4_sr.js} +23 -35
  115. package/dist/src/fetch-HaqdX7U1.js +780 -0
  116. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  117. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  118. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  119. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  120. package/dist/src/{formatDuration-CdevI3An.js → formatDuration-DgBVMN65.js} +2 -2
  121. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  122. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  123. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  124. package/dist/src/{genaiTracer-Dres3qrN.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  125. package/dist/src/{graders--1y2u9HO.js → graders-BTeBGqjJ.js} +349 -397
  126. package/dist/src/graders-B_pgMLS2.js +34 -0
  127. package/dist/src/{graders-DTeBrzWp.js → graders-Bj_Odv7c.js} +349 -397
  128. package/dist/src/graders-DErokPDO.cjs +32 -0
  129. package/dist/src/graders-DP7KFFo-.js +13466 -0
  130. package/dist/src/graders-DR_uNe54.js +32 -0
  131. package/dist/src/{graders-DohM2dir.cjs → graders-DU49_J8Y.cjs} +684 -732
  132. package/dist/src/graders-w3176Wz-.js +32 -0
  133. package/dist/src/{image-B0U4Hqll.js → image-B02ogr_b.js} +7 -9
  134. package/dist/src/{image-DmE-niFE.js → image-B0h9VEMc.js} +6 -5
  135. package/dist/src/{image-CuKHuccK.cjs → image-BLmROtN3.cjs} +29 -30
  136. package/dist/src/{image-DNEIf_aI.js → image-Bb4vWQLM.js} +6 -8
  137. package/dist/src/{image-DpKl2F15.cjs → image-C1madmKh.cjs} +6 -7
  138. package/dist/src/{image-C3wHC9_h.js → image-CHfWvljl.js} +9 -10
  139. package/dist/src/{image-O1u4bCFg.js → image-DS-o-0ph.js} +9 -10
  140. package/dist/src/image-Dpxa1Jt6.js +257 -0
  141. package/dist/src/index.cjs +615 -695
  142. package/dist/src/index.d.cts +271 -7
  143. package/dist/src/index.d.ts +271 -3
  144. package/dist/src/index.js +580 -664
  145. package/dist/src/{interactiveCheck-Bxj1Swex.js → interactiveCheck-BgLZUIt3.js} +7 -8
  146. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  147. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  148. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  149. package/dist/src/invariant-vgHWClmd.js +25 -0
  150. package/dist/src/{knowledgeBase-CEzQobWX.js → knowledgeBase-B3OoKIej.js} +14 -9
  151. package/dist/src/{knowledgeBase-Be_zyW4L.js → knowledgeBase-CYTLHOt1.js} +16 -16
  152. package/dist/src/{knowledgeBase-BZ41IFwq.js → knowledgeBase-D33Ty2l6.js} +14 -18
  153. package/dist/src/{knowledgeBase-D-5BMXlr.cjs → knowledgeBase-DOO_BM9b.cjs} +14 -15
  154. package/dist/src/{litellm-DnbRJ2if.js → litellm-AaeZcZQF.js} +18 -19
  155. package/dist/src/{litellm-hUSNM_M2.cjs → litellm-I_hbp_dc.cjs} +17 -17
  156. package/dist/src/{litellm-CRDqPhNI.js → litellm-NbjknEh6.js} +17 -18
  157. package/dist/src/{litellm-9vR8zpfU.js → litellm-TrljxD9G.js} +17 -5
  158. package/dist/src/{logger-CG1uZPbQ.js → logger-CT3IKMKA.js} +10 -29
  159. package/dist/src/{logger-B7sBeGa0.cjs → logger-Cp1GPUjj.cjs} +152 -180
  160. package/dist/src/logger-DLcq4dWf.js +713 -0
  161. package/dist/src/{logger-LSBxlt7a.js → logger-KkObSCzq.js} +13 -31
  162. package/dist/src/{luma-ray-4blv9iZ2.js → luma-ray-BS2_tY8L.js} +22 -21
  163. package/dist/src/{luma-ray-drvgdpP9.js → luma-ray-DDsjcgZZ.js} +20 -13
  164. package/dist/src/{luma-ray-Hm3d6VJE.cjs → luma-ray-Due0n7di.cjs} +20 -21
  165. package/dist/src/{luma-ray-B2__8lYH.js → luma-ray-f6I2fft-.js} +20 -23
  166. package/dist/src/main.js +1170 -1321
  167. package/dist/src/{messages-Uee41Mj5.js → messages-BS17jdMx.js} +22 -24
  168. package/dist/src/{messages-XhiwCbi4.cjs → messages-Bs1kC7P4.cjs} +32 -34
  169. package/dist/src/{messages-CGPPidQr.js → messages-D0lx5qK7.js} +22 -24
  170. package/dist/src/messages-ZJk778GH.js +240 -0
  171. package/dist/src/{meteor-BYykdXrV.js → meteor-44VjEACX.js} +3 -4
  172. package/dist/src/{meteor-CsopaHrH.js → meteor-D-SotUw9.js} +3 -4
  173. package/dist/src/{meteor-e-E-2vVl.cjs → meteor-DLZZ3osF.cjs} +3 -4
  174. package/dist/src/{meteor-C8lGP6P4.js → meteor-DUiCJRC-.js} +3 -4
  175. package/dist/src/{modelslab-yKz-ZNB4.js → modelslab-Bmni6skY.js} +17 -10
  176. package/dist/src/{modelslab-E9gO-bYd.js → modelslab-Bx9IrZfS.js} +18 -20
  177. package/dist/src/{modelslab-lUVW0cmB.cjs → modelslab-CoUX6Jc_.cjs} +17 -18
  178. package/dist/src/{modelslab-ClBkr8_9.js → modelslab-DRb74SP4.js} +17 -19
  179. package/dist/src/{nova-reel-Dk8jNpId.js → nova-reel-BfPq-0Yk.js} +20 -13
  180. package/dist/src/{nova-reel-D8CuO6QH.cjs → nova-reel-C_QM18Xn.cjs} +20 -21
  181. package/dist/src/{nova-reel-u2eF2Cxm.js → nova-reel-D_W1tjMH.js} +22 -21
  182. package/dist/src/{nova-reel-P9bwvtYX.js → nova-reel-bgjxilYW.js} +20 -23
  183. package/dist/src/{nova-sonic-CK2rAiKi.js → nova-sonic-CFb5GYhg.js} +30 -26
  184. package/dist/src/{nova-sonic-BaqWlkds.js → nova-sonic-DIGQNR07.js} +30 -31
  185. package/dist/src/{nova-sonic-yZapPLv7.js → nova-sonic-De1HW5fD.js} +31 -32
  186. package/dist/src/{nova-sonic-Ds1C-dpm.cjs → nova-sonic-zfcljeRp.cjs} +30 -31
  187. package/dist/src/{openai-DUFopMrH.cjs → openai-Cuif0GEt.cjs} +8 -9
  188. package/dist/src/{openai-PblZ3jUE.js → openai-DElQ-fPX.js} +3 -4
  189. package/dist/src/{openai-CcN1B8Sb.js → openai-DhbB7eWK.js} +3 -4
  190. package/dist/src/openai-j-sE2O7r.js +44 -0
  191. package/dist/src/{openclaw-B6qqDr_u.cjs → openclaw-CSugPYAr.cjs} +188 -130
  192. package/dist/src/{openclaw-A-3_loM7.js → openclaw-DiSz3I5L.js} +180 -109
  193. package/dist/src/{openclaw-a3lylB-V.js → openclaw-DuvJKEW5.js} +178 -124
  194. package/dist/src/{openclaw-COn6QzDi.js → openclaw-tiVYRtr-.js} +178 -122
  195. package/dist/src/opencode-sdk-0j6rTWNb.js +562 -0
  196. package/dist/src/opencode-sdk-B3CWY9h_.js +560 -0
  197. package/dist/src/opencode-sdk-BL764Jdi.cjs +564 -0
  198. package/dist/src/opencode-sdk-C2y6UkP2.js +560 -0
  199. package/dist/src/{otlpReceiver-oyf5wLGC.js → otlpReceiver-C99PPb48.js} +53 -51
  200. package/dist/src/{otlpReceiver-lXsYVbpj.cjs → otlpReceiver-CGq6LspY.cjs} +53 -55
  201. package/dist/src/{otlpReceiver-94URx7UW.js → otlpReceiver-CdNBdbsk.js} +53 -55
  202. package/dist/src/{otlpReceiver-BmmTiMjA.js → otlpReceiver-D89fR-rC.js} +53 -55
  203. package/dist/src/{providerRegistry-Cq_JK_CJ.js → providerRegistry-B0RUOLI_.js} +7 -8
  204. package/dist/src/{providerRegistry-DSSHjMKf.js → providerRegistry-CD8MEar9.js} +7 -8
  205. package/dist/src/{providerRegistry-CvHEVJad.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  206. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  207. package/dist/src/providers-B7V0njNs.js +32 -0
  208. package/dist/src/providers-BEwbhv0X.js +30 -0
  209. package/dist/src/{providers-Iil64vk9.js → providers-BlqUifFg.js} +1543 -1676
  210. package/dist/src/providers-CH3C7zf7.js +30 -0
  211. package/dist/src/{providers-DHbjzW2e.cjs → providers-CgKOSgTR.cjs} +1896 -2029
  212. package/dist/src/providers-D8lF1sqW.js +33246 -0
  213. package/dist/src/{providers-BnFpbY_s.js → providers-Dk_6ocUX.js} +1536 -1669
  214. package/dist/src/providers-zyB6k_38.cjs +31 -0
  215. package/dist/src/{pythonUtils-CcT5LH1M.js → pythonUtils-C3py6GC1.js} +18 -19
  216. package/dist/src/{pythonUtils-DBbuI3QJ.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  217. package/dist/src/{pythonUtils-hZ8LeQLv.js → pythonUtils-D5nxkQ0P.js} +18 -19
  218. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  219. package/dist/src/{quiverai-BuI0tE39.js → quiverai-BbOUOn2L.js} +8 -7
  220. package/dist/src/{quiverai-DCGSZt4U.js → quiverai-CIaELU_m.js} +8 -10
  221. package/dist/src/{quiverai-DiMVJQDz.cjs → quiverai-PdShCPox.cjs} +8 -9
  222. package/dist/src/{quiverai-fQNkExW4.js → quiverai-uH-dcTIr.js} +9 -11
  223. package/dist/src/{render-Dj1smHEb.js → render-Drod8m7K.js} +4 -5
  224. package/dist/src/responses-CB2jwoAr.js +660 -0
  225. package/dist/src/{responses-ghR3IOfy.cjs → responses-D8SBTL64.cjs} +39 -42
  226. package/dist/src/{responses-DOAFFENS.js → responses-DIR9Ud3j.js} +24 -27
  227. package/dist/src/{responses-CxzoQoBe.js → responses-WNGNYe3K.js} +24 -27
  228. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  229. package/dist/src/{rubyUtils-CwbGmgYN.js → rubyUtils-BUVePouc.js} +27 -20
  230. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  231. package/dist/src/{rubyUtils-DudlFZed.js → rubyUtils-Boc4HZzX.js} +18 -19
  232. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  233. package/dist/src/{rubyUtils-C8MhKGHb.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  234. package/dist/src/{sagemaker-gmskuyre.js → sagemaker-CNBxx5CJ.js} +75 -70
  235. package/dist/src/{sagemaker-CcxhlOAR.js → sagemaker-CemTFp2h.js} +75 -79
  236. package/dist/src/{sagemaker-77zbJ2Q2.cjs → sagemaker-Cl28mZU2.cjs} +75 -76
  237. package/dist/src/{sagemaker-DuM71dVU.js → sagemaker-YSyBXQQh.js} +77 -77
  238. package/dist/src/{scanner-DJYiSXQj.js → scanner-BsBlNXNn.js} +100 -121
  239. package/dist/src/server/index.js +5520 -67427
  240. package/dist/src/{server-B5v33lvE.cjs → server-C_7Ax-hA.cjs} +57 -67
  241. package/dist/src/{server-BJ4m4f1D.js → server-CqzrVGpF.js} +26 -29
  242. package/dist/src/server-CuxBbeSY.js +229 -0
  243. package/dist/src/server-DA4Cyrrq.js +7 -0
  244. package/dist/src/server-Dulb-4-K.cjs +5 -0
  245. package/dist/src/{server-RV_i_YX5.js → server-VWgWb00X.js} +19 -24
  246. package/dist/src/{signal-BW33JuId.js → signal-4U3mfRvL.js} +9 -11
  247. package/dist/src/{slack-DEURelTy.cjs → slack-BmVAVGaK.cjs} +7 -8
  248. package/dist/src/{slack-BQYeW9L3.js → slack-DCUPTzS2.js} +8 -8
  249. package/dist/src/{slack-BB6yuZzp.js → slack-DOdy_kyv.js} +7 -8
  250. package/dist/src/{slack-2pRrhhgJ.js → slack-DXMKtA-f.js} +7 -9
  251. package/dist/src/store-CXGFv4aR.js +228 -0
  252. package/dist/src/store-CXS-Q_91.js +6 -0
  253. package/dist/src/{store-D7CgQzAR.cjs → store-DLlFCC4h.cjs} +44 -45
  254. package/dist/src/{store-DJNsD1iC.js → store-DXilxTl-.js} +40 -36
  255. package/dist/src/{store-s3SftUwF.js → store-Dim__MDd.js} +34 -35
  256. package/dist/src/store-eYkaKMwq.cjs +5 -0
  257. package/dist/src/{tables-DfTsNN7X.js → tables-6YKwjN9-.js} +19 -21
  258. package/dist/src/tables-DLJPUdUE.js +288 -0
  259. package/dist/src/{tables-BKTmd6u7.cjs → tables-DPi7wKeM.cjs} +89 -91
  260. package/dist/src/{tables-DMegD0Xf.js → tables-gftXzE9I.js} +21 -23
  261. package/dist/src/telemetry-BpMfhthR.cjs +5 -0
  262. package/dist/src/{telemetry--WAdAfVi.js → telemetry-CMrFgtPB.js} +11 -13
  263. package/dist/src/telemetry-Cps3mIU-.js +171 -0
  264. package/dist/src/{telemetry-DQgVBCAb.cjs → telemetry-DaX14Chu.cjs} +21 -24
  265. package/dist/src/{telemetry-BedSm-bZ.js → telemetry-Dthj_BbD.js} +17 -14
  266. package/dist/src/telemetry-Dw38hanS.js +7 -0
  267. package/dist/src/{text-oiSbwSOI.js → text-B_UCRPp2.js} +2 -2
  268. package/dist/src/{text-oKzCBnK6.cjs → text-CW1cyrwj.cjs} +12 -13
  269. package/dist/src/{text-B_IrO4GZ.js → text-Db-Wt2u2.js} +2 -2
  270. package/dist/src/text-TIv0QYnd.js +22 -0
  271. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  272. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  273. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  274. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  275. package/dist/src/{transcription-mYS9vd5v.js → transcription-BNYURcXg.js} +14 -7
  276. package/dist/src/{transcription-X2-B4vkX.js → transcription-B_OdaHp7.js} +14 -16
  277. package/dist/src/{transcription-BO1AHegO.cjs → transcription-NLVG9MT1.cjs} +14 -15
  278. package/dist/src/{transcription-lzBLiTFJ.js → transcription-s6A-bNrZ.js} +15 -17
  279. package/dist/src/{transform-B1Hi5lWS.cjs → transform-CzK1Q0zl.cjs} +24 -26
  280. package/dist/src/{transform-DeGlxb0D.js → transform-D5HsjduX.js} +39 -47
  281. package/dist/src/{transform-CYDILYDe.js → transform-DECvGmzp.js} +15 -13
  282. package/dist/src/transform-DTGDnAzW.js +6 -0
  283. package/dist/src/{transform-BEgStbHK.js → transform-DilY9wbS.js} +10 -12
  284. package/dist/src/{transform-D5PjiWiZ.cjs → transform-DuHvhZpj.cjs} +179 -187
  285. package/dist/src/transform-aa6tmVpZ.js +216 -0
  286. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  287. package/dist/src/transform-uAytVuyX.js +1506 -0
  288. package/dist/src/{transform-Dfl89yi4.js → transform-vNucnNr0.js} +39 -47
  289. package/dist/src/{transformersAvailability-SZnTS3pJ.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  290. package/dist/src/{transformersAvailability-D-glmEy7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  291. package/dist/src/{transformersAvailability-CjeFXhuJ.js → transformersAvailability-D6c6ROpT.js} +2 -2
  292. package/dist/src/{types-DWNf48sT.cjs → types-C_7nyzr1.cjs} +538 -574
  293. package/dist/src/{types-CXQduE9o.js → types-Cbd8uOMq.js} +68 -100
  294. package/dist/src/types-CzW2QFyi.js +3288 -0
  295. package/dist/src/{types-C5hEkb-x.js → types-DmyIJ-sR.js} +63 -99
  296. package/dist/src/{util-CoQjmE3u.js → util-B3xGByQh.js} +4 -5
  297. package/dist/src/{util-aLhtl3fe.cjs → util-B9vlHIIh.cjs} +208 -223
  298. package/dist/src/{util-Du96oyYS.js → util-BHGHw5G1.js} +4 -5
  299. package/dist/src/{util-DQ984syk.js → util-BRYkYPTd.js} +36 -51
  300. package/dist/src/{util-D9eLdGfa.js → util-BV4XUC0n.js} +5 -6
  301. package/dist/src/util-Bv6uGDfH.js +293 -0
  302. package/dist/src/{util-1wWM599Z.cjs → util-BzMcevZc.cjs} +50 -51
  303. package/dist/src/{util-_h4pVqrz.js → util-C1CeHl-P.js} +36 -51
  304. package/dist/src/{util-Bm_-UMD_.js → util-CMy69ZgQ.js} +5 -6
  305. package/dist/src/{util-CyUdMzV0.cjs → util-DGNOS1db.cjs} +34 -35
  306. package/dist/src/util-Dnmk2mBQ.js +599 -0
  307. package/dist/src/util-ZzmqNPlg.js +1426 -0
  308. package/dist/src/{utils-BjLy-Q72.cjs → utils-Cz9qXqII.cjs} +29 -32
  309. package/dist/src/{utils-CFMn2yHW.js → utils-XiOAgly5.js} +4 -7
  310. package/dist/src/utils-dLokC-eR.js +94 -0
  311. package/dist/src/{utils-DvWMzuMx.js → utils-f2-Moju7.js} +4 -7
  312. package/dist/tsconfig.tsbuildinfo +1 -1
  313. package/package.json +38 -38
  314. package/dist/src/app/assets/index-B2D0bCSI.js +0 -439
  315. package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
  316. package/dist/src/cache-ChPcurj7.js +0 -6
  317. package/dist/src/cache-VVu_W-yg.js +0 -8
  318. package/dist/src/cache-YLNCFEM2.cjs +0 -6
  319. package/dist/src/chunk-DHDDz29n.js +0 -22
  320. package/dist/src/chunk-FhC4c-0y.js +0 -21
  321. package/dist/src/cloud-BndfXy4H.js +0 -5
  322. package/dist/src/eval-BhHvMY82.js +0 -17
  323. package/dist/src/evalResult-Dq2gFNQY.js +0 -12
  324. package/dist/src/evalResult-nmcP5VKH.cjs +0 -12
  325. package/dist/src/evalResult-trqZjVYh.js +0 -14
  326. package/dist/src/evaluator-CnfPstzT.js +0 -39
  327. package/dist/src/fetch-IDPDue6F.cjs +0 -4
  328. package/dist/src/fetch-hKJ-It8q.js +0 -6
  329. package/dist/src/fetch-ouKnrWK-.js +0 -4
  330. package/dist/src/graders-CQn7WUsd.cjs +0 -34
  331. package/dist/src/graders-DC6QAbpW.js +0 -35
  332. package/dist/src/graders-DUWz3Y7j.js +0 -37
  333. package/dist/src/opencode-sdk-4bL9n-Gk.js +0 -382
  334. package/dist/src/opencode-sdk-BfC2zWcR.js +0 -376
  335. package/dist/src/opencode-sdk-DMJyuwMg.js +0 -380
  336. package/dist/src/opencode-sdk-Da-9adza.cjs +0 -383
  337. package/dist/src/providers-CsXB2Ix-.js +0 -35
  338. package/dist/src/providers-DO8ltjLC.js +0 -33
  339. package/dist/src/providers-Dtq-xnXd.cjs +0 -33
  340. package/dist/src/rubyUtils-BUbcND2f.js +0 -6
  341. package/dist/src/rubyUtils-Cr55X_KE.js +0 -5
  342. package/dist/src/rubyUtils-DlIiqoYo.cjs +0 -5
  343. package/dist/src/server-C2eQH4Gu.js +0 -6
  344. package/dist/src/server-CXWycu7H.cjs +0 -6
  345. package/dist/src/server-Q6OGlxxT.js +0 -8
  346. package/dist/src/store-B3EDO9Q3.js +0 -7
  347. package/dist/src/store-Dl9F8aw5.js +0 -6
  348. package/dist/src/store-SnrGrlt9.cjs +0 -6
  349. package/dist/src/telemetry-BGhiPZtl.js +0 -8
  350. package/dist/src/telemetry-CFfiYan6.cjs +0 -6
  351. package/dist/src/telemetry-DHzEduxX.js +0 -6
  352. package/dist/src/transform-C1x1ZlMQ.cjs +0 -6
  353. package/dist/src/transform-DYHjFmQu.js +0 -8
  354. package/dist/src/transform-rmwJT5JQ.js +0 -7
  355. package/dist/src/transformersAvailability-eJooj0gX.js +0 -35
@@ -1,29 +1,28 @@
1
1
  #!/usr/bin/env node
2
- import { O as cliState_default, n as getLogLevel, o as logger_default } from "./logger-LSBxlt7a.js";
3
- import { k as TERMINAL_MAX_WIDTH, u as sleepWithAbort } from "./fetch-CXZI9RRr.js";
4
- import "./cloud-CZ-q9Ier.js";
5
- import "./types-CXQduE9o.js";
6
- import { t as printBorder } from "./util-_h4pVqrz.js";
7
- import "./esm-B9dPm_BF.js";
8
- import "./pythonUtils-CcT5LH1M.js";
9
- import { t as formatDuration } from "./formatDuration-CdevI3An.js";
2
+ import { O as state, n as getLogLevel, o as logger } from "./logger-KkObSCzq.js";
3
+ import { D as TERMINAL_MAX_WIDTH, u as sleepWithAbort } from "./fetch-Dxpd4_sr.js";
4
+ import "./cloud-C0dlstV_.js";
5
+ import "./types-Cbd8uOMq.js";
6
+ import { t as printBorder } from "./util-C1CeHl-P.js";
7
+ import "./esm-C03C-mv3.js";
8
+ import "./pythonUtils-C3py6GC1.js";
9
+ import { t as formatDuration } from "./formatDuration-DgBVMN65.js";
10
10
  import { z } from "zod";
11
11
  import chalk from "chalk";
12
12
  import fs from "fs";
13
- import path, { isAbsolute, resolve as resolve$1 } from "path";
13
+ import path, { isAbsolute, resolve } from "path";
14
14
  import yaml from "js-yaml";
15
15
  import crypto from "crypto";
16
16
  import { spawn } from "child_process";
17
17
  import async from "async";
18
18
  import ora from "ora";
19
19
  import { io } from "socket.io-client";
20
- import simpleGit$1 from "simple-git";
20
+ import simpleGit from "simple-git";
21
21
  import binaryExtensions from "binary-extensions";
22
22
  import { execa } from "execa";
23
23
  import { isText } from "istextorbinary";
24
24
  import textExtensions from "text-extensions";
25
25
  import { minimatch } from "minimatch";
26
-
27
26
  //#region src/util/agent/agentAuth.ts
28
27
  /**
29
28
  * Shared auth credential resolution for agent clients.
@@ -33,9 +32,9 @@ import { minimatch } from "minimatch";
33
32
  */
34
33
  let cloudConfig$1;
35
34
  try {
36
- cloudConfig$1 = (await import("./cloud-BndfXy4H.js")).cloudConfig;
35
+ cloudConfig$1 = (await import("./cloud-BBh91EUK.js")).cloudConfig;
37
36
  } catch (error) {
38
- if (error instanceof Error && "code" in error && error.code === "MODULE_NOT_FOUND") {} else logger_default.debug(`Unexpected error loading cloud config: ${error}`);
37
+ if (error instanceof Error && "code" in error && error.code === "MODULE_NOT_FOUND") {} else logger.debug(`Unexpected error loading cloud config: ${error}`);
39
38
  }
40
39
  /**
41
40
  * Resolve base authentication credentials using waterfall approach:
@@ -48,24 +47,23 @@ try {
48
47
  */
49
48
  function resolveBaseAuthCredentials(opts) {
50
49
  if (opts?.apiKey) {
51
- logger_default.debug("Using API key from CLI/config");
50
+ logger.debug("Using API key from CLI/config");
52
51
  return { apiKey: opts.apiKey };
53
52
  }
54
53
  const envApiKey = process.env.PROMPTFOO_API_KEY;
55
54
  if (envApiKey) {
56
- logger_default.debug("Using API key from PROMPTFOO_API_KEY env var");
55
+ logger.debug("Using API key from PROMPTFOO_API_KEY env var");
57
56
  return { apiKey: envApiKey };
58
57
  }
59
58
  if (cloudConfig$1) {
60
59
  const storedApiKey = cloudConfig$1.getApiKey();
61
60
  if (storedApiKey) {
62
- logger_default.debug("Using API key from promptfoo auth");
61
+ logger.debug("Using API key from promptfoo auth");
63
62
  return { apiKey: storedApiKey };
64
63
  }
65
64
  }
66
65
  return {};
67
66
  }
68
-
69
67
  //#endregion
70
68
  //#region src/util/agent/agentClient.ts
71
69
  /**
@@ -79,9 +77,9 @@ function resolveBaseAuthCredentials(opts) {
79
77
  */
80
78
  let cloudConfig;
81
79
  try {
82
- cloudConfig = (await import("./cloud-BndfXy4H.js")).cloudConfig;
80
+ cloudConfig = (await import("./cloud-BBh91EUK.js")).cloudConfig;
83
81
  } catch (error) {
84
- if (error instanceof Error && "code" in error && error.code === "MODULE_NOT_FOUND") {} else logger_default.debug(`Unexpected error loading cloud config: ${error}`);
82
+ if (error instanceof Error && "code" in error && error.code === "MODULE_NOT_FOUND") {} else logger.debug(`Unexpected error loading cloud config: ${error}`);
85
83
  }
86
84
  /**
87
85
  * Create an agent client that connects to the shared Socket.IO server.
@@ -118,7 +116,7 @@ async function createAgentClient(opts) {
118
116
  }
119
117
  });
120
118
  socket.on("connect", () => {
121
- logger_default.debug(`Agent client connected (agent: ${agent}, id: ${socket.id})`);
119
+ logger.debug(`Agent client connected (agent: ${agent}, id: ${socket.id})`);
122
120
  socket.emit("agent:join", { sessionId });
123
121
  if (settled) return;
124
122
  settled = true;
@@ -155,18 +153,18 @@ async function createAgentClient(opts) {
155
153
  socket.on("connect_error", (error) => {
156
154
  if (settled) return;
157
155
  settled = true;
158
- logger_default.debug(`Agent client connection error: ${error.message}`);
156
+ logger.debug(`Agent client connection error: ${error.message}`);
159
157
  cleanup();
160
158
  reject(/* @__PURE__ */ new Error(`Failed to connect to server: ${error.message}`));
161
159
  });
162
160
  socket.on("disconnect", (reason) => {
163
- logger_default.debug(`Agent client disconnected: ${reason}`);
161
+ logger.debug(`Agent client disconnected: ${reason}`);
164
162
  });
165
163
  socket.on("error", (error) => {
166
- logger_default.debug(`Agent client error: ${String(error)}`);
164
+ logger.debug(`Agent client error: ${String(error)}`);
167
165
  });
168
166
  socket.io.on("reconnect_failed", () => {
169
- logger_default.error(`Agent client reconnection failed after all attempts (agent: ${agent})`);
167
+ logger.error(`Agent client reconnection failed after all attempts (agent: ${agent})`);
170
168
  });
171
169
  const timeoutId = setTimeout(() => {
172
170
  if (!socket.connected && !settled) {
@@ -177,7 +175,6 @@ async function createAgentClient(opts) {
177
175
  }, timeoutMs);
178
176
  });
179
177
  }
180
-
181
178
  //#endregion
182
179
  //#region src/types/codeScan.ts
183
180
  const CodeScanSeverity = {
@@ -321,7 +318,7 @@ const PullRequestContextSchema = z.object({
321
318
  number: z.number(),
322
319
  sha: z.string()
323
320
  });
324
- const ScanRequestSchema = z.object({
321
+ z.object({
325
322
  files: z.array(FileRecordSchema).min(1, "Files array cannot be empty"),
326
323
  metadata: GitMetadataSchema,
327
324
  config: ScanConfigSchema,
@@ -337,7 +334,7 @@ const CommentSchema = z.object({
337
334
  severity: CodeScanSeveritySchema.optional(),
338
335
  aiAgentPrompt: z.string().nullable().optional()
339
336
  });
340
- const PhaseResultsSchema = z.object({
337
+ z.object({
341
338
  inventory: z.string(),
342
339
  tracing: z.string(),
343
340
  analysis: z.string(),
@@ -345,7 +342,7 @@ const PhaseResultsSchema = z.object({
345
342
  fixes: z.string(),
346
343
  comments: z.string()
347
344
  });
348
- const ScanResponseSchema = z.object({
345
+ z.object({
349
346
  success: z.boolean(),
350
347
  review: z.string().optional(),
351
348
  comments: z.array(CommentSchema),
@@ -407,7 +404,6 @@ var ConfigLoadError = class extends Error {
407
404
  this.name = "ConfigLoadError";
408
405
  }
409
406
  };
410
-
411
407
  //#endregion
412
408
  //#region src/codeScan/config/schema.ts
413
409
  /**
@@ -434,7 +430,6 @@ const DEFAULT_CONFIG = {
434
430
  minimumSeverity: CodeScanSeverity.MEDIUM,
435
431
  diffsOnly: false
436
432
  };
437
-
438
433
  //#endregion
439
434
  //#region src/codeScan/config/loader.ts
440
435
  /**
@@ -533,7 +528,6 @@ function resolveGuidance(options, config) {
533
528
  function resolveApiHost(options, config) {
534
529
  return options.apiHost || config.apiHost || "https://api.promptfoo.app";
535
530
  }
536
-
537
531
  //#endregion
538
532
  //#region src/codeScan/git/diff.ts
539
533
  /**
@@ -552,7 +546,6 @@ async function validateOnBranch(git) {
552
546
  throw new GitError(`Failed to validate branch: ${error instanceof Error ? error.message : String(error)}`);
553
547
  }
554
548
  }
555
-
556
549
  //#endregion
557
550
  //#region src/codeScan/constants/filtering.ts
558
551
  /**
@@ -594,12 +587,10 @@ const DENYLIST_PATTERNS = [
594
587
  "**/*.mp4",
595
588
  "**/*.mov"
596
589
  ];
597
- const MAX_BLOB_SIZE_BYTES = 500 * 1024;
598
590
  const MAX_PATCH_SIZE_BYTES = 200 * 1024;
599
591
  function isInDenylist(filePath) {
600
592
  return DENYLIST_PATTERNS.some((pattern) => minimatch(filePath, pattern));
601
593
  }
602
-
603
594
  //#endregion
604
595
  //#region src/codeScan/util/diffHunkParser.ts
605
596
  /**
@@ -639,7 +630,6 @@ function parseHunkHeader(line) {
639
630
  newCount: match[4] ? parseInt(match[4], 10) : 1
640
631
  };
641
632
  }
642
-
643
633
  //#endregion
644
634
  //#region src/codeScan/git/diffAnnotator.ts
645
635
  /**
@@ -707,7 +697,6 @@ function annotateDiffWithLineRanges(patch) {
707
697
  lineRanges
708
698
  };
709
699
  }
710
-
711
700
  //#endregion
712
701
  //#region src/codeScan/git/diffProcessor.ts
713
702
  /**
@@ -858,7 +847,7 @@ function attachBlobSizesAndFilter(files, sizeMap) {
858
847
  if (file.skipReason) return file;
859
848
  const beforeSize = file.shaA ? sizeMap.get(file.shaA) : void 0;
860
849
  const afterSize = file.shaB ? sizeMap.get(file.shaB) : void 0;
861
- if (beforeSize !== void 0 && beforeSize > MAX_BLOB_SIZE_BYTES || afterSize !== void 0 && afterSize > MAX_BLOB_SIZE_BYTES) return {
850
+ if (beforeSize !== void 0 && beforeSize > 512e3 || afterSize !== void 0 && afterSize > 512e3) return {
862
851
  ...file,
863
852
  beforeSizeBytes: beforeSize,
864
853
  afterSizeBytes: afterSize,
@@ -947,7 +936,7 @@ async function generatePatchForFile(repoPath, base, compare, filePath) {
947
936
  cwd: repoPath,
948
937
  maxBuffer: MAX_PATCH_SIZE_BYTES
949
938
  })).stdout;
950
- if (Buffer.byteLength(patch, "utf8") > MAX_PATCH_SIZE_BYTES) return {
939
+ if (Buffer.byteLength(patch, "utf8") > 204800) return {
951
940
  success: false,
952
941
  skipReason: "patch too large"
953
942
  };
@@ -960,13 +949,13 @@ async function generatePatchForFile(repoPath, base, compare, filePath) {
960
949
  } catch (err) {
961
950
  const errorMessage = err instanceof Error ? err.message : String(err);
962
951
  if (errorMessage.includes("maxBuffer") || errorMessage.includes("stdout maxBuffer")) {
963
- logger_default.debug(`git diff --patch ${filePath} exceeded maxBuffer (${MAX_PATCH_SIZE_BYTES} bytes) - patch too large`);
952
+ logger.debug(`git diff --patch ${filePath} exceeded maxBuffer (${MAX_PATCH_SIZE_BYTES} bytes) - patch too large`);
964
953
  return {
965
954
  success: false,
966
955
  skipReason: "patch too large"
967
956
  };
968
957
  }
969
- logger_default.debug(`git diff --patch ${filePath} failed: ${errorMessage} - skipping file`);
958
+ logger.debug(`git diff --patch ${filePath} failed: ${errorMessage} - skipping file`);
970
959
  return {
971
960
  success: false,
972
961
  skipReason: "diff error"
@@ -1007,7 +996,6 @@ async function processDiff(repoPath, base, compare = "HEAD") {
1007
996
  throw new DiffProcessorError(`Failed to process diff: ${error instanceof Error ? error.message : String(error)}`);
1008
997
  }
1009
998
  }
1010
-
1011
999
  //#endregion
1012
1000
  //#region src/codeScan/git/metadata.ts
1013
1001
  /**
@@ -1023,7 +1011,7 @@ async function processDiff(repoPath, base, compare = "HEAD") {
1023
1011
  * @returns Git metadata object
1024
1012
  */
1025
1013
  async function extractMetadata(repoPath, baseBranch, compareRef) {
1026
- const git = simpleGit$1(repoPath);
1014
+ const git = simpleGit(repoPath);
1027
1015
  try {
1028
1016
  const baseRef = baseBranch;
1029
1017
  const compareRefValue = compareRef;
@@ -1050,7 +1038,6 @@ async function extractMetadata(repoPath, baseBranch, compareRef) {
1050
1038
  throw new GitMetadataError(`Failed to extract git metadata: ${error instanceof Error ? error.message : String(error)}`);
1051
1039
  }
1052
1040
  }
1053
-
1054
1041
  //#endregion
1055
1042
  //#region src/codeScan/mcp/filesystem.ts
1056
1043
  /**
@@ -1065,9 +1052,9 @@ async function extractMetadata(repoPath, baseBranch, compareRef) {
1065
1052
  */
1066
1053
  function startFilesystemMcpServer(rootDir) {
1067
1054
  if (!isAbsolute(rootDir)) throw new FilesystemMcpError(`Root directory must be an absolute path, got: ${rootDir}`);
1068
- const absoluteRootDir = resolve$1(rootDir);
1069
- logger_default.debug("Starting filesystem MCP server...");
1070
- logger_default.debug(`Root directory: ${absoluteRootDir}`);
1055
+ const absoluteRootDir = resolve(rootDir);
1056
+ logger.debug("Starting filesystem MCP server...");
1057
+ logger.debug(`Root directory: ${absoluteRootDir}`);
1071
1058
  try {
1072
1059
  const mcpProcess = spawn("npx", [
1073
1060
  "-y",
@@ -1084,16 +1071,16 @@ function startFilesystemMcpServer(rootDir) {
1084
1071
  mcpProcess.stderr?.on("data", (chunk) => {
1085
1072
  const message = chunk.toString("utf8");
1086
1073
  if (message.includes("Failed to request initial roots from client")) return;
1087
- logger_default.debug(`MCP server stderr: ${message.trim()}`);
1074
+ logger.debug(`MCP server stderr: ${message.trim()}`);
1088
1075
  });
1089
1076
  mcpProcess.on("error", (error) => {
1090
- logger_default.error(`MCP server process error: ${error.message}`);
1077
+ logger.error(`MCP server process error: ${error.message}`);
1091
1078
  });
1092
1079
  mcpProcess.on("exit", (code, signal) => {
1093
- if (code !== null && code !== 0) logger_default.debug(`MCP server exited with code ${code}`);
1094
- else if (signal) logger_default.debug(`MCP server terminated by signal ${signal}`);
1080
+ if (code !== null && code !== 0) logger.debug(`MCP server exited with code ${code}`);
1081
+ else if (signal) logger.debug(`MCP server terminated by signal ${signal}`);
1095
1082
  });
1096
- logger_default.debug(`MCP server started (pid: ${mcpProcess.pid})`);
1083
+ logger.debug(`MCP server started (pid: ${mcpProcess.pid})`);
1097
1084
  return mcpProcess;
1098
1085
  } catch (error) {
1099
1086
  throw new FilesystemMcpError(`Failed to start filesystem MCP server: ${error instanceof Error ? error.message : String(error)}`);
@@ -1105,25 +1092,24 @@ function startFilesystemMcpServer(rootDir) {
1105
1092
  */
1106
1093
  async function stopFilesystemMcpServer(process) {
1107
1094
  if (!process.pid) {
1108
- logger_default.debug("MCP server already stopped");
1095
+ logger.debug("MCP server already stopped");
1109
1096
  return;
1110
1097
  }
1111
- logger_default.debug(`Stopping MCP server (pid: ${process.pid})...`);
1098
+ logger.debug(`Stopping MCP server (pid: ${process.pid})...`);
1112
1099
  return new Promise((resolve) => {
1113
1100
  const timeout = setTimeout(() => {
1114
- logger_default.debug("MCP server did not exit gracefully, force killing...");
1101
+ logger.debug("MCP server did not exit gracefully, force killing...");
1115
1102
  process.kill("SIGKILL");
1116
1103
  resolve();
1117
1104
  }, 5e3);
1118
1105
  process.on("exit", () => {
1119
1106
  clearTimeout(timeout);
1120
- logger_default.debug("MCP server stopped");
1107
+ logger.debug("MCP server stopped");
1121
1108
  resolve();
1122
1109
  });
1123
1110
  process.kill("SIGTERM");
1124
1111
  });
1125
1112
  }
1126
-
1127
1113
  //#endregion
1128
1114
  //#region src/codeScan/mcp/transport.ts
1129
1115
  /**
@@ -1143,7 +1129,7 @@ var SocketIoMcpBridge = class {
1143
1129
  */
1144
1130
  async connect() {
1145
1131
  if (!this.socket.connected) throw new SocketIoMcpBridgeError("Socket must be connected before starting bridge");
1146
- logger_default.debug(`Using existing socket connection (id: ${this.socket.id})`);
1132
+ logger.debug(`Using existing socket connection (id: ${this.socket.id})`);
1147
1133
  this.startBridging();
1148
1134
  }
1149
1135
  /**
@@ -1193,7 +1179,7 @@ var SocketIoMcpBridge = class {
1193
1179
  message
1194
1180
  });
1195
1181
  } catch (_error) {
1196
- logger_default.debug(`Failed to parse MCP output: ${line}`);
1182
+ logger.debug(`Failed to parse MCP output: ${line}`);
1197
1183
  }
1198
1184
  }
1199
1185
  });
@@ -1217,19 +1203,19 @@ var SocketIoMcpBridge = class {
1217
1203
  const jsonLine = JSON.stringify(messageToSend) + "\n";
1218
1204
  this.mcpProcess.stdin?.write(jsonLine);
1219
1205
  } catch (error) {
1220
- logger_default.error(`Failed to write to MCP stdin: ${error instanceof Error ? error.message : String(error)}`);
1206
+ logger.error(`Failed to write to MCP stdin: ${error instanceof Error ? error.message : String(error)}`);
1221
1207
  }
1222
1208
  });
1223
- logger_default.debug("MCP ↔ Socket.io bridge active");
1209
+ logger.debug("MCP ↔ Socket.io bridge active");
1224
1210
  }
1225
1211
  /**
1226
1212
  * Stop bridging (socket lifecycle managed externally)
1227
1213
  */
1228
1214
  async disconnect() {
1229
- logger_default.debug("Stopping MCP bridge...");
1215
+ logger.debug("Stopping MCP bridge...");
1230
1216
  this.wireIdMap.clear();
1231
1217
  this.wireIdSeq = 0;
1232
- logger_default.debug("MCP bridge stopped");
1218
+ logger.debug("MCP bridge stopped");
1233
1219
  }
1234
1220
  /**
1235
1221
  * Get socket ID (if connected)
@@ -1244,7 +1230,6 @@ var SocketIoMcpBridge = class {
1244
1230
  return this.socket?.connected === true;
1245
1231
  }
1246
1232
  };
1247
-
1248
1233
  //#endregion
1249
1234
  //#region src/codeScan/mcp/index.ts
1250
1235
  /**
@@ -1259,8 +1244,8 @@ var SocketIoMcpBridge = class {
1259
1244
  * @returns MCP bridge setup result
1260
1245
  */
1261
1246
  async function setupMcpBridge(socket, absoluteRepoPath, sessionId) {
1262
- logger_default.debug("Setting up repo MCP access...");
1263
- logger_default.debug(`Using session ID: ${sessionId}`);
1247
+ logger.debug("Setting up repo MCP access...");
1248
+ logger.debug(`Using session ID: ${sessionId}`);
1264
1249
  const mcpProcess = startFilesystemMcpServer(absoluteRepoPath);
1265
1250
  const mcpBridge = new SocketIoMcpBridge(mcpProcess, socket, sessionId);
1266
1251
  await mcpBridge.connect();
@@ -1274,7 +1259,6 @@ async function setupMcpBridge(socket, absoluteRepoPath, sessionId) {
1274
1259
  sessionId
1275
1260
  };
1276
1261
  }
1277
-
1278
1262
  //#endregion
1279
1263
  //#region src/codeScan/util/auth.ts
1280
1264
  /**
@@ -1300,16 +1284,15 @@ function resolveAuthCredentials(apiKey, forkPR) {
1300
1284
  if (baseAuth.apiKey) return baseAuth;
1301
1285
  const oidcToken = process.env.GITHUB_OIDC_TOKEN;
1302
1286
  if (oidcToken) {
1303
- logger_default.debug("Using GitHub OIDC token");
1287
+ logger.debug("Using GitHub OIDC token");
1304
1288
  return { oidcToken };
1305
1289
  }
1306
1290
  if (forkPR) {
1307
- logger_default.debug("Using fork PR context for authentication");
1291
+ logger.debug("Using fork PR context for authentication");
1308
1292
  return { forkPR };
1309
1293
  }
1310
1294
  return {};
1311
1295
  }
1312
-
1313
1296
  //#endregion
1314
1297
  //#region src/codeScan/util/github.ts
1315
1298
  /**
@@ -1328,7 +1311,6 @@ function parseGitHubPr(prString) {
1328
1311
  number: parseInt(prNumber, 10)
1329
1312
  };
1330
1313
  }
1331
-
1332
1314
  //#endregion
1333
1315
  //#region src/codeScan/scanner/cleanup.ts
1334
1316
  /**
@@ -1341,14 +1323,13 @@ function parseGitHubPr(prString) {
1341
1323
  */
1342
1324
  function registerCleanupHandlers(refs) {
1343
1325
  const cleanup = (signal) => {
1344
- logger_default.debug(`Received ${signal}, cleaning up...`);
1326
+ logger.debug(`Received ${signal}, cleaning up...`);
1345
1327
  if (refs.abortController) refs.abortController.abort();
1346
1328
  };
1347
1329
  process.once("SIGINT", () => cleanup("SIGINT"));
1348
1330
  process.once("SIGTERM", () => cleanup("SIGTERM"));
1349
1331
  process.once("SIGQUIT", () => cleanup("SIGQUIT"));
1350
1332
  }
1351
-
1352
1333
  //#endregion
1353
1334
  //#region src/codeScan/scanner/output.ts
1354
1335
  /**
@@ -1381,8 +1362,8 @@ function displayScanResults(response, duration, options) {
1381
1362
  const { comments, review } = response;
1382
1363
  const severityCounts = countBySeverity(comments || []);
1383
1364
  printBorder();
1384
- logger_default.info(`${chalk.green("✓")} Scan complete (${formatDuration(duration / 1e3)})`);
1385
- if (severityCounts.total > 0) logger_default.info(chalk.yellow(`⚠ Found ${severityCounts.total} issue${severityCounts.total === 1 ? "" : "s"}`));
1365
+ logger.info(`${chalk.green("✓")} Scan complete (${formatDuration(duration / 1e3)})`);
1366
+ if (severityCounts.total > 0) logger.info(chalk.yellow(`⚠ Found ${severityCounts.total} issue${severityCounts.total === 1 ? "" : "s"}`));
1386
1367
  printBorder();
1387
1368
  let reviewText = review;
1388
1369
  if (!reviewText && comments && comments.length > 0) {
@@ -1390,9 +1371,9 @@ function displayScanResults(response, duration, options) {
1390
1371
  if (noneComment) reviewText = noneComment.finding;
1391
1372
  }
1392
1373
  if (reviewText) {
1393
- logger_default.info("");
1394
- logger_default.info(reviewText);
1395
- logger_default.info("");
1374
+ logger.info("");
1375
+ logger.info(reviewText);
1376
+ logger.info("");
1396
1377
  printBorder();
1397
1378
  }
1398
1379
  if (severityCounts.total > 0) {
@@ -1406,39 +1387,38 @@ function displayScanResults(response, duration, options) {
1406
1387
  const rankA = a.severity ? getSeverityRank(a.severity) : 0;
1407
1388
  return (b.severity ? getSeverityRank(b.severity) : 0) - rankA;
1408
1389
  });
1409
- logger_default.info("");
1390
+ logger.info("");
1410
1391
  for (let i = 0; i < sortedComments.length; i++) {
1411
1392
  const comment = sortedComments[i];
1412
1393
  const severity = formatSeverity(comment.severity);
1413
1394
  const location = comment.line ? `${comment.file}:${comment.line}` : comment.file || "";
1414
- logger_default.info(`${severity} ${chalk.gray(location)}`);
1415
- logger_default.info("");
1416
- logger_default.info(comment.finding);
1395
+ logger.info(`${severity} ${chalk.gray(location)}`);
1396
+ logger.info("");
1397
+ logger.info(comment.finding);
1417
1398
  if (comment.fix) {
1418
- logger_default.info("");
1419
- logger_default.info(chalk.bold("Suggested Fix:"));
1420
- logger_default.info(comment.fix);
1399
+ logger.info("");
1400
+ logger.info(chalk.bold("Suggested Fix:"));
1401
+ logger.info(comment.fix);
1421
1402
  }
1422
1403
  if (comment.aiAgentPrompt) {
1423
- logger_default.info("");
1424
- logger_default.info(chalk.bold("AI Agent Prompt:"));
1425
- logger_default.info(comment.aiAgentPrompt);
1404
+ logger.info("");
1405
+ logger.info(chalk.bold("AI Agent Prompt:"));
1406
+ logger.info(comment.aiAgentPrompt);
1426
1407
  }
1427
1408
  if (i < sortedComments.length - 1) {
1428
- logger_default.info("");
1429
- logger_default.info(chalk.gray("─".repeat(TERMINAL_MAX_WIDTH)));
1430
- logger_default.info("");
1409
+ logger.info("");
1410
+ logger.info(chalk.gray("─".repeat(TERMINAL_MAX_WIDTH)));
1411
+ logger.info("");
1431
1412
  }
1432
1413
  }
1433
1414
  printBorder();
1434
1415
  if (options.githubPr) {
1435
- logger_default.info(`» Comments posted to PR: ${chalk.cyan(options.githubPr)}`);
1416
+ logger.info(`» Comments posted to PR: ${chalk.cyan(options.githubPr)}`);
1436
1417
  printBorder();
1437
1418
  }
1438
1419
  }
1439
1420
  }
1440
1421
  }
1441
-
1442
1422
  //#endregion
1443
1423
  //#region src/codeScan/scanner/request.ts
1444
1424
  /**
@@ -1575,7 +1555,7 @@ async function executeScanRequestWithRetry(client, request, options) {
1575
1555
  if (attempt === MAX_RETRIES - 1) throw error;
1576
1556
  const jitter = .7 + .6 * Math.random();
1577
1557
  const delay = BASE_DELAY_MS * Math.pow(2, attempt) * jitter;
1578
- logger_default.debug(`Server busy, retrying in ${Math.round(delay / 1e3)}s (attempt ${attempt + 1}/${MAX_RETRIES})`);
1558
+ logger.debug(`Server busy, retrying in ${Math.round(delay / 1e3)}s (attempt ${attempt + 1}/${MAX_RETRIES})`);
1579
1559
  if (showSpinner && spinner) {
1580
1560
  const originalText = spinner.text;
1581
1561
  spinner.text = `Server busy, retrying in ${Math.round(delay / 1e3)}s...`;
@@ -1585,7 +1565,6 @@ async function executeScanRequestWithRetry(client, request, options) {
1585
1565
  }
1586
1566
  throw new Error("Scan failed: exceeded maximum retries");
1587
1567
  }
1588
-
1589
1568
  //#endregion
1590
1569
  //#region src/codeScan/scanner/index.ts
1591
1570
  /**
@@ -1618,13 +1597,13 @@ async function executeScan(repoPath, options) {
1618
1597
  const guidance = resolveGuidance(options, config);
1619
1598
  const absoluteRepoPath = path.resolve(repoPath);
1620
1599
  if (!options.json) {
1621
- logger_default.info("Beginning scan for LLM-related vulnerabilities in your code.");
1622
- logger_default.info(` Minimum severity: ${config.minimumSeverity}`);
1623
- if (config.diffsOnly) logger_default.info(` Mode: diffs only`);
1624
- else logger_default.info(` Mode: diffs + tracing into repo`);
1625
- logger_default.info("");
1600
+ logger.info("Beginning scan for LLM-related vulnerabilities in your code.");
1601
+ logger.info(` Minimum severity: ${config.minimumSeverity}`);
1602
+ if (config.diffsOnly) logger.info(` Mode: diffs only`);
1603
+ else logger.info(` Mode: diffs + tracing into repo`);
1604
+ logger.info("");
1626
1605
  }
1627
- logger_default.debug(`Repository: ${absoluteRepoPath}`);
1606
+ logger.debug(`Repository: ${absoluteRepoPath}`);
1628
1607
  const cleanupRefs = {
1629
1608
  repoPath: absoluteRepoPath,
1630
1609
  socket: null,
@@ -1634,7 +1613,7 @@ async function executeScan(repoPath, options) {
1634
1613
  abortController: null
1635
1614
  };
1636
1615
  registerCleanupHandlers(cleanupRefs);
1637
- const isWebUI = Boolean(cliState_default.webUI);
1616
+ const isWebUI = Boolean(state.webUI);
1638
1617
  const spinner = createSpinner({
1639
1618
  json: options.json || false,
1640
1619
  isWebUI,
@@ -1651,7 +1630,7 @@ async function executeScan(repoPath, options) {
1651
1630
  if (!parsed) throw new Error(`Invalid --github-pr format: "${options.githubPr}". Expected format: owner/repo#number (e.g., promptfoo/promptfoo#123)`);
1652
1631
  parsedPR = parsed;
1653
1632
  }
1654
- if (!showSpinner) logger_default.debug("Connecting to server...");
1633
+ if (!showSpinner) logger.debug("Connecting to server...");
1655
1634
  client = await createAgentClient({
1656
1635
  agent: "code-scan",
1657
1636
  host: resolveApiHost(options, config),
@@ -1666,7 +1645,7 @@ async function executeScan(repoPath, options) {
1666
1645
  cleanupRefs.mcpProcess = mcpProcess;
1667
1646
  cleanupRefs.mcpBridge = mcpBridge;
1668
1647
  }
1669
- logger_default.debug("Processing git diff...");
1648
+ logger.debug("Processing git diff...");
1670
1649
  const simpleGit = (await import("simple-git")).default;
1671
1650
  const git = simpleGit(absoluteRepoPath);
1672
1651
  if (!options.compare) await validateOnBranch(git);
@@ -1677,11 +1656,11 @@ async function executeScan(repoPath, options) {
1677
1656
  baseBranch = branches.all.includes("main") || branches.all.includes("origin/main") ? "main" : branches.all.includes("master") || branches.all.includes("origin/master") ? "master" : "main";
1678
1657
  }
1679
1658
  const compareRef = options.compare || "HEAD";
1680
- logger_default.debug(`Comparing: ${baseBranch}...${compareRef}`);
1659
+ logger.debug(`Comparing: ${baseBranch}...${compareRef}`);
1681
1660
  const files = await processDiff(absoluteRepoPath, baseBranch, compareRef);
1682
1661
  const includedFiles = files.filter((f) => !f.skipReason && f.patch);
1683
1662
  const skippedFiles = files.filter((f) => f.skipReason);
1684
- logger_default.debug(`Files changed: ${files.length} (${includedFiles.length} included, ${skippedFiles.length} skipped)`);
1663
+ logger.debug(`Files changed: ${files.length} (${includedFiles.length} included, ${skippedFiles.length} skipped)`);
1685
1664
  if (includedFiles.length === 0) {
1686
1665
  const msg = "No files to scan";
1687
1666
  if (options.json) {
@@ -1690,18 +1669,18 @@ async function executeScan(repoPath, options) {
1690
1669
  comments: [],
1691
1670
  review: msg
1692
1671
  };
1693
- logger_default.info(JSON.stringify(response, null, 2));
1672
+ logger.info(JSON.stringify(response, null, 2));
1694
1673
  } else if (showSpinner && spinner) spinner.succeed(msg);
1695
- else logger_default.info(msg);
1696
- cliState_default.postActionCallback = async () => {
1674
+ else logger.info(msg);
1675
+ state.postActionCallback = async () => {
1697
1676
  await new Promise((resolve) => setTimeout(resolve, 100));
1698
1677
  process.exitCode = 0;
1699
1678
  };
1700
1679
  return;
1701
1680
  }
1702
1681
  const metadata = await extractMetadata(absoluteRepoPath, baseBranch, compareRef);
1703
- logger_default.debug(`Compare ref: ${metadata.branch}`);
1704
- logger_default.debug(`Commits: ${metadata.commitMessages.length}`);
1682
+ logger.debug(`Compare ref: ${metadata.branch}`);
1683
+ logger.debug(`Commits: ${metadata.commitMessages.length}`);
1705
1684
  let pullRequest = void 0;
1706
1685
  if (parsedPR) {
1707
1686
  const currentCommit = await git.revparse(["HEAD"]);
@@ -1711,9 +1690,9 @@ async function executeScan(repoPath, options) {
1711
1690
  number: parsedPR.number,
1712
1691
  sha: currentCommit.trim()
1713
1692
  };
1714
- logger_default.debug(`GitHub PR context: ${parsedPR.owner}/${parsedPR.repo}#${parsedPR.number} (${pullRequest.sha.substring(0, 7)})`);
1693
+ logger.debug(`GitHub PR context: ${parsedPR.owner}/${parsedPR.repo}#${parsedPR.number} (${pullRequest.sha.substring(0, 7)})`);
1715
1694
  }
1716
- if (!showSpinner) logger_default.debug("Scanning code...");
1695
+ if (!showSpinner) logger.debug("Scanning code...");
1717
1696
  const scanRequest = buildScanRequest(files, metadata, config, sessionId, pullRequest, guidance);
1718
1697
  const scanResponse = await executeScanRequestWithRetry(client, scanRequest, {
1719
1698
  showSpinner,
@@ -1730,8 +1709,8 @@ async function executeScan(repoPath, options) {
1730
1709
  if (errorMessage.includes("Fork PR scanning not authorized")) {
1731
1710
  const msg = "Fork PR scanning requires maintainer approval. See PR comment for options.";
1732
1711
  if (showSpinner && spinner) spinner.succeed(msg);
1733
- else logger_default.info(msg);
1734
- cliState_default.postActionCallback = async () => {
1712
+ else logger.info(msg);
1713
+ state.postActionCallback = async () => {
1735
1714
  await new Promise((resolve) => setTimeout(resolve, 100));
1736
1715
  process.exitCode = 0;
1737
1716
  };
@@ -1739,26 +1718,26 @@ async function executeScan(repoPath, options) {
1739
1718
  }
1740
1719
  const msg = `Scan failed: ${errorMessage}`;
1741
1720
  if (showSpinner && spinner) spinner.fail(msg);
1742
- else logger_default.error(msg);
1743
- cliState_default.postActionCallback = async () => {
1721
+ else logger.error(msg);
1722
+ state.postActionCallback = async () => {
1744
1723
  await new Promise((resolve) => setTimeout(resolve, 100));
1745
1724
  if (error instanceof Error && error.message === "cancelled by user") process.exitCode = 130;
1746
1725
  else process.exitCode = 1;
1747
1726
  };
1748
1727
  } finally {
1749
1728
  if (mcpBridge) await mcpBridge.disconnect().catch(() => {
1750
- logger_default.debug("MCP bridge cleanup completed");
1729
+ logger.debug("MCP bridge cleanup completed");
1751
1730
  });
1752
1731
  if (mcpProcess) await stopFilesystemMcpServer(mcpProcess).catch(() => {
1753
- logger_default.debug("MCP server cleanup completed");
1732
+ logger.debug("MCP server cleanup completed");
1754
1733
  });
1755
1734
  if (client) {
1756
1735
  client.disconnect();
1757
- logger_default.debug("Agent client disconnected");
1736
+ logger.debug("Agent client disconnected");
1758
1737
  }
1759
1738
  }
1760
1739
  }
1761
-
1762
1740
  //#endregion
1763
1741
  export { executeScan };
1764
- //# sourceMappingURL=scanner-DJYiSXQj.js.map
1742
+
1743
+ //# sourceMappingURL=scanner-BsBlNXNn.js.map