@holokai/holo-provider-openai 1.5.1 → 1.5.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.
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.js +1 -1
- package/dist/openai.auditor.d.ts +5 -5
- package/dist/openai.auditor.d.ts.map +1 -1
- package/dist/openai.auditor.js +16 -15
- package/dist/openai.auditor.js.map +1 -1
- package/dist/openai.pricing.d.ts.map +1 -1
- package/dist/openai.pricing.js +287 -30
- package/dist/openai.pricing.js.map +1 -1
- package/dist/openai.provider.d.ts +3 -3
- package/dist/openai.provider.d.ts.map +1 -1
- package/dist/openai.provider.js +24 -25
- package/dist/openai.provider.js.map +1 -1
- package/dist/openai.response.factory.d.ts +3 -3
- package/dist/openai.response.factory.d.ts.map +1 -1
- package/dist/openai.response.factory.js +3 -3
- package/dist/openai.response.factory.js.map +1 -1
- package/dist/openai.translator.d.ts +8 -8
- package/dist/openai.translator.d.ts.map +1 -1
- package/dist/openai.translator.js +14 -13
- package/dist/openai.translator.js.map +1 -1
- package/dist/openai.wire.adapter.d.ts +5 -5
- package/dist/openai.wire.adapter.d.ts.map +1 -1
- package/dist/openai.wire.adapter.js +4 -4
- package/dist/openai.wire.adapter.js.map +1 -1
- package/dist/plugin.d.ts +7 -9
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +40 -26
- package/dist/plugin.js.map +1 -1
- package/dist/translators/openai.chatcompletion.message.translators.d.ts +3 -3
- package/dist/translators/openai.chatcompletion.message.translators.js +11 -11
- package/dist/translators/openai.chatcompletion.message.translators.js.map +1 -1
- package/dist/translators/openai.chatcompletion.request.translators.d.ts +5 -5
- package/dist/translators/openai.chatcompletion.request.translators.d.ts.map +1 -1
- package/dist/translators/openai.chatcompletion.request.translators.js +19 -19
- package/dist/translators/openai.chatcompletion.request.translators.js.map +1 -1
- package/dist/translators/openai.chatcompletion.response.translators.d.ts +5 -5
- package/dist/translators/openai.chatcompletion.response.translators.d.ts.map +1 -1
- package/dist/translators/openai.chatcompletion.response.translators.js +13 -17
- package/dist/translators/openai.chatcompletion.response.translators.js.map +1 -1
- package/dist/translators/openai.content.translators.d.ts +3 -3
- package/dist/translators/openai.content.translators.js +8 -8
- package/dist/translators/openai.message.translators.d.ts +5 -5
- package/dist/translators/openai.message.translators.d.ts.map +1 -1
- package/dist/translators/openai.message.translators.js +21 -16
- package/dist/translators/openai.message.translators.js.map +1 -1
- package/dist/translators/openai.responses.request.translators.d.ts +3 -3
- package/dist/translators/openai.responses.request.translators.d.ts.map +1 -1
- package/dist/translators/openai.responses.request.translators.js +16 -17
- package/dist/translators/openai.responses.request.translators.js.map +1 -1
- package/dist/translators/openai.responses.response.translators.d.ts.map +1 -1
- package/dist/translators/openai.responses.response.translators.js +6 -6
- package/dist/translators/openai.responses.response.translators.js.map +1 -1
- package/dist/translators/openai.tool.translators.d.ts +3 -3
- package/dist/translators/openai.tool.translators.d.ts.map +1 -1
- package/dist/translators/openai.tool.translators.js +10 -10
- package/dist/translators/openai.tool.translators.js.map +1 -1
- package/dist/translators/openai.usage.translators.d.ts +3 -3
- package/dist/translators/openai.usage.translators.d.ts.map +1 -1
- package/dist/translators/openai.usage.translators.js +5 -7
- package/dist/translators/openai.usage.translators.js.map +1 -1
- package/dist/translators/streaming/openai.content.delta.translator.d.ts +2 -2
- package/dist/translators/streaming/openai.content.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.content.delta.translator.js +30 -24
- package/dist/translators/streaming/openai.content.delta.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.delta.translator.d.ts +2 -2
- package/dist/translators/streaming/openai.message.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.delta.translator.js +35 -31
- package/dist/translators/streaming/openai.message.delta.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.start.translator.d.ts +2 -2
- package/dist/translators/streaming/openai.message.start.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.start.translator.js +15 -11
- package/dist/translators/streaming/openai.message.start.translator.js.map +1 -1
- package/dist/translators/streaming/openai.message.stop.translator.d.ts +2 -2
- package/dist/translators/streaming/openai.message.stop.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.message.stop.translator.js +14 -10
- package/dist/translators/streaming/openai.message.stop.translator.js.map +1 -1
- package/dist/translators/streaming/openai.responses.stream.translator.d.ts.map +1 -1
- package/dist/translators/streaming/openai.responses.stream.translator.js +61 -35
- package/dist/translators/streaming/openai.responses.stream.translator.js.map +1 -1
- package/dist/translators/streaming/openai.stream.translator.d.ts +3 -3
- package/dist/translators/streaming/openai.stream.translator.js +7 -7
- package/dist/translators/streaming/openai.stream.translator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -6
package/dist/manifest.d.ts
CHANGED
package/dist/manifest.js
CHANGED
package/dist/openai.auditor.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BaseAuditor } from
|
|
2
|
-
import { type HoloWorkerRequest, type WorkerResponseEnvelope } from
|
|
3
|
-
import { type ProviderDoneEvent, type ProviderEvent } from
|
|
4
|
-
import { FinishReason, type ProviderEnvelope, type ProviderResponseMetrics, ProviderResponseStatus } from
|
|
5
|
-
import type { HoloFinishReason, HoloUsage } from
|
|
1
|
+
import { BaseAuditor } from '@holokai/holo-sdk/provider';
|
|
2
|
+
import { type HoloWorkerRequest, type WorkerResponseEnvelope } from '@holokai/holo-types/worker';
|
|
3
|
+
import { type ProviderDoneEvent, type ProviderEvent } from '@holokai/holo-types/provider';
|
|
4
|
+
import { FinishReason, type ProviderEnvelope, type ProviderResponseMetrics, ProviderResponseStatus } from '@holokai/holo-types/entities';
|
|
5
|
+
import type { HoloFinishReason, HoloUsage } from '@holokai/holo-types/holo';
|
|
6
6
|
export declare class OpenAIAuditor extends BaseAuditor {
|
|
7
7
|
readonly provider = "openai";
|
|
8
8
|
mapFinishReason(nativeResponse: any, protocolName?: string): HoloFinishReason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACxF,OAAO,EACH,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAK1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAwB7E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAsBxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAsFrF,0BAA0B,
|
|
1
|
+
{"version":3,"file":"openai.auditor.d.ts","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAC,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACxF,OAAO,EACH,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,sBAAsB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAK1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAwB7E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAsBxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAsFrF,0BAA0B,CACtC,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;cAiB5B,iBAAiB,CAC7B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,sBAAsB,GACjC,OAAO,CAAC,sBAAsB,CAAC;cAelB,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,sBAAsB,GAClC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAMpC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS;cAgBnE,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgDtG"}
|
package/dist/openai.auditor.js
CHANGED
|
@@ -5,14 +5,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { injectable } from 'tsyringe';
|
|
8
|
-
import { countTokens, extractPromptByRole, extractTextContent, normalizeText, pickDefined } from
|
|
9
|
-
import { BaseAuditor } from
|
|
10
|
-
import {} from
|
|
11
|
-
import {} from
|
|
12
|
-
import { FinishReason, ProviderResponseStatus } from
|
|
13
|
-
import {} from
|
|
14
|
-
import {} from
|
|
15
|
-
import { OpenAIProtocols } from
|
|
8
|
+
import { countTokens, extractPromptByRole, extractTextContent, normalizeText, pickDefined } from '@holokai/holo-sdk';
|
|
9
|
+
import { BaseAuditor } from '@holokai/holo-sdk/provider';
|
|
10
|
+
import {} from '@holokai/holo-types/worker';
|
|
11
|
+
import {} from '@holokai/holo-types/provider';
|
|
12
|
+
import { FinishReason, ProviderResponseStatus, } from '@holokai/holo-types/entities';
|
|
13
|
+
import {} from 'openai/resources/chat/completions';
|
|
14
|
+
import {} from 'openai/resources/responses/responses';
|
|
15
|
+
import { OpenAIProtocols } from './plugin.js';
|
|
16
16
|
let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
|
|
17
17
|
provider = 'openai';
|
|
18
18
|
mapFinishReason(nativeResponse, protocolName) {
|
|
@@ -65,7 +65,7 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
|
|
|
65
65
|
let options;
|
|
66
66
|
if (workerRequest.protocol.name === OpenAIProtocols.RESPONSES) {
|
|
67
67
|
const payload = workerRequest.payload;
|
|
68
|
-
const { max_output_tokens, metadata, prompt_cache_key, prompt_cache_retention, safety_identifier, stream, stream_options, temperature, tool_choice, tools, top_p } = payload;
|
|
68
|
+
const { max_output_tokens, metadata, prompt_cache_key, prompt_cache_retention, safety_identifier, stream, stream_options, temperature, tool_choice, tools, top_p, } = payload;
|
|
69
69
|
options = pickDefined({
|
|
70
70
|
max_output_tokens,
|
|
71
71
|
metadata,
|
|
@@ -77,7 +77,7 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
|
|
|
77
77
|
temperature,
|
|
78
78
|
tool_choice,
|
|
79
79
|
tools,
|
|
80
|
-
top_p
|
|
80
|
+
top_p,
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
@@ -156,7 +156,8 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
|
|
|
156
156
|
return countTokens(JSON.stringify(payload.messages));
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
catch {
|
|
159
|
+
catch {
|
|
160
|
+
/* fallthrough */
|
|
160
161
|
}
|
|
161
162
|
return undefined;
|
|
162
163
|
}
|
|
@@ -171,21 +172,21 @@ let OpenAIAuditor = class OpenAIAuditor extends BaseAuditor {
|
|
|
171
172
|
last_user_prompt =
|
|
172
173
|
typeof input === 'string'
|
|
173
174
|
? normalizeText(input)
|
|
174
|
-
: extractPromptByRole(input, 'user', 'last',
|
|
175
|
+
: extractPromptByRole(input, 'user', 'last', msg => extractTextContent(msg.content));
|
|
175
176
|
system_prompt =
|
|
176
177
|
workerRequest.systemPrompt?.system_prompt ??
|
|
177
178
|
(typeof payload.instructions === 'string'
|
|
178
179
|
? normalizeText(payload.instructions)
|
|
179
|
-
: extractPromptByRole(input, 'system', 'first',
|
|
180
|
+
: extractPromptByRole(input, 'system', 'first', msg => extractTextContent(msg.content)));
|
|
180
181
|
}
|
|
181
182
|
else {
|
|
182
183
|
const payload = workerRequest.payload;
|
|
183
184
|
access_model = payload.model;
|
|
184
185
|
const messages = payload.messages;
|
|
185
|
-
last_user_prompt = extractPromptByRole(messages, 'user', 'last',
|
|
186
|
+
last_user_prompt = extractPromptByRole(messages, 'user', 'last', msg => extractTextContent(msg.content));
|
|
186
187
|
system_prompt =
|
|
187
188
|
workerRequest.systemPrompt?.system_prompt ??
|
|
188
|
-
extractPromptByRole(messages, 'system', 'first',
|
|
189
|
+
extractPromptByRole(messages, 'system', 'first', msg => extractTextContent(msg.content));
|
|
189
190
|
}
|
|
190
191
|
return pickDefined({
|
|
191
192
|
last_user_prompt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAqD,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAA4C,MAAM,8BAA8B,CAAC;AACxF,OAAO,EACH,YAAY,EAGZ,sBAAsB,
|
|
1
|
+
{"version":3,"file":"openai.auditor.js","sourceRoot":"","sources":["../src/openai.auditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.pricing.d.ts","sourceRoot":"","sources":["../src/openai.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.pricing.d.ts","sourceRoot":"","sources":["../src/openai.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAW/D,eAAO,MAAM,sBAAsB,EAAE,cAmjCpC,CAAC"}
|
package/dist/openai.pricing.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
// Pricing sources (last verified 2026-06-12):
|
|
2
|
+
// https://developers.openai.com/api/docs/pricing
|
|
3
|
+
// https://developers.openai.com/api/docs/models
|
|
4
|
+
// https://developers.openai.com/api/docs/deprecations
|
|
5
|
+
// https://developers.openai.com/api/docs/changelog
|
|
6
|
+
// (platform.openai.com/docs/* now redirects to developers.openai.com)
|
|
1
7
|
const M = 1_000_000;
|
|
2
8
|
export const OPENAI_PRICING_DATASET = {
|
|
3
9
|
name: 'OpenAI',
|
|
4
|
-
version: '2026-
|
|
10
|
+
version: '2026-06',
|
|
5
11
|
pricing_snapshots: [
|
|
6
12
|
// ── 2023-06: GPT-4 + GPT-3.5 Turbo baseline ────────────────────
|
|
7
13
|
{
|
|
@@ -33,9 +39,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
33
39
|
name: 'openai-2024-04',
|
|
34
40
|
version: '2024-04',
|
|
35
41
|
effective_from: '2024-04-09',
|
|
36
|
-
models: [
|
|
37
|
-
{ model_name: 'gpt-4-turbo', input_cost: 10 / M, output_cost: 30 / M },
|
|
38
|
-
],
|
|
42
|
+
models: [{ model_name: 'gpt-4-turbo', input_cost: 10 / M, output_cost: 30 / M }],
|
|
39
43
|
},
|
|
40
44
|
// ── 2024-05: GPT-4o launch ─────────────────────────────────────
|
|
41
45
|
{
|
|
@@ -204,43 +208,43 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
204
208
|
model_name: 'o4-mini-deep-research',
|
|
205
209
|
input_cost: 1.1 / M,
|
|
206
210
|
output_cost: 4.4 / M,
|
|
207
|
-
cache_read_cost: 0.275 / M
|
|
211
|
+
cache_read_cost: 0.275 / M,
|
|
208
212
|
},
|
|
209
213
|
{
|
|
210
214
|
model_name: 'gpt-4o-search-preview',
|
|
211
215
|
input_cost: 2.5 / M,
|
|
212
216
|
output_cost: 10 / M,
|
|
213
|
-
cache_read_cost: 1.25 / M
|
|
217
|
+
cache_read_cost: 1.25 / M,
|
|
214
218
|
},
|
|
215
219
|
{
|
|
216
220
|
model_name: 'gpt-4o-mini-search-preview',
|
|
217
221
|
input_cost: 2.5 / M,
|
|
218
222
|
output_cost: 10 / M,
|
|
219
|
-
cache_read_cost: 1.25 / M
|
|
223
|
+
cache_read_cost: 1.25 / M,
|
|
220
224
|
},
|
|
221
225
|
{
|
|
222
226
|
model_name: 'gpt-4o-audio-preview',
|
|
223
227
|
input_cost: 2.5 / M,
|
|
224
228
|
output_cost: 10 / M,
|
|
225
|
-
cache_read_cost: 1.25 / M
|
|
229
|
+
cache_read_cost: 1.25 / M,
|
|
226
230
|
},
|
|
227
231
|
{
|
|
228
232
|
model_name: 'gpt-4o-mini-audio-preview',
|
|
229
233
|
input_cost: 2.5 / M,
|
|
230
234
|
output_cost: 10 / M,
|
|
231
|
-
cache_read_cost: 1.25 / M
|
|
235
|
+
cache_read_cost: 1.25 / M,
|
|
232
236
|
},
|
|
233
237
|
{
|
|
234
238
|
model_name: 'gpt-4o-realtime-preview',
|
|
235
239
|
input_cost: 2.5 / M,
|
|
236
240
|
output_cost: 10 / M,
|
|
237
|
-
cache_read_cost: 1.25 / M
|
|
241
|
+
cache_read_cost: 1.25 / M,
|
|
238
242
|
},
|
|
239
243
|
{
|
|
240
244
|
model_name: 'gpt-4o-mini-realtime-preview',
|
|
241
245
|
input_cost: 2.5 / M,
|
|
242
246
|
output_cost: 10 / M,
|
|
243
|
-
cache_read_cost: 1.25 / M
|
|
247
|
+
cache_read_cost: 1.25 / M,
|
|
244
248
|
},
|
|
245
249
|
{ model_name: 'gpt-4o-transcribe', input_cost: 2.5 / M, output_cost: 10 / M },
|
|
246
250
|
{ model_name: 'gpt-4o-transcribe-diarize', input_cost: 2.5 / M, output_cost: 10 / M },
|
|
@@ -360,6 +364,122 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
360
364
|
{ model_name: 'tts-1-hd-1106', input_cost: 0, output_cost: 0 },
|
|
361
365
|
],
|
|
362
366
|
},
|
|
367
|
+
// ── 2026-02: GPT-5.3-Codex (no mainline gpt-5.3 exists) ────────
|
|
368
|
+
// Announced 2026-02-05, API access 2026-02-24 per changelog.
|
|
369
|
+
// Source: pricing + models pages. Retrieved 2026-06-12.
|
|
370
|
+
{
|
|
371
|
+
name: 'openai-2026-02',
|
|
372
|
+
version: '2026-02',
|
|
373
|
+
effective_from: '2026-02-24',
|
|
374
|
+
models: [
|
|
375
|
+
{
|
|
376
|
+
model_name: 'gpt-5.3-codex',
|
|
377
|
+
input_cost: 1.75 / M,
|
|
378
|
+
output_cost: 14 / M,
|
|
379
|
+
cache_read_cost: 0.175 / M,
|
|
380
|
+
batch_input_cost: 0.875 / M,
|
|
381
|
+
batch_output_cost: 7 / M,
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
},
|
|
385
|
+
// ── 2026-03-05: GPT-5.4 + GPT-5.4 Pro launch ───────────────────
|
|
386
|
+
// gpt-5.4-pro prompts >272k tokens bill 2x input / 1.5x output.
|
|
387
|
+
// Source: pricing page + changelog; corroborated by TechCrunch
|
|
388
|
+
// 2026-03-05 launch coverage. Retrieved 2026-06-12.
|
|
389
|
+
{
|
|
390
|
+
name: 'openai-2026-03',
|
|
391
|
+
version: '2026-03-05',
|
|
392
|
+
effective_from: '2026-03-05',
|
|
393
|
+
models: [
|
|
394
|
+
{
|
|
395
|
+
model_name: 'gpt-5.4',
|
|
396
|
+
input_cost: 2.5 / M,
|
|
397
|
+
output_cost: 15 / M,
|
|
398
|
+
cache_read_cost: 0.25 / M,
|
|
399
|
+
batch_input_cost: 1.25 / M,
|
|
400
|
+
batch_output_cost: 7.5 / M,
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
model_name: 'gpt-5.4-pro',
|
|
404
|
+
input_cost: 30 / M,
|
|
405
|
+
output_cost: 180 / M,
|
|
406
|
+
batch_input_cost: 15 / M,
|
|
407
|
+
batch_output_cost: 90 / M,
|
|
408
|
+
context_threshold: 272_000,
|
|
409
|
+
extended_input_cost: 60 / M,
|
|
410
|
+
extended_output_cost: 270 / M,
|
|
411
|
+
},
|
|
412
|
+
],
|
|
413
|
+
},
|
|
414
|
+
// ── 2026-03-17: GPT-5.4 mini + nano ────────────────────────────
|
|
415
|
+
// Source: pricing page + changelog. Retrieved 2026-06-12.
|
|
416
|
+
{
|
|
417
|
+
name: 'openai-2026-03-mini',
|
|
418
|
+
version: '2026-03-17',
|
|
419
|
+
effective_from: '2026-03-17',
|
|
420
|
+
models: [
|
|
421
|
+
{
|
|
422
|
+
model_name: 'gpt-5.4-mini',
|
|
423
|
+
input_cost: 0.75 / M,
|
|
424
|
+
output_cost: 4.5 / M,
|
|
425
|
+
cache_read_cost: 0.075 / M,
|
|
426
|
+
batch_input_cost: 0.375 / M,
|
|
427
|
+
batch_output_cost: 2.25 / M,
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
model_name: 'gpt-5.4-nano',
|
|
431
|
+
input_cost: 0.2 / M,
|
|
432
|
+
output_cost: 1.25 / M,
|
|
433
|
+
cache_read_cost: 0.02 / M,
|
|
434
|
+
batch_input_cost: 0.1 / M,
|
|
435
|
+
batch_output_cost: 0.625 / M,
|
|
436
|
+
},
|
|
437
|
+
],
|
|
438
|
+
},
|
|
439
|
+
// ── 2026-04-24: GPT-5.5 family (API; ChatGPT 04-23) ────────────
|
|
440
|
+
// gpt-5.5 prompts >272k tokens bill 2x input / 1.5x output;
|
|
441
|
+
// gpt-5.5-pro has no cached-input discount. Source: pricing +
|
|
442
|
+
// models pages + changelog. Retrieved 2026-06-12.
|
|
443
|
+
{
|
|
444
|
+
name: 'openai-2026-04',
|
|
445
|
+
version: '2026-04-24',
|
|
446
|
+
effective_from: '2026-04-24',
|
|
447
|
+
models: [
|
|
448
|
+
{
|
|
449
|
+
model_name: 'gpt-5.5',
|
|
450
|
+
input_cost: 5 / M,
|
|
451
|
+
output_cost: 30 / M,
|
|
452
|
+
cache_read_cost: 0.5 / M,
|
|
453
|
+
batch_input_cost: 2.5 / M,
|
|
454
|
+
batch_output_cost: 15 / M,
|
|
455
|
+
context_threshold: 272_000,
|
|
456
|
+
extended_input_cost: 10 / M,
|
|
457
|
+
extended_output_cost: 45 / M,
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
model_name: 'gpt-5.5-pro',
|
|
461
|
+
input_cost: 30 / M,
|
|
462
|
+
output_cost: 180 / M,
|
|
463
|
+
batch_input_cost: 15 / M,
|
|
464
|
+
batch_output_cost: 90 / M,
|
|
465
|
+
},
|
|
466
|
+
],
|
|
467
|
+
},
|
|
468
|
+
// ── 2026-05-07: GPT-5.5-Cyber (limited preview) ────────────────
|
|
469
|
+
// Source: pricing page. Retrieved 2026-06-12.
|
|
470
|
+
{
|
|
471
|
+
name: 'openai-2026-05',
|
|
472
|
+
version: '2026-05-07',
|
|
473
|
+
effective_from: '2026-05-07',
|
|
474
|
+
models: [
|
|
475
|
+
{
|
|
476
|
+
model_name: 'gpt-5.5-cyber',
|
|
477
|
+
input_cost: 20 / M,
|
|
478
|
+
output_cost: 120 / M,
|
|
479
|
+
cache_read_cost: 2 / M,
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
},
|
|
363
483
|
],
|
|
364
484
|
model_ids: [
|
|
365
485
|
// ── GPT-4 dated variants ────────────────────────────────────────
|
|
@@ -368,7 +488,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
368
488
|
family: 'gpt-4',
|
|
369
489
|
kind: 'chat',
|
|
370
490
|
release_date: '2023-06-13',
|
|
371
|
-
shutdown_date:
|
|
491
|
+
shutdown_date: '2026-10-23',
|
|
372
492
|
pricing_snapshot: 'openai-2023-06',
|
|
373
493
|
},
|
|
374
494
|
{
|
|
@@ -384,7 +504,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
384
504
|
family: 'gpt-4',
|
|
385
505
|
kind: 'chat',
|
|
386
506
|
release_date: '2023-11-06',
|
|
387
|
-
shutdown_date:
|
|
507
|
+
shutdown_date: '2026-10-23',
|
|
388
508
|
pricing_snapshot: 'openai-2023-06',
|
|
389
509
|
},
|
|
390
510
|
{
|
|
@@ -401,7 +521,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
401
521
|
family: 'gpt-4-turbo',
|
|
402
522
|
kind: 'chat',
|
|
403
523
|
release_date: '2024-04-09',
|
|
404
|
-
shutdown_date:
|
|
524
|
+
shutdown_date: '2026-10-23',
|
|
405
525
|
pricing_snapshot: 'openai-2024-04',
|
|
406
526
|
},
|
|
407
527
|
// ── GPT-3.5 Turbo dated variants ────────────────────────────────
|
|
@@ -410,7 +530,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
410
530
|
family: 'gpt-3.5-turbo',
|
|
411
531
|
kind: 'chat',
|
|
412
532
|
release_date: '2024-01-25',
|
|
413
|
-
shutdown_date:
|
|
533
|
+
shutdown_date: '2026-10-23',
|
|
414
534
|
pricing_snapshot: 'openai-2023-06',
|
|
415
535
|
},
|
|
416
536
|
{
|
|
@@ -443,7 +563,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
443
563
|
family: 'gpt-4o',
|
|
444
564
|
kind: 'chat',
|
|
445
565
|
release_date: '2024-05-13',
|
|
446
|
-
shutdown_date:
|
|
566
|
+
shutdown_date: '2026-10-23',
|
|
447
567
|
pricing_snapshot: 'openai-2024-05',
|
|
448
568
|
},
|
|
449
569
|
{
|
|
@@ -485,7 +605,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
485
605
|
family: 'o1',
|
|
486
606
|
kind: 'reasoning',
|
|
487
607
|
release_date: '2024-12-17',
|
|
488
|
-
shutdown_date:
|
|
608
|
+
shutdown_date: '2026-10-23',
|
|
489
609
|
pricing_snapshot: 'openai-2024-12',
|
|
490
610
|
},
|
|
491
611
|
// ── o1-pro dated variants ───────────────────────────────────────
|
|
@@ -494,7 +614,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
494
614
|
family: 'o1-pro',
|
|
495
615
|
kind: 'reasoning',
|
|
496
616
|
release_date: '2025-03-19',
|
|
497
|
-
shutdown_date:
|
|
617
|
+
shutdown_date: '2026-10-23',
|
|
498
618
|
pricing_snapshot: 'openai-2025-03',
|
|
499
619
|
},
|
|
500
620
|
// ── o3-mini dated variants ──────────────────────────────────────
|
|
@@ -503,7 +623,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
503
623
|
family: 'o3-mini',
|
|
504
624
|
kind: 'reasoning',
|
|
505
625
|
release_date: '2025-01-31',
|
|
506
|
-
shutdown_date:
|
|
626
|
+
shutdown_date: '2026-10-23',
|
|
507
627
|
pricing_snapshot: 'openai-2025-01',
|
|
508
628
|
},
|
|
509
629
|
// ── GPT-4.1 dated variants ─────────────────────────────────────
|
|
@@ -528,7 +648,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
528
648
|
family: 'gpt-4.1-nano',
|
|
529
649
|
kind: 'chat',
|
|
530
650
|
release_date: '2025-04-14',
|
|
531
|
-
shutdown_date:
|
|
651
|
+
shutdown_date: '2026-10-23',
|
|
532
652
|
pricing_snapshot: 'openai-2025-04',
|
|
533
653
|
},
|
|
534
654
|
// ── o3 dated variants ───────────────────────────────────────────
|
|
@@ -546,7 +666,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
546
666
|
family: 'o4-mini',
|
|
547
667
|
kind: 'reasoning',
|
|
548
668
|
release_date: '2025-04-16',
|
|
549
|
-
shutdown_date:
|
|
669
|
+
shutdown_date: '2026-10-23',
|
|
550
670
|
pricing_snapshot: 'openai-2025-04',
|
|
551
671
|
},
|
|
552
672
|
// ── o4-mini deep research dated variants ────────────────────────
|
|
@@ -555,7 +675,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
555
675
|
family: 'o4-mini-deep-research',
|
|
556
676
|
kind: 'reasoning',
|
|
557
677
|
release_date: '2025-06-26',
|
|
558
|
-
shutdown_date:
|
|
678
|
+
shutdown_date: '2026-07-23',
|
|
559
679
|
pricing_snapshot: 'openai-2025-06',
|
|
560
680
|
},
|
|
561
681
|
// ── GPT-4o search/audio/realtime/transcribe/TTS dated variants ──
|
|
@@ -564,7 +684,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
564
684
|
family: 'gpt-4o-search-preview',
|
|
565
685
|
kind: 'chat',
|
|
566
686
|
release_date: '2025-06-26',
|
|
567
|
-
shutdown_date:
|
|
687
|
+
shutdown_date: '2026-07-23',
|
|
568
688
|
pricing_snapshot: 'openai-2025-06',
|
|
569
689
|
},
|
|
570
690
|
{
|
|
@@ -572,7 +692,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
572
692
|
family: 'gpt-4o-mini-search-preview',
|
|
573
693
|
kind: 'chat',
|
|
574
694
|
release_date: '2025-06-26',
|
|
575
|
-
shutdown_date:
|
|
695
|
+
shutdown_date: '2026-07-23',
|
|
576
696
|
pricing_snapshot: 'openai-2025-06',
|
|
577
697
|
},
|
|
578
698
|
{
|
|
@@ -644,7 +764,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
644
764
|
family: 'gpt-4o-mini-tts',
|
|
645
765
|
kind: 'chat',
|
|
646
766
|
release_date: '2025-06-26',
|
|
647
|
-
shutdown_date:
|
|
767
|
+
shutdown_date: '2026-07-23',
|
|
648
768
|
pricing_snapshot: 'openai-2025-06',
|
|
649
769
|
},
|
|
650
770
|
{
|
|
@@ -669,7 +789,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
669
789
|
family: 'gpt-audio-mini',
|
|
670
790
|
kind: 'chat',
|
|
671
791
|
release_date: '2025-10-06',
|
|
672
|
-
shutdown_date:
|
|
792
|
+
shutdown_date: '2026-07-23',
|
|
673
793
|
pricing_snapshot: 'openai-2025-06',
|
|
674
794
|
},
|
|
675
795
|
{
|
|
@@ -693,7 +813,7 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
693
813
|
family: 'gpt-realtime-mini',
|
|
694
814
|
kind: 'chat',
|
|
695
815
|
release_date: '2025-10-06',
|
|
696
|
-
shutdown_date:
|
|
816
|
+
shutdown_date: '2026-07-23',
|
|
697
817
|
pricing_snapshot: 'openai-2025-06',
|
|
698
818
|
},
|
|
699
819
|
{
|
|
@@ -712,7 +832,24 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
712
832
|
release_date: '2025-08-07',
|
|
713
833
|
shutdown_date: null,
|
|
714
834
|
pricing_snapshot: 'openai-2025-08',
|
|
715
|
-
|
|
835
|
+
},
|
|
836
|
+
// chat-latest/codex variants split out: they shut down 2026-07-23
|
|
837
|
+
// while gpt-5 itself stays (deprecations page, announced 2026-04-22)
|
|
838
|
+
{
|
|
839
|
+
model_id: 'gpt-5-chat-latest',
|
|
840
|
+
family: 'gpt-5',
|
|
841
|
+
kind: 'chat',
|
|
842
|
+
release_date: '2025-08-07',
|
|
843
|
+
shutdown_date: '2026-07-23',
|
|
844
|
+
pricing_snapshot: 'openai-2025-08',
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
model_id: 'gpt-5-codex',
|
|
848
|
+
family: 'gpt-5',
|
|
849
|
+
kind: 'chat',
|
|
850
|
+
release_date: '2025-08-07',
|
|
851
|
+
shutdown_date: '2026-07-23',
|
|
852
|
+
pricing_snapshot: 'openai-2025-08',
|
|
716
853
|
},
|
|
717
854
|
{
|
|
718
855
|
model_id: 'gpt-5-search-api-2025-10-14',
|
|
@@ -754,7 +891,25 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
754
891
|
release_date: '2025-11-13',
|
|
755
892
|
shutdown_date: null,
|
|
756
893
|
pricing_snapshot: 'openai-2025-11',
|
|
757
|
-
|
|
894
|
+
},
|
|
895
|
+
// chat-latest/codex variants split out: they shut down 2026-07-23
|
|
896
|
+
// while gpt-5.1 itself stays (deprecations page, announced 2026-04-22)
|
|
897
|
+
{
|
|
898
|
+
model_id: 'gpt-5.1-chat-latest',
|
|
899
|
+
family: 'gpt-5.1',
|
|
900
|
+
kind: 'chat',
|
|
901
|
+
release_date: '2025-11-13',
|
|
902
|
+
shutdown_date: '2026-07-23',
|
|
903
|
+
pricing_snapshot: 'openai-2025-11',
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
model_id: 'gpt-5.1-codex',
|
|
907
|
+
family: 'gpt-5.1',
|
|
908
|
+
kind: 'chat',
|
|
909
|
+
release_date: '2025-11-13',
|
|
910
|
+
shutdown_date: '2026-07-23',
|
|
911
|
+
pricing_snapshot: 'openai-2025-11',
|
|
912
|
+
aliases: ['gpt-5.1-codex-max', 'gpt-5.1-codex-mini'],
|
|
758
913
|
},
|
|
759
914
|
// ── GPT-5.2 dated variants ─────────────────────────────────────
|
|
760
915
|
{
|
|
@@ -764,7 +919,24 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
764
919
|
release_date: '2025-12-11',
|
|
765
920
|
shutdown_date: null,
|
|
766
921
|
pricing_snapshot: 'openai-2025-12',
|
|
767
|
-
|
|
922
|
+
},
|
|
923
|
+
// split out: gpt-5.2-chat-latest shuts down 2026-08-10 (announced
|
|
924
|
+
// 2026-05-08), gpt-5.2-codex 2026-07-23 (announced 2026-04-22)
|
|
925
|
+
{
|
|
926
|
+
model_id: 'gpt-5.2-chat-latest',
|
|
927
|
+
family: 'gpt-5.2',
|
|
928
|
+
kind: 'chat',
|
|
929
|
+
release_date: '2025-12-11',
|
|
930
|
+
shutdown_date: '2026-08-10',
|
|
931
|
+
pricing_snapshot: 'openai-2025-12',
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
model_id: 'gpt-5.2-codex',
|
|
935
|
+
family: 'gpt-5.2',
|
|
936
|
+
kind: 'chat',
|
|
937
|
+
release_date: '2026-01-14',
|
|
938
|
+
shutdown_date: '2026-07-23',
|
|
939
|
+
pricing_snapshot: 'openai-2025-12',
|
|
768
940
|
},
|
|
769
941
|
{
|
|
770
942
|
model_id: 'gpt-5.2-pro-2025-12-11',
|
|
@@ -774,6 +946,91 @@ export const OPENAI_PRICING_DATASET = {
|
|
|
774
946
|
shutdown_date: null,
|
|
775
947
|
pricing_snapshot: 'openai-2025-12',
|
|
776
948
|
},
|
|
949
|
+
// ── GPT-5.3 (codex-only generation, no mainline gpt-5.3) ───────
|
|
950
|
+
{
|
|
951
|
+
model_id: 'gpt-5.3-codex',
|
|
952
|
+
family: 'gpt-5.3-codex',
|
|
953
|
+
kind: 'chat',
|
|
954
|
+
release_date: '2026-02-24',
|
|
955
|
+
shutdown_date: null,
|
|
956
|
+
pricing_snapshot: 'openai-2026-02',
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
model_id: 'gpt-5.3-chat-latest',
|
|
960
|
+
family: 'gpt-5.3-codex',
|
|
961
|
+
kind: 'chat',
|
|
962
|
+
release_date: '2026-03-16',
|
|
963
|
+
shutdown_date: '2026-08-10',
|
|
964
|
+
pricing_snapshot: 'openai-2026-02',
|
|
965
|
+
},
|
|
966
|
+
// ── GPT-5.4 dated variants ─────────────────────────────────────
|
|
967
|
+
{
|
|
968
|
+
model_id: 'gpt-5.4-2026-03-05',
|
|
969
|
+
family: 'gpt-5.4',
|
|
970
|
+
kind: 'chat',
|
|
971
|
+
release_date: '2026-03-05',
|
|
972
|
+
shutdown_date: null,
|
|
973
|
+
pricing_snapshot: 'openai-2026-03',
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
model_id: 'gpt-5.4-pro-2026-03-05',
|
|
977
|
+
family: 'gpt-5.4-pro',
|
|
978
|
+
kind: 'chat',
|
|
979
|
+
release_date: '2026-03-05',
|
|
980
|
+
shutdown_date: null,
|
|
981
|
+
pricing_snapshot: 'openai-2026-03',
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
model_id: 'gpt-5.4-mini-2026-03-17',
|
|
985
|
+
family: 'gpt-5.4-mini',
|
|
986
|
+
kind: 'chat',
|
|
987
|
+
release_date: '2026-03-17',
|
|
988
|
+
shutdown_date: null,
|
|
989
|
+
pricing_snapshot: 'openai-2026-03-mini',
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
model_id: 'gpt-5.4-nano-2026-03-17',
|
|
993
|
+
family: 'gpt-5.4-nano',
|
|
994
|
+
kind: 'chat',
|
|
995
|
+
release_date: '2026-03-17',
|
|
996
|
+
shutdown_date: null,
|
|
997
|
+
pricing_snapshot: 'openai-2026-03-mini',
|
|
998
|
+
},
|
|
999
|
+
// ── GPT-5.5 dated variants ─────────────────────────────────────
|
|
1000
|
+
{
|
|
1001
|
+
model_id: 'gpt-5.5-2026-04-23',
|
|
1002
|
+
family: 'gpt-5.5',
|
|
1003
|
+
kind: 'chat',
|
|
1004
|
+
release_date: '2026-04-24',
|
|
1005
|
+
shutdown_date: null,
|
|
1006
|
+
pricing_snapshot: 'openai-2026-04',
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
model_id: 'gpt-5.5-pro-2026-04-23',
|
|
1010
|
+
family: 'gpt-5.5-pro',
|
|
1011
|
+
kind: 'chat',
|
|
1012
|
+
release_date: '2026-04-24',
|
|
1013
|
+
shutdown_date: null,
|
|
1014
|
+
pricing_snapshot: 'openai-2026-04',
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
model_id: 'gpt-5.5-cyber',
|
|
1018
|
+
family: 'gpt-5.5-cyber',
|
|
1019
|
+
kind: 'chat',
|
|
1020
|
+
release_date: '2026-05-07',
|
|
1021
|
+
shutdown_date: null,
|
|
1022
|
+
pricing_snapshot: 'openai-2026-05',
|
|
1023
|
+
},
|
|
1024
|
+
// rolling alias to the current ChatGPT Instant model (changelog
|
|
1025
|
+
// 2026-05-28); priced identically to gpt-5.5
|
|
1026
|
+
{
|
|
1027
|
+
model_id: 'chat-latest',
|
|
1028
|
+
family: 'gpt-5.5',
|
|
1029
|
+
kind: 'chat',
|
|
1030
|
+
release_date: '2026-05-28',
|
|
1031
|
+
shutdown_date: null,
|
|
1032
|
+
pricing_snapshot: 'openai-2026-04',
|
|
1033
|
+
},
|
|
777
1034
|
// ── Moderation dated variants ───────────────────────────────────
|
|
778
1035
|
{
|
|
779
1036
|
model_id: 'omni-moderation-2024-09-26',
|