promptfoo 0.120.24 → 0.120.26

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 (304) hide show
  1. package/README.md +35 -22
  2. package/dist/src/{ListApp-55OAHww3.js → ListApp-D3DG0F8h.js} +1 -1
  3. package/dist/src/{accounts-BwVGYllP.cjs → accounts-BzEY8H3v.cjs} +5 -5
  4. package/dist/src/{accounts-BOlMHrvn.js → accounts-DHHiXsy6.js} +6 -6
  5. package/dist/src/{accounts-DxR9x_En.js → accounts-R3gfCR_g.js} +5 -5
  6. package/dist/src/{agentic-utils-t9-1raty.js → agentic-utils-D6_gzOUF.js} +3 -3
  7. package/dist/src/{agents-DMpQ860j.cjs → agents-C7BiinFI.cjs} +7 -7
  8. package/dist/src/{agents-9Z7pO8yx.js → agents-Cao4i7AX.js} +8 -8
  9. package/dist/src/{agents-DjExVR3v.js → agents-Cnph5GLD.js} +2 -2
  10. package/dist/src/{agents-CI0Ad69d.cjs → agents-CwM7re15.cjs} +5 -5
  11. package/dist/src/{agents-BwI-Tm5m.js → agents-DETIQHqF.js} +7 -7
  12. package/dist/src/{agents-CRAmwjo-.js → agents-DYIT-hQy.js} +6 -6
  13. package/dist/src/{agents-BbIpDhgp.js → agents-GiUianme.js} +5 -5
  14. package/dist/src/{agents-yL5DzIKY.js → agents-v4cW_ZgC.js} +2 -2
  15. package/dist/src/{aimlapi-xHHqwNg8.js → aimlapi-CMJpKK-B.js} +13 -13
  16. package/dist/src/{aimlapi-BM9P45Bp.js → aimlapi-DMF6v_vb.js} +15 -15
  17. package/dist/src/{aimlapi-DKo7IxJg.cjs → aimlapi-DoGLcQW_.cjs} +14 -14
  18. package/dist/src/{aimlapi-ivzDkqbs.js → aimlapi-DtSf1ykJ.js} +2 -2
  19. package/dist/src/app/assets/index-BOgkICuY.css +1 -0
  20. package/dist/src/app/assets/index-CSgqn_Vd.js +428 -0
  21. package/dist/src/app/assets/{vendor-charts-DnwydkkY.js → vendor-charts-CYyo8R8v.js} +1 -1
  22. package/dist/src/app/assets/{vendor-markdown-DjKAU15k.js → vendor-markdown-DSmzq4Jh.js} +1 -1
  23. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +4 -0
  24. package/dist/src/app/assets/{vendor-syntax-Dc86c4Bu.js → vendor-syntax-D06x6TQF.js} +1 -1
  25. package/dist/src/app/index.html +6 -6
  26. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  27. package/dist/src/{audio-B3QGL6Nl.cjs → audio-BWjyvHn9.cjs} +4 -4
  28. package/dist/src/{audio-C-1oBiVZ.js → audio-BrJBFN2b.js} +4 -4
  29. package/dist/src/{audio-DnfDVjhL.js → audio-DUH4q0Xq.js} +5 -5
  30. package/dist/src/{audio-DQWHfAr8.js → audio-U580w8jM.js} +2 -2
  31. package/dist/src/{base-DHam07ip.js → base-BaXmtXYp.js} +3 -3
  32. package/dist/src/{base-BjsgxJp9.js → base-Dtp8b4_N.js} +3 -3
  33. package/dist/src/{base-Bso8ccGu.cjs → base-f71xxWai.cjs} +3 -3
  34. package/dist/src/{blobs-DOdc-E8L.cjs → blobs-673H0jCl.cjs} +3 -3
  35. package/dist/src/{blobs-Dcm272OH.js → blobs-C9J2mVgo.js} +3 -3
  36. package/dist/src/{blobs-MlVQyoSc.js → blobs-kt8v3UyH.js} +3 -3
  37. package/dist/src/{cache-KNsTJLKP.cjs → cache-7xULbvt3.cjs} +35 -8
  38. package/dist/src/{cache-BMl3AIo5.js → cache-BLLayYEN.js} +24 -9
  39. package/dist/src/{cache-B0ptF7sO.js → cache-BUPcq0Ad.js} +3 -3
  40. package/dist/src/cache-CVfRb-HD.cjs +6 -0
  41. package/dist/src/{cache-DPztwHxt.js → cache-O4EuX2JV.js} +4 -4
  42. package/dist/src/{cache-DHm8Pc8l.js → cache-mIszOnuz.js} +5 -22
  43. package/dist/src/{chat-DOQIJx7O.cjs → chat-C4zqjObh.cjs} +10 -10
  44. package/dist/src/{chat-DDGU7Tik.js → chat-C8Ei4f87.js} +9 -9
  45. package/dist/src/{chat-BnzIuoTQ.js → chat-CgyGj2hC.js} +12 -12
  46. package/dist/src/{chat-BRMJOuCv.js → chat-Cpz3O-Xl.js} +14 -14
  47. package/dist/src/{chat-CVOyOBYk.js → chat-DIywASPG.js} +11 -11
  48. package/dist/src/{chat-CrnXMbvh.cjs → chat-Fl6TZJRS.cjs} +13 -13
  49. package/dist/src/{chat-D8GcWK9l.js → chat-XPN9YHhr.js} +2 -2
  50. package/dist/src/{chatkit-IWIuhxFE.js → chatkit-DEls11hE.js} +4 -4
  51. package/dist/src/{chatkit-DlOZ-eNb.js → chatkit-DIrJX8xk.js} +4 -4
  52. package/dist/src/{chatkit-CcktkleS.js → chatkit-Dpxrq4eD.js} +2 -2
  53. package/dist/src/{chatkit-yeVtURUi.cjs → chatkit-e25Ziu17.cjs} +4 -4
  54. package/dist/src/{claude-agent-sdk-BiMgSH9g.js → claude-agent-sdk-6-xTaLwM.js} +48 -19
  55. package/dist/src/{claude-agent-sdk-Yj9Hq0cH.cjs → claude-agent-sdk-BzxF6NIJ.cjs} +48 -19
  56. package/dist/src/{claude-agent-sdk-rVqlUIJl.js → claude-agent-sdk-CmkTnKGH.js} +49 -20
  57. package/dist/src/{claude-agent-sdk-yid1kGsL.js → claude-agent-sdk-rXCBLK_o.js} +40 -11
  58. package/dist/src/{cloud-ByJVRSQI.js → cloud-BMbRVJFw.js} +3 -3
  59. package/dist/src/cloud-CZ4hytdm.js +5 -0
  60. package/dist/src/{cloudflare-ai-DmJZcvVx.cjs → cloudflare-ai-BAQ0u_dg.cjs} +14 -14
  61. package/dist/src/{cloudflare-ai-CWKYPCCF.js → cloudflare-ai-CUg4BTcj.js} +13 -13
  62. package/dist/src/{cloudflare-ai-goDJ5bwr.js → cloudflare-ai-CobxMTR4.js} +15 -15
  63. package/dist/src/{cloudflare-ai-CdKv38f6.js → cloudflare-ai-Z9X219gp.js} +2 -2
  64. package/dist/src/{cloudflare-gateway-BW8hcdB0.cjs → cloudflare-gateway-C0sgfr_z.cjs} +15 -15
  65. package/dist/src/{cloudflare-gateway-CDCOS1Os.js → cloudflare-gateway-D2_yi-Fh.js} +16 -16
  66. package/dist/src/{cloudflare-gateway-Dz_HCMGY.js → cloudflare-gateway-Djf3F3_H.js} +2 -2
  67. package/dist/src/{cloudflare-gateway-gzmTsXcd.js → cloudflare-gateway-_itGuXry.js} +14 -14
  68. package/dist/src/{codex-sdk-BlvhxMr0.js → codex-sdk-BASDNkIl.js} +90 -34
  69. package/dist/src/{codex-sdk-BC5qbCjh.js → codex-sdk-dSnGdgIp.js} +92 -36
  70. package/dist/src/{codex-sdk-CBpm53B8.js → codex-sdk-ibXwdglL.js} +91 -35
  71. package/dist/src/{codex-sdk-Cf5_CQch.cjs → codex-sdk-wTEpMM_X.cjs} +92 -36
  72. package/dist/src/{cometapi-DoaO5SLq.js → cometapi-B01btbfb.js} +16 -16
  73. package/dist/src/{cometapi-BUKGSUCw.js → cometapi-ChAaRjg5.js} +14 -14
  74. package/dist/src/{cometapi-C6BSw9k3.js → cometapi-DHUAH6nK.js} +2 -2
  75. package/dist/src/{cometapi-B3TzpkNI.cjs → cometapi-JbvOJSCO.cjs} +15 -15
  76. package/dist/src/{completion-BLe7SUA4.js → completion-BBJ6zmG3.js} +6 -6
  77. package/dist/src/{completion-1RAiLcwi.js → completion-D9_MDlnd.js} +6 -6
  78. package/dist/src/{completion-D6BTVt6e.cjs → completion-DDyL3Cb2.cjs} +6 -6
  79. package/dist/src/{docker-CkOzlD1W.js → docker-BuButc4D.js} +15 -15
  80. package/dist/src/{docker-BWsSX8Pn.cjs → docker-Ckw-j7Rr.cjs} +14 -14
  81. package/dist/src/{docker-CMf5SGLq.js → docker-JAAubMw3.js} +13 -13
  82. package/dist/src/{docker-C0AzMsuf.js → docker-vnOg96gi.js} +2 -2
  83. package/dist/src/errors-DnGCbnx8.js +36 -0
  84. package/dist/src/{esm-gWVPXn3r.cjs → esm-BQkx5roy.cjs} +2 -2
  85. package/dist/src/{esm-Lh6czAFT.js → esm-CYhseqj4.js} +2 -2
  86. package/dist/src/{esm-D40XsWlR.js → esm-rDtG_2rg.js} +2 -2
  87. package/dist/src/eval-CKHWqG9f.js +16 -0
  88. package/dist/src/{eval-WaSg64w3.js → eval-CYrbG57o.js} +106 -29
  89. package/dist/src/{evalResult-CGrGU_cG.js → evalResult-6JaUIStC.js} +7 -7
  90. package/dist/src/{evalResult-C_UM63nn.js → evalResult-COsVttMA.js} +7 -7
  91. package/dist/src/evalResult-CxTP-LMm.cjs +11 -0
  92. package/dist/src/evalResult-CzLURDcP.js +13 -0
  93. package/dist/src/{evalResult-BU4huold.cjs → evalResult-DlRfu_Rq.cjs} +7 -7
  94. package/dist/src/evalResult-DyttNQ_G.js +11 -0
  95. package/dist/src/evaluator-0PvfeBYh.js +38 -0
  96. package/dist/src/{evaluator-gmF3Vddp.js → evaluator-3EJCMTs0.js} +75 -49
  97. package/dist/src/{extractor-D-RM2m6A.cjs → extractor-DbhlYEeo.cjs} +23 -6
  98. package/dist/src/{extractor-Da8IxCeS.js → extractor-Hs7la_19.js} +23 -6
  99. package/dist/src/{extractor-BA90EtLq.js → extractor-LSYjrhK0.js} +23 -6
  100. package/dist/src/{fetch-BIfcW-Fd.js → fetch-18MuNu9i.js} +21 -7
  101. package/dist/src/{fetch-CW9GabAi.js → fetch-Bi0o-fdp.js} +2 -2
  102. package/dist/src/fetch-CMptBDVg.cjs +4 -0
  103. package/dist/src/fetch-DAZkv3gV.js +6 -0
  104. package/dist/src/{fetch-Mb7SbeM-.js → fetch-SRsE6Ctl.js} +21 -7
  105. package/dist/src/{fetch-MvWxCS5U.cjs → fetch-ZMn_oemb.cjs} +21 -7
  106. package/dist/src/{fileExtensions-CzcPkiKZ.js → fileExtensions-BpuMmaFL.js} +1 -1
  107. package/dist/src/{formatDuration-CCiZ-wBY.js → formatDuration-Doo0xq-z.js} +1 -1
  108. package/dist/src/{genaiTracer-BQ8AmajD.cjs → genaiTracer-CQlpZkrp.cjs} +2 -2
  109. package/dist/src/{genaiTracer-foKtbVa2.js → genaiTracer-CqNnnXrE.js} +1 -1
  110. package/dist/src/graders-BCytzXrb.js +34 -0
  111. package/dist/src/{graders-CwtelA9k.js → graders-BaMCwIKp.js} +212 -91
  112. package/dist/src/graders-CGZQShfJ.cjs +33 -0
  113. package/dist/src/{graders-2dabIkXs.cjs → graders-DzUUnUjC.cjs} +212 -91
  114. package/dist/src/{graders-BscQ6O1Q.js → graders-QsALpIdy.js} +211 -90
  115. package/dist/src/graders-spkuVC-E.js +36 -0
  116. package/dist/src/{image-Dv0o-Ab7.js → image-BXt_7u0v.js} +4 -4
  117. package/dist/src/{image-B6TV9l0v.js → image-BiEVdpdP.js} +7 -7
  118. package/dist/src/{image-DS9hlgSc.cjs → image-C3BjJUAU.cjs} +7 -7
  119. package/dist/src/{image-_jKUeeh9.js → image-COCWy5dX.js} +2 -2
  120. package/dist/src/{image-DqElR73O.cjs → image-D10zEe1f.cjs} +4 -4
  121. package/dist/src/{image-BVEVjrwl.js → image-DB4sHxdJ.js} +5 -5
  122. package/dist/src/{image-C1i3NoZo.js → image-mhAGP07h.js} +7 -7
  123. package/dist/src/index.cjs +305 -112
  124. package/dist/src/index.d.cts +137 -3
  125. package/dist/src/index.d.ts +137 -3
  126. package/dist/src/index.js +304 -111
  127. package/dist/src/{interactiveCheck-CjK2R4rB.js → interactiveCheck-DU-MAhp5.js} +2 -2
  128. package/dist/src/{knowledgeBase-K5fJN2kC.cjs → knowledgeBase-Bnb00xKs.cjs} +8 -8
  129. package/dist/src/{knowledgeBase-D-xthvn0.js → knowledgeBase-CMvMlLZR.js} +9 -9
  130. package/dist/src/{knowledgeBase-DJZHeJqg.js → knowledgeBase-DotRBzUE.js} +2 -2
  131. package/dist/src/{knowledgeBase-BSs2ldSR.js → knowledgeBase-XJQ0Qyez.js} +8 -8
  132. package/dist/src/{litellm-kPhaZkzz.js → litellm-BECdjOTx.js} +3 -3
  133. package/dist/src/{litellm-uRLukY7s.cjs → litellm-BrnZhMcL.cjs} +15 -15
  134. package/dist/src/{litellm-DH_rVIOd.js → litellm-CHrRmPAe.js} +16 -16
  135. package/dist/src/{litellm-DoXGHlpD.js → litellm-CrLJrPIm.js} +14 -14
  136. package/dist/src/{logger-CMp-NS-e.cjs → logger-BdZ-IqBc.cjs} +5 -2
  137. package/dist/src/{logger-Bzi5o47S.js → logger-BotXmWKW.js} +5 -2
  138. package/dist/src/{logger-q5I8CByj.js → logger-w8Ozp0Td.js} +5 -2
  139. package/dist/src/{luma-ray-B3GiVpuq.js → luma-ray-BOeX-h0M.js} +10 -10
  140. package/dist/src/{luma-ray-CPISsLu-.js → luma-ray-C-w6EsJm.js} +2 -2
  141. package/dist/src/{luma-ray-BrWrKIIB.cjs → luma-ray-C0RkI3lt.cjs} +10 -10
  142. package/dist/src/{luma-ray-gyI_GEy2.js → luma-ray-DgKLS0BF.js} +11 -11
  143. package/dist/src/main.js +3260 -2537
  144. package/dist/src/{messages-CJgEjRQF.js → messages-CDZYGNlS.js} +13 -10
  145. package/dist/src/{messages-BMkwrfmt.js → messages-D61tPFQo.js} +14 -11
  146. package/dist/src/{messages-B5HsO_dM.cjs → messages-DXV3Qh8_.cjs} +14 -11
  147. package/dist/src/{meteor-CBciquOS.js → meteor-Dj8cTkU_.js} +1 -1
  148. package/dist/src/{meteor-0cLf9TIn.js → meteor-P2rUE-Uz.js} +1 -1
  149. package/dist/src/{meteor-BQ6Ws9k2.js → meteor-SLNTgmXm.js} +2 -2
  150. package/dist/src/{meteor-DRuEfzuQ.cjs → meteor-odmwVbyG.cjs} +1 -1
  151. package/dist/src/{nova-reel-B5SOonY2.js → nova-reel-Bk5npr2q.js} +11 -11
  152. package/dist/src/{nova-reel-CT9ZuhJ3.js → nova-reel-C2LFfVTf.js} +2 -2
  153. package/dist/src/{nova-reel-ByTx85ed.cjs → nova-reel-D9FXq3Mt.cjs} +10 -10
  154. package/dist/src/{nova-reel-ChM7WaHR.js → nova-reel-DtCjbD5O.js} +10 -10
  155. package/dist/src/{nova-sonic-D4M3kKYu.js → nova-sonic-BXRfQyF-.js} +8 -8
  156. package/dist/src/{nova-sonic-C-H3eDvL.cjs → nova-sonic-BoRSY_U6.cjs} +7 -7
  157. package/dist/src/{nova-sonic-DgifpOKF.js → nova-sonic-CgaWLDM1.js} +7 -7
  158. package/dist/src/{nova-sonic-BqP59oOu.js → nova-sonic-D_qERM-K.js} +2 -2
  159. package/dist/src/{openai-BjpdxIOG.cjs → openai-Bigwjgo1.cjs} +2 -2
  160. package/dist/src/{openai-Cv9pEKxp.js → openai-CT5fwbve.js} +2 -2
  161. package/dist/src/{openai-CitF-gEN.js → openai-Dz3surb_.js} +2 -2
  162. package/dist/src/openclaw-B6XY2kUf.js +526 -0
  163. package/dist/src/openclaw-CpPrXwf6.js +524 -0
  164. package/dist/src/openclaw-DDSfq5fp.cjs +528 -0
  165. package/dist/src/openclaw-dHLcXUWZ.js +511 -0
  166. package/dist/src/{opencode-sdk-Dakn4QMp.js → opencode-sdk-CImWVqy9.js} +7 -7
  167. package/dist/src/{opencode-sdk-BcLvVMV-.js → opencode-sdk-CuCztr4P.js} +6 -6
  168. package/dist/src/{opencode-sdk-z7KKOCdB.js → opencode-sdk-DhcfRbBH.js} +3 -3
  169. package/dist/src/{opencode-sdk-Cqszt4br.cjs → opencode-sdk-mqF-Oj3f.cjs} +6 -6
  170. package/dist/src/{otlpReceiver-BvmMgacx.cjs → otlpReceiver-B6Xo4KZM.cjs} +6 -6
  171. package/dist/src/{otlpReceiver-DRNetlJH.js → otlpReceiver-BO0rbDzh.js} +6 -6
  172. package/dist/src/{otlpReceiver-Bhj_vnzl.js → otlpReceiver-Dg817agV.js} +6 -6
  173. package/dist/src/{otlpReceiver-Cpnk-Hjf.js → otlpReceiver-DmRb0NBj.js} +2 -2
  174. package/dist/src/{providerRegistry-D32Lt9vp.js → providerRegistry-Xf0qdqGQ.js} +2 -2
  175. package/dist/src/{providerRegistry-HGQd2MF6.cjs → providerRegistry-lc7a7utN.cjs} +2 -2
  176. package/dist/src/{providerRegistry-BdKWcUa8.js → providerRegistry-wCWd7sKQ.js} +2 -2
  177. package/dist/src/providers-BMZZmPBJ.cjs +32 -0
  178. package/dist/src/{providers-BWoVY_Wz.cjs → providers-BNKVY53V.cjs} +294 -782
  179. package/dist/src/{providers-Co_FGgH8.js → providers-BiNq_Iyc.js} +281 -769
  180. package/dist/src/{providers-CUCHJCHD.js → providers-BlEhY5mi.js} +286 -779
  181. package/dist/src/providers-CQQrNaJk.js +32 -0
  182. package/dist/src/providers-Ck8HyrC-.js +34 -0
  183. package/dist/src/{pythonUtils-rOCm9w_5.cjs → pythonUtils-DZ6EbdY4.cjs} +3 -3
  184. package/dist/src/{pythonUtils-B9JA-gsC.js → pythonUtils-r1uBuA0n.js} +3 -3
  185. package/dist/src/{pythonUtils-eNq6Wsfr.js → pythonUtils-vMlk9Qp5.js} +3 -3
  186. package/dist/src/{quiverai-BpWtOEQZ.cjs → quiverai-BNfIwKCO.cjs} +13 -13
  187. package/dist/src/{quiverai-Cj-PUa3p.js → quiverai-BQigKdIH.js} +14 -14
  188. package/dist/src/{quiverai-BN8OVvDE.js → quiverai-Bfy2WnE2.js} +12 -12
  189. package/dist/src/{quiverai-D5MSsd2c.js → quiverai-CedIP0PJ.js} +2 -2
  190. package/dist/src/{render-D2710HbA.js → render-CAZvKKkB.js} +4 -4
  191. package/dist/src/responses-DLLjADw5.js +653 -0
  192. package/dist/src/responses-TsdODUpm.js +654 -0
  193. package/dist/src/responses-zOtKtnY_.cjs +671 -0
  194. package/dist/src/{rubyUtils-Dn6MGcsk.js → rubyUtils-BtjlqyXt.js} +3 -3
  195. package/dist/src/{rubyUtils-LBsk3zIm.js → rubyUtils-Cs35SDYa.js} +3 -3
  196. package/dist/src/rubyUtils-D7--T12C.js +6 -0
  197. package/dist/src/{rubyUtils-rnCVDgH-.cjs → rubyUtils-DCVaJ3mc.cjs} +3 -3
  198. package/dist/src/rubyUtils-DRRiMFV2.js +5 -0
  199. package/dist/src/rubyUtils-vb8OYFC-.cjs +5 -0
  200. package/dist/src/{sagemaker-C8MeZIkH.js → sagemaker-BcgLu0U4.js} +18 -18
  201. package/dist/src/{sagemaker-4ukMNSN0.js → sagemaker-CLdUAv5z.js} +17 -17
  202. package/dist/src/{sagemaker-DyVHy2BW.js → sagemaker-Du4LIR97.js} +2 -2
  203. package/dist/src/{sagemaker-DB3Eojau.cjs → sagemaker-DwNnEVYt.cjs} +17 -17
  204. package/dist/src/{scanner-C28XVEq2.js → scanner-Dyw21Wg_.js} +12 -12
  205. package/dist/src/server/index.js +1818 -605
  206. package/dist/src/server-BUbS0Qfh.js +6 -0
  207. package/dist/src/{server-BF3HkMhe.js → server-CbMTRQkg.js} +8 -6
  208. package/dist/src/{server-CSbLW-UI.cjs → server-CgUQ25qW.cjs} +8 -6
  209. package/dist/src/{server-mycZbUH8.js → server-DWmZLfCy.js} +10 -7
  210. package/dist/src/server-XpGXFHkS.cjs +6 -0
  211. package/dist/src/server-gfOx5Zrk.js +8 -0
  212. package/dist/src/{signal-DM_SPNmi.js → signal-Bl32q42d.js} +3 -3
  213. package/dist/src/{slack-Ed1yyt_j.js → slack-BfdBx2tO.js} +2 -2
  214. package/dist/src/{slack-D1F9Y7CH.cjs → slack-BtMkB6xP.cjs} +2 -2
  215. package/dist/src/{slack-DkAF58Tr.js → slack-DPqj42Ts.js} +2 -2
  216. package/dist/src/{slack-BK312SXM.js → slack-OZYxoVON.js} +2 -2
  217. package/dist/src/{store-CT_e5OZX.js → store-2ocbYY9D.js} +3 -3
  218. package/dist/src/store-5u2yriTV.js +7 -0
  219. package/dist/src/{store-BpumNYCl.cjs → store-BqwfFEyF.cjs} +3 -3
  220. package/dist/src/{store-BFLqwuc_.js → store-D4gdn9ih.js} +3 -3
  221. package/dist/src/store-D_lq_8oQ.js +6 -0
  222. package/dist/src/store-m5KT6Ly7.cjs +6 -0
  223. package/dist/src/{tables-Dansasnu.cjs → tables-B9E1kRp-.cjs} +3 -3
  224. package/dist/src/{tables-BjaApSAB.js → tables-C7TT2XVn.js} +3 -3
  225. package/dist/src/{tables-Dwexr5Z6.js → tables-D-NSwNIb.js} +3 -3
  226. package/dist/src/telemetry-5RHFoCJh.js +6 -0
  227. package/dist/src/{telemetry-MVkZQxt9.js → telemetry-BXyVqyAg.js} +5 -4
  228. package/dist/src/{telemetry-DFDFKdnr.cjs → telemetry-D0_yFdtU.cjs} +5 -4
  229. package/dist/src/{telemetry-Ds5Nn81l.js → telemetry-DZ_7PaVq.js} +5 -4
  230. package/dist/src/telemetry-Do8wMnA-.js +8 -0
  231. package/dist/src/telemetry-LojxPoFq.cjs +6 -0
  232. package/dist/src/{text-PYISqVm1.cjs → text-DF2hMKdg.cjs} +1 -1
  233. package/dist/src/{text-DuYSUYPB.js → text-DgMr_tiM.js} +1 -1
  234. package/dist/src/{text-Dx0GJOCN.js → text-Dm78AVGG.js} +1 -1
  235. package/dist/src/{tokenUsageUtils-BtZd3sP7.cjs → tokenUsageUtils-CXhxVj72.cjs} +9 -4
  236. package/dist/src/{tokenUsageUtils-DoinwgKF.js → tokenUsageUtils-DmZSD2eU.js} +9 -4
  237. package/dist/src/{tokenUsageUtils-cFdLMERB.js → tokenUsageUtils-FZd5O_4A.js} +9 -4
  238. package/dist/src/{transcription-Cp19m_Mt.js → transcription-C-M81iDA.js} +2 -2
  239. package/dist/src/{transcription-CLRpAg07.js → transcription-CYuY5sFO.js} +10 -10
  240. package/dist/src/{transcription-D8ifIKOv.js → transcription-Ch7S-LWw.js} +11 -11
  241. package/dist/src/{transcription-CXXFEVM_.cjs → transcription-FNIz3YOe.cjs} +10 -10
  242. package/dist/src/transform-8eGmaH-7.js +7 -0
  243. package/dist/src/transform-BRVvWaG4.cjs +6 -0
  244. package/dist/src/{transform-Bn-lgBE2.js → transform-CoP2bJ7P.js} +44 -5
  245. package/dist/src/{transform-BFPYuBaW.js → transform-CqTFr7KR.js} +5 -5
  246. package/dist/src/{transform-DvQWeBSR.js → transform-D8dILpfZ.js} +4 -4
  247. package/dist/src/{transform-BUrxadlA.js → transform-DMaxQwDx.js} +44 -5
  248. package/dist/src/transform-GybT0X0u.js +8 -0
  249. package/dist/src/{transform-DshYLyBq.cjs → transform-Kd6u-oNm.cjs} +4 -4
  250. package/dist/src/{transform-Bw1IstDE.cjs → transform-ivxEY4f7.cjs} +55 -4
  251. package/dist/src/{transformersAvailability-BaoWHpu1.cjs → transformersAvailability-Bkep3ka7.cjs} +1 -1
  252. package/dist/src/{transformersAvailability-Dhh45n5P.js → transformersAvailability-DEU2naS1.js} +1 -1
  253. package/dist/src/{transformersAvailability-DtpwoeFC.js → transformersAvailability-DkAWaK5B.js} +1 -1
  254. package/dist/src/{transformersAvailability-O2YaCv9Z.js → transformersAvailability-DwmezkVe.js} +1 -1
  255. package/dist/src/{types-B-XUqfNs.cjs → types-BIfttHrT.cjs} +22 -2
  256. package/dist/src/{types-BsU_PxR3.js → types-DMVjYLpx.js} +16 -2
  257. package/dist/src/{types-CgrxBFgm.js → types-t52w-XsS.js} +19 -3
  258. package/dist/src/{util-M2MoNCUR.js → util-BSh4a_Q8.js} +7 -7
  259. package/dist/src/{util-DTJWKLkl.cjs → util-C08Kns6-.cjs} +18 -4
  260. package/dist/src/{util-DHBpsbZE.js → util-CUEt0Vum.js} +18 -4
  261. package/dist/src/{util-Bnw6EyZN.js → util-Cl0zfT3V.js} +18 -4
  262. package/dist/src/{util-C7A-PlKK.cjs → util-DUYOvxAy.cjs} +6 -6
  263. package/dist/src/{util-WYC3rB_p.js → util-DiCePfDu.js} +6 -6
  264. package/dist/src/{util-CV99ps44.cjs → util-DkFTvieG.cjs} +17 -5
  265. package/dist/src/{util-CfepsNVK.js → util-mJ58qbbw.js} +17 -5
  266. package/dist/src/{util-BZaMVBMq.js → util-vjscpUzy.js} +17 -5
  267. package/dist/src/{utils-BryuD3vq.js → utils-CVzb4YiI.js} +3 -3
  268. package/dist/src/{utils-Dezi3MBH.cjs → utils-DFaZa6Rf.cjs} +3 -3
  269. package/dist/src/{utils-GiyI2K4P.js → utils-JaY9veb5.js} +3 -3
  270. package/dist/tsconfig.tsbuildinfo +1 -1
  271. package/package.json +75 -77
  272. package/dist/src/app/assets/index-07dbAcWK.js +0 -427
  273. package/dist/src/app/assets/index-DnEcCQgk.css +0 -1
  274. package/dist/src/app/assets/vendor-react-DHoaNLma.js +0 -4
  275. package/dist/src/cache-BujOdYlc.cjs +0 -6
  276. package/dist/src/cloud-BHYz0XkH.js +0 -5
  277. package/dist/src/eval-0IFf8hON.js +0 -16
  278. package/dist/src/evalResult-BCCv6FXj.js +0 -13
  279. package/dist/src/evalResult-C8iVgVvr.js +0 -11
  280. package/dist/src/evalResult-CqFeWKYx.cjs +0 -11
  281. package/dist/src/evaluator-DwS5NAEj.js +0 -37
  282. package/dist/src/fetch-BH9KSaUC.cjs +0 -4
  283. package/dist/src/fetch-BL6kqunF.js +0 -6
  284. package/dist/src/graders-BK3LuhJ8.cjs +0 -32
  285. package/dist/src/graders-Bpjtip-E.js +0 -35
  286. package/dist/src/graders-KIf6Uej3.js +0 -33
  287. package/dist/src/providers-41mSodR_.js +0 -31
  288. package/dist/src/providers-CiZCpIxz.cjs +0 -31
  289. package/dist/src/providers-G531909f.js +0 -33
  290. package/dist/src/rubyUtils-BLd6EE1u.cjs +0 -5
  291. package/dist/src/rubyUtils-CVELPvUH.js +0 -6
  292. package/dist/src/rubyUtils-_t9Gmf7U.js +0 -5
  293. package/dist/src/server-Bc4T4XDt.cjs +0 -6
  294. package/dist/src/server-CMyxJ7ct.js +0 -6
  295. package/dist/src/server-D9FuxNYE.js +0 -8
  296. package/dist/src/store-CrMinjmN.cjs +0 -6
  297. package/dist/src/store-EaWZOoxz.js +0 -7
  298. package/dist/src/store-KXWnHB15.js +0 -6
  299. package/dist/src/telemetry-BXD2mCyr.cjs +0 -6
  300. package/dist/src/telemetry-CYiBm56v.js +0 -8
  301. package/dist/src/telemetry-lICYKIMB.js +0 -6
  302. package/dist/src/transform-DZI2t8-9.js +0 -8
  303. package/dist/src/transform-DZUV3qpO.js +0 -7
  304. package/dist/src/transform-XcotjzZX.cjs +0 -6
