@use-lattice/litmus 0.121.3

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 (199) hide show
  1. package/LICENSE +19 -0
  2. package/dist/src/accounts-Bt1oJb1Z.cjs +219 -0
  3. package/dist/src/accounts-DjOU8Rm3.js +178 -0
  4. package/dist/src/agentic-utils-D03IiXQc.js +153 -0
  5. package/dist/src/agentic-utils-Dh7xaMQM.cjs +180 -0
  6. package/dist/src/agents-C6BIMlZa.js +231 -0
  7. package/dist/src/agents-DvIpNX1L.cjs +666 -0
  8. package/dist/src/agents-ZP0RP9vV.cjs +231 -0
  9. package/dist/src/agents-maJXdjbR.js +665 -0
  10. package/dist/src/aimlapi-BTbQjG2E.cjs +30 -0
  11. package/dist/src/aimlapi-CwMxqfXP.js +30 -0
  12. package/dist/src/audio-BBUdvsde.cjs +97 -0
  13. package/dist/src/audio-D5DPZ7I-.js +97 -0
  14. package/dist/src/base-BEysXrkq.cjs +222 -0
  15. package/dist/src/base-C451JQfq.js +193 -0
  16. package/dist/src/blobs-BY8MDmpo.js +230 -0
  17. package/dist/src/blobs-BgcNn97m.cjs +256 -0
  18. package/dist/src/cache-BBE_lsTA.cjs +4 -0
  19. package/dist/src/cache-BkrqU5Ba.js +237 -0
  20. package/dist/src/cache-DsCxFlsZ.cjs +297 -0
  21. package/dist/src/chat-CPJWDP6a.cjs +289 -0
  22. package/dist/src/chat-CXX3xzkk.cjs +811 -0
  23. package/dist/src/chat-CcDgZFJ4.js +787 -0
  24. package/dist/src/chat-Dz5ZeGO2.js +289 -0
  25. package/dist/src/chatkit-Dw0mKkML.cjs +1158 -0
  26. package/dist/src/chatkit-swAIVuea.js +1157 -0
  27. package/dist/src/chunk-DEq-mXcV.js +15 -0
  28. package/dist/src/claude-agent-sdk-BXZJtOg6.js +379 -0
  29. package/dist/src/claude-agent-sdk-CkfyjDoG.cjs +383 -0
  30. package/dist/src/cloudflare-ai-BzpJcqUH.js +161 -0
  31. package/dist/src/cloudflare-ai-Cmy_R1y2.cjs +161 -0
  32. package/dist/src/cloudflare-gateway-B9tVQKok.cjs +272 -0
  33. package/dist/src/cloudflare-gateway-DrD3ew3H.js +272 -0
  34. package/dist/src/codex-sdk-Dezj9Nwm.js +1056 -0
  35. package/dist/src/codex-sdk-Dl9D4k5B.cjs +1060 -0
  36. package/dist/src/cometapi-C-9YvCHC.js +54 -0
  37. package/dist/src/cometapi-DHgDKoO2.cjs +54 -0
  38. package/dist/src/completion-B8Ctyxpr.js +120 -0
  39. package/dist/src/completion-Cxrt08sj.cjs +131 -0
  40. package/dist/src/createHash-BwgE13yv.cjs +27 -0
  41. package/dist/src/createHash-DmPQkvBh.js +15 -0
  42. package/dist/src/docker-BiqcTwLv.js +80 -0
  43. package/dist/src/docker-C7tEJnP-.cjs +80 -0
  44. package/dist/src/esm-C62Zofr1.cjs +409 -0
  45. package/dist/src/esm-DMVc93eh.js +379 -0
  46. package/dist/src/evalResult-C3NJPQOo.cjs +301 -0
  47. package/dist/src/evalResult-C7JJAPBb.js +295 -0
  48. package/dist/src/evalResult-DoVTZZWI.cjs +2 -0
  49. package/dist/src/extractor-DnMD3fwt.cjs +391 -0
  50. package/dist/src/extractor-DtlL28vL.js +374 -0
  51. package/dist/src/fetch-BTxakTSg.cjs +1133 -0
  52. package/dist/src/fetch-DQckpUFz.js +928 -0
  53. package/dist/src/fileExtensions-DnqA1y9x.js +85 -0
  54. package/dist/src/fileExtensions-bYh77CN8.cjs +114 -0
  55. package/dist/src/genaiTracer-CyZrmaK0.cjs +268 -0
  56. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  57. package/dist/src/graders-BNscxFrU.js +13644 -0
  58. package/dist/src/graders-D2oE9Msq.js +2 -0
  59. package/dist/src/graders-c0Ez_w-9.cjs +2 -0
  60. package/dist/src/graders-d0F2M3e9.cjs +14056 -0
  61. package/dist/src/image-0ZhE0VlR.cjs +280 -0
  62. package/dist/src/image-CWE1pdNv.js +257 -0
  63. package/dist/src/image-D9ZK6hwL.js +163 -0
  64. package/dist/src/image-DKZgZITg.cjs +163 -0
  65. package/dist/src/index.cjs +11366 -0
  66. package/dist/src/index.d.cts +19640 -0
  67. package/dist/src/index.d.ts +19641 -0
  68. package/dist/src/index.js +11306 -0
  69. package/dist/src/invariant-Ddh24eXh.js +25 -0
  70. package/dist/src/invariant-kfQ8Bu82.cjs +30 -0
  71. package/dist/src/knowledgeBase-BgPyGFUd.cjs +122 -0
  72. package/dist/src/knowledgeBase-DyHilYaP.js +122 -0
  73. package/dist/src/litellm-CyMeneHS.js +135 -0
  74. package/dist/src/litellm-DWDF73yF.cjs +135 -0
  75. package/dist/src/logger-C40ZGil9.js +717 -0
  76. package/dist/src/logger-DyfK9PBt.cjs +917 -0
  77. package/dist/src/luma-ray-BAU9X_ep.cjs +315 -0
  78. package/dist/src/luma-ray-nwVseBbv.js +313 -0
  79. package/dist/src/messages-B5ADWTTv.js +245 -0
  80. package/dist/src/messages-BCnZfqrS.cjs +257 -0
  81. package/dist/src/meteor-DLZZ3osF.cjs +134 -0
  82. package/dist/src/meteor-DUiCJRC-.js +134 -0
  83. package/dist/src/modelslab-00cveB8L.cjs +163 -0
  84. package/dist/src/modelslab-D9sCU_L7.js +163 -0
  85. package/dist/src/nova-reel-CTapvqYH.js +276 -0
  86. package/dist/src/nova-reel-DlWuuroF.cjs +278 -0
  87. package/dist/src/nova-sonic-5UPWfeMv.cjs +363 -0
  88. package/dist/src/nova-sonic-BhSwQNym.js +363 -0
  89. package/dist/src/openai-BWrJK9d8.cjs +52 -0
  90. package/dist/src/openai-DumO8WQn.js +47 -0
  91. package/dist/src/openclaw-B8brrjC_.cjs +577 -0
  92. package/dist/src/openclaw-Bkayww9q.js +571 -0
  93. package/dist/src/opencode-sdk-7xjoDNiM.cjs +562 -0
  94. package/dist/src/opencode-sdk-SGwAPxht.js +558 -0
  95. package/dist/src/otlpReceiver-CoAHfAN9.cjs +15 -0
  96. package/dist/src/otlpReceiver-oO3EQwI9.js +14 -0
  97. package/dist/src/providerRegistry-4yjhaEM8.js +45 -0
  98. package/dist/src/providerRegistry-DhV4rJIc.cjs +50 -0
  99. package/dist/src/providers-B5RJVG-7.cjs +33609 -0
  100. package/dist/src/providers-BdmZCLzV.js +33262 -0
  101. package/dist/src/providers-CxtRxn8e.js +2 -0
  102. package/dist/src/providers-DnQLNbx1.cjs +3 -0
  103. package/dist/src/pythonUtils-BD0druiM.cjs +275 -0
  104. package/dist/src/pythonUtils-IBhn5YGR.js +249 -0
  105. package/dist/src/quiverai-BDOwZBsM.cjs +213 -0
  106. package/dist/src/quiverai-D3JTF5lD.js +213 -0
  107. package/dist/src/responses-B2LCDCXZ.js +667 -0
  108. package/dist/src/responses-BvNm4Xv9.cjs +685 -0
  109. package/dist/src/rubyUtils-B0NwnfpY.cjs +245 -0
  110. package/dist/src/rubyUtils-BroxzZ7c.cjs +2 -0
  111. package/dist/src/rubyUtils-hqVw5UvJ.js +222 -0
  112. package/dist/src/sagemaker-Cno2V-Sx.js +689 -0
  113. package/dist/src/sagemaker-fV_KUgs5.cjs +691 -0
  114. package/dist/src/server-BOuAXb06.cjs +238 -0
  115. package/dist/src/server-CtI-EWzm.cjs +2 -0
  116. package/dist/src/server-Cy3DZymt.js +189 -0
  117. package/dist/src/slack-CP8xBePa.js +135 -0
  118. package/dist/src/slack-DSQ1yXVb.cjs +135 -0
  119. package/dist/src/store-BwDDaBjb.cjs +246 -0
  120. package/dist/src/store-DcbLC593.cjs +2 -0
  121. package/dist/src/store-IGpqMIkv.js +240 -0
  122. package/dist/src/tables-3Q2cL7So.cjs +373 -0
  123. package/dist/src/tables-Bi2fjr4W.js +288 -0
  124. package/dist/src/telemetry-Bg2WqF79.js +161 -0
  125. package/dist/src/telemetry-D0x6u5kX.cjs +166 -0
  126. package/dist/src/telemetry-DXNimrI0.cjs +2 -0
  127. package/dist/src/text-B_UCRPp2.js +22 -0
  128. package/dist/src/text-CW1cyrwj.cjs +33 -0
  129. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  130. package/dist/src/tokenUsageUtils-bVa1ga6f.cjs +173 -0
  131. package/dist/src/transcription-Cl_W16Pr.js +122 -0
  132. package/dist/src/transcription-yt1EecY8.cjs +124 -0
  133. package/dist/src/transform-BCtGrl_W.cjs +228 -0
  134. package/dist/src/transform-Bv6gG2MJ.cjs +1688 -0
  135. package/dist/src/transform-CY1wbpRy.js +1507 -0
  136. package/dist/src/transform-DU8rUL9P.cjs +2 -0
  137. package/dist/src/transform-yWaShiKr.js +216 -0
  138. package/dist/src/transformersAvailability-BGkzavwb.js +35 -0
  139. package/dist/src/transformersAvailability-DKoRtQLy.cjs +35 -0
  140. package/dist/src/types-5aqHpBwE.cjs +3769 -0
  141. package/dist/src/types-Bn6D9c4U.js +3300 -0
  142. package/dist/src/util-BkKlTkI2.js +293 -0
  143. package/dist/src/util-CTh0bfOm.cjs +1119 -0
  144. package/dist/src/util-D17oBwo7.cjs +328 -0
  145. package/dist/src/util-DsS_-v4p.js +613 -0
  146. package/dist/src/util-DuntT1Ga.js +951 -0
  147. package/dist/src/util-aWjdCYMI.cjs +667 -0
  148. package/dist/src/utils-CisQwpjA.js +94 -0
  149. package/dist/src/utils-yWamDvmz.cjs +123 -0
  150. package/dist/tsconfig.tsbuildinfo +1 -0
  151. package/drizzle/0000_lush_hellion.sql +36 -0
  152. package/drizzle/0001_wide_calypso.sql +3 -0
  153. package/drizzle/0002_tidy_juggernaut.sql +1 -0
  154. package/drizzle/0003_lively_naoko.sql +8 -0
  155. package/drizzle/0004_minor_peter_quill.sql +19 -0
  156. package/drizzle/0005_silky_millenium_guard.sql +2 -0
  157. package/drizzle/0006_harsh_caretaker.sql +42 -0
  158. package/drizzle/0007_cloudy_wong.sql +1 -0
  159. package/drizzle/0008_broad_boomer.sql +2 -0
  160. package/drizzle/0009_strong_marten_broadcloak.sql +19 -0
  161. package/drizzle/0010_needy_bishop.sql +11 -0
  162. package/drizzle/0011_moaning_millenium_guard.sql +1 -0
  163. package/drizzle/0012_late_marten_broadcloak.sql +2 -0
  164. package/drizzle/0013_previous_dormammu.sql +9 -0
  165. package/drizzle/0014_lazy_captain_universe.sql +2 -0
  166. package/drizzle/0015_zippy_wallop.sql +29 -0
  167. package/drizzle/0016_jazzy_zemo.sql +2 -0
  168. package/drizzle/0017_reflective_praxagora.sql +4 -0
  169. package/drizzle/0018_fat_vanisher.sql +22 -0
  170. package/drizzle/0019_new_clint_barton.sql +8 -0
  171. package/drizzle/0020_skinny_maverick.sql +1 -0
  172. package/drizzle/0021_mysterious_madelyne_pryor.sql +13 -0
  173. package/drizzle/0022_sleepy_ultimo.sql +25 -0
  174. package/drizzle/0023_wooden_mandrill.sql +2 -0
  175. package/drizzle/AGENTS.md +68 -0
  176. package/drizzle/CLAUDE.md +1 -0
  177. package/drizzle/meta/0000_snapshot.json +221 -0
  178. package/drizzle/meta/0001_snapshot.json +214 -0
  179. package/drizzle/meta/0002_snapshot.json +221 -0
  180. package/drizzle/meta/0005_snapshot.json +369 -0
  181. package/drizzle/meta/0006_snapshot.json +638 -0
  182. package/drizzle/meta/0007_snapshot.json +640 -0
  183. package/drizzle/meta/0008_snapshot.json +649 -0
  184. package/drizzle/meta/0009_snapshot.json +554 -0
  185. package/drizzle/meta/0010_snapshot.json +619 -0
  186. package/drizzle/meta/0011_snapshot.json +627 -0
  187. package/drizzle/meta/0012_snapshot.json +639 -0
  188. package/drizzle/meta/0013_snapshot.json +717 -0
  189. package/drizzle/meta/0014_snapshot.json +717 -0
  190. package/drizzle/meta/0015_snapshot.json +897 -0
  191. package/drizzle/meta/0016_snapshot.json +1031 -0
  192. package/drizzle/meta/0018_snapshot.json +1210 -0
  193. package/drizzle/meta/0019_snapshot.json +1165 -0
  194. package/drizzle/meta/0020_snapshot.json +1232 -0
  195. package/drizzle/meta/0021_snapshot.json +1311 -0
  196. package/drizzle/meta/0022_snapshot.json +1481 -0
  197. package/drizzle/meta/0023_snapshot.json +1496 -0
  198. package/drizzle/meta/_journal.json +174 -0
  199. package/package.json +240 -0
