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
@@ -0,0 +1,166 @@
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ require("./types-LJ0r3wbR.cjs");
3
+ const require_fetch = require("./fetch-BxUk8odA.cjs");
4
+ const require_cache = require("./cache-COish3-W.cjs");
5
+ require("./accounts-Bx-x3bmW.cjs");
6
+ const require_blobs = require("./blobs-DvS-O6be.cjs");
7
+ require("./tables-C7K-XKWp.cjs");
8
+ const require_extractor = require("./extractor-DX36oYEv.cjs");
9
+ const require_text = require("./text-CW1cyrwj.cjs");
10
+ //#region src/providers/modelslab.ts
11
+ /**
12
+ * ModelsLab provider for text-to-image generation.
13
+ *
14
+ * Handles async polling: initial response may return {status: "processing"},
15
+ * in which case we poll the fetch endpoint until completion.
16
+ *
17
+ * API docs: https://docs.modelslab.com
18
+ *
19
+ * NOTE: ModelsLab uses key-in-body authentication (not Bearer header).
20
+ * The API key is sent as the "key" field in the JSON request body.
21
+ */
22
+ const MODELSLAB_BASE_URL = "https://modelslab.com/api/v6";
23
+ const POLL_INTERVAL_MS = 3e3;
24
+ const MAX_POLL_ATTEMPTS = 60;
25
+ var ModelsLabImageProvider = class {
26
+ modelName;
27
+ apiKey;
28
+ config;
29
+ constructor(modelName, options = {}) {
30
+ const { config, id, env } = options;
31
+ this.modelName = modelName;
32
+ this.apiKey = config?.apiKey || env?.MODELSLAB_API_KEY || require_logger.getEnvString("MODELSLAB_API_KEY");
33
+ const { apiKey: _apiKey, ...restConfig } = config ?? {};
34
+ this.config = restConfig;
35
+ this.id = id ? () => id : this.id;
36
+ }
37
+ id() {
38
+ return `modelslab:image:${this.modelName}`;
39
+ }
40
+ toString() {
41
+ return `[ModelsLab Image Provider ${this.modelName}]`;
42
+ }
43
+ async callApi(prompt, context, _callApiOptions) {
44
+ if (!this.apiKey) return { error: "ModelsLab API key is not set. Set the MODELSLAB_API_KEY environment variable or add `apiKey` to the provider config." };
45
+ const config = {
46
+ ...this.config,
47
+ ...context?.prompt?.config
48
+ };
49
+ const requestBody = {
50
+ key: this.apiKey,
51
+ model_id: this.modelName,
52
+ prompt,
53
+ width: config.width ?? 512,
54
+ height: config.height ?? 512,
55
+ num_inference_steps: config.num_inference_steps ?? 30,
56
+ guidance_scale: config.guidance_scale ?? 7.5,
57
+ samples: config.samples ?? 1,
58
+ safety_checker: config.safety_checker ?? "no",
59
+ enhance_prompt: config.enhance_prompt ?? "no"
60
+ };
61
+ if (config.negative_prompt) requestBody.negative_prompt = config.negative_prompt;
62
+ if (config.seed !== void 0) requestBody.seed = config.seed;
63
+ try {
64
+ require_logger.logger.debug("[ModelsLab] Image generation request", {
65
+ model: this.modelName,
66
+ prompt: require_text.ellipsize(prompt, 50)
67
+ });
68
+ const response = await require_cache.fetchWithCache(`${MODELSLAB_BASE_URL}/images/text2img`, {
69
+ method: "POST",
70
+ headers: { "Content-Type": "application/json" },
71
+ body: JSON.stringify(requestBody)
72
+ }, require_fetch.REQUEST_TIMEOUT_MS, "json", true);
73
+ let data = response.data;
74
+ let cached = response.cached;
75
+ if (data.status === "processing") {
76
+ const requestId = data.request_id ?? String(data.id);
77
+ require_logger.logger.debug("[ModelsLab] Image is processing, polling for result", {
78
+ model: this.modelName,
79
+ requestId
80
+ });
81
+ data = await this.pollForCompletion(requestId);
82
+ cached = false;
83
+ }
84
+ if (data.status === "error") return {
85
+ cached,
86
+ error: `ModelsLab API error: ${data.message || "Unknown error"}`
87
+ };
88
+ if (data.status === "success") {
89
+ if (!data.output || data.output.length === 0) return { error: "ModelsLab returned no image URLs" };
90
+ const imageUrl = data.output[0];
91
+ const { url: resolvedUrl, blobRef } = await this.maybeDownloadToBlob(imageUrl);
92
+ return {
93
+ output: `![${require_text.ellipsize(prompt.replace(/\r?\n|\r/g, " ").replace(/\[/g, "(").replace(/\]/g, ")"), 50)}](${resolvedUrl})`,
94
+ cached,
95
+ ...blobRef && { metadata: {
96
+ blobRef,
97
+ blobHash: blobRef.hash
98
+ } }
99
+ };
100
+ }
101
+ return { error: `Unexpected ModelsLab response status: ${data.status}` };
102
+ } catch (err) {
103
+ return { error: `ModelsLab API call error: ${String(err)}` };
104
+ }
105
+ }
106
+ async maybeDownloadToBlob(imageUrl) {
107
+ if (!require_extractor.isBlobStorageEnabled()) return { url: imageUrl };
108
+ try {
109
+ const response = await require_fetch.fetchWithProxy(imageUrl);
110
+ if (!response.ok) {
111
+ require_logger.logger.warn("[ModelsLab] Failed to download image for blob storage", {
112
+ url: imageUrl,
113
+ status: response.status
114
+ });
115
+ return { url: imageUrl };
116
+ }
117
+ const { ref } = await require_blobs.storeBlob(Buffer.from(await response.arrayBuffer()), response.headers.get("content-type")?.split(";")[0] || "image/png", {
118
+ location: "response.output",
119
+ kind: "image"
120
+ });
121
+ return {
122
+ url: ref.uri,
123
+ blobRef: ref
124
+ };
125
+ } catch (error) {
126
+ require_logger.logger.warn("[ModelsLab] Failed to store image as blob, using URL", {
127
+ url: imageUrl,
128
+ error: String(error)
129
+ });
130
+ return { url: imageUrl };
131
+ }
132
+ }
133
+ async pollForCompletion(requestId) {
134
+ const fetchUrl = `${MODELSLAB_BASE_URL}/images/fetch/${requestId}`;
135
+ for (let attempt = 0; attempt < MAX_POLL_ATTEMPTS; attempt++) {
136
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
137
+ try {
138
+ const data = (await require_cache.fetchWithCache(fetchUrl, {
139
+ method: "POST",
140
+ headers: { "Content-Type": "application/json" },
141
+ body: JSON.stringify({ key: this.apiKey })
142
+ }, require_fetch.REQUEST_TIMEOUT_MS, "json", true)).data;
143
+ require_logger.logger.debug("[ModelsLab] Poll attempt", {
144
+ attempt: attempt + 1,
145
+ requestId,
146
+ status: data.status
147
+ });
148
+ if (data.status === "success" || data.status === "error") return data;
149
+ } catch (error) {
150
+ require_logger.logger.warn("[ModelsLab] Poll attempt failed", {
151
+ attempt: attempt + 1,
152
+ requestId,
153
+ error: String(error)
154
+ });
155
+ }
156
+ }
157
+ return {
158
+ status: "error",
159
+ message: `ModelsLab image generation timed out after ${MAX_POLL_ATTEMPTS * POLL_INTERVAL_MS / 1e3}s`
160
+ };
161
+ }
162
+ };
163
+ //#endregion
164
+ exports.ModelsLabImageProvider = ModelsLabImageProvider;
165
+
166
+ //# sourceMappingURL=modelslab-DcOSFwKh.cjs.map
@@ -0,0 +1,166 @@
1
+ import { b as getEnvString, i as logger } from "./logger-DLcq4dWf.js";
2
+ import { p as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-4M3YRaqL.js";
3
+ import "./accounts-BgNJDBE6.js";
4
+ import "./tables-xKANLRBD.js";
5
+ import "./types-CN_TZ2GJ.js";
6
+ import { r as fetchWithCache } from "./cache-D3eqDYGU.js";
7
+ import { i as storeBlob } from "./blobs-qTYm-1PY.js";
8
+ import { n as isBlobStorageEnabled } from "./extractor-YMU_Gvt8.js";
9
+ import { t as ellipsize } from "./text-TIv0QYnd.js";
10
+ //#region src/providers/modelslab.ts
11
+ /**
12
+ * ModelsLab provider for text-to-image generation.
13
+ *
14
+ * Handles async polling: initial response may return {status: "processing"},
15
+ * in which case we poll the fetch endpoint until completion.
16
+ *
17
+ * API docs: https://docs.modelslab.com
18
+ *
19
+ * NOTE: ModelsLab uses key-in-body authentication (not Bearer header).
20
+ * The API key is sent as the "key" field in the JSON request body.
21
+ */
22
+ const MODELSLAB_BASE_URL = "https://modelslab.com/api/v6";
23
+ const POLL_INTERVAL_MS = 3e3;
24
+ const MAX_POLL_ATTEMPTS = 60;
25
+ var ModelsLabImageProvider = class {
26
+ modelName;
27
+ apiKey;
28
+ config;
29
+ constructor(modelName, options = {}) {
30
+ const { config, id, env } = options;
31
+ this.modelName = modelName;
32
+ this.apiKey = config?.apiKey || env?.MODELSLAB_API_KEY || getEnvString("MODELSLAB_API_KEY");
33
+ const { apiKey: _apiKey, ...restConfig } = config ?? {};
34
+ this.config = restConfig;
35
+ this.id = id ? () => id : this.id;
36
+ }
37
+ id() {
38
+ return `modelslab:image:${this.modelName}`;
39
+ }
40
+ toString() {
41
+ return `[ModelsLab Image Provider ${this.modelName}]`;
42
+ }
43
+ async callApi(prompt, context, _callApiOptions) {
44
+ if (!this.apiKey) return { error: "ModelsLab API key is not set. Set the MODELSLAB_API_KEY environment variable or add `apiKey` to the provider config." };
45
+ const config = {
46
+ ...this.config,
47
+ ...context?.prompt?.config
48
+ };
49
+ const requestBody = {
50
+ key: this.apiKey,
51
+ model_id: this.modelName,
52
+ prompt,
53
+ width: config.width ?? 512,
54
+ height: config.height ?? 512,
55
+ num_inference_steps: config.num_inference_steps ?? 30,
56
+ guidance_scale: config.guidance_scale ?? 7.5,
57
+ samples: config.samples ?? 1,
58
+ safety_checker: config.safety_checker ?? "no",
59
+ enhance_prompt: config.enhance_prompt ?? "no"
60
+ };
61
+ if (config.negative_prompt) requestBody.negative_prompt = config.negative_prompt;
62
+ if (config.seed !== void 0) requestBody.seed = config.seed;
63
+ try {
64
+ logger.debug("[ModelsLab] Image generation request", {
65
+ model: this.modelName,
66
+ prompt: ellipsize(prompt, 50)
67
+ });
68
+ const response = await fetchWithCache(`${MODELSLAB_BASE_URL}/images/text2img`, {
69
+ method: "POST",
70
+ headers: { "Content-Type": "application/json" },
71
+ body: JSON.stringify(requestBody)
72
+ }, REQUEST_TIMEOUT_MS, "json", true);
73
+ let data = response.data;
74
+ let cached = response.cached;
75
+ if (data.status === "processing") {
76
+ const requestId = data.request_id ?? String(data.id);
77
+ logger.debug("[ModelsLab] Image is processing, polling for result", {
78
+ model: this.modelName,
79
+ requestId
80
+ });
81
+ data = await this.pollForCompletion(requestId);
82
+ cached = false;
83
+ }
84
+ if (data.status === "error") return {
85
+ cached,
86
+ error: `ModelsLab API error: ${data.message || "Unknown error"}`
87
+ };
88
+ if (data.status === "success") {
89
+ if (!data.output || data.output.length === 0) return { error: "ModelsLab returned no image URLs" };
90
+ const imageUrl = data.output[0];
91
+ const { url: resolvedUrl, blobRef } = await this.maybeDownloadToBlob(imageUrl);
92
+ return {
93
+ output: `![${ellipsize(prompt.replace(/\r?\n|\r/g, " ").replace(/\[/g, "(").replace(/\]/g, ")"), 50)}](${resolvedUrl})`,
94
+ cached,
95
+ ...blobRef && { metadata: {
96
+ blobRef,
97
+ blobHash: blobRef.hash
98
+ } }
99
+ };
100
+ }
101
+ return { error: `Unexpected ModelsLab response status: ${data.status}` };
102
+ } catch (err) {
103
+ return { error: `ModelsLab API call error: ${String(err)}` };
104
+ }
105
+ }
106
+ async maybeDownloadToBlob(imageUrl) {
107
+ if (!isBlobStorageEnabled()) return { url: imageUrl };
108
+ try {
109
+ const response = await fetchWithProxy(imageUrl);
110
+ if (!response.ok) {
111
+ logger.warn("[ModelsLab] Failed to download image for blob storage", {
112
+ url: imageUrl,
113
+ status: response.status
114
+ });
115
+ return { url: imageUrl };
116
+ }
117
+ const { ref } = await storeBlob(Buffer.from(await response.arrayBuffer()), response.headers.get("content-type")?.split(";")[0] || "image/png", {
118
+ location: "response.output",
119
+ kind: "image"
120
+ });
121
+ return {
122
+ url: ref.uri,
123
+ blobRef: ref
124
+ };
125
+ } catch (error) {
126
+ logger.warn("[ModelsLab] Failed to store image as blob, using URL", {
127
+ url: imageUrl,
128
+ error: String(error)
129
+ });
130
+ return { url: imageUrl };
131
+ }
132
+ }
133
+ async pollForCompletion(requestId) {
134
+ const fetchUrl = `${MODELSLAB_BASE_URL}/images/fetch/${requestId}`;
135
+ for (let attempt = 0; attempt < MAX_POLL_ATTEMPTS; attempt++) {
136
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
137
+ try {
138
+ const data = (await fetchWithCache(fetchUrl, {
139
+ method: "POST",
140
+ headers: { "Content-Type": "application/json" },
141
+ body: JSON.stringify({ key: this.apiKey })
142
+ }, REQUEST_TIMEOUT_MS, "json", true)).data;
143
+ logger.debug("[ModelsLab] Poll attempt", {
144
+ attempt: attempt + 1,
145
+ requestId,
146
+ status: data.status
147
+ });
148
+ if (data.status === "success" || data.status === "error") return data;
149
+ } catch (error) {
150
+ logger.warn("[ModelsLab] Poll attempt failed", {
151
+ attempt: attempt + 1,
152
+ requestId,
153
+ error: String(error)
154
+ });
155
+ }
156
+ }
157
+ return {
158
+ status: "error",
159
+ message: `ModelsLab image generation timed out after ${MAX_POLL_ATTEMPTS * POLL_INTERVAL_MS / 1e3}s`
160
+ };
161
+ }
162
+ };
163
+ //#endregion
164
+ export { ModelsLabImageProvider };
165
+
166
+ //# sourceMappingURL=modelslab-X5-4LroM.js.map
@@ -1,7 +1,14 @@
1
- import { O as sleep, a as ellipsize, i as AwsBedrockGenericProvider, j as logger_default, x as storeBlob } from "./server/index.js";
1
+ import { i as logger } from "./logger-DLcq4dWf.js";
2
+ import { d as sleep } from "./fetch-4M3YRaqL.js";
3
+ import "./accounts-BgNJDBE6.js";
4
+ import "./tables-xKANLRBD.js";
5
+ import "./types-CN_TZ2GJ.js";
6
+ import { i as storeBlob } from "./blobs-qTYm-1PY.js";
7
+ import "./telemetry-DMb2Mpfm.js";
8
+ import { t as ellipsize } from "./text-TIv0QYnd.js";
9
+ import { t as AwsBedrockGenericProvider } from "./base-fEDN28WM.js";
2
10
  import * as fs$1 from "fs";
3
11
  import * as path$1 from "path";
4
-
5
12
  //#region src/providers/bedrock/nova-reel.ts
6
13
  /**
7
14
  * Amazon Nova Reel Video Generation Provider
@@ -121,7 +128,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
121
128
  return { invocationArn: (await client.send(command)).invocationArn };
122
129
  } catch (err) {
123
130
  const error = err;
124
- logger_default.error("[Nova Reel] Failed to start video generation", { error });
131
+ logger.error("[Nova Reel] Failed to start video generation", { error });
125
132
  return { error: `Failed to start video generation: ${error.message || String(err)}` };
126
133
  }
127
134
  }
@@ -140,7 +147,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
140
147
  while (Date.now() - startTime < maxPollTimeMs) {
141
148
  const command = new GetAsyncInvokeCommand({ invocationArn });
142
149
  const invocation = await client.send(command);
143
- logger_default.debug(`[Nova Reel] Job status: ${invocation.status}`, {
150
+ logger.debug(`[Nova Reel] Job status: ${invocation.status}`, {
144
151
  invocationArn,
145
152
  elapsedMs: Date.now() - startTime
146
153
  });
@@ -157,7 +164,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
157
164
  return { error: `Video generation timed out after ${maxPollTimeMs / 1e3} seconds` };
158
165
  } catch (err) {
159
166
  const error = err;
160
- logger_default.error("[Nova Reel] Polling error", {
167
+ logger.error("[Nova Reel] Polling error", {
161
168
  error,
162
169
  invocationArn
163
170
  });
@@ -179,7 +186,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
179
186
  ...credentials ? { credentials } : {}
180
187
  });
181
188
  const videoKey = keyPrefix.endsWith("/") ? `${keyPrefix}output.mp4` : `${keyPrefix}/output.mp4`;
182
- logger_default.debug("[Nova Reel] Downloading video from S3", {
189
+ logger.debug("[Nova Reel] Downloading video from S3", {
183
190
  bucket,
184
191
  key: videoKey
185
192
  });
@@ -192,14 +199,14 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
192
199
  kind: "video",
193
200
  location: "response.video"
194
201
  });
195
- logger_default.debug(`[Nova Reel] Stored video to blob storage`, {
202
+ logger.debug(`[Nova Reel] Stored video to blob storage`, {
196
203
  uri: ref.uri,
197
204
  hash: ref.hash
198
205
  });
199
206
  return { blobRef: ref };
200
207
  } catch (err) {
201
208
  const error = err;
202
- logger_default.error("[Nova Reel] S3 download error", {
209
+ logger.error("[Nova Reel] S3 download error", {
203
210
  error,
204
211
  s3Uri
205
212
  });
@@ -219,14 +226,14 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
219
226
  const startTime = Date.now();
220
227
  const { input: modelInput, error: buildError } = this.buildModelInput(prompt, config);
221
228
  if (buildError || !modelInput) return { error: buildError || "Failed to build model input" };
222
- logger_default.info(`[Nova Reel] Starting video generation job...`, {
229
+ logger.info(`[Nova Reel] Starting video generation job...`, {
223
230
  taskType: config.taskType || "TEXT_VIDEO",
224
231
  durationSeconds: config.durationSeconds || DEFAULT_DURATION_SECONDS,
225
232
  s3OutputUri
226
233
  });
227
234
  const { invocationArn, error: startError } = await this.startVideoGeneration(modelInput, s3OutputUri);
228
235
  if (startError || !invocationArn) return { error: startError || "Failed to start video generation" };
229
- logger_default.info(`[Nova Reel] Job started`, { invocationArn });
236
+ logger.info(`[Nova Reel] Job started`, { invocationArn });
230
237
  const pollIntervalMs = config.pollIntervalMs || DEFAULT_POLL_INTERVAL_MS;
231
238
  const maxPollTimeMs = config.maxPollTimeMs || DEFAULT_MAX_POLL_TIME_MS;
232
239
  const { response, error: pollError } = await this.pollForCompletion(invocationArn, pollIntervalMs, maxPollTimeMs);
@@ -237,7 +244,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
237
244
  const outputUrl = `${outputS3Uri}/output.mp4`;
238
245
  if (config.downloadFromS3 !== false) {
239
246
  const { blobRef: ref, error: downloadError } = await this.downloadAndStoreVideo(outputS3Uri);
240
- if (downloadError) logger_default.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
247
+ if (downloadError) logger.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
241
248
  else blobRef = ref;
242
249
  }
243
250
  const latencyMs = Date.now() - startTime;
@@ -267,7 +274,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
267
274
  };
268
275
  }
269
276
  };
270
-
271
277
  //#endregion
272
278
  export { NovaReelVideoProvider };
273
- //# sourceMappingURL=nova-reel-C2LFfVTf.js.map
279
+
280
+ //# sourceMappingURL=nova-reel-BgS1ZWuK.js.map
@@ -1,15 +1,16 @@
1
- import { i as logger_default } from "./logger-w8Ozp0Td.js";
2
- import "./types-DMVjYLpx.js";
3
- import { p as sleep } from "./fetch-18MuNu9i.js";
4
- import "./accounts-R3gfCR_g.js";
5
- import { r as storeBlob } from "./blobs-C9J2mVgo.js";
6
- import "./tables-D-NSwNIb.js";
7
- import "./telemetry-DZ_7PaVq.js";
8
- import { t as ellipsize } from "./text-Dm78AVGG.js";
9
- import { t as AwsBedrockGenericProvider } from "./base-Dtp8b4_N.js";
1
+ #!/usr/bin/env node
2
+ import { o as logger } from "./logger-KkObSCzq.js";
3
+ import { l as sleep } from "./fetch-BMv0O527.js";
4
+ import "./accounts-CMqkzrVf.js";
5
+ import "./cloud-Bc9526yV.js";
6
+ import "./telemetry-C2YDkUQH.js";
7
+ import "./types-CH3Ge2sE.js";
8
+ import { i as storeBlob } from "./blobs-BAU-dXan.js";
9
+ import "./tables-D36WTqKX.js";
10
+ import { t as ellipsize } from "./text-Db-Wt2u2.js";
11
+ import { t as AwsBedrockGenericProvider } from "./base-B4QJRyFS.js";
10
12
  import * as fs$1 from "fs";
11
13
  import * as path$1 from "path";
12
-
13
14
  //#region src/providers/bedrock/nova-reel.ts
14
15
  /**
15
16
  * Amazon Nova Reel Video Generation Provider
@@ -129,7 +130,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
129
130
  return { invocationArn: (await client.send(command)).invocationArn };
130
131
  } catch (err) {
131
132
  const error = err;
132
- logger_default.error("[Nova Reel] Failed to start video generation", { error });
133
+ logger.error("[Nova Reel] Failed to start video generation", { error });
133
134
  return { error: `Failed to start video generation: ${error.message || String(err)}` };
134
135
  }
135
136
  }
@@ -148,7 +149,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
148
149
  while (Date.now() - startTime < maxPollTimeMs) {
149
150
  const command = new GetAsyncInvokeCommand({ invocationArn });
150
151
  const invocation = await client.send(command);
151
- logger_default.debug(`[Nova Reel] Job status: ${invocation.status}`, {
152
+ logger.debug(`[Nova Reel] Job status: ${invocation.status}`, {
152
153
  invocationArn,
153
154
  elapsedMs: Date.now() - startTime
154
155
  });
@@ -165,7 +166,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
165
166
  return { error: `Video generation timed out after ${maxPollTimeMs / 1e3} seconds` };
166
167
  } catch (err) {
167
168
  const error = err;
168
- logger_default.error("[Nova Reel] Polling error", {
169
+ logger.error("[Nova Reel] Polling error", {
169
170
  error,
170
171
  invocationArn
171
172
  });
@@ -187,7 +188,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
187
188
  ...credentials ? { credentials } : {}
188
189
  });
189
190
  const videoKey = keyPrefix.endsWith("/") ? `${keyPrefix}output.mp4` : `${keyPrefix}/output.mp4`;
190
- logger_default.debug("[Nova Reel] Downloading video from S3", {
191
+ logger.debug("[Nova Reel] Downloading video from S3", {
191
192
  bucket,
192
193
  key: videoKey
193
194
  });
@@ -200,14 +201,14 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
200
201
  kind: "video",
201
202
  location: "response.video"
202
203
  });
203
- logger_default.debug(`[Nova Reel] Stored video to blob storage`, {
204
+ logger.debug(`[Nova Reel] Stored video to blob storage`, {
204
205
  uri: ref.uri,
205
206
  hash: ref.hash
206
207
  });
207
208
  return { blobRef: ref };
208
209
  } catch (err) {
209
210
  const error = err;
210
- logger_default.error("[Nova Reel] S3 download error", {
211
+ logger.error("[Nova Reel] S3 download error", {
211
212
  error,
212
213
  s3Uri
213
214
  });
@@ -227,14 +228,14 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
227
228
  const startTime = Date.now();
228
229
  const { input: modelInput, error: buildError } = this.buildModelInput(prompt, config);
229
230
  if (buildError || !modelInput) return { error: buildError || "Failed to build model input" };
230
- logger_default.info(`[Nova Reel] Starting video generation job...`, {
231
+ logger.info(`[Nova Reel] Starting video generation job...`, {
231
232
  taskType: config.taskType || "TEXT_VIDEO",
232
233
  durationSeconds: config.durationSeconds || DEFAULT_DURATION_SECONDS,
233
234
  s3OutputUri
234
235
  });
235
236
  const { invocationArn, error: startError } = await this.startVideoGeneration(modelInput, s3OutputUri);
236
237
  if (startError || !invocationArn) return { error: startError || "Failed to start video generation" };
237
- logger_default.info(`[Nova Reel] Job started`, { invocationArn });
238
+ logger.info(`[Nova Reel] Job started`, { invocationArn });
238
239
  const pollIntervalMs = config.pollIntervalMs || DEFAULT_POLL_INTERVAL_MS;
239
240
  const maxPollTimeMs = config.maxPollTimeMs || DEFAULT_MAX_POLL_TIME_MS;
240
241
  const { response, error: pollError } = await this.pollForCompletion(invocationArn, pollIntervalMs, maxPollTimeMs);
@@ -245,7 +246,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
245
246
  const outputUrl = `${outputS3Uri}/output.mp4`;
246
247
  if (config.downloadFromS3 !== false) {
247
248
  const { blobRef: ref, error: downloadError } = await this.downloadAndStoreVideo(outputS3Uri);
248
- if (downloadError) logger_default.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
249
+ if (downloadError) logger.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
249
250
  else blobRef = ref;
250
251
  }
251
252
  const latencyMs = Date.now() - startTime;
@@ -275,7 +276,7 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
275
276
  };
276
277
  }
277
278
  };
278
-
279
279
  //#endregion
280
280
  export { NovaReelVideoProvider };
281
- //# sourceMappingURL=nova-reel-DtCjbD5O.js.map
281
+
282
+ //# sourceMappingURL=nova-reel-D2ZkOSyr.js.map
@@ -1,17 +1,16 @@
1
- const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- require('./types-BIfttHrT.cjs');
3
- const require_fetch = require('./fetch-ZMn_oemb.cjs');
4
- require('./accounts-BzEY8H3v.cjs');
5
- const require_blobs = require('./blobs-673H0jCl.cjs');
6
- require('./tables-B9E1kRp-.cjs');
7
- require('./telemetry-D0_yFdtU.cjs');
8
- const require_text = require('./text-DF2hMKdg.cjs');
9
- const require_base = require('./base-f71xxWai.cjs');
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ require("./types-LJ0r3wbR.cjs");
3
+ const require_fetch = require("./fetch-BxUk8odA.cjs");
4
+ require("./accounts-Bx-x3bmW.cjs");
5
+ const require_blobs = require("./blobs-DvS-O6be.cjs");
6
+ require("./tables-C7K-XKWp.cjs");
7
+ require("./telemetry-CbrnxHp_.cjs");
8
+ const require_text = require("./text-CW1cyrwj.cjs");
9
+ const require_base = require("./base-DBtwl2FR.cjs");
10
10
  let fs = require("fs");
11
11
  fs = require_logger.__toESM(fs);
12
12
  let path = require("path");
13
13
  path = require_logger.__toESM(path);
14
-
15
14
  //#region src/providers/bedrock/nova-reel.ts
16
15
  /**
17
16
  * Amazon Nova Reel Video Generation Provider
@@ -131,7 +130,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
131
130
  return { invocationArn: (await client.send(command)).invocationArn };
132
131
  } catch (err) {
133
132
  const error = err;
134
- require_logger.logger_default.error("[Nova Reel] Failed to start video generation", { error });
133
+ require_logger.logger.error("[Nova Reel] Failed to start video generation", { error });
135
134
  return { error: `Failed to start video generation: ${error.message || String(err)}` };
136
135
  }
137
136
  }
@@ -150,7 +149,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
150
149
  while (Date.now() - startTime < maxPollTimeMs) {
151
150
  const command = new GetAsyncInvokeCommand({ invocationArn });
152
151
  const invocation = await client.send(command);
153
- require_logger.logger_default.debug(`[Nova Reel] Job status: ${invocation.status}`, {
152
+ require_logger.logger.debug(`[Nova Reel] Job status: ${invocation.status}`, {
154
153
  invocationArn,
155
154
  elapsedMs: Date.now() - startTime
156
155
  });
@@ -167,7 +166,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
167
166
  return { error: `Video generation timed out after ${maxPollTimeMs / 1e3} seconds` };
168
167
  } catch (err) {
169
168
  const error = err;
170
- require_logger.logger_default.error("[Nova Reel] Polling error", {
169
+ require_logger.logger.error("[Nova Reel] Polling error", {
171
170
  error,
172
171
  invocationArn
173
172
  });
@@ -189,7 +188,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
189
188
  ...credentials ? { credentials } : {}
190
189
  });
191
190
  const videoKey = keyPrefix.endsWith("/") ? `${keyPrefix}output.mp4` : `${keyPrefix}/output.mp4`;
192
- require_logger.logger_default.debug("[Nova Reel] Downloading video from S3", {
191
+ require_logger.logger.debug("[Nova Reel] Downloading video from S3", {
193
192
  bucket,
194
193
  key: videoKey
195
194
  });
@@ -202,14 +201,14 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
202
201
  kind: "video",
203
202
  location: "response.video"
204
203
  });
205
- require_logger.logger_default.debug(`[Nova Reel] Stored video to blob storage`, {
204
+ require_logger.logger.debug(`[Nova Reel] Stored video to blob storage`, {
206
205
  uri: ref.uri,
207
206
  hash: ref.hash
208
207
  });
209
208
  return { blobRef: ref };
210
209
  } catch (err) {
211
210
  const error = err;
212
- require_logger.logger_default.error("[Nova Reel] S3 download error", {
211
+ require_logger.logger.error("[Nova Reel] S3 download error", {
213
212
  error,
214
213
  s3Uri
215
214
  });
@@ -229,14 +228,14 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
229
228
  const startTime = Date.now();
230
229
  const { input: modelInput, error: buildError } = this.buildModelInput(prompt, config);
231
230
  if (buildError || !modelInput) return { error: buildError || "Failed to build model input" };
232
- require_logger.logger_default.info(`[Nova Reel] Starting video generation job...`, {
231
+ require_logger.logger.info(`[Nova Reel] Starting video generation job...`, {
233
232
  taskType: config.taskType || "TEXT_VIDEO",
234
233
  durationSeconds: config.durationSeconds || DEFAULT_DURATION_SECONDS,
235
234
  s3OutputUri
236
235
  });
237
236
  const { invocationArn, error: startError } = await this.startVideoGeneration(modelInput, s3OutputUri);
238
237
  if (startError || !invocationArn) return { error: startError || "Failed to start video generation" };
239
- require_logger.logger_default.info(`[Nova Reel] Job started`, { invocationArn });
238
+ require_logger.logger.info(`[Nova Reel] Job started`, { invocationArn });
240
239
  const pollIntervalMs = config.pollIntervalMs || DEFAULT_POLL_INTERVAL_MS;
241
240
  const maxPollTimeMs = config.maxPollTimeMs || DEFAULT_MAX_POLL_TIME_MS;
242
241
  const { response, error: pollError } = await this.pollForCompletion(invocationArn, pollIntervalMs, maxPollTimeMs);
@@ -247,7 +246,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
247
246
  const outputUrl = `${outputS3Uri}/output.mp4`;
248
247
  if (config.downloadFromS3 !== false) {
249
248
  const { blobRef: ref, error: downloadError } = await this.downloadAndStoreVideo(outputS3Uri);
250
- if (downloadError) require_logger.logger_default.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
249
+ if (downloadError) require_logger.logger.warn(`[Nova Reel] Failed to download video: ${downloadError}. Using S3 URL.`);
251
250
  else blobRef = ref;
252
251
  }
253
252
  const latencyMs = Date.now() - startTime;
@@ -277,7 +276,7 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
277
276
  };
278
277
  }
279
278
  };
280
-
281
279
  //#endregion
282
280
  exports.NovaReelVideoProvider = NovaReelVideoProvider;
283
- //# sourceMappingURL=nova-reel-D9FXq3Mt.cjs.map
281
+
282
+ //# sourceMappingURL=nova-reel-D9xfaMBs.cjs.map