@@ -1,4 +1,4 @@
1
- import { A as logger_default, F as cliState_default, P as getEnvString, T as resolvePackageEntryPoint, h as withGenAISpan, m as getTraceparent, w as importModule } from "./server/index.js";
1
+ import { E as resolvePackageEntryPoint, I as getEnvString, L as cliState_default, T as importModule, g as withGenAISpan, h as getTraceparent, j as logger_default } from "./server/index.js";
2
2
  import fs from "fs";
3
3
  import path from "path";
4
4
  import dedent from "dedent";
@@ -38,37 +38,56 @@ async function loadCodexSDK() {
38
38
  }
39
39
  }
40
40
  const CODEX_MODEL_PRICING = {
41
+ "gpt-5.3-codex": {
42
+ input: 1.75,
43
+ output: 14,
44
+ cache_read: .175
45
+ },
46
+ "gpt-5.3-codex-spark": {
47
+ input: .5,
48
+ output: 4,
49
+ cache_read: .05
50
+ },
41
51
  "gpt-5.2": {
42
52
  input: 2,
43
- output: 8
53
+ output: 8,
54
+ cache_read: .2
44
55
  },
45
56
  "gpt-5.1-codex": {
46
57
  input: 2,
47
- output: 8
58
+ output: 8,
59
+ cache_read: .2
48
60
  },
49
61
  "gpt-5.1-codex-max": {
50
62
  input: 3,
51
- output: 12
63
+ output: 12,
64
+ cache_read: .3
52
65
  },
53
66
  "gpt-5.1-codex-mini": {
54
67
  input: .5,
55
- output: 2
68
+ output: 2,
69
+ cache_read: .05
56
70
  },
57
71
  "gpt-5-codex": {
58
72
  input: 2,
59
- output: 8
73
+ output: 8,
74
+ cache_read: .2
60
75
  },
61
76
  "gpt-5-codex-mini": {
62
77
  input: .5,
63
- output: 2
78
+ output: 2,
79
+ cache_read: .05
64
80
  },
65
81
  "gpt-5": {
66
82
  input: 2,
67
- output: 8
83
+ output: 8,
84
+ cache_read: .2
68
85
  }
69
86
  };
