promptfoo 0.120.26 → 0.121.1

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 (366) hide show
  1. package/README.md +1 -1
  2. package/dist/drizzle/0023_wooden_mandrill.sql +2 -0
  3. package/dist/drizzle/meta/0023_snapshot.json +1496 -0
  4. package/dist/drizzle/meta/_journal.json +7 -0
  5. package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
  6. package/dist/src/accounts-BgNJDBE6.js +206 -0
  7. package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
  8. package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
  9. package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
  10. package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
  11. package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
  12. package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
  13. package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
  14. package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
  15. package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
  16. package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
  17. package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
  18. package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
  19. package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
  20. package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
  21. package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
  22. package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
  23. package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
  24. package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
  25. package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
  26. package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
  27. package/dist/src/app/index.html +4 -34
  28. package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
  29. package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
  30. package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
  31. package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
  32. package/dist/src/base-B0tcrnq_.js +193 -0
  33. package/dist/src/base-B4QJRyFS.js +194 -0
  34. package/dist/src/base-DBtwl2FR.cjs +222 -0
  35. package/dist/src/base-fEDN28WM.js +193 -0
  36. package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
  37. package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
  38. package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
  39. package/dist/src/blobs-qTYm-1PY.js +236 -0
  40. package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
  41. package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
  42. package/dist/src/cache-BwsMSda7.js +6 -0
  43. package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
  44. package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
  45. package/dist/src/cache-D3eqDYGU.js +739 -0
  46. package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
  47. package/dist/src/chat-BKm79wib.js +764 -0
  48. package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
  49. package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
  50. package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
  51. package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
  52. package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
  53. package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
  54. package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
  55. package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
  56. package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
  57. package/dist/src/{chatkit-e25Ziu17.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  58. package/dist/src/chunk-DEq-mXcV.js +15 -0
  59. package/dist/src/chunk-DRamLcfz.js +16 -0
  60. package/dist/src/{claude-agent-sdk-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
  61. package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
  62. package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
  63. package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
  64. package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
  65. package/dist/src/cloud-DmE0EwsY.js +4 -0
  66. package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
  67. package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
  68. package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
  69. package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
  70. package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
  71. package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
  72. package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
  73. package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
  74. package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
  75. package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
  76. package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
  77. package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
  78. package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
  79. package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
  80. package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
  81. package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
  82. package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
  83. package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
  84. package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
  85. package/dist/src/completion-C_P3ypkJ.js +120 -0
  86. package/dist/src/createHash-CTQmL3G2.js +15 -0
  87. package/dist/src/createHash-CfZSc0b4.cjs +27 -0
  88. package/dist/src/createHash-Da8fMwqB.js +16 -0
  89. package/dist/src/createHash-DmPQkvBh.js +15 -0
  90. package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
  91. package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
  92. package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
  93. package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
  94. package/dist/src/entrypoint.js +2 -3
  95. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  96. package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
  97. package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
  98. package/dist/src/esm-Cd1AjG1D.js +379 -0
  99. package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
  100. package/dist/src/eval-17JizQIv.js +15 -0
  101. package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
  102. package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
  103. package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
  104. package/dist/src/evalResult-Cqj8pldJ.js +12 -0
  105. package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
  106. package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
  107. package/dist/src/evalResult-Hftn-S_i.js +10 -0
  108. package/dist/src/evaluator-B2CFNt-P.js +36 -0
  109. package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
  110. package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
  111. package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
  112. package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
  113. package/dist/src/extractor-YMU_Gvt8.js +374 -0
  114. package/dist/src/fetch-4M3YRaqL.js +780 -0
  115. package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
  116. package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
  117. package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
  118. package/dist/src/fetch-KV5kNASw.js +5 -0
  119. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  120. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  121. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  122. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  123. package/dist/src/{formatDuration-Doo0xq-z.js → formatDuration-DgBVMN65.js} +2 -2
  124. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  125. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  126. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  127. package/dist/src/{genaiTracer-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  128. package/dist/src/graders-Bu0H9nXi.js +32 -0
  129. package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
  130. package/dist/src/graders-Cfhkvx-e.js +34 -0
  131. package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
  132. package/dist/src/graders-DClJVpGP.cjs +32 -0
  133. package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
  134. package/dist/src/graders-DcnJsrMO.js +32 -0
  135. package/dist/src/graders-R9rYUM0d.js +13466 -0
  136. package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
  137. package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
  138. package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
  139. package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
  140. package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
  141. package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
  142. package/dist/src/image-pAX56tPG.js +257 -0
  143. package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
  144. package/dist/src/index.cjs +696 -693
  145. package/dist/src/index.d.cts +113 -10
  146. package/dist/src/index.d.ts +113 -6
  147. package/dist/src/index.js +657 -658
  148. package/dist/src/{interactiveCheck-DU-MAhp5.js → interactiveCheck-BgLZUIt3.js} +7 -8
  149. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  150. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  151. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  152. package/dist/src/invariant-vgHWClmd.js +25 -0
  153. package/dist/src/{knowledgeBase-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
  154. package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
  155. package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
  156. package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
  157. package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
  158. package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
  159. package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
  160. package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
  161. package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
  162. package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
  163. package/dist/src/logger-DLcq4dWf.js +713 -0
  164. package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
  165. package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
  166. package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
  167. package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
  168. package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
  169. package/dist/src/main.js +1985 -2055
  170. package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
  171. package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
  172. package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
  173. package/dist/src/messages-D8EA0oDc.js +240 -0
  174. package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
  175. package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
  176. package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
  177. package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
  178. package/dist/src/modelslab-C1OLRmVX.js +166 -0
  179. package/dist/src/modelslab-CqXBy3U8.js +168 -0
  180. package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
  181. package/dist/src/modelslab-X5-4LroM.js +166 -0
  182. package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
  183. package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
  184. package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
  185. package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
  186. package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
  187. package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
  188. package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
  189. package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
  190. package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
  191. package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
  192. package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
  193. package/dist/src/openai-j-sE2O7r.js +44 -0
  194. package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
  195. package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
  196. package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
  197. package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
  198. package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
  199. package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
  200. package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
  201. package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
  202. package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
  203. package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
  204. package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
  205. package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
  206. package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
  207. package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
  208. package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  209. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  210. package/dist/src/providers-B3HvufyI.js +33246 -0
  211. package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
  212. package/dist/src/providers-C1rOSHiR.js +32 -0
  213. package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
  214. package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
  215. package/dist/src/providers-CxmDwEFf.cjs +31 -0
  216. package/dist/src/providers-Dodakqr0.js +30 -0
  217. package/dist/src/providers-GIQ2TcsA.js +30 -0
  218. package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
  219. package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  220. package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
  221. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  222. package/dist/src/quiverai-C2jVwbH1.js +213 -0
  223. package/dist/src/quiverai-CI6gYJVI.js +213 -0
  224. package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
  225. package/dist/src/quiverai-MHSxbmmZ.js +215 -0
  226. package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
  227. package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
  228. package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
  229. package/dist/src/responses-jxdehPkC.js +660 -0
  230. package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
  231. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  232. package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
  233. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  234. package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
  235. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  236. package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  237. package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
  238. package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
  239. package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
  240. package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
  241. package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
  242. package/dist/src/server/index.js +5620 -67302
  243. package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
  244. package/dist/src/server-B1vi21hA.js +7 -0
  245. package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
  246. package/dist/src/server-Cm9Kai_h.cjs +5 -0
  247. package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
  248. package/dist/src/server-OAs3nBRT.js +229 -0
  249. package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
  250. package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
  251. package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
  252. package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
  253. package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
  254. package/dist/src/store-BNmZ1KAz.cjs +5 -0
  255. package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
  256. package/dist/src/store-BltJg2cd.js +6 -0
  257. package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
  258. package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
  259. package/dist/src/store-Ub2vaGJ1.js +228 -0
  260. package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
  261. package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
  262. package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
  263. package/dist/src/tables-xKANLRBD.js +288 -0
  264. package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
  265. package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
  266. package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
  267. package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
  268. package/dist/src/telemetry-D4W5hboe.js +7 -0
  269. package/dist/src/telemetry-DMb2Mpfm.js +171 -0
  270. package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
  271. package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
  272. package/dist/src/{text-DgMr_tiM.js → text-Db-Wt2u2.js} +2 -2
  273. package/dist/src/text-TIv0QYnd.js +22 -0
  274. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  275. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  276. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  277. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  278. package/dist/src/{transcription-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
  279. package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
  280. package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
  281. package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
  282. package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
  283. package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
  284. package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
  285. package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
  286. package/dist/src/transform-DGxXocjk.js +1506 -0
  287. package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
  288. package/dist/src/transform-DTGDnAzW.js +6 -0
  289. package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
  290. package/dist/src/transform-aa6tmVpZ.js +216 -0
  291. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  292. package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  293. package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  294. package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
  295. package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
  296. package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
  297. package/dist/src/types-CN_TZ2GJ.js +3260 -0
  298. package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
  299. package/dist/src/util-5cB-L7U3.js +1430 -0
  300. package/dist/src/util-6-GqIvzS.js +599 -0
  301. package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
  302. package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
  303. package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
  304. package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
  305. package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
  306. package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
  307. package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
  308. package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
  309. package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
  310. package/dist/src/util-ZZH-3QZz.js +293 -0
  311. package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
  312. package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
  313. package/dist/src/utils-dLokC-eR.js +94 -0
  314. package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +59 -53
  317. package/dist/src/app/assets/index-BOgkICuY.css +0 -1
  318. package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
  319. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  320. package/dist/src/base-BaXmtXYp.js +0 -107
  321. package/dist/src/base-Dtp8b4_N.js +0 -106
  322. package/dist/src/base-f71xxWai.cjs +0 -111
  323. package/dist/src/cache-BUPcq0Ad.js +0 -6
  324. package/dist/src/cache-CVfRb-HD.cjs +0 -6
  325. package/dist/src/cache-O4EuX2JV.js +0 -8
  326. package/dist/src/chunk-DHDDz29n.js +0 -22
  327. package/dist/src/chunk-FhC4c-0y.js +0 -21
  328. package/dist/src/cloud-CZ4hytdm.js +0 -5
  329. package/dist/src/eval-CKHWqG9f.js +0 -16
  330. package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
  331. package/dist/src/evalResult-CzLURDcP.js +0 -13
  332. package/dist/src/evalResult-DyttNQ_G.js +0 -11
  333. package/dist/src/evaluator-0PvfeBYh.js +0 -38
  334. package/dist/src/fetch-Bi0o-fdp.js +0 -4
  335. package/dist/src/fetch-CMptBDVg.cjs +0 -4
  336. package/dist/src/fetch-DAZkv3gV.js +0 -6
  337. package/dist/src/graders-BCytzXrb.js +0 -34
  338. package/dist/src/graders-CGZQShfJ.cjs +0 -33
  339. package/dist/src/graders-spkuVC-E.js +0 -36
  340. package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
  341. package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
  342. package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
  343. package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
  344. package/dist/src/providers-BMZZmPBJ.cjs +0 -32
  345. package/dist/src/providers-CQQrNaJk.js +0 -32
  346. package/dist/src/providers-Ck8HyrC-.js +0 -34
  347. package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
  348. package/dist/src/quiverai-BQigKdIH.js +0 -57
  349. package/dist/src/quiverai-Bfy2WnE2.js +0 -55
  350. package/dist/src/quiverai-CedIP0PJ.js +0 -43
  351. package/dist/src/rubyUtils-D7--T12C.js +0 -6
  352. package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
  353. package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
  354. package/dist/src/server-BUbS0Qfh.js +0 -6
  355. package/dist/src/server-XpGXFHkS.cjs +0 -6
  356. package/dist/src/server-gfOx5Zrk.js +0 -8
  357. package/dist/src/store-5u2yriTV.js +0 -7
  358. package/dist/src/store-D_lq_8oQ.js +0 -6
  359. package/dist/src/store-m5KT6Ly7.cjs +0 -6
  360. package/dist/src/telemetry-5RHFoCJh.js +0 -6
  361. package/dist/src/telemetry-Do8wMnA-.js +0 -8
  362. package/dist/src/telemetry-LojxPoFq.cjs +0 -6
  363. package/dist/src/transform-8eGmaH-7.js +0 -7
  364. package/dist/src/transform-BRVvWaG4.cjs +0 -6
  365. package/dist/src/transform-GybT0X0u.js +0 -8
  366. package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
@@ -1,10 +1,9 @@
1
- import { i as logger_default } from "./logger-w8Ozp0Td.js";
2
- import { h as REQUEST_TIMEOUT_MS } from "./fetch-18MuNu9i.js";
3
- import { a as fetchWithCache } from "./cache-BLLayYEN.js";
4
- import { t as OpenAiGenericProvider } from "./openai-Dz3surb_.js";
5
- import { s as formatOpenAiError } from "./util-Cl0zfT3V.js";
6
- import { t as ellipsize } from "./text-Dm78AVGG.js";
7
-
1
+ import { i as logger } from "./logger-CT3IKMKA.js";
2
+ import { p as REQUEST_TIMEOUT_MS } from "./fetch-60Gzydls.js";
3
+ import { r as fetchWithCache } from "./cache-8XhNqPKW.js";
4
+ import { t as OpenAiGenericProvider } from "./openai-DElQ-fPX.js";
5
+ import { s as formatOpenAiError } from "./util-Betm42rL.js";
6
+ import { t as ellipsize } from "./text-B_UCRPp2.js";
8
7
  //#region src/providers/openai/image.ts
9
8
  const DALLE2_VALID_SIZES = [
10
9
  "256x256",
@@ -101,10 +100,48 @@ function validateSizeForModel(size, model) {
101
100
  }
102
101
  return { valid: true };
103
102
  }
104
- function formatOutput(data, prompt, responseFormat) {
103
+ function getMimeTypeForOutputFormat(outputFormat) {
104
+ switch (outputFormat) {
105
+ case "jpeg": return "image/jpeg";
106
+ case "webp": return "image/webp";
107
+ default: return "image/png";
108
+ }
109
+ }
110
+ function inferMimeTypeFromUrl(url) {
111
+ try {
112
+ const pathname = new URL(url).pathname.toLowerCase();
113
+ if (pathname.endsWith(".jpg") || pathname.endsWith(".jpeg")) return "image/jpeg";
114
+ if (pathname.endsWith(".webp")) return "image/webp";
115
+ if (pathname.endsWith(".gif")) return "image/gif";
116
+ if (pathname.endsWith(".svg")) return "image/svg+xml";
117
+ if (pathname.endsWith(".png")) return "image/png";
118
+ } catch {}
119
+ }
120
+ function buildStructuredImageOutputs(data, outputFormat) {
121
+ if (!Array.isArray(data.data) || data.data.length === 0) return;
122
+ return data.data.map((item) => {
123
+ if (item.b64_json) {
124
+ const mimeType = getMimeTypeForOutputFormat(outputFormat);
125
+ return {
126
+ data: `data:${mimeType};base64,${item.b64_json}`,
127
+ mimeType
128
+ };
129
+ }
130
+ if (item.url) {
131
+ const mimeType = inferMimeTypeFromUrl(item.url);
132
+ return mimeType ? {
133
+ data: item.url,
134
+ mimeType
135
+ } : { data: item.url };
136
+ }
137
+ return null;
138
+ }).filter((item) => item !== null);
139
+ }
140
+ function formatOutput(data, prompt, responseFormat, outputFormat) {
105
141
  if (responseFormat === "b64_json") {
106
- if (!data.data[0].b64_json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
107
- return JSON.stringify(data);
142
+ const b64Json = data.data[0].b64_json;
143
+ if (!b64Json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
144
+ return `data:${getMimeTypeForOutputFormat(outputFormat)};base64,${b64Json}`;
108
145
  } else {
109
146
  const url = data.data[0].url;
110
147
  if (!url) return { error: `No image URL found in response: ${JSON.stringify(data)}` };
@@ -148,19 +185,21 @@ async function callOpenAiImageApi(url, body, headers, timeout) {
148
185
  body: JSON.stringify(body)
149
186
  }, timeout);
150
187
  }
151
- async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1) {
188
+ async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1, outputFormat) {
152
189
  if (data.error) {
153
190
  await data?.deleteFromCache?.();
154
191
  return { error: formatOpenAiError(data) };
155
192
  }
156
193
  try {
157
- const formattedOutput = formatOutput(data, prompt, responseFormat);
194
+ const formattedOutput = formatOutput(data, prompt, responseFormat, outputFormat);
158
195
  if (typeof formattedOutput === "object") return formattedOutput;
196
+ const cost = cached ? 0 : calculateImageCost(model, size, quality, n);
159
197
  return {
160
198
  output: formattedOutput,
199
+ images: buildStructuredImageOutputs(data, outputFormat),
161
200
  cached,
162
201
  latencyMs,
163
- cost: cached ? 0 : calculateImageCost(model, size, quality, n),
202
+ cost,
164
203
  ...responseFormat === "b64_json" ? {
165
204
  isBase64: true,
166
205
  format: "json"
@@ -205,14 +244,14 @@ var OpenAiImageProvider = class extends OpenAiGenericProvider {
205
244
  ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS));
206
245
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
207
246
  } catch (err) {
208
- logger_default.error(`API call error: ${String(err)}`);
247
+ logger.error(`API call error: ${String(err)}`);
209
248
  await data?.deleteFromCache?.();
210
249
  return { error: `API call error: ${String(err)}` };
211
250
  }
212
- return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1);
251
+ return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1, "output_format" in config ? config.output_format : void 0);
213
252
  }
214
253
  };
215
-
216
254
  //#endregion
217
- export { callOpenAiImageApi as n, formatOutput as r, OpenAiImageProvider as t };
218
- //# sourceMappingURL=image-BiEVdpdP.js.map
255
+ export { formatOutput as i, buildStructuredImageOutputs as n, callOpenAiImageApi as r, OpenAiImageProvider as t };
256
+
257
+ //# sourceMappingURL=image-BmEZqVmk.js.map
@@ -1,11 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { o as logger_default } from "./logger-BotXmWKW.js";
3
- import { d as REQUEST_TIMEOUT_MS } from "./fetch-SRsE6Ctl.js";
4
- import { a as fetchWithCache } from "./cache-mIszOnuz.js";
5
- import { t as OpenAiGenericProvider } from "./openai-CT5fwbve.js";
6
- import { s as formatOpenAiError } from "./util-CUEt0Vum.js";
7
- import { t as ellipsize } from "./text-DgMr_tiM.js";
8
-
2
+ import { o as logger } from "./logger-KkObSCzq.js";
3
+ import { f as REQUEST_TIMEOUT_MS } from "./fetch-BMv0O527.js";
4
+ import { a as fetchWithCache } from "./cache-CG0SlR1d.js";
5
+ import { t as OpenAiGenericProvider } from "./openai-DhbB7eWK.js";
6
+ import { s as formatOpenAiError } from "./util-C-PPYSMq.js";
7
+ import { t as ellipsize } from "./text-Db-Wt2u2.js";
9
8
  //#region src/providers/openai/image.ts
10
9
  const DALLE2_VALID_SIZES = [
11
10
  "256x256",
@@ -102,10 +101,48 @@ function validateSizeForModel(size, model) {
102
101
  }
103
102
  return { valid: true };
104
103
  }
105
- function formatOutput(data, prompt, responseFormat) {
104
+ function getMimeTypeForOutputFormat(outputFormat) {
105
+ switch (outputFormat) {
106
+ case "jpeg": return "image/jpeg";
107
+ case "webp": return "image/webp";
108
+ default: return "image/png";
109
+ }
110
+ }
111
+ function inferMimeTypeFromUrl(url) {
112
+ try {
113
+ const pathname = new URL(url).pathname.toLowerCase();
114
+ if (pathname.endsWith(".jpg") || pathname.endsWith(".jpeg")) return "image/jpeg";
115
+ if (pathname.endsWith(".webp")) return "image/webp";
116
+ if (pathname.endsWith(".gif")) return "image/gif";
117
+ if (pathname.endsWith(".svg")) return "image/svg+xml";
118
+ if (pathname.endsWith(".png")) return "image/png";
119
+ } catch {}
120
+ }
121
+ function buildStructuredImageOutputs(data, outputFormat) {
122
+ if (!Array.isArray(data.data) || data.data.length === 0) return;
123
+ return data.data.map((item) => {
124
+ if (item.b64_json) {
125
+ const mimeType = getMimeTypeForOutputFormat(outputFormat);
126
+ return {
127
+ data: `data:${mimeType};base64,${item.b64_json}`,
128
+ mimeType
129
+ };
130
+ }
131
+ if (item.url) {
132
+ const mimeType = inferMimeTypeFromUrl(item.url);
133
+ return mimeType ? {
134
+ data: item.url,
135
+ mimeType
136
+ } : { data: item.url };
137
+ }
138
+ return null;
139
+ }).filter((item) => item !== null);
140
+ }
141
+ function formatOutput(data, prompt, responseFormat, outputFormat) {
106
142
  if (responseFormat === "b64_json") {
107
- if (!data.data[0].b64_json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
108
- return JSON.stringify(data);
143
+ const b64Json = data.data[0].b64_json;
144
+ if (!b64Json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
145
+ return `data:${getMimeTypeForOutputFormat(outputFormat)};base64,${b64Json}`;
109
146
  } else {
110
147
  const url = data.data[0].url;
111
148
  if (!url) return { error: `No image URL found in response: ${JSON.stringify(data)}` };
@@ -149,19 +186,21 @@ async function callOpenAiImageApi(url, body, headers, timeout) {
149
186
  body: JSON.stringify(body)
150
187
  }, timeout);
151
188
  }
152
- async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1) {
189
+ async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1, outputFormat) {
153
190
  if (data.error) {
154
191
  await data?.deleteFromCache?.();
155
192
  return { error: formatOpenAiError(data) };
156
193
  }
157
194
  try {
158
- const formattedOutput = formatOutput(data, prompt, responseFormat);
195
+ const formattedOutput = formatOutput(data, prompt, responseFormat, outputFormat);
159
196
  if (typeof formattedOutput === "object") return formattedOutput;
197
+ const cost = cached ? 0 : calculateImageCost(model, size, quality, n);
160
198
  return {
161
199
  output: formattedOutput,
200
+ images: buildStructuredImageOutputs(data, outputFormat),
162
201
  cached,
163
202
  latencyMs,
164
- cost: cached ? 0 : calculateImageCost(model, size, quality, n),
203
+ cost,
165
204
  ...responseFormat === "b64_json" ? {
166
205
  isBase64: true,
167
206
  format: "json"
@@ -206,14 +245,14 @@ var OpenAiImageProvider = class extends OpenAiGenericProvider {
206
245
  ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS));
207
246
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
208
247
  } catch (err) {
209
- logger_default.error(`API call error: ${String(err)}`);
248
+ logger.error(`API call error: ${String(err)}`);
210
249
  await data?.deleteFromCache?.();
211
250
  return { error: `API call error: ${String(err)}` };
212
251
  }
213
- return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1);
252
+ return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1, "output_format" in config ? config.output_format : void 0);
214
253
  }
215
254
  };
216
-
217
255
  //#endregion
218
- export { callOpenAiImageApi as n, formatOutput as r, OpenAiImageProvider as t };
219
- //# sourceMappingURL=image-mhAGP07h.js.map
256
+ export { formatOutput as i, buildStructuredImageOutputs as n, callOpenAiImageApi as r, OpenAiImageProvider as t };
257
+
258
+ //# sourceMappingURL=image-CBBVXWuT.js.map
@@ -1,7 +1,6 @@
1
- const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_fetch = require('./fetch-ZMn_oemb.cjs');
3
- const require_cache = require('./cache-7xULbvt3.cjs');
4
-
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ const require_fetch = require("./fetch-BxUk8odA.cjs");
3
+ const require_cache = require("./cache-COish3-W.cjs");
5
4
  //#region src/providers/hyperbolic/image.ts
6
5
  const HYPERBOLIC_IMAGE_MODELS = [
7
6
  {
@@ -132,7 +131,7 @@ var HyperbolicImageProvider = class {
132
131
  }, require_fetch.REQUEST_TIMEOUT_MS));
133
132
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
134
133
  } catch (err) {
135
- require_logger.logger_default.error(`API call error: ${String(err)}`);
134
+ require_logger.logger.error(`API call error: ${String(err)}`);
136
135
  return { error: `API call error: ${String(err)}` };
137
136
  }
138
137
  if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
@@ -158,7 +157,7 @@ var HyperbolicImageProvider = class {
158
157
  function createHyperbolicImageProvider(providerPath, options = {}) {
159
158
  return new HyperbolicImageProvider(providerPath.split(":").slice(2).join(":") || "SDXL1.0-base", options);
160
159
  }
161
-
162
160
  //#endregion
163
161
  exports.createHyperbolicImageProvider = createHyperbolicImageProvider;
164
- //# sourceMappingURL=image-D10zEe1f.cjs.map
162
+
163
+ //# sourceMappingURL=image-CDLQOcqT.cjs.map
@@ -1,5 +1,6 @@
1
- import { I as getEnvString, _ as fetchWithCache, j as logger_default, k as REQUEST_TIMEOUT_MS } from "./server/index.js";
2
-
1
+ import { b as getEnvString, i as logger } from "./logger-CT3IKMKA.js";
2
+ import { p as REQUEST_TIMEOUT_MS } from "./fetch-60Gzydls.js";
3
+ import { r as fetchWithCache } from "./cache-8XhNqPKW.js";
3
4
  //#region src/providers/hyperbolic/image.ts
4
5
  const HYPERBOLIC_IMAGE_MODELS = [
5
6
  {
@@ -130,7 +131,7 @@ var HyperbolicImageProvider = class {
130
131
  }, REQUEST_TIMEOUT_MS));
131
132
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
132
133
  } catch (err) {
133
- logger_default.error(`API call error: ${String(err)}`);
134
+ logger.error(`API call error: ${String(err)}`);
134
135
  return { error: `API call error: ${String(err)}` };
135
136
  }
136
137
  if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
@@ -156,7 +157,7 @@ var HyperbolicImageProvider = class {
156
157
  function createHyperbolicImageProvider(providerPath, options = {}) {
157
158
  return new HyperbolicImageProvider(providerPath.split(":").slice(2).join(":") || "SDXL1.0-base", options);
158
159
  }
159
-
160
160
  //#endregion
161
161
  export { createHyperbolicImageProvider };
162
- //# sourceMappingURL=image-COCWy5dX.js.map
162
+
163
+ //# sourceMappingURL=image-DJEvKveK.js.map
@@ -1,10 +1,9 @@
1
- const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_fetch = require('./fetch-ZMn_oemb.cjs');
3
- const require_cache = require('./cache-7xULbvt3.cjs');
4
- const require_openai = require('./openai-Bigwjgo1.cjs');
5
- const require_util = require('./util-C08Kns6-.cjs');
6
- const require_text = require('./text-DF2hMKdg.cjs');
7
-
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ const require_fetch = require("./fetch-BxUk8odA.cjs");
3
+ const require_cache = require("./cache-COish3-W.cjs");
4
+ const require_openai = require("./openai-Cuif0GEt.cjs");
5
+ const require_util = require("./util-Db0a0AFH.cjs");
6
+ const require_text = require("./text-CW1cyrwj.cjs");
8
7
  //#region src/providers/openai/image.ts
9
8
  const DALLE2_VALID_SIZES = [
10
9
  "256x256",
@@ -101,10 +100,48 @@ function validateSizeForModel(size, model) {
101
100
  }
102
101
  return { valid: true };
103
102
  }
104
- function formatOutput(data, prompt, responseFormat) {
103
+ function getMimeTypeForOutputFormat(outputFormat) {
104
+ switch (outputFormat) {
105
+ case "jpeg": return "image/jpeg";
106
+ case "webp": return "image/webp";
107
+ default: return "image/png";
108
+ }
109
+ }
110
+ function inferMimeTypeFromUrl(url) {
111
+ try {
112
+ const pathname = new URL(url).pathname.toLowerCase();
113
+ if (pathname.endsWith(".jpg") || pathname.endsWith(".jpeg")) return "image/jpeg";
114
+ if (pathname.endsWith(".webp")) return "image/webp";
115
+ if (pathname.endsWith(".gif")) return "image/gif";
116
+ if (pathname.endsWith(".svg")) return "image/svg+xml";
117
+ if (pathname.endsWith(".png")) return "image/png";
118
+ } catch {}
119
+ }
120
+ function buildStructuredImageOutputs(data, outputFormat) {
121
+ if (!Array.isArray(data.data) || data.data.length === 0) return;
122
+ return data.data.map((item) => {
123
+ if (item.b64_json) {
124
+ const mimeType = getMimeTypeForOutputFormat(outputFormat);
125
+ return {
126
+ data: `data:${mimeType};base64,${item.b64_json}`,
127
+ mimeType
128
+ };
129
+ }
130
+ if (item.url) {
131
+ const mimeType = inferMimeTypeFromUrl(item.url);
132
+ return mimeType ? {
133
+ data: item.url,
134
+ mimeType
135
+ } : { data: item.url };
136
+ }
137
+ return null;
138
+ }).filter((item) => item !== null);
139
+ }
140
+ function formatOutput(data, prompt, responseFormat, outputFormat) {
105
141
  if (responseFormat === "b64_json") {
106
- if (!data.data[0].b64_json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
107
- return JSON.stringify(data);
142
+ const b64Json = data.data[0].b64_json;
143
+ if (!b64Json) return { error: `No base64 image data found in response: ${JSON.stringify(data)}` };
144
+ return `data:${getMimeTypeForOutputFormat(outputFormat)};base64,${b64Json}`;
108
145
  } else {
109
146
  const url = data.data[0].url;
110
147
  if (!url) return { error: `No image URL found in response: ${JSON.stringify(data)}` };
@@ -148,19 +185,21 @@ async function callOpenAiImageApi(url, body, headers, timeout) {
148
185
  body: JSON.stringify(body)
149
186
  }, timeout);
150
187
  }
151
- async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1) {
188
+ async function processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, quality, n = 1, outputFormat) {
152
189
  if (data.error) {
153
190
  await data?.deleteFromCache?.();
154
191
  return { error: require_util.formatOpenAiError(data) };
155
192
  }
156
193
  try {
157
- const formattedOutput = formatOutput(data, prompt, responseFormat);
194
+ const formattedOutput = formatOutput(data, prompt, responseFormat, outputFormat);
158
195
  if (typeof formattedOutput === "object") return formattedOutput;
196
+ const cost = cached ? 0 : calculateImageCost(model, size, quality, n);
159
197
  return {
160
198
  output: formattedOutput,
199
+ images: buildStructuredImageOutputs(data, outputFormat),
161
200
  cached,
162
201
  latencyMs,
163
- cost: cached ? 0 : calculateImageCost(model, size, quality, n),
202
+ cost,
164
203
  ...responseFormat === "b64_json" ? {
165
204
  isBase64: true,
166
205
  format: "json"
@@ -205,31 +244,37 @@ var OpenAiImageProvider = class extends require_openai.OpenAiGenericProvider {
205
244
  ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, require_fetch.REQUEST_TIMEOUT_MS));
206
245
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
207
246
  } catch (err) {
208
- require_logger.logger_default.error(`API call error: ${String(err)}`);
247
+ require_logger.logger.error(`API call error: ${String(err)}`);
209
248
  await data?.deleteFromCache?.();
210
249
  return { error: `API call error: ${String(err)}` };
211
250
  }
212
- return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1);
251
+ return processApiResponse(data, prompt, responseFormat, cached, model, size, latencyMs, config.quality, config.n || 1, "output_format" in config ? config.output_format : void 0);
213
252
  }
214
253
  };
215
-
216
254
  //#endregion
217
- Object.defineProperty(exports, 'OpenAiImageProvider', {
218
- enumerable: true,
219
- get: function () {
220
- return OpenAiImageProvider;
221
- }
255
+ Object.defineProperty(exports, "OpenAiImageProvider", {
256
+ enumerable: true,
257
+ get: function() {
258
+ return OpenAiImageProvider;
259
+ }
222
260
  });
223
- Object.defineProperty(exports, 'callOpenAiImageApi', {
224
- enumerable: true,
225
- get: function () {
226
- return callOpenAiImageApi;
227
- }
261
+ Object.defineProperty(exports, "buildStructuredImageOutputs", {
262
+ enumerable: true,
263
+ get: function() {
264
+ return buildStructuredImageOutputs;
265
+ }
228
266
  });
229
- Object.defineProperty(exports, 'formatOutput', {
230
- enumerable: true,
231
- get: function () {
232
- return formatOutput;
233
- }
267
+ Object.defineProperty(exports, "callOpenAiImageApi", {
268
+ enumerable: true,
269
+ get: function() {
270
+ return callOpenAiImageApi;
271
+ }
234
272
  });
235
- //# sourceMappingURL=image-C3BjJUAU.cjs.map
273
+ Object.defineProperty(exports, "formatOutput", {
274
+ enumerable: true,
275
+ get: function() {
276
+ return formatOutput;
277
+ }
278
+ });
279
+
280
+ //# sourceMappingURL=image-DTedmQPg.cjs.map
@@ -1,10 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-DHDDz29n.js";
3
- import { C as getEnvString, o as logger_default } from "./logger-BotXmWKW.js";
4
- import { d as REQUEST_TIMEOUT_MS } from "./fetch-SRsE6Ctl.js";
5
- import "./cloud-BMbRVJFw.js";
6
- import { a as fetchWithCache } from "./cache-mIszOnuz.js";
7
-
2
+ import { C as getEnvString, o as logger } from "./logger-KkObSCzq.js";
3
+ import { f as REQUEST_TIMEOUT_MS } from "./fetch-BMv0O527.js";
4
+ import "./cloud-Bc9526yV.js";
5
+ import { a as fetchWithCache } from "./cache-CG0SlR1d.js";
8
6
  //#region src/providers/hyperbolic/image.ts
9
7
  const HYPERBOLIC_IMAGE_MODELS = [
10
8
  {
@@ -135,7 +133,7 @@ var HyperbolicImageProvider = class {
135
133
  }, REQUEST_TIMEOUT_MS));
136
134
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
137
135
  } catch (err) {
138
- logger_default.error(`API call error: ${String(err)}`);
136
+ logger.error(`API call error: ${String(err)}`);
139
137
  return { error: `API call error: ${String(err)}` };
140
138
  }
141
139
  if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
@@ -161,7 +159,7 @@ var HyperbolicImageProvider = class {
161
159
  function createHyperbolicImageProvider(providerPath, options = {}) {
162
160
  return new HyperbolicImageProvider(providerPath.split(":").slice(2).join(":") || "SDXL1.0-base", options);
163
161
  }
164
-
165
162
  //#endregion
166
163
  export { createHyperbolicImageProvider };
167
- //# sourceMappingURL=image-DB4sHxdJ.js.map
164
+
165
+ //# sourceMappingURL=image-gvmivTEe.js.map