@@ -0,0 +1,667 @@
1
+ const require_logger = require("./logger-DyfK9PBt.cjs");
2
+ const require_util = require("./util-CTh0bfOm.cjs");
3
+ const require_fetch = require("./fetch-BTxakTSg.cjs");
4
+ let openai = require("openai");
5
+ openai = require_logger.__toESM(openai);
6
+ //#region src/providers/openai/util.ts
7
+ const ajv = require_logger.getAjv();
8
+ const OPENAI_CHAT_MODELS = [
9
+ {
10
+ id: "gpt-4o-mini-tts",
11
+ cost: {
12
+ input: .6 / 1e6,
13
+ output: 0 / 1e6,
14
+ audioOutput: 12 / 1e6
15
+ }
16
+ },
17
+ ...["gpt-4o-search-preview", "gpt-4o-search-preview-2025-03-11"].map((model) => ({
18
+ id: model,
19
+ cost: {
20
+ input: 2.5 / 1e6,
21
+ output: 10 / 1e6
22
+ }
23
+ })),
24
+ ...["gpt-4o-mini-search-preview", "gpt-4o-mini-search-preview-2025-03-11"].map((model) => ({
25
+ id: model,
26
+ cost: {
27
+ input: .15 / 1e6,
28
+ output: .6 / 1e6
29
+ }
30
+ })),
31
+ ...["computer-use-preview", "computer-use-preview-2025-03-11"].map((model) => ({
32
+ id: model,
33
+ cost: {
34
+ input: 3 / 1e6,
35
+ output: 12 / 1e6
36
+ }
37
+ })),
38
+ ...["chatgpt-4o-latest"].map((model) => ({
39
+ id: model,
40
+ cost: {
41
+ input: 5 / 1e6,
42
+ output: 15 / 1e6
43
+ }
44
+ })),
45
+ ...["gpt-4.1", "gpt-4.1-2025-04-14"].map((model) => ({
46
+ id: model,
47
+ cost: {
48
+ input: 2 / 1e6,
49
+ output: 8 / 1e6
50
+ }
51
+ })),
52
+ ...["gpt-4.1-mini", "gpt-4.1-mini-2025-04-14"].map((model) => ({
53
+ id: model,
54
+ cost: {
55
+ input: .4 / 1e6,
56
+ output: 1.6 / 1e6
57
+ }
58
+ })),
59
+ ...["gpt-4.1-nano", "gpt-4.1-nano-2025-04-14"].map((model) => ({
60
+ id: model,
61
+ cost: {
62
+ input: .1 / 1e6,
63
+ output: .4 / 1e6
64
+ }
65
+ })),
66
+ ...["o1-pro", "o1-pro-2025-03-19"].map((model) => ({
67
+ id: model,
68
+ cost: {
69
+ input: 150 / 1e6,
70
+ output: 600 / 1e6
71
+ }
72
+ })),
73
+ ...[
74
+ "o1",
75
+ "o1-2024-12-17",
76
+ "o1-preview",
77
+ "o1-preview-2024-09-12"
78
+ ].map((model) => ({
79
+ id: model,
80
+ cost: {
81
+ input: 15 / 1e6,
82
+ output: 60 / 1e6
83
+ }
84
+ })),
85
+ ...["o1-mini", "o1-mini-2024-09-12"].map((model) => ({
86
+ id: model,
87
+ cost: {
88
+ input: 1.1 / 1e6,
89
+ output: 4.4 / 1e6
90
+ }
91
+ })),
92
+ ...["o3", "o3-2025-04-16"].map((model) => ({
93
+ id: model,
94
+ cost: {
95
+ input: 2 / 1e6,
96
+ output: 8 / 1e6
97
+ }
98
+ })),
99
+ ...["o3-pro", "o3-pro-2025-06-10"].map((model) => ({
100
+ id: model,
101
+ cost: {
102
+ input: 20 / 1e6,
103
+ output: 80 / 1e6
104
+ }
105
+ })),
106
+ ...["o3-mini", "o3-mini-2025-01-31"].map((model) => ({
107
+ id: model,
108
+ cost: {
109
+ input: 1.1 / 1e6,
110
+ output: 4.4 / 1e6
111
+ }
112
+ })),
113
+ ...[
114
+ "gpt-4o-audio-preview",
115
+ "gpt-4o-audio-preview-2024-12-17",
116
+ "gpt-4o-audio-preview-2024-10-01",
117
+ "gpt-4o-audio-preview-2025-06-03"
118
+ ].map((model) => ({
119
+ id: model,
120
+ cost: {
121
+ input: 2.5 / 1e6,
122
+ output: 10 / 1e6,
123
+ audioInput: 40 / 1e6,
124
+ audioOutput: 80 / 1e6
125
+ }
126
+ })),
127
+ ...["gpt-4o-mini-audio-preview", "gpt-4o-mini-audio-preview-2024-12-17"].map((model) => ({
128
+ id: model,
129
+ cost: {
130
+ input: .15 / 1e6,
131
+ output: .6 / 1e6,
132
+ audioInput: 10 / 1e6,
133
+ audioOutput: 20 / 1e6
134
+ }
135
+ })),
136
+ ...[
137
+ "gpt-4o",
138
+ "gpt-4o-2024-11-20",
139
+ "gpt-4o-2024-08-06"
140
+ ].map((model) => ({
141
+ id: model,
142
+ cost: {
143
+ input: 2.5 / 1e6,
144
+ output: 10 / 1e6
145
+ }
146
+ })),
147
+ ...["gpt-4o-2024-05-13"].map((model) => ({
148
+ id: model,
149
+ cost: {
150
+ input: 5 / 1e6,
151
+ output: 15 / 1e6
152
+ }
153
+ })),
154
+ ...["gpt-4o-mini", "gpt-4o-mini-2024-07-18"].map((model) => ({
155
+ id: model,
156
+ cost: {
157
+ input: .15 / 1e6,
158
+ output: .6 / 1e6
159
+ }
160
+ })),
161
+ ...[
162
+ "gpt-4",
163
+ "gpt-4-0613",
164
+ "gpt-4-0314"
165
+ ].map((model) => ({
166
+ id: model,
167
+ cost: {
168
+ input: 30 / 1e6,
169
+ output: 60 / 1e6
170
+ }
171
+ })),
172
+ ...[
173
+ "gpt-4-32k",
174
+ "gpt-4-32k-0314",
175
+ "gpt-4-32k-0613"
176
+ ].map((model) => ({
177
+ id: model,
178
+ cost: {
179
+ input: 60 / 1e6,
180
+ output: 120 / 1e6
181
+ }
182
+ })),
183
+ ...[
184
+ "gpt-4-turbo",
185
+ "gpt-4-turbo-2024-04-09",
186
+ "gpt-4-turbo-preview",
187
+ "gpt-4-0125-preview",
188
+ "gpt-4-1106-preview",
189
+ "gpt-4-1106-vision-preview",
190
+ "gpt-4-vision-preview"
191
+ ].map((model) => ({
192
+ id: model,
193
+ cost: {
194
+ input: 10 / 1e6,
195
+ output: 30 / 1e6
196
+ }
197
+ })),
198
+ {
199
+ id: "gpt-3.5-turbo",
200
+ cost: {
201
+ input: .5 / 1e6,
202
+ output: 1.5 / 1e6
203
+ }
204
+ },
205
+ {
206
+ id: "gpt-3.5-turbo-0125",
207
+ cost: {
208
+ input: .5 / 1e6,
209
+ output: 1.5 / 1e6
210
+ }
211
+ },
212
+ {
213
+ id: "gpt-3.5-turbo-1106",
214
+ cost: {
215
+ input: 1 / 1e6,
216
+ output: 2 / 1e6
217
+ }
218
+ },
219
+ ...["gpt-3.5-turbo-0301", "gpt-3.5-turbo-0613"].map((model) => ({
220
+ id: model,
221
+ cost: {
222
+ input: 1.5 / 1e6,
223
+ output: 2 / 1e6
224
+ }
225
+ })),
226
+ ...["gpt-3.5-turbo-16k", "gpt-3.5-turbo-16k-0613"].map((model) => ({
227
+ id: model,
228
+ cost: {
229
+ input: 3 / 1e6,
230
+ output: 4 / 1e6
231
+ }
232
+ })),
233
+ ...["gpt-3.5-turbo-instruct"].map((model) => ({
234
+ id: model,
235
+ cost: {
236
+ input: 1.5 / 1e6,
237
+ output: 2 / 1e6
238
+ }
239
+ })),
240
+ ...["o4-mini", "o4-mini-2025-04-16"].map((model) => ({
241
+ id: model,
242
+ cost: {
243
+ input: 1.1 / 1e6,
244
+ output: 4.4 / 1e6
245
+ }
246
+ })),
247
+ ...[
248
+ "gpt-5",
249
+ "gpt-5-2025-08-07",
250
+ "gpt-5-chat",
251
+ "gpt-5-chat-latest"
252
+ ].map((model) => ({
253
+ id: model,
254
+ cost: {
255
+ input: 1.25 / 1e6,
256
+ output: 10 / 1e6
257
+ }
258
+ })),
259
+ ...["gpt-5-nano", "gpt-5-nano-2025-08-07"].map((model) => ({
260
+ id: model,
261
+ cost: {
262
+ input: .05 / 1e6,
263
+ output: .4 / 1e6
264
+ }
265
+ })),
266
+ ...["gpt-5-mini", "gpt-5-mini-2025-08-07"].map((model) => ({
267
+ id: model,
268
+ cost: {
269
+ input: .25 / 1e6,
270
+ output: 2 / 1e6
271
+ }
272
+ })),
273
+ ...["codex-mini-latest"].map((model) => ({
274
+ id: model,
275
+ cost: {
276
+ input: 1.5 / 1e6,
277
+ output: 6 / 1e6
278
+ }
279
+ })),
280
+ ...["gpt-5-codex"].map((model) => ({
281
+ id: model,
282
+ cost: {
283
+ input: 1.25 / 1e6,
284
+ output: 10 / 1e6
285
+ }
286
+ })),
287
+ ...["gpt-5-pro", "gpt-5-pro-2025-10-06"].map((model) => ({
288
+ id: model,
289
+ cost: {
290
+ input: 15 / 1e6,
291
+ output: 120 / 1e6
292
+ }
293
+ })),
294
+ ...[
295
+ "gpt-5.1",
296
+ "gpt-5.1-2025-11-13",
297
+ "gpt-5.1-chat-latest"
298
+ ].map((model) => ({
299
+ id: model,
300
+ cost: {
301
+ input: 1.25 / 1e6,
302
+ output: 10 / 1e6
303
+ }
304
+ })),
305
+ ...["gpt-5.1-nano"].map((model) => ({
306
+ id: model,
307
+ cost: {
308
+ input: .05 / 1e6,
309
+ output: .4 / 1e6
310
+ }
311
+ })),
312
+ ...["gpt-5.1-mini"].map((model) => ({
313
+ id: model,
314
+ cost: {
315
+ input: .25 / 1e6,
316
+ output: 2 / 1e6
317
+ }
318
+ })),
319
+ ...["gpt-5.1-codex", "gpt-5.1-codex-max"].map((model) => ({
320
+ id: model,
321
+ cost: {
322
+ input: 1.25 / 1e6,
323
+ output: 10 / 1e6
324
+ }
325
+ })),
326
+ ...[
327
+ "gpt-5.2",
328
+ "gpt-5.2-2025-12-11",
329
+ "gpt-5.2-chat-latest",
330
+ "gpt-5.2-codex"
331
+ ].map((model) => ({
332
+ id: model,
333
+ cost: {
334
+ input: 1.75 / 1e6,
335
+ output: 14 / 1e6
336
+ }
337
+ })),
338
+ ...["gpt-5.2-pro", "gpt-5.2-pro-2025-12-11"].map((model) => ({
339
+ id: model,
340
+ cost: {
341
+ input: 15 / 1e6,
342
+ output: 120 / 1e6
343
+ }
344
+ })),
345
+ ...["gpt-5.3-chat-latest", "gpt-5.3-codex"].map((model) => ({
346
+ id: model,
347
+ cost: {
348
+ input: 1.75 / 1e6,
349
+ output: 14 / 1e6
350
+ }
351
+ })),
352
+ ...["gpt-5.3-codex-spark"].map((model) => ({
353
+ id: model,
354
+ cost: {
355
+ input: .5 / 1e6,
356
+ output: 4 / 1e6
357
+ }
358
+ })),
359
+ ...["gpt-5.4", "gpt-5.4-2026-03-05"].map((model) => ({
360
+ id: model,
361
+ cost: {
362
+ input: 2.5 / 1e6,
363
+ output: 15 / 1e6
364
+ }
365
+ })),
366
+ ...["gpt-5.4-mini", "gpt-5.4-mini-2026-03-17"].map((model) => ({
367
+ id: model,
368
+ cost: {
369
+ input: .75 / 1e6,
370
+ output: 4.5 / 1e6
371
+ }
372
+ })),
373
+ ...["gpt-5.4-nano", "gpt-5.4-nano-2026-03-17"].map((model) => ({
374
+ id: model,
375
+ cost: {
376
+ input: .2 / 1e6,
377
+ output: 1.25 / 1e6
378
+ }
379
+ })),
380
+ ...["gpt-5.4-pro", "gpt-5.4-pro-2026-03-05"].map((model) => ({
381
+ id: model,
382
+ cost: {
383
+ input: 30 / 1e6,
384
+ output: 180 / 1e6
385
+ }
386
+ })),
387
+ ...["gpt-audio", "gpt-audio-2025-08-28"].map((model) => ({
388
+ id: model,
389
+ cost: {
390
+ input: 2.5 / 1e6,
391
+ output: 10 / 1e6,
392
+ audioInput: 40 / 1e6,
393
+ audioOutput: 80 / 1e6
394
+ }
395
+ })),
396
+ ...["gpt-audio-mini", "gpt-audio-mini-2025-10-06"].map((model) => ({
397
+ id: model,
398
+ cost: {
399
+ input: .6 / 1e6,
400
+ output: 2.4 / 1e6,
401
+ audioInput: 10 / 1e6,
402
+ audioOutput: 20 / 1e6
403
+ }
404
+ }))
405
+ ];
406
+ const OPENAI_DEEP_RESEARCH_MODELS = [...["o3-deep-research", "o3-deep-research-2025-06-26"].map((model) => ({
407
+ id: model,
408
+ cost: {
409
+ input: 10 / 1e6,
410
+ output: 40 / 1e6
411
+ }
412
+ })), ...["o4-mini-deep-research", "o4-mini-deep-research-2025-06-26"].map((model) => ({
413
+ id: model,
414
+ cost: {
415
+ input: 2 / 1e6,
416
+ output: 8 / 1e6
417
+ }
418
+ }))];
419
+ const OPENAI_COMPLETION_MODELS = [
420
+ {
421
+ id: "gpt-3.5-turbo-instruct",
422
+ cost: {
423
+ input: 1.5 / 1e6,
424
+ output: 2 / 1e6
425
+ }
426
+ },
427
+ { id: "text-davinci-002" },
428
+ { id: "text-babbage-002" }
429
+ ];
430
+ const OPENAI_REALTIME_MODELS = [
431
+ {
432
+ id: "gpt-realtime",
433
+ type: "chat",
434
+ cost: {
435
+ input: 32 / 1e6,
436
+ output: 64 / 1e6,
437
+ audioInput: 32 / 1e6,
438
+ audioOutput: 64 / 1e6
439
+ }
440
+ },
441
+ {
442
+ id: "gpt-realtime",
443
+ type: "chat",
444
+ cost: {
445
+ input: 4 / 1e6,
446
+ output: 16 / 1e6,
447
+ audioInput: 40 / 1e6,
448
+ audioOutput: 80 / 1e6
449
+ }
450
+ },
451
+ {
452
+ id: "gpt-4o-realtime-preview",
453
+ type: "chat",
454
+ cost: {
455
+ input: 5 / 1e6,
456
+ output: 20 / 1e6,
457
+ audioInput: 40 / 1e6,
458
+ audioOutput: 80 / 1e6
459
+ }
460
+ },
461
+ {
462
+ id: "gpt-4o-realtime-preview-2024-12-17",
463
+ type: "chat",
464
+ cost: {
465
+ input: 5 / 1e6,
466
+ output: 20 / 1e6,
467
+ audioInput: 40 / 1e6,
468
+ audioOutput: 80 / 1e6
469
+ }
470
+ },
471
+ {
472
+ id: "gpt-4o-realtime-preview-2024-10-01",
473
+ type: "chat",
474
+ cost: {
475
+ input: 5 / 1e6,
476
+ output: 20 / 1e6,
477
+ audioInput: 100 / 1e6,
478
+ audioOutput: 200 / 1e6
479
+ }
480
+ },
481
+ {
482
+ id: "gpt-4o-mini-realtime-preview",
483
+ type: "chat",
484
+ cost: {
485
+ input: .6 / 1e6,
486
+ output: 2.4 / 1e6,
487
+ audioInput: 10 / 1e6,
488
+ audioOutput: 20 / 1e6
489
+ }
490
+ },
491
+ {
492
+ id: "gpt-4o-mini-realtime-preview-2024-12-17",
493
+ type: "chat",
494
+ cost: {
495
+ input: .6 / 1e6,
496
+ output: 2.4 / 1e6,
497
+ audioInput: 10 / 1e6,
498
+ audioOutput: 20 / 1e6
499
+ }
500
+ },
501
+ {
502
+ id: "gpt-realtime-mini",
503
+ type: "chat",
504
+ cost: {
505
+ input: .6 / 1e6,
506
+ output: 2.4 / 1e6,
507
+ audioInput: 10 / 1e6,
508
+ audioOutput: 20 / 1e6
509
+ }
510
+ },
511
+ {
512
+ id: "gpt-realtime-mini-2025-10-06",
513
+ type: "chat",
514
+ cost: {
515
+ input: .6 / 1e6,
516
+ output: 2.4 / 1e6,
517
+ audioInput: 10 / 1e6,
518
+ audioOutput: 20 / 1e6
519
+ }
520
+ }
521
+ ];
522
+ const OPENAI_TRANSCRIPTION_MODELS = [
523
+ {
524
+ id: "gpt-4o-transcribe",
525
+ cost: { perMinute: .006 }
526
+ },
527
+ {
528
+ id: "gpt-4o-mini-transcribe",
529
+ cost: { perMinute: .003 }
530
+ },
531
+ {
532
+ id: "gpt-4o-transcribe-diarize",
533
+ cost: { perMinute: .006 }
534
+ },
535
+ {
536
+ id: "whisper-1",
537
+ cost: { perMinute: .006 }
538
+ }
539
+ ];
540
+ function calculateOpenAICost(modelName, config, promptTokens, completionTokens, audioPromptTokens, audioCompletionTokens) {
541
+ if (!audioPromptTokens && !audioCompletionTokens) return require_fetch.calculateCost(modelName, config, promptTokens, completionTokens, [
542
+ ...OPENAI_CHAT_MODELS,
543
+ ...OPENAI_COMPLETION_MODELS,
544
+ ...OPENAI_REALTIME_MODELS,
545
+ ...OPENAI_DEEP_RESEARCH_MODELS
546
+ ]);
547
+ if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || !Number.isFinite(audioPromptTokens) || !Number.isFinite(audioCompletionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined" || typeof audioPromptTokens === "undefined" || typeof audioCompletionTokens === "undefined") return;
548
+ const model = [
549
+ ...OPENAI_CHAT_MODELS,
550
+ ...OPENAI_COMPLETION_MODELS,
551
+ ...OPENAI_REALTIME_MODELS,
552
+ ...OPENAI_DEEP_RESEARCH_MODELS
553
+ ].find((m) => m.id === modelName);
554
+ if (!model || !model.cost) return;
555
+ let totalCost = 0;
556
+ const inputCost = config.cost ?? model.cost.input;
557
+ const outputCost = config.cost ?? model.cost.output;
558
+ totalCost += inputCost * promptTokens + outputCost * completionTokens;
559
+ if ("audioInput" in model.cost || "audioOutput" in model.cost) {
560
+ const audioInputCost = config.audioCost ?? model.cost.audioInput ?? 0;
561
+ const audioOutputCost = config.audioCost ?? model.cost.audioOutput ?? 0;
562
+ totalCost += audioInputCost * audioPromptTokens + audioOutputCost * audioCompletionTokens;
563
+ }
564
+ return totalCost;
565
+ }
566
+ function failApiCall(err) {
567
+ if (err instanceof openai.default.APIError) {
568
+ const errorType = err.error?.type || err.type || "unknown";
569
+ const errorMessage = err.error?.message || err.message || "Unknown error";
570
+ return { error: `API error: ${errorType}${err.status ? ` ${err.status}` : ""} ${errorMessage}` };
571
+ }
572
+ return { error: `API error: ${String(err)}` };
573
+ }
574
+ function getTokenUsage(data, cached) {
575
+ if (data.usage) if (cached) return {
576
+ cached: data.usage.total_tokens,
577
+ total: data.usage.total_tokens
578
+ };
579
+ else return {
580
+ total: data.usage.total_tokens,
581
+ prompt: data.usage.prompt_tokens || 0,
582
+ completion: data.usage.completion_tokens || 0,
583
+ numRequests: 1,
584
+ ...data.usage.completion_tokens_details ? { completionDetails: {
585
+ reasoning: data.usage.completion_tokens_details.reasoning_tokens,
586
+ acceptedPrediction: data.usage.completion_tokens_details.accepted_prediction_tokens,
587
+ rejectedPrediction: data.usage.completion_tokens_details.rejected_prediction_tokens
588
+ } } : {}
589
+ };
590
+ return {};
591
+ }
592
+ function validateFunctionCall(output, functions, vars) {
593
+ if (typeof output === "object" && "function_call" in output) output = output.function_call;
594
+ const functionCall = output;
595
+ if (typeof functionCall !== "object" || typeof functionCall.name !== "string" || typeof functionCall.arguments !== "string") throw new Error(`OpenAI did not return a valid-looking function call: ${JSON.stringify(functionCall)}`);
596
+ const interpolatedFunctions = require_util.maybeLoadFromExternalFileWithVars(functions, vars);
597
+ const functionArgs = JSON.parse(functionCall.arguments);
598
+ const functionName = functionCall.name;
599
+ const functionSchema = interpolatedFunctions?.find((f) => f.name === functionName)?.parameters;
600
+ if (!functionSchema) throw new Error(`Called "${functionName}", but there is no function with that name`);
601
+ const validate = ajv.compile(functionSchema);
602
+ if (!validate(functionArgs)) throw new Error(`Call to "${functionName}" does not match schema: ${JSON.stringify(validate.errors)}`);
603
+ }
604
+ function formatOpenAiError(data) {
605
+ let errorMessage = `API error: ${data.error.message}`;
606
+ if (data.error.type) errorMessage += `, Type: ${data.error.type}`;
607
+ if (data.error.code) errorMessage += `, Code: ${data.error.code}`;
608
+ errorMessage += "\n\n" + require_logger.safeJsonStringify(data, true);
609
+ return errorMessage;
610
+ }
611
+ //#endregion
612
+ Object.defineProperty(exports, "OPENAI_CHAT_MODELS", {
613
+ enumerable: true,
614
+ get: function() {
615
+ return OPENAI_CHAT_MODELS;
616
+ }
617
+ });
618
+ Object.defineProperty(exports, "OPENAI_COMPLETION_MODELS", {
619
+ enumerable: true,
620
+ get: function() {
621
+ return OPENAI_COMPLETION_MODELS;
622
+ }
623
+ });
624
+ Object.defineProperty(exports, "OPENAI_REALTIME_MODELS", {
625
+ enumerable: true,
626
+ get: function() {
627
+ return OPENAI_REALTIME_MODELS;
628
+ }
629
+ });
630
+ Object.defineProperty(exports, "OPENAI_TRANSCRIPTION_MODELS", {
631
+ enumerable: true,
632
+ get: function() {
633
+ return OPENAI_TRANSCRIPTION_MODELS;
634
+ }
635
+ });
636
+ Object.defineProperty(exports, "calculateOpenAICost", {
637
+ enumerable: true,
638
+ get: function() {
639
+ return calculateOpenAICost;
640
+ }
641
+ });
642
+ Object.defineProperty(exports, "failApiCall", {
643
+ enumerable: true,
644
+ get: function() {
645
+ return failApiCall;
646
+ }
647
+ });
648
+ Object.defineProperty(exports, "formatOpenAiError", {
649
+ enumerable: true,
650
+ get: function() {
651
+ return formatOpenAiError;
652
+ }
653
+ });
654
+ Object.defineProperty(exports, "getTokenUsage", {
655
+ enumerable: true,
656
+ get: function() {
657
+ return getTokenUsage;
658
+ }
659
+ });
660
+ Object.defineProperty(exports, "validateFunctionCall", {
661
+ enumerable: true,
662
+ get: function() {
663
+ return validateFunctionCall;
664
+ }
665
+ });
666
+
667
+ //# sourceMappingURL=util-aWjdCYMI.cjs.map