70
87
  var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
71
88
  static OPENAI_MODELS = [
89
+ "gpt-5.3-codex",
90
+ "gpt-5.3-codex-spark",
72
91
  "gpt-5.2",
73
92
  "gpt-5.1-codex",
74
93
  "gpt-5.1-codex-max",
@@ -103,13 +122,20 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
103
122
  toString() {
104
123
  return "[OpenAI Codex SDK Provider]";
105
124
  }
125
+ /**
126
+ * Safely tear down a Codex instance by calling its cleanup method
127
+ * (destroy, cleanup, or close -- whichever is available).
128
+ */
129
+ async destroyInstance(instance) {
130
+ if (typeof instance.destroy === "function") await instance.destroy();
131
+ else if (typeof instance.cleanup === "function") await instance.cleanup();
132
+ else if (typeof instance.close === "function") await instance.close();
133
+ }
106
134
  async cleanup() {
107
135
  this.threads.clear();
108
136
  if (this.codexInstance) {
109
137
  try {
110
- if (typeof this.codexInstance.destroy === "function") await this.codexInstance.destroy();
111
- else if (typeof this.codexInstance.cleanup === "function") await this.codexInstance.cleanup();
112
- else if (typeof this.codexInstance.close === "function") await this.codexInstance.close();
138
+ await this.destroyInstance(this.codexInstance);
113
139
  } catch (error) {
114
140
  logger_default.warn("[CodexSDK] Error during cleanup", { error });
115
141
  }
@@ -164,6 +190,19 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
164
190
  To bypass this check, set skip_git_repo_check: true in your provider config.`);
165
191
  }
166
192
  }
193
+ /**
194
+ * Build Codex constructor options from provider config.
195
+ * Used when creating both local (deep-tracing) and cached instances.
196
+ */
197
+ buildCodexOptions(env, config) {
198
+ return {
199
+ env,
200
+ ...this.apiKey ? { apiKey: this.apiKey } : {},
201
+ ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
202
+ ...config.base_url ? { baseUrl: config.base_url } : {},
203
+ ...config.cli_config ? { config: config.cli_config } : {}
204
+ };
205
+ }
167
206
  buildThreadOptions(config) {
168
207
  return {
169
208
  workingDirectory: config.working_dir,
@@ -173,9 +212,9 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
173
212
  ...config.sandbox_mode ? { sandboxMode: config.sandbox_mode } : {},
174
213
  ...config.model_reasoning_effort ? { modelReasoningEffort: config.model_reasoning_effort } : {},
175
214
  ...config.network_access_enabled !== void 0 ? { networkAccessEnabled: config.network_access_enabled } : {},
176
- ...config.web_search_enabled !== void 0 ? { webSearchEnabled: config.web_search_enabled } : {},
177
- ...config.approval_policy ? { approvalPolicy: config.approval_policy } : {},
178
- ...config.collaboration_mode ? { collaborationMode: config.collaboration_mode } : {}
215
+ ...config.web_search_mode ? { webSearchMode: config.web_search_mode } : {},
216
+ ...config.web_search_enabled !== void 0 && !config.web_search_mode ? { webSearchEnabled: config.web_search_enabled } : {},
217
+ ...config.approval_policy ? { approvalPolicy: config.approval_policy } : {}
179
218
  };
180
219
  }
181
220
  async getOrCreateThread(config, cacheKey, instance) {
@@ -303,10 +342,31 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
303
342
  });
304
343
  break;
305
344
  }
345
+ case "item.updated": {
346
+ const item = event.item;
347
+ if (item?.id) {
348
+ const itemId = String(item.id);
349
+ const span = activeSpans.get(itemId);
350
+ if (span) {
351
+ const updatedAttrs = this.getCompletionAttributesForItem(item);
352
+ for (const [key, value] of Object.entries(updatedAttrs)) span.setAttribute(key, value);
353
+ }
354
+ }
355
+ logger_default.debug("Codex item updated", {
356
+ itemId: item?.id,
357
+ type: item?.type
358
+ });
359
+ break;
360
+ }
306
361
  case "turn.completed":
307
362
  usage = event.usage;
308
363
  logger_default.debug("Codex turn completed", { usage });
309
364
  break;
365
+ case "turn.failed": {
366
+ const errorMsg = event.error?.message || "Turn failed";
367
+ logger_default.error("Codex turn failed", { error: errorMsg });
368
+ throw new Error(`Codex turn failed: ${errorMsg}`);
369
+ }
310
370
  default: logger_default.debug("Codex unknown event type", { type: event.type });
311
371
  }
312
372
  lastEventTime = eventTime;
@@ -426,6 +486,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
426
486
  model_reasoning_effort: config.model_reasoning_effort,
427
487
  network_access_enabled: config.network_access_enabled,
428
488
  web_search_enabled: config.web_search_enabled,
489
+ web_search_mode: config.web_search_mode,
429
490
  approval_policy: config.approval_policy,
430
491
  prompt
431
492
  };
@@ -502,11 +563,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
502
563
  logger_default.warn("[CodexSDK] deep_tracing is incompatible with thread persistence. Thread options (persist_threads, thread_id, thread_pool_size) are ignored when deep_tracing is enabled.");
503
564
  this.deepTracingWarningShown = true;
504
565
  }
505
- localInstance = new this.codexModule.Codex({
506
- env,
507
- ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
508
- ...config.base_url ? { baseUrl: config.base_url } : {}
509
- });
566
+ localInstance = new this.codexModule.Codex(this.buildCodexOptions(env, config));
510
567
  } else {
511
568
  const stableEnv = { ...env };
512
569
  delete stableEnv.TRACEPARENT;
@@ -516,19 +573,13 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
516
573
  if (envChanged && this.codexInstance) {
517
574
  logger_default.debug("[CodexSDK] Recreating instance due to configuration change");
518
575
  try {
519
- if (typeof this.codexInstance.destroy === "function") await this.codexInstance.destroy();
520
- else if (typeof this.codexInstance.cleanup === "function") await this.codexInstance.cleanup();
521
- else if (typeof this.codexInstance.close === "function") await this.codexInstance.close();
576
+ await this.destroyInstance(this.codexInstance);
522
577
  } catch (cleanupError) {
523
578
  logger_default.warn("[CodexSDK] Error cleaning up old instance", { error: cleanupError });
524
579
  }
525
580
  this.threads.clear();
526
581
  }
527
- this.codexInstance = new this.codexModule.Codex({
528
- env,
529
- ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
530
- ...config.base_url ? { baseUrl: config.base_url } : {}
531
- });
582
+ this.codexInstance = new this.codexModule.Codex(this.buildCodexOptions(env, config));
532
583
  this.codexInstanceEnvHash = envHash;
533
584
  }
534
585
  }
@@ -544,14 +595,21 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
544
595
  const output = turn.finalResponse || "";
545
596
  const raw = JSON.stringify(turn);
546
597
  const tokenUsage = turn.usage ? {
547
- prompt: turn.usage.input_tokens + (turn.usage.cached_input_tokens || 0),
598
+ prompt: turn.usage.input_tokens,
548
599
  completion: turn.usage.output_tokens,
549
- total: turn.usage.input_tokens + (turn.usage.cached_input_tokens || 0) + turn.usage.output_tokens
600
+ total: turn.usage.input_tokens + turn.usage.output_tokens,
601
+ cached: turn.usage.cached_input_tokens || 0
550
602
  } : void 0;
551
603
  let cost = 0;
552
604
  if (tokenUsage && config.model) {
553
605
  const pricing = CODEX_MODEL_PRICING[config.model];
554
- if (pricing) cost = (tokenUsage.prompt || 0) * (pricing.input / 1e6) + (tokenUsage.completion || 0) * (pricing.output / 1e6);
606
+ if (pricing) {
607
+ const cachedTokens = tokenUsage.cached || 0;
608
+ const inputCost = ((tokenUsage.prompt || 0) - cachedTokens) * (pricing.input / 1e6);
609
+ const cacheReadCost = cachedTokens * (pricing.cache_read / 1e6);
610
+ const outputCost = (tokenUsage.completion || 0) * (pricing.output / 1e6);
611
+ cost = inputCost + cacheReadCost + outputCost;
612
+ }
555
613
  }
556
614
  logger_default.debug("OpenAI Codex SDK response", {
557
615
  output,
@@ -575,9 +633,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
575
633
  } finally {
576
634
  if (!config.deep_tracing && !config.persist_threads && !config.thread_id && cacheKey) this.threads.delete(cacheKey);
577
635
  if (useLocalInstance && localInstance) try {
578
- if (typeof localInstance.destroy === "function") await localInstance.destroy();
579
- else if (typeof localInstance.cleanup === "function") await localInstance.cleanup();
580
- else if (typeof localInstance.close === "function") await localInstance.close();
636
+ await this.destroyInstance(localInstance);
581
637
  } catch (cleanupError) {
582
638
  logger_default.debug("[CodexSDK] Error cleaning up local instance", { error: cleanupError });
583
639
  }
@@ -587,4 +643,4 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
587
643
 
588
644
  //#endregion
589
645
  export { OpenAICodexSDKProvider };
590
- //# sourceMappingURL=codex-sdk-BlvhxMr0.js.map
646
+ //# sourceMappingURL=codex-sdk-BASDNkIl.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { C as getEnvString, O as cliState_default, o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { i as resolvePackageEntryPoint, r as importModule } from "./esm-Lh6czAFT.js";
4
- import { n as withGenAISpan, t as getTraceparent } from "./genaiTracer-foKtbVa2.js";
2
+ import { C as getEnvString, O as cliState_default, o as logger_default } from "./logger-BotXmWKW.js";
3
+ import { i as resolvePackageEntryPoint, r as importModule } from "./esm-CYhseqj4.js";
4
+ import { n as withGenAISpan, t as getTraceparent } from "./genaiTracer-CqNnnXrE.js";
5
5
  import fs from "fs";
6
6
  import path from "path";
7
7
  import dedent from "dedent";
@@ -41,37 +41,56 @@ async function loadCodexSDK() {
41
41
  }
42
42
  }
43
43
  const CODEX_MODEL_PRICING = {
44
+ "gpt-5.3-codex": {
45
+ input: 1.75,
46
+ output: 14,
47
+ cache_read: .175
48
+ },
49
+ "gpt-5.3-codex-spark": {
50
+ input: .5,
51
+ output: 4,
52
+ cache_read: .05
53
+ },
44
54
  "gpt-5.2": {
45
55
  input: 2,
46
- output: 8
56
+ output: 8,
57
+ cache_read: .2
47
58
  },
48
59
  "gpt-5.1-codex": {
49
60
  input: 2,
50
- output: 8
61
+ output: 8,
62
+ cache_read: .2
51
63
  },
52
64
  "gpt-5.1-codex-max": {
53
65
  input: 3,
54
- output: 12
66
+ output: 12,
67
+ cache_read: .3
55
68
  },
56
69
  "gpt-5.1-codex-mini": {
57
70
  input: .5,
58
- output: 2
71
+ output: 2,
72
+ cache_read: .05
59
73
  },
60
74
  "gpt-5-codex": {
61
75
  input: 2,
62
- output: 8
76
+ output: 8,
77
+ cache_read: .2
63
78
  },
64
79
  "gpt-5-codex-mini": {
65
80
  input: .5,
66
- output: 2
81
+ output: 2,
82
+ cache_read: .05
67
83
  },
68
84
  "gpt-5": {
69
85
  input: 2,
70
- output: 8
86
+ output: 8,
87
+ cache_read: .2
71
88
  }
72
89
  };
73
90
  var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
74
91
  static OPENAI_MODELS = [
92
+ "gpt-5.3-codex",
93
+ "gpt-5.3-codex-spark",
75
94
  "gpt-5.2",
76
95
  "gpt-5.1-codex",
77
96
  "gpt-5.1-codex-max",
@@ -106,13 +125,20 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
106
125
  toString() {
107
126
  return "[OpenAI Codex SDK Provider]";
108
127
  }
128
+ /**
129
+ * Safely tear down a Codex instance by calling its cleanup method
130
+ * (destroy, cleanup, or close -- whichever is available).
131
+ */
132
+ async destroyInstance(instance) {
133
+ if (typeof instance.destroy === "function") await instance.destroy();
134
+ else if (typeof instance.cleanup === "function") await instance.cleanup();
135
+ else if (typeof instance.close === "function") await instance.close();
136
+ }
109
137
  async cleanup() {
110
138
  this.threads.clear();
111
139
  if (this.codexInstance) {
112
140
  try {
113
- if (typeof this.codexInstance.destroy === "function") await this.codexInstance.destroy();
114
- else if (typeof this.codexInstance.cleanup === "function") await this.codexInstance.cleanup();
115
- else if (typeof this.codexInstance.close === "function") await this.codexInstance.close();
141
+ await this.destroyInstance(this.codexInstance);
116
142
  } catch (error) {
117
143
  logger_default.warn("[CodexSDK] Error during cleanup", { error });
118
144
  }
@@ -167,6 +193,19 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
167
193
  To bypass this check, set skip_git_repo_check: true in your provider config.`);
168
194
  }
169
195
  }
196
+ /**
197
+ * Build Codex constructor options from provider config.
198
+ * Used when creating both local (deep-tracing) and cached instances.
199
+ */
200
+ buildCodexOptions(env, config) {
201
+ return {
202
+ env,
203
+ ...this.apiKey ? { apiKey: this.apiKey } : {},
204
+ ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
205
+ ...config.base_url ? { baseUrl: config.base_url } : {},
206
+ ...config.cli_config ? { config: config.cli_config } : {}
207
+ };
208
+ }
170
209
  buildThreadOptions(config) {
171
210
  return {
172
211
  workingDirectory: config.working_dir,
@@ -176,9 +215,9 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
176
215
  ...config.sandbox_mode ? { sandboxMode: config.sandbox_mode } : {},
177
216
  ...config.model_reasoning_effort ? { modelReasoningEffort: config.model_reasoning_effort } : {},
178
217
  ...config.network_access_enabled !== void 0 ? { networkAccessEnabled: config.network_access_enabled } : {},
179
- ...config.web_search_enabled !== void 0 ? { webSearchEnabled: config.web_search_enabled } : {},
180
- ...config.approval_policy ? { approvalPolicy: config.approval_policy } : {},
181
- ...config.collaboration_mode ? { collaborationMode: config.collaboration_mode } : {}
218
+ ...config.web_search_mode ? { webSearchMode: config.web_search_mode } : {},
219
+ ...config.web_search_enabled !== void 0 && !config.web_search_mode ? { webSearchEnabled: config.web_search_enabled } : {},
220
+ ...config.approval_policy ? { approvalPolicy: config.approval_policy } : {}
182
221
  };
183
222
  }
184
223
  async getOrCreateThread(config, cacheKey, instance) {
@@ -306,10 +345,31 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
306
345
  });
307
346
  break;
308
347
  }
348
+ case "item.updated": {
349
+ const item = event.item;
350
+ if (item?.id) {
351
+ const itemId = String(item.id);
352
+ const span = activeSpans.get(itemId);
353
+ if (span) {
354
+ const updatedAttrs = this.getCompletionAttributesForItem(item);
355
+ for (const [key, value] of Object.entries(updatedAttrs)) span.setAttribute(key, value);
356
+ }
357
+ }
358
+ logger_default.debug("Codex item updated", {
359
+ itemId: item?.id,
360
+ type: item?.type
361
+ });
362
+ break;
363
+ }
309
364
  case "turn.completed":
310
365
  usage = event.usage;
311
366
  logger_default.debug("Codex turn completed", { usage });
312
367
  break;
368
+ case "turn.failed": {
369
+ const errorMsg = event.error?.message || "Turn failed";
370
+ logger_default.error("Codex turn failed", { error: errorMsg });
371
+ throw new Error(`Codex turn failed: ${errorMsg}`);
372
+ }
313
373
  default: logger_default.debug("Codex unknown event type", { type: event.type });
314
374
  }
315
375
  lastEventTime = eventTime;
@@ -429,6 +489,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
429
489
  model_reasoning_effort: config.model_reasoning_effort,
430
490
  network_access_enabled: config.network_access_enabled,
431
491
  web_search_enabled: config.web_search_enabled,
492
+ web_search_mode: config.web_search_mode,
432
493
  approval_policy: config.approval_policy,
433
494
  prompt
434
495
  };
@@ -505,11 +566,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
505
566
  logger_default.warn("[CodexSDK] deep_tracing is incompatible with thread persistence. Thread options (persist_threads, thread_id, thread_pool_size) are ignored when deep_tracing is enabled.");
506
567
  this.deepTracingWarningShown = true;
507
568
  }
508
- localInstance = new this.codexModule.Codex({
509
- env,
510
- ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
511
- ...config.base_url ? { baseUrl: config.base_url } : {}
512
- });
569
+ localInstance = new this.codexModule.Codex(this.buildCodexOptions(env, config));
513
570
  } else {
514
571
  const stableEnv = { ...env };
515
572
  delete stableEnv.TRACEPARENT;
@@ -519,19 +576,13 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
519
576
  if (envChanged && this.codexInstance) {
520
577
  logger_default.debug("[CodexSDK] Recreating instance due to configuration change");
521
578
  try {
522
- if (typeof this.codexInstance.destroy === "function") await this.codexInstance.destroy();
523
- else if (typeof this.codexInstance.cleanup === "function") await this.codexInstance.cleanup();
524
- else if (typeof this.codexInstance.close === "function") await this.codexInstance.close();
579
+ await this.destroyInstance(this.codexInstance);
525
580
  } catch (cleanupError) {
526
581
  logger_default.warn("[CodexSDK] Error cleaning up old instance", { error: cleanupError });
527
582
  }
528
583
  this.threads.clear();
529
584
  }
530
- this.codexInstance = new this.codexModule.Codex({
531
- env,
532
- ...config.codex_path_override ? { codexPathOverride: config.codex_path_override } : {},
533
- ...config.base_url ? { baseUrl: config.base_url } : {}
534
- });
585
+ this.codexInstance = new this.codexModule.Codex(this.buildCodexOptions(env, config));
535
586
  this.codexInstanceEnvHash = envHash;
536
587
  }
537
588
  }
@@ -547,14 +598,21 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
547
598
  const output = turn.finalResponse || "";
548
599
  const raw = JSON.stringify(turn);
549
600
  const tokenUsage = turn.usage ? {
550
- prompt: turn.usage.input_tokens + (turn.usage.cached_input_tokens || 0),
601
+ prompt: turn.usage.input_tokens,
551
602
  completion: turn.usage.output_tokens,
552
- total: turn.usage.input_tokens + (turn.usage.cached_input_tokens || 0) + turn.usage.output_tokens
603
+ total: turn.usage.input_tokens + turn.usage.output_tokens,
604
+ cached: turn.usage.cached_input_tokens || 0
553
605
  } : void 0;
554
606
  let cost = 0;
555
607
  if (tokenUsage && config.model) {
556
608
  const pricing = CODEX_MODEL_PRICING[config.model];
557
- if (pricing) cost = (tokenUsage.prompt || 0) * (pricing.input / 1e6) + (tokenUsage.completion || 0) * (pricing.output / 1e6);
609
+ if (pricing) {
610
+ const cachedTokens = tokenUsage.cached || 0;
611
+ const inputCost = ((tokenUsage.prompt || 0) - cachedTokens) * (pricing.input / 1e6);
612
+ const cacheReadCost = cachedTokens * (pricing.cache_read / 1e6);
613
+ const outputCost = (tokenUsage.completion || 0) * (pricing.output / 1e6);
614
+ cost = inputCost + cacheReadCost + outputCost;
615
+ }
558
616
  }
559
617
  logger_default.debug("OpenAI Codex SDK response", {
560
618
  output,
@@ -578,9 +636,7 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
578
636
  } finally {
579
637
  if (!config.deep_tracing && !config.persist_threads && !config.thread_id && cacheKey) this.threads.delete(cacheKey);
580
638
  if (useLocalInstance && localInstance) try {
581
- if (typeof localInstance.destroy === "function") await localInstance.destroy();
582
- else if (typeof localInstance.cleanup === "function") await localInstance.cleanup();
583
- else if (typeof localInstance.close === "function") await localInstance.close();
639
+ await this.destroyInstance(localInstance);
584
640
  } catch (cleanupError) {
585
641
  logger_default.debug("[CodexSDK] Error cleaning up local instance", { error: cleanupError });
586
642
  }
@@ -590,4 +646,4 @@ var OpenAICodexSDKProvider = class OpenAICodexSDKProvider {
590
646
 
591
647
  //#endregion
592
648
  export { OpenAICodexSDKProvider };
593
- //# sourceMappingURL=codex-sdk-BC5qbCjh.js.map
649
+ //# sourceMappingURL=codex-sdk-dSnGdgIp.js.map