@warmdrift/kgauto-check 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +50 -11
- package/dist/bin.js +19 -38
- package/dist/chunk-6ZBEABKR.js +4636 -0
- package/dist/index.d.ts +260 -14
- package/dist/index.js +13 -1
- package/package.json +5 -4
- package/dist/chunk-NHTVNYK2.js +0 -477
|
@@ -0,0 +1,4636 @@
|
|
|
1
|
+
// src/extract.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var CallSiteSchema = z.object({
|
|
4
|
+
/** Agent-chosen stable label, e.g. "api/summarize.ts:42" or "hunt loop". */
|
|
5
|
+
id: z.string().min(1),
|
|
6
|
+
/** Model id exactly as configured in the project. */
|
|
7
|
+
model: z.string().min(1),
|
|
8
|
+
/** How the model id is selected at this site. */
|
|
9
|
+
modelSelection: z.enum(["hardcoded", "config", "env", "dynamic"]).optional(),
|
|
10
|
+
/**
|
|
11
|
+
* 0.4.0 (Amendment B): where the request is served, when the code shows it — the
|
|
12
|
+
* provider's own API, or a cloud platform that serves the provider's models on its
|
|
13
|
+
* own lifecycle schedule. Omit when you cannot tell.
|
|
14
|
+
*/
|
|
15
|
+
platform: z.enum(["provider-api", "vertex", "bedrock", "azure", "other"]).optional(),
|
|
16
|
+
/**
|
|
17
|
+
* Best-guess intent archetype from kgauto's dialect (ask, classify,
|
|
18
|
+
* critique, extract, generate, hunt, plan, summarize, transform).
|
|
19
|
+
* Free-form here; validated softly against the roster's dialect.
|
|
20
|
+
*/
|
|
21
|
+
archetype: z.string().optional(),
|
|
22
|
+
/** Typical input size in tokens (estimate is fine; ~4 chars/token). */
|
|
23
|
+
estInputTokens: z.number().nonnegative().optional(),
|
|
24
|
+
/** Worst-case input size in tokens, if larger than typical. */
|
|
25
|
+
maxInputTokens: z.number().nonnegative().optional(),
|
|
26
|
+
/** Typical output size in tokens. */
|
|
27
|
+
estOutputTokens: z.number().nonnegative().optional(),
|
|
28
|
+
/** Number of tool definitions sent with the call. */
|
|
29
|
+
toolCount: z.number().int().nonnegative().optional(),
|
|
30
|
+
/** Does the site rely on the model making parallel tool calls? */
|
|
31
|
+
usesParallelToolCalls: z.boolean().optional(),
|
|
32
|
+
/** Does the site parse the response as JSON / expect schema output? */
|
|
33
|
+
expectsStructuredOutput: z.boolean().optional(),
|
|
34
|
+
streaming: z.boolean().optional(),
|
|
35
|
+
/** What happens when the call fails. */
|
|
36
|
+
retry: z.enum(["none", "same-model", "fallback-chain", "unknown"]).optional(),
|
|
37
|
+
/** Fallback model ids, when retry is 'fallback-chain'. */
|
|
38
|
+
fallbackModels: z.array(z.string()).optional(),
|
|
39
|
+
/** Rough call volume, if inferable (cron cadence, traffic, logs). */
|
|
40
|
+
estCallsPerMonth: z.number().positive().optional(),
|
|
41
|
+
/** Anything structural the agent thinks matters. Never prompt text. */
|
|
42
|
+
notes: z.string().max(500).optional()
|
|
43
|
+
});
|
|
44
|
+
var ModelMentionSchema = z.object({
|
|
45
|
+
/** Model id exactly as written in the project. */
|
|
46
|
+
model: z.string().min(1),
|
|
47
|
+
/** Where it is written, e.g. "src/config/models.ts:14". */
|
|
48
|
+
where: z.string().min(1),
|
|
49
|
+
modelSelection: z.enum(["hardcoded", "config", "env", "dynamic"]).optional(),
|
|
50
|
+
/**
|
|
51
|
+
* 0.4.0 (Amendment B): where the request is served, when the code shows it — the
|
|
52
|
+
* provider's own API, or a cloud platform that serves the provider's models on its
|
|
53
|
+
* own lifecycle schedule. Omit when you cannot tell.
|
|
54
|
+
*/
|
|
55
|
+
platform: z.enum(["provider-api", "vertex", "bedrock", "azure", "other"]).optional(),
|
|
56
|
+
notes: z.string().max(500).optional()
|
|
57
|
+
});
|
|
58
|
+
var ExtractSchema = z.object({
|
|
59
|
+
project: z.object({
|
|
60
|
+
name: z.string().min(1),
|
|
61
|
+
description: z.string().max(500).optional()
|
|
62
|
+
}),
|
|
63
|
+
/** May be empty (0.4.0): a project with no literal call site still gets a card. */
|
|
64
|
+
callSites: z.array(CallSiteSchema),
|
|
65
|
+
/** Model ids no call site carries (0.4.0). */
|
|
66
|
+
models: z.array(ModelMentionSchema).optional(),
|
|
67
|
+
notes: z.string().max(1e3).optional()
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// src/version.ts
|
|
71
|
+
import { readFileSync } from "fs";
|
|
72
|
+
import { fileURLToPath } from "url";
|
|
73
|
+
import { dirname, join } from "path";
|
|
74
|
+
var CHECK_VERSION = (() => {
|
|
75
|
+
try {
|
|
76
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
77
|
+
return JSON.parse(readFileSync(join(here, "../package.json"), "utf8")).version;
|
|
78
|
+
} catch {
|
|
79
|
+
return "0.0.0-unknown";
|
|
80
|
+
}
|
|
81
|
+
})();
|
|
82
|
+
|
|
83
|
+
// src/lifecycle-ledger.ts
|
|
84
|
+
var LEDGER_SOURCES = [
|
|
85
|
+
{
|
|
86
|
+
"provider": "anthropic",
|
|
87
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
88
|
+
"readAt": "2026-11-12T06:20:55Z",
|
|
89
|
+
"sha256": "cf4dc6596cae93bc850eb93f6f6d4d1f4df43162bffb6dde54623966dba6c2e4"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"provider": "openai",
|
|
93
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
94
|
+
"readAt": "2026-11-12T06:20:56Z",
|
|
95
|
+
"sha256": "1db77cfb953de16420d3142560c734b2a52195050988ff9332030c6c7074d8df"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"provider": "google",
|
|
99
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
100
|
+
"readAt": "2026-11-12T06:20:56Z",
|
|
101
|
+
"sha256": "6377f28e79980a126c9c338ab0b38a953280f2db56952c920f415891b60252b9"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"provider": "google",
|
|
105
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
106
|
+
"readAt": "2026-11-12T06:20:56Z",
|
|
107
|
+
"sha256": "7ba0452c1e60d511c5ffdba22fa03cfe404fb0af4b9eaf8d87aa0b1afe17a005"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"provider": "deepseek",
|
|
111
|
+
"url": "https://api-docs.deepseek.com/updates",
|
|
112
|
+
"readAt": "2026-11-12T06:20:58Z",
|
|
113
|
+
"sha256": "87061f0b988b0c03ed46107bcd8d36228049f83359257b34ce58af821466e6e7"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"provider": "deepseek",
|
|
117
|
+
"url": "https://api-docs.deepseek.com/news",
|
|
118
|
+
"readAt": "2026-11-12T06:20:58Z",
|
|
119
|
+
"sha256": "2753c4e803b3be1943e8bbc9ad661f13e447b6293fbc92908b0a1af7781f8de8"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"provider": "openai",
|
|
123
|
+
"url": "https://developers.openai.com/api/docs/models/gpt-4o.md",
|
|
124
|
+
"readAt": "2026-11-12T06:23:28Z",
|
|
125
|
+
"sha256": "22950725c1d75a0098d1c5f046f10c946ffdd41e76d37d14b44e80a6dab8abee"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"provider": "openai",
|
|
129
|
+
"url": "https://developers.openai.com/api/docs/models/gpt-4o-mini.md",
|
|
130
|
+
"readAt": "2026-11-12T06:23:28Z",
|
|
131
|
+
"sha256": "93e14f848cf90f35dd77a270998a9b2b440ef08d724da11947b0dee26179f09b"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"provider": "openai",
|
|
135
|
+
"url": "https://developers.openai.com/api/docs/models/gpt-4.1.md",
|
|
136
|
+
"readAt": "2026-11-12T06:23:29Z",
|
|
137
|
+
"sha256": "baa0f3aa720c9ab9faf3d060d56549ecc6273dd366336d7269c92bebe95b3389"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"provider": "openai",
|
|
141
|
+
"url": "https://developers.openai.com/api/docs/models/gpt-4.1-mini.md",
|
|
142
|
+
"readAt": "2026-11-12T06:23:29Z",
|
|
143
|
+
"sha256": "06d8ad50f5d80f51a437dda8aa391e52e83ccf18672347a1d572e33b565754a4"
|
|
144
|
+
}
|
|
145
|
+
];
|
|
146
|
+
var LEDGER = [
|
|
147
|
+
{
|
|
148
|
+
"id": "claude-mythos-preview",
|
|
149
|
+
"provider": "anthropic",
|
|
150
|
+
"word": "deprecated",
|
|
151
|
+
"pageWord": "Deprecated",
|
|
152
|
+
"announced": "2026-06-09",
|
|
153
|
+
"dateText": "To be announced",
|
|
154
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
155
|
+
"readOn": "2026-11-12",
|
|
156
|
+
"quote": "| claude-mythos-preview | Deprecated | June 9, 2026 | To be announced |"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"id": "claude-opus-4-1-20250805",
|
|
160
|
+
"provider": "anthropic",
|
|
161
|
+
"word": "retired",
|
|
162
|
+
"pageWord": "Retired",
|
|
163
|
+
"announced": "2026-06-05",
|
|
164
|
+
"shutdown": "2026-08-05",
|
|
165
|
+
"dateText": "August 5, 2026",
|
|
166
|
+
"replacement": "claude-opus-4-8",
|
|
167
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
168
|
+
"readOn": "2026-11-12",
|
|
169
|
+
"quote": "| claude-opus-4-1-20250805 | Retired | June 5, 2026 | August 5, 2026 |"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "claude-opus-4-20250514",
|
|
173
|
+
"provider": "anthropic",
|
|
174
|
+
"word": "retired",
|
|
175
|
+
"pageWord": "Retired",
|
|
176
|
+
"announced": "2026-04-14",
|
|
177
|
+
"shutdown": "2026-06-15",
|
|
178
|
+
"dateText": "June 15, 2026",
|
|
179
|
+
"replacement": "claude-opus-4-8",
|
|
180
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
181
|
+
"readOn": "2026-11-12",
|
|
182
|
+
"quote": "| claude-opus-4-20250514 | Retired | April 14, 2026 | June 15, 2026 |"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "claude-sonnet-4-5-20250929",
|
|
186
|
+
"provider": "anthropic",
|
|
187
|
+
"word": "deprecated",
|
|
188
|
+
"pageWord": "Deprecated",
|
|
189
|
+
"announced": "2026-09-30",
|
|
190
|
+
"shutdown": "2026-11-30",
|
|
191
|
+
"dateText": "November 30, 2026",
|
|
192
|
+
"replacement": "claude-sonnet-5-5",
|
|
193
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
194
|
+
"readOn": "2026-11-12",
|
|
195
|
+
"quote": "| claude-sonnet-4-5-20250929 | Deprecated | September 30, 2026 | November 30, 2026 |"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "claude-sonnet-4-20250514",
|
|
199
|
+
"provider": "anthropic",
|
|
200
|
+
"word": "retired",
|
|
201
|
+
"pageWord": "Retired",
|
|
202
|
+
"announced": "2026-04-14",
|
|
203
|
+
"shutdown": "2026-06-15",
|
|
204
|
+
"dateText": "June 15, 2026",
|
|
205
|
+
"replacement": "claude-sonnet-5-5",
|
|
206
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
207
|
+
"readOn": "2026-11-12",
|
|
208
|
+
"quote": "| claude-sonnet-4-20250514 | Retired | April 14, 2026 | June 15, 2026 |"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"id": "claude-3-7-sonnet-20250219",
|
|
212
|
+
"provider": "anthropic",
|
|
213
|
+
"word": "retired",
|
|
214
|
+
"pageWord": "Retired",
|
|
215
|
+
"announced": "2025-10-28",
|
|
216
|
+
"shutdown": "2026-02-19",
|
|
217
|
+
"dateText": "February 19, 2026",
|
|
218
|
+
"replacement": "claude-sonnet-5-5",
|
|
219
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
220
|
+
"readOn": "2026-11-12",
|
|
221
|
+
"quote": "| claude-3-7-sonnet-20250219 | Retired | October 28, 2025 | February 19, 2026 |"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"id": "claude-3-5-haiku-20241022",
|
|
225
|
+
"provider": "anthropic",
|
|
226
|
+
"word": "retired",
|
|
227
|
+
"pageWord": "Retired",
|
|
228
|
+
"announced": "2025-12-19",
|
|
229
|
+
"shutdown": "2026-02-19",
|
|
230
|
+
"dateText": "February 19, 2026",
|
|
231
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
232
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
233
|
+
"readOn": "2026-11-12",
|
|
234
|
+
"quote": "| claude-3-5-haiku-20241022 | Retired | December 19, 2025 | February 19, 2026 |"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "claude-3-haiku-20240307",
|
|
238
|
+
"provider": "anthropic",
|
|
239
|
+
"word": "retired",
|
|
240
|
+
"pageWord": "Retired",
|
|
241
|
+
"announced": "2026-02-19",
|
|
242
|
+
"shutdown": "2026-04-20",
|
|
243
|
+
"dateText": "April 20, 2026",
|
|
244
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
245
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
246
|
+
"readOn": "2026-11-12",
|
|
247
|
+
"quote": "| claude-3-haiku-20240307 | Retired | February 19, 2026 | April 20, 2026 |"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "claude-3-5-sonnet-20240620",
|
|
251
|
+
"provider": "anthropic",
|
|
252
|
+
"word": "retired",
|
|
253
|
+
"pageWord": "These models were retired October 28, 2025.",
|
|
254
|
+
"announced": "2025-08-13",
|
|
255
|
+
"shutdown": "2025-10-28",
|
|
256
|
+
"dateText": "October 28, 2025",
|
|
257
|
+
"replacement": "claude-sonnet-5-5",
|
|
258
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
259
|
+
"readOn": "2026-11-12",
|
|
260
|
+
"quote": "| October 28, 2025 | `claude-3-5-sonnet-20240620` | `claude-sonnet-5-5` |"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"id": "claude-3-5-sonnet-20241022",
|
|
264
|
+
"provider": "anthropic",
|
|
265
|
+
"word": "retired",
|
|
266
|
+
"pageWord": "These models were retired October 28, 2025.",
|
|
267
|
+
"announced": "2025-08-13",
|
|
268
|
+
"shutdown": "2025-10-28",
|
|
269
|
+
"dateText": "October 28, 2025",
|
|
270
|
+
"replacement": "claude-sonnet-5-5",
|
|
271
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
272
|
+
"readOn": "2026-11-12",
|
|
273
|
+
"quote": "| October 28, 2025 | `claude-3-5-sonnet-20241022` | `claude-sonnet-5-5` |"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"id": "claude-3-opus-20240229",
|
|
277
|
+
"provider": "anthropic",
|
|
278
|
+
"word": "retired",
|
|
279
|
+
"pageWord": "This model was retired January 5, 2026.",
|
|
280
|
+
"announced": "2025-06-30",
|
|
281
|
+
"shutdown": "2026-01-05",
|
|
282
|
+
"dateText": "January 5, 2026",
|
|
283
|
+
"replacement": "claude-opus-4-8",
|
|
284
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
285
|
+
"readOn": "2026-11-12",
|
|
286
|
+
"quote": "| January 5, 2026 | `claude-3-opus-20240229` | `claude-opus-4-8` |"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"id": "claude-2.0",
|
|
290
|
+
"provider": "anthropic",
|
|
291
|
+
"word": "retired",
|
|
292
|
+
"pageWord": "These models were retired July 21, 2025.",
|
|
293
|
+
"announced": "2025-01-21",
|
|
294
|
+
"shutdown": "2025-07-21",
|
|
295
|
+
"dateText": "July 21, 2025",
|
|
296
|
+
"replacement": "claude-opus-4-8",
|
|
297
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
298
|
+
"readOn": "2026-11-12",
|
|
299
|
+
"quote": "| July 21, 2025 | `claude-2.0` | `claude-opus-4-8` |"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "claude-2.1",
|
|
303
|
+
"provider": "anthropic",
|
|
304
|
+
"word": "retired",
|
|
305
|
+
"pageWord": "These models were retired July 21, 2025.",
|
|
306
|
+
"announced": "2025-01-21",
|
|
307
|
+
"shutdown": "2025-07-21",
|
|
308
|
+
"dateText": "July 21, 2025",
|
|
309
|
+
"replacement": "claude-opus-4-8",
|
|
310
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
311
|
+
"readOn": "2026-11-12",
|
|
312
|
+
"quote": "| July 21, 2025 | `claude-2.1` | `claude-opus-4-8` |"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"id": "claude-3-sonnet-20240229",
|
|
316
|
+
"provider": "anthropic",
|
|
317
|
+
"word": "retired",
|
|
318
|
+
"pageWord": "These models were retired July 21, 2025.",
|
|
319
|
+
"announced": "2025-01-21",
|
|
320
|
+
"shutdown": "2025-07-21",
|
|
321
|
+
"dateText": "July 21, 2025",
|
|
322
|
+
"replacement": "claude-sonnet-5-5",
|
|
323
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
324
|
+
"readOn": "2026-11-12",
|
|
325
|
+
"quote": "| July 21, 2025 | `claude-3-sonnet-20240229` | `claude-sonnet-5-5` |"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"id": "claude-1.0",
|
|
329
|
+
"provider": "anthropic",
|
|
330
|
+
"word": "retired",
|
|
331
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
332
|
+
"announced": "2024-09-04",
|
|
333
|
+
"shutdown": "2024-11-06",
|
|
334
|
+
"dateText": "November 6, 2024",
|
|
335
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
336
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
337
|
+
"readOn": "2026-11-12",
|
|
338
|
+
"quote": "| November 6, 2024 | `claude-1.0` | `claude-haiku-4-5-20251001` |"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"id": "claude-1.1",
|
|
342
|
+
"provider": "anthropic",
|
|
343
|
+
"word": "retired",
|
|
344
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
345
|
+
"announced": "2024-09-04",
|
|
346
|
+
"shutdown": "2024-11-06",
|
|
347
|
+
"dateText": "November 6, 2024",
|
|
348
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
349
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
350
|
+
"readOn": "2026-11-12",
|
|
351
|
+
"quote": "| November 6, 2024 | `claude-1.1` | `claude-haiku-4-5-20251001` |"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "claude-1.2",
|
|
355
|
+
"provider": "anthropic",
|
|
356
|
+
"word": "retired",
|
|
357
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
358
|
+
"announced": "2024-09-04",
|
|
359
|
+
"shutdown": "2024-11-06",
|
|
360
|
+
"dateText": "November 6, 2024",
|
|
361
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
362
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
363
|
+
"readOn": "2026-11-12",
|
|
364
|
+
"quote": "| November 6, 2024 | `claude-1.2` | `claude-haiku-4-5-20251001` |"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "claude-1.3",
|
|
368
|
+
"provider": "anthropic",
|
|
369
|
+
"word": "retired",
|
|
370
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
371
|
+
"announced": "2024-09-04",
|
|
372
|
+
"shutdown": "2024-11-06",
|
|
373
|
+
"dateText": "November 6, 2024",
|
|
374
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
375
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
376
|
+
"readOn": "2026-11-12",
|
|
377
|
+
"quote": "| November 6, 2024 | `claude-1.3` | `claude-haiku-4-5-20251001` |"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"id": "claude-instant-1.0",
|
|
381
|
+
"provider": "anthropic",
|
|
382
|
+
"word": "retired",
|
|
383
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
384
|
+
"announced": "2024-09-04",
|
|
385
|
+
"shutdown": "2024-11-06",
|
|
386
|
+
"dateText": "November 6, 2024",
|
|
387
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
388
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
389
|
+
"readOn": "2026-11-12",
|
|
390
|
+
"quote": "| November 6, 2024 | `claude-instant-1.0` | `claude-haiku-4-5-20251001` |"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "claude-instant-1.1",
|
|
394
|
+
"provider": "anthropic",
|
|
395
|
+
"word": "retired",
|
|
396
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
397
|
+
"announced": "2024-09-04",
|
|
398
|
+
"shutdown": "2024-11-06",
|
|
399
|
+
"dateText": "November 6, 2024",
|
|
400
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
401
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
402
|
+
"readOn": "2026-11-12",
|
|
403
|
+
"quote": "| November 6, 2024 | `claude-instant-1.1` | `claude-haiku-4-5-20251001` |"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"id": "claude-instant-1.2",
|
|
407
|
+
"provider": "anthropic",
|
|
408
|
+
"word": "retired",
|
|
409
|
+
"pageWord": "These models were retired November 6, 2024.",
|
|
410
|
+
"announced": "2024-09-04",
|
|
411
|
+
"shutdown": "2024-11-06",
|
|
412
|
+
"dateText": "November 6, 2024",
|
|
413
|
+
"replacement": "claude-haiku-4-5-20251001",
|
|
414
|
+
"url": "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
415
|
+
"readOn": "2026-11-12",
|
|
416
|
+
"quote": "| November 6, 2024 | `claude-instant-1.2` | `claude-haiku-4-5-20251001` |"
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"id": "gpt-image-2",
|
|
420
|
+
"provider": "openai",
|
|
421
|
+
"word": "deprecated",
|
|
422
|
+
"pageWord": "Upcoming deprecations: 2026-11-10: GPT Image 2",
|
|
423
|
+
"announced": "2026-11-10",
|
|
424
|
+
"shutdown": "2027-02-10",
|
|
425
|
+
"dateText": "February 10, 2027",
|
|
426
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
427
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
428
|
+
"readOn": "2026-11-12",
|
|
429
|
+
"quote": "| February 10, 2027 | `gpt-image-2` \\| `gpt-image-2-2026-04-21` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"id": "gpt-image-2-2026-04-21",
|
|
433
|
+
"provider": "openai",
|
|
434
|
+
"word": "deprecated",
|
|
435
|
+
"pageWord": "Upcoming deprecations: 2026-11-10: GPT Image 2",
|
|
436
|
+
"announced": "2026-11-10",
|
|
437
|
+
"shutdown": "2027-02-10",
|
|
438
|
+
"dateText": "February 10, 2027",
|
|
439
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
440
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
441
|
+
"readOn": "2026-11-12",
|
|
442
|
+
"quote": "| February 10, 2027 | `gpt-image-2` \\| `gpt-image-2-2026-04-21` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"id": "gpt-5.5-cyber-preview",
|
|
446
|
+
"provider": "openai",
|
|
447
|
+
"word": "deprecated",
|
|
448
|
+
"pageWord": "Upcoming deprecations: 2026-11-05: GPT-5.5-Cyber",
|
|
449
|
+
"announced": "2026-11-05",
|
|
450
|
+
"shutdown": "2027-02-01",
|
|
451
|
+
"dateText": "February 1, 2027",
|
|
452
|
+
"replacement": "The most capable cyber model available to you.",
|
|
453
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
454
|
+
"readOn": "2026-11-12",
|
|
455
|
+
"quote": "| February 1, 2027 | `gpt-5.5-cyber-preview` | The most capable cyber model available to you. |"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"id": "gpt-4o-2024-08-06",
|
|
459
|
+
"provider": "openai",
|
|
460
|
+
"word": "deprecated",
|
|
461
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
462
|
+
"announced": "2026-10-14",
|
|
463
|
+
"shutdown": "2027-01-14",
|
|
464
|
+
"dateText": "January 14, 2027",
|
|
465
|
+
"replacement": "gpt-6-luna",
|
|
466
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
467
|
+
"readOn": "2026-11-12",
|
|
468
|
+
"quote": "| January 14, 2027 | GPT-4o (`gpt-4o-2024-08-06`, `gpt-4o-2024-11-20`) | `gpt-6-luna` |"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"id": "gpt-4o-2024-11-20",
|
|
472
|
+
"provider": "openai",
|
|
473
|
+
"word": "deprecated",
|
|
474
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
475
|
+
"announced": "2026-10-14",
|
|
476
|
+
"shutdown": "2027-01-14",
|
|
477
|
+
"dateText": "January 14, 2027",
|
|
478
|
+
"replacement": "gpt-6-luna",
|
|
479
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
480
|
+
"readOn": "2026-11-12",
|
|
481
|
+
"quote": "| January 14, 2027 | GPT-4o (`gpt-4o-2024-08-06`, `gpt-4o-2024-11-20`) | `gpt-6-luna` |"
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"id": "gpt-4o",
|
|
485
|
+
"provider": "openai",
|
|
486
|
+
"word": "deprecated",
|
|
487
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
488
|
+
"announced": "2026-10-14",
|
|
489
|
+
"shutdown": "2027-01-14",
|
|
490
|
+
"dateText": "January 14, 2027",
|
|
491
|
+
"replacement": "gpt-6-luna",
|
|
492
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
493
|
+
"readOn": "2026-11-12",
|
|
494
|
+
"quote": "| January 14, 2027 | GPT-4o (`gpt-4o-2024-08-06`, `gpt-4o-2024-11-20`) | `gpt-6-luna` |",
|
|
495
|
+
"matchedBy": "display-name",
|
|
496
|
+
"alsoUrl": "https://developers.openai.com/api/docs/models/gpt-4o.md",
|
|
497
|
+
"alsoQuote": "Status: Deprecated",
|
|
498
|
+
"alsoReadOn": "2026-11-12"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"id": "gpt-4o-mini-2024-07-18",
|
|
502
|
+
"provider": "openai",
|
|
503
|
+
"word": "deprecated",
|
|
504
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
505
|
+
"announced": "2026-10-14",
|
|
506
|
+
"shutdown": "2027-01-14",
|
|
507
|
+
"dateText": "January 14, 2027",
|
|
508
|
+
"replacement": "gpt-6-luna",
|
|
509
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
510
|
+
"readOn": "2026-11-12",
|
|
511
|
+
"quote": "| January 14, 2027 | GPT-4o mini (`gpt-4o-mini-2024-07-18`) | `gpt-6-luna` |"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"id": "gpt-4o-mini",
|
|
515
|
+
"provider": "openai",
|
|
516
|
+
"word": "deprecated",
|
|
517
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
518
|
+
"announced": "2026-10-14",
|
|
519
|
+
"shutdown": "2027-01-14",
|
|
520
|
+
"dateText": "January 14, 2027",
|
|
521
|
+
"replacement": "gpt-6-luna",
|
|
522
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
523
|
+
"readOn": "2026-11-12",
|
|
524
|
+
"quote": "| January 14, 2027 | GPT-4o mini (`gpt-4o-mini-2024-07-18`) | `gpt-6-luna` |",
|
|
525
|
+
"matchedBy": "display-name",
|
|
526
|
+
"alsoUrl": "https://developers.openai.com/api/docs/models/gpt-4o-mini.md",
|
|
527
|
+
"alsoQuote": "Status: Deprecated",
|
|
528
|
+
"alsoReadOn": "2026-11-12"
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"id": "gpt-4.1-2025-04-14",
|
|
532
|
+
"provider": "openai",
|
|
533
|
+
"word": "deprecated",
|
|
534
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
535
|
+
"announced": "2026-10-14",
|
|
536
|
+
"shutdown": "2027-01-14",
|
|
537
|
+
"dateText": "January 14, 2027",
|
|
538
|
+
"replacement": "gpt-6-luna",
|
|
539
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
540
|
+
"readOn": "2026-11-12",
|
|
541
|
+
"quote": "| January 14, 2027 | GPT-4.1 (`gpt-4.1-2025-04-14`) | `gpt-6-luna` |"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"id": "gpt-4.1",
|
|
545
|
+
"provider": "openai",
|
|
546
|
+
"word": "deprecated",
|
|
547
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
548
|
+
"announced": "2026-10-14",
|
|
549
|
+
"shutdown": "2027-01-14",
|
|
550
|
+
"dateText": "January 14, 2027",
|
|
551
|
+
"replacement": "gpt-6-luna",
|
|
552
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
553
|
+
"readOn": "2026-11-12",
|
|
554
|
+
"quote": "| January 14, 2027 | GPT-4.1 (`gpt-4.1-2025-04-14`) | `gpt-6-luna` |",
|
|
555
|
+
"matchedBy": "display-name",
|
|
556
|
+
"alsoUrl": "https://developers.openai.com/api/docs/models/gpt-4.1.md",
|
|
557
|
+
"alsoQuote": "Status: Deprecated",
|
|
558
|
+
"alsoReadOn": "2026-11-12"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"id": "gpt-4.1-mini-2025-04-14",
|
|
562
|
+
"provider": "openai",
|
|
563
|
+
"word": "deprecated",
|
|
564
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
565
|
+
"announced": "2026-10-14",
|
|
566
|
+
"shutdown": "2027-01-14",
|
|
567
|
+
"dateText": "January 14, 2027",
|
|
568
|
+
"replacement": "gpt-6-luna",
|
|
569
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
570
|
+
"readOn": "2026-11-12",
|
|
571
|
+
"quote": "| January 14, 2027 | GPT-4.1 mini (`gpt-4.1-mini-2025-04-14`) | `gpt-6-luna` |"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"id": "gpt-4.1-mini",
|
|
575
|
+
"provider": "openai",
|
|
576
|
+
"word": "deprecated",
|
|
577
|
+
"pageWord": "Upcoming deprecations: 2026-10-14: GPT-4 series model deprecations",
|
|
578
|
+
"announced": "2026-10-14",
|
|
579
|
+
"shutdown": "2027-01-14",
|
|
580
|
+
"dateText": "January 14, 2027",
|
|
581
|
+
"replacement": "gpt-6-luna",
|
|
582
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
583
|
+
"readOn": "2026-11-12",
|
|
584
|
+
"quote": "| January 14, 2027 | GPT-4.1 mini (`gpt-4.1-mini-2025-04-14`) | `gpt-6-luna` |",
|
|
585
|
+
"matchedBy": "display-name",
|
|
586
|
+
"alsoUrl": "https://developers.openai.com/api/docs/models/gpt-4.1-mini.md",
|
|
587
|
+
"alsoQuote": "Status: Deprecated",
|
|
588
|
+
"alsoReadOn": "2026-11-12"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"id": "gpt-5.3-codex",
|
|
592
|
+
"provider": "openai",
|
|
593
|
+
"word": "deprecated",
|
|
594
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano",
|
|
595
|
+
"announced": "2026-10-01",
|
|
596
|
+
"shutdown": "2027-04-01",
|
|
597
|
+
"dateText": "Apr 1, 2027",
|
|
598
|
+
"replacement": "gpt-6-sol",
|
|
599
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
600
|
+
"readOn": "2026-11-12",
|
|
601
|
+
"quote": "| Apr 1, 2027 | `gpt-5.3-codex` | `gpt-6-sol` |"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"id": "gpt-5.4-nano",
|
|
605
|
+
"provider": "openai",
|
|
606
|
+
"word": "deprecated",
|
|
607
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano",
|
|
608
|
+
"announced": "2026-10-01",
|
|
609
|
+
"shutdown": "2027-04-01",
|
|
610
|
+
"dateText": "Apr 1, 2027",
|
|
611
|
+
"replacement": "gpt-6-luna",
|
|
612
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
613
|
+
"readOn": "2026-11-12",
|
|
614
|
+
"quote": "| Apr 1, 2027 | `gpt-5.4-nano` \\| `gpt-5.4-nano-2026-03-17` | `gpt-6-luna` |"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"id": "gpt-5.4-nano-2026-03-17",
|
|
618
|
+
"provider": "openai",
|
|
619
|
+
"word": "deprecated",
|
|
620
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano",
|
|
621
|
+
"announced": "2026-10-01",
|
|
622
|
+
"shutdown": "2027-04-01",
|
|
623
|
+
"dateText": "Apr 1, 2027",
|
|
624
|
+
"replacement": "gpt-6-luna",
|
|
625
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
626
|
+
"readOn": "2026-11-12",
|
|
627
|
+
"quote": "| Apr 1, 2027 | `gpt-5.4-nano` \\| `gpt-5.4-nano-2026-03-17` | `gpt-6-luna` |"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "gpt-5.1",
|
|
631
|
+
"provider": "openai",
|
|
632
|
+
"word": "deprecated",
|
|
633
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano",
|
|
634
|
+
"announced": "2026-10-01",
|
|
635
|
+
"shutdown": "2027-04-01",
|
|
636
|
+
"dateText": "Apr 1, 2027",
|
|
637
|
+
"replacement": "gpt-6-sol",
|
|
638
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
639
|
+
"readOn": "2026-11-12",
|
|
640
|
+
"quote": "| Apr 1, 2027 | `gpt-5.1` \\| `gpt-5.1-2025-11-13` | `gpt-6-sol` |"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"id": "gpt-5.1-2025-11-13",
|
|
644
|
+
"provider": "openai",
|
|
645
|
+
"word": "deprecated",
|
|
646
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano",
|
|
647
|
+
"announced": "2026-10-01",
|
|
648
|
+
"shutdown": "2027-04-01",
|
|
649
|
+
"dateText": "Apr 1, 2027",
|
|
650
|
+
"replacement": "gpt-6-sol",
|
|
651
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
652
|
+
"readOn": "2026-11-12",
|
|
653
|
+
"quote": "| Apr 1, 2027 | `gpt-5.1` \\| `gpt-5.1-2025-11-13` | `gpt-6-sol` |"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"id": "tts-1",
|
|
657
|
+
"provider": "openai",
|
|
658
|
+
"word": "deprecated",
|
|
659
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: Text-to-speech models",
|
|
660
|
+
"announced": "2026-10-01",
|
|
661
|
+
"shutdown": "2027-01-06",
|
|
662
|
+
"dateText": "Jan 6, 2027",
|
|
663
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
664
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
665
|
+
"readOn": "2026-11-12",
|
|
666
|
+
"quote": "| Jan 6, 2027 | `tts-1` | `gpt-realtime-2.1-mini` |"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"id": "tts-1-hd",
|
|
670
|
+
"provider": "openai",
|
|
671
|
+
"word": "deprecated",
|
|
672
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: Text-to-speech models",
|
|
673
|
+
"announced": "2026-10-01",
|
|
674
|
+
"shutdown": "2027-01-06",
|
|
675
|
+
"dateText": "Jan 6, 2027",
|
|
676
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
677
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
678
|
+
"readOn": "2026-11-12",
|
|
679
|
+
"quote": "| Jan 6, 2027 | `tts-1-hd` | `gpt-realtime-2.1-mini` |"
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"id": "gpt-4o-mini-tts",
|
|
683
|
+
"provider": "openai",
|
|
684
|
+
"word": "deprecated",
|
|
685
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: Text-to-speech models",
|
|
686
|
+
"announced": "2026-10-01",
|
|
687
|
+
"shutdown": "2027-01-06",
|
|
688
|
+
"dateText": "Jan 6, 2027",
|
|
689
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
690
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
691
|
+
"readOn": "2026-11-12",
|
|
692
|
+
"quote": "| Jan 6, 2027 | `gpt-4o-mini-tts` \\| `gpt-4o-mini-tts-2025-03-20` | `gpt-realtime-2.1-mini` |"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"id": "gpt-4o-mini-tts-2025-03-20",
|
|
696
|
+
"provider": "openai",
|
|
697
|
+
"word": "deprecated",
|
|
698
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: Text-to-speech models",
|
|
699
|
+
"announced": "2026-10-01",
|
|
700
|
+
"shutdown": "2027-01-06",
|
|
701
|
+
"dateText": "Jan 6, 2027",
|
|
702
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
703
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
704
|
+
"readOn": "2026-11-12",
|
|
705
|
+
"quote": "| Jan 6, 2027 | `gpt-4o-mini-tts` \\| `gpt-4o-mini-tts-2025-03-20` | `gpt-realtime-2.1-mini` |"
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"id": "gpt-4o-mini-tts-2025-12-15",
|
|
709
|
+
"provider": "openai",
|
|
710
|
+
"word": "deprecated",
|
|
711
|
+
"pageWord": "Upcoming deprecations: 2026-10-01: Text-to-speech models",
|
|
712
|
+
"announced": "2026-10-01",
|
|
713
|
+
"shutdown": "2027-01-06",
|
|
714
|
+
"dateText": "Jan 6, 2027",
|
|
715
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
716
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
717
|
+
"readOn": "2026-11-12",
|
|
718
|
+
"quote": "| Jan 6, 2027 | `gpt-4o-mini-tts` \\| `gpt-4o-mini-tts-2025-12-15` | `gpt-realtime-2.1-mini` |"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"id": "whisper-1",
|
|
722
|
+
"provider": "openai",
|
|
723
|
+
"word": "deprecated",
|
|
724
|
+
"pageWord": "Upcoming deprecations: 2026-08-26: Transcription models",
|
|
725
|
+
"announced": "2026-08-26",
|
|
726
|
+
"shutdown": "2027-02-26",
|
|
727
|
+
"dateText": "Feb 26, 2027",
|
|
728
|
+
"replacement": "gpt-live-transcribe or gpt-transcribe",
|
|
729
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
730
|
+
"readOn": "2026-11-12",
|
|
731
|
+
"quote": "| Feb 26, 2027 | `whisper-1` | `gpt-live-transcribe` or `gpt-transcribe` |"
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
"id": "gpt-4o-transcribe",
|
|
735
|
+
"provider": "openai",
|
|
736
|
+
"word": "deprecated",
|
|
737
|
+
"pageWord": "Upcoming deprecations: 2026-08-26: Transcription models",
|
|
738
|
+
"announced": "2026-08-26",
|
|
739
|
+
"shutdown": "2027-02-26",
|
|
740
|
+
"dateText": "Feb 26, 2027",
|
|
741
|
+
"replacement": "gpt-live-transcribe or gpt-transcribe",
|
|
742
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
743
|
+
"readOn": "2026-11-12",
|
|
744
|
+
"quote": "| Feb 26, 2027 | `gpt-4o-transcribe` | `gpt-live-transcribe` or `gpt-transcribe` |"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"id": "gpt-4o-mini-transcribe",
|
|
748
|
+
"provider": "openai",
|
|
749
|
+
"word": "deprecated",
|
|
750
|
+
"pageWord": "Upcoming deprecations: 2026-08-26: Transcription models",
|
|
751
|
+
"announced": "2026-08-26",
|
|
752
|
+
"shutdown": "2027-02-26",
|
|
753
|
+
"dateText": "Feb 26, 2027",
|
|
754
|
+
"replacement": "gpt-live-transcribe or gpt-transcribe",
|
|
755
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
756
|
+
"readOn": "2026-11-12",
|
|
757
|
+
"quote": "| Feb 26, 2027 | `gpt-4o-mini-transcribe` \\| `gpt-4o-mini-transcribe-2025-12-15` | `gpt-live-transcribe` or `gpt-transcribe` |"
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
"id": "gpt-4o-mini-transcribe-2025-12-15",
|
|
761
|
+
"provider": "openai",
|
|
762
|
+
"word": "deprecated",
|
|
763
|
+
"pageWord": "Upcoming deprecations: 2026-08-26: Transcription models",
|
|
764
|
+
"announced": "2026-08-26",
|
|
765
|
+
"shutdown": "2027-02-26",
|
|
766
|
+
"dateText": "Feb 26, 2027",
|
|
767
|
+
"replacement": "gpt-live-transcribe or gpt-transcribe",
|
|
768
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
769
|
+
"readOn": "2026-11-12",
|
|
770
|
+
"quote": "| Feb 26, 2027 | `gpt-4o-mini-transcribe` \\| `gpt-4o-mini-transcribe-2025-12-15` | `gpt-live-transcribe` or `gpt-transcribe` |"
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"id": "gpt-4o-transcribe-diarize",
|
|
774
|
+
"provider": "openai",
|
|
775
|
+
"word": "deprecated",
|
|
776
|
+
"pageWord": "Upcoming deprecations: 2026-08-26: Transcription models",
|
|
777
|
+
"announced": "2026-08-26",
|
|
778
|
+
"shutdown": "2027-02-26",
|
|
779
|
+
"dateText": "Feb 26, 2027",
|
|
780
|
+
"replacement": "gpt-live-transcribe or gpt-transcribe",
|
|
781
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
782
|
+
"readOn": "2026-11-12",
|
|
783
|
+
"quote": "| Feb 26, 2027 | `gpt-4o-transcribe-diarize` | `gpt-live-transcribe` or `gpt-transcribe` |"
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"id": "gpt-realtime",
|
|
787
|
+
"provider": "openai",
|
|
788
|
+
"word": "deprecated",
|
|
789
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
790
|
+
"announced": "2026-07-20",
|
|
791
|
+
"shutdown": "2027-01-20",
|
|
792
|
+
"dateText": "Jan 20, 2027",
|
|
793
|
+
"replacement": "gpt-realtime-2.1",
|
|
794
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
795
|
+
"readOn": "2026-11-12",
|
|
796
|
+
"quote": "| Jan 20, 2027 | `gpt-realtime` \\| `gpt-realtime-2025-08-28` | `gpt-realtime-2.1` |"
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"id": "gpt-realtime-2025-08-28",
|
|
800
|
+
"provider": "openai",
|
|
801
|
+
"word": "deprecated",
|
|
802
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
803
|
+
"announced": "2026-07-20",
|
|
804
|
+
"shutdown": "2027-01-20",
|
|
805
|
+
"dateText": "Jan 20, 2027",
|
|
806
|
+
"replacement": "gpt-realtime-2.1",
|
|
807
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
808
|
+
"readOn": "2026-11-12",
|
|
809
|
+
"quote": "| Jan 20, 2027 | `gpt-realtime` \\| `gpt-realtime-2025-08-28` | `gpt-realtime-2.1` |"
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"id": "gpt-audio",
|
|
813
|
+
"provider": "openai",
|
|
814
|
+
"word": "deprecated",
|
|
815
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
816
|
+
"announced": "2026-07-20",
|
|
817
|
+
"shutdown": "2027-01-20",
|
|
818
|
+
"dateText": "Jan 20, 2027",
|
|
819
|
+
"replacement": "gpt-audio-1.5",
|
|
820
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
821
|
+
"readOn": "2026-11-12",
|
|
822
|
+
"quote": "| Jan 20, 2027 | `gpt-audio` \\| `gpt-audio-2025-08-28` | `gpt-audio-1.5` |"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"id": "gpt-audio-2025-08-28",
|
|
826
|
+
"provider": "openai",
|
|
827
|
+
"word": "deprecated",
|
|
828
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
829
|
+
"announced": "2026-07-20",
|
|
830
|
+
"shutdown": "2027-01-20",
|
|
831
|
+
"dateText": "Jan 20, 2027",
|
|
832
|
+
"replacement": "gpt-audio-1.5",
|
|
833
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
834
|
+
"readOn": "2026-11-12",
|
|
835
|
+
"quote": "| Jan 20, 2027 | `gpt-audio` \\| `gpt-audio-2025-08-28` | `gpt-audio-1.5` |"
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"id": "gpt-4o-audio",
|
|
839
|
+
"provider": "openai",
|
|
840
|
+
"word": "deprecated",
|
|
841
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
842
|
+
"announced": "2026-07-20",
|
|
843
|
+
"shutdown": "2027-01-20",
|
|
844
|
+
"dateText": "Jan 20, 2027",
|
|
845
|
+
"replacement": "gpt-audio-1.5",
|
|
846
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
847
|
+
"readOn": "2026-11-12",
|
|
848
|
+
"quote": "| Jan 20, 2027 | `gpt-4o-audio` | `gpt-audio-1.5` |"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"id": "gpt-4o-realtime",
|
|
852
|
+
"provider": "openai",
|
|
853
|
+
"word": "deprecated",
|
|
854
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
855
|
+
"announced": "2026-07-20",
|
|
856
|
+
"shutdown": "2027-01-20",
|
|
857
|
+
"dateText": "Jan 20, 2027",
|
|
858
|
+
"replacement": "gpt-realtime-2.1",
|
|
859
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
860
|
+
"readOn": "2026-11-12",
|
|
861
|
+
"quote": "| Jan 20, 2027 | `gpt-4o-realtime` | `gpt-realtime-2.1` |"
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"id": "gpt-realtime-mini",
|
|
865
|
+
"provider": "openai",
|
|
866
|
+
"word": "deprecated",
|
|
867
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
868
|
+
"announced": "2026-07-20",
|
|
869
|
+
"shutdown": "2027-01-20",
|
|
870
|
+
"dateText": "Jan 20, 2027",
|
|
871
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
872
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
873
|
+
"readOn": "2026-11-12",
|
|
874
|
+
"quote": "| Jan 20, 2027 | `gpt-realtime-mini` \\| `gpt-realtime-mini-2025-12-15` | `gpt-realtime-2.1-mini` |"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"id": "gpt-realtime-mini-2025-12-15",
|
|
878
|
+
"provider": "openai",
|
|
879
|
+
"word": "deprecated",
|
|
880
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
881
|
+
"announced": "2026-07-20",
|
|
882
|
+
"shutdown": "2027-01-20",
|
|
883
|
+
"dateText": "Jan 20, 2027",
|
|
884
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
885
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
886
|
+
"readOn": "2026-11-12",
|
|
887
|
+
"quote": "| Jan 20, 2027 | `gpt-realtime-mini` \\| `gpt-realtime-mini-2025-12-15` | `gpt-realtime-2.1-mini` |"
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"id": "gpt-audio-mini",
|
|
891
|
+
"provider": "openai",
|
|
892
|
+
"word": "deprecated",
|
|
893
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
894
|
+
"announced": "2026-07-20",
|
|
895
|
+
"shutdown": "2027-01-20",
|
|
896
|
+
"dateText": "Jan 20, 2027",
|
|
897
|
+
"replacement": "gpt-audio-1.5",
|
|
898
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
899
|
+
"readOn": "2026-11-12",
|
|
900
|
+
"quote": "| Jan 20, 2027 | `gpt-audio-mini` \\| `gpt-audio-mini-2025-12-15` | `gpt-audio-1.5` |"
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
"id": "gpt-audio-mini-2025-12-15",
|
|
904
|
+
"provider": "openai",
|
|
905
|
+
"word": "deprecated",
|
|
906
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
907
|
+
"announced": "2026-07-20",
|
|
908
|
+
"shutdown": "2027-01-20",
|
|
909
|
+
"dateText": "Jan 20, 2027",
|
|
910
|
+
"replacement": "gpt-audio-1.5",
|
|
911
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
912
|
+
"readOn": "2026-11-12",
|
|
913
|
+
"quote": "| Jan 20, 2027 | `gpt-audio-mini` \\| `gpt-audio-mini-2025-12-15` | `gpt-audio-1.5` |"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"id": "gpt-4o-mini-realtime",
|
|
917
|
+
"provider": "openai",
|
|
918
|
+
"word": "deprecated",
|
|
919
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
920
|
+
"announced": "2026-07-20",
|
|
921
|
+
"shutdown": "2027-01-20",
|
|
922
|
+
"dateText": "Jan 20, 2027",
|
|
923
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
924
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
925
|
+
"readOn": "2026-11-12",
|
|
926
|
+
"quote": "| Jan 20, 2027 | `gpt-4o-mini-realtime` | `gpt-realtime-2.1-mini` |"
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"id": "gpt-4o-mini-audio",
|
|
930
|
+
"provider": "openai",
|
|
931
|
+
"word": "deprecated",
|
|
932
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
933
|
+
"announced": "2026-07-20",
|
|
934
|
+
"shutdown": "2027-01-20",
|
|
935
|
+
"dateText": "Jan 20, 2027",
|
|
936
|
+
"replacement": "gpt-audio-1.5",
|
|
937
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
938
|
+
"readOn": "2026-11-12",
|
|
939
|
+
"quote": "| Jan 20, 2027 | `gpt-4o-mini-audio` | `gpt-audio-1.5` |"
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"id": "gpt-4o-mini-transcribe-2025-03-20",
|
|
943
|
+
"provider": "openai",
|
|
944
|
+
"word": "deprecated",
|
|
945
|
+
"pageWord": "Upcoming deprecations: 2026-07-20: Legacy audio, realtime, and transcription models",
|
|
946
|
+
"announced": "2026-07-20",
|
|
947
|
+
"shutdown": "2027-01-20",
|
|
948
|
+
"dateText": "Jan 20, 2027",
|
|
949
|
+
"replacement": "gpt-4o-mini-transcribe-2025-12-15",
|
|
950
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
951
|
+
"readOn": "2026-11-12",
|
|
952
|
+
"quote": "| Jan 20, 2027 | `gpt-4o-mini-transcribe-2025-03-20` | `gpt-4o-mini-transcribe-2025-12-15` |"
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"id": "gpt-5",
|
|
956
|
+
"provider": "openai",
|
|
957
|
+
"word": "deprecated",
|
|
958
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
959
|
+
"announced": "2026-06-11",
|
|
960
|
+
"shutdown": "2026-12-11",
|
|
961
|
+
"dateText": "Dec 11, 2026",
|
|
962
|
+
"replacement": "gpt-5.6-sol",
|
|
963
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
964
|
+
"readOn": "2026-11-12",
|
|
965
|
+
"quote": "| Dec 11, 2026 | `gpt-5` \\| `gpt-5-2025-08-07` | `gpt-5.6-sol` |"
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
"id": "gpt-5-2025-08-07",
|
|
969
|
+
"provider": "openai",
|
|
970
|
+
"word": "deprecated",
|
|
971
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
972
|
+
"announced": "2026-06-11",
|
|
973
|
+
"shutdown": "2026-12-11",
|
|
974
|
+
"dateText": "Dec 11, 2026",
|
|
975
|
+
"replacement": "gpt-5.6-sol",
|
|
976
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
977
|
+
"readOn": "2026-11-12",
|
|
978
|
+
"quote": "| Dec 11, 2026 | `gpt-5` \\| `gpt-5-2025-08-07` | `gpt-5.6-sol` |"
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
"id": "gpt-5-mini",
|
|
982
|
+
"provider": "openai",
|
|
983
|
+
"word": "deprecated",
|
|
984
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
985
|
+
"announced": "2026-06-11",
|
|
986
|
+
"shutdown": "2026-12-11",
|
|
987
|
+
"dateText": "Dec 11, 2026",
|
|
988
|
+
"replacement": "gpt-5.6-terra",
|
|
989
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
990
|
+
"readOn": "2026-11-12",
|
|
991
|
+
"quote": "| Dec 11, 2026 | `gpt-5-mini` \\| `gpt-5-mini-2025-08-07` | `gpt-5.6-terra` |"
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"id": "gpt-5-mini-2025-08-07",
|
|
995
|
+
"provider": "openai",
|
|
996
|
+
"word": "deprecated",
|
|
997
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
998
|
+
"announced": "2026-06-11",
|
|
999
|
+
"shutdown": "2026-12-11",
|
|
1000
|
+
"dateText": "Dec 11, 2026",
|
|
1001
|
+
"replacement": "gpt-5.6-terra",
|
|
1002
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1003
|
+
"readOn": "2026-11-12",
|
|
1004
|
+
"quote": "| Dec 11, 2026 | `gpt-5-mini` \\| `gpt-5-mini-2025-08-07` | `gpt-5.6-terra` |"
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"id": "gpt-5-nano",
|
|
1008
|
+
"provider": "openai",
|
|
1009
|
+
"word": "deprecated",
|
|
1010
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1011
|
+
"announced": "2026-06-11",
|
|
1012
|
+
"shutdown": "2026-12-11",
|
|
1013
|
+
"dateText": "Dec 11, 2026",
|
|
1014
|
+
"replacement": "gpt-5.6-luna",
|
|
1015
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1016
|
+
"readOn": "2026-11-12",
|
|
1017
|
+
"quote": "| Dec 11, 2026 | `gpt-5-nano` \\| `gpt-5-nano-2025-08-07` | `gpt-5.6-luna` |"
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
"id": "gpt-5-nano-2025-08-07",
|
|
1021
|
+
"provider": "openai",
|
|
1022
|
+
"word": "deprecated",
|
|
1023
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1024
|
+
"announced": "2026-06-11",
|
|
1025
|
+
"shutdown": "2026-12-11",
|
|
1026
|
+
"dateText": "Dec 11, 2026",
|
|
1027
|
+
"replacement": "gpt-5.6-luna",
|
|
1028
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1029
|
+
"readOn": "2026-11-12",
|
|
1030
|
+
"quote": "| Dec 11, 2026 | `gpt-5-nano` \\| `gpt-5-nano-2025-08-07` | `gpt-5.6-luna` |"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"id": "gpt-5-pro",
|
|
1034
|
+
"provider": "openai",
|
|
1035
|
+
"word": "deprecated",
|
|
1036
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1037
|
+
"announced": "2026-06-11",
|
|
1038
|
+
"shutdown": "2026-12-11",
|
|
1039
|
+
"dateText": "Dec 11, 2026",
|
|
1040
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1041
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1042
|
+
"readOn": "2026-11-12",
|
|
1043
|
+
"quote": "| Dec 11, 2026 | `gpt-5-pro` \\| `gpt-5-pro-2025-10-06` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1044
|
+
},
|
|
1045
|
+
{
|
|
1046
|
+
"id": "gpt-5-pro-2025-10-06",
|
|
1047
|
+
"provider": "openai",
|
|
1048
|
+
"word": "deprecated",
|
|
1049
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1050
|
+
"announced": "2026-06-11",
|
|
1051
|
+
"shutdown": "2026-12-11",
|
|
1052
|
+
"dateText": "Dec 11, 2026",
|
|
1053
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1054
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1055
|
+
"readOn": "2026-11-12",
|
|
1056
|
+
"quote": "| Dec 11, 2026 | `gpt-5-pro` \\| `gpt-5-pro-2025-10-06` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"id": "o3",
|
|
1060
|
+
"provider": "openai",
|
|
1061
|
+
"word": "deprecated",
|
|
1062
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1063
|
+
"announced": "2026-06-11",
|
|
1064
|
+
"shutdown": "2026-12-11",
|
|
1065
|
+
"dateText": "Dec 11, 2026",
|
|
1066
|
+
"replacement": "gpt-5.6-sol",
|
|
1067
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1068
|
+
"readOn": "2026-11-12",
|
|
1069
|
+
"quote": "| Dec 11, 2026 | `o3` \\| `o3-2025-04-16` | `gpt-5.6-sol` |"
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"id": "o3-2025-04-16",
|
|
1073
|
+
"provider": "openai",
|
|
1074
|
+
"word": "deprecated",
|
|
1075
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1076
|
+
"announced": "2026-06-11",
|
|
1077
|
+
"shutdown": "2026-12-11",
|
|
1078
|
+
"dateText": "Dec 11, 2026",
|
|
1079
|
+
"replacement": "gpt-5.6-sol",
|
|
1080
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1081
|
+
"readOn": "2026-11-12",
|
|
1082
|
+
"quote": "| Dec 11, 2026 | `o3` \\| `o3-2025-04-16` | `gpt-5.6-sol` |"
|
|
1083
|
+
},
|
|
1084
|
+
{
|
|
1085
|
+
"id": "o3-pro",
|
|
1086
|
+
"provider": "openai",
|
|
1087
|
+
"word": "deprecated",
|
|
1088
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1089
|
+
"announced": "2026-06-11",
|
|
1090
|
+
"shutdown": "2026-12-11",
|
|
1091
|
+
"dateText": "Dec 11, 2026",
|
|
1092
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1093
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1094
|
+
"readOn": "2026-11-12",
|
|
1095
|
+
"quote": "| Dec 11, 2026 | `o3-pro` \\| `o3-pro-2025-06-10` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"id": "o3-pro-2025-06-10",
|
|
1099
|
+
"provider": "openai",
|
|
1100
|
+
"word": "deprecated",
|
|
1101
|
+
"pageWord": "Upcoming deprecations: 2026-06-11: GPT-5 and o3 model deprecations",
|
|
1102
|
+
"announced": "2026-06-11",
|
|
1103
|
+
"shutdown": "2026-12-11",
|
|
1104
|
+
"dateText": "Dec 11, 2026",
|
|
1105
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1106
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1107
|
+
"readOn": "2026-11-12",
|
|
1108
|
+
"quote": "| Dec 11, 2026 | `o3-pro` \\| `o3-pro-2025-06-10` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
"id": "gpt-image-1-mini",
|
|
1112
|
+
"provider": "openai",
|
|
1113
|
+
"word": "deprecated",
|
|
1114
|
+
"pageWord": "Upcoming deprecations: 2026-06-02: GPT Image model deprecations",
|
|
1115
|
+
"announced": "2026-06-02",
|
|
1116
|
+
"shutdown": "2026-12-01",
|
|
1117
|
+
"dateText": "Dec 1, 2026",
|
|
1118
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
1119
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1120
|
+
"readOn": "2026-11-12",
|
|
1121
|
+
"quote": "| Dec 1, 2026 | `gpt-image-1-mini` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
"id": "gpt-image-1.5",
|
|
1125
|
+
"provider": "openai",
|
|
1126
|
+
"word": "deprecated",
|
|
1127
|
+
"pageWord": "Upcoming deprecations: 2026-06-02: GPT Image model deprecations",
|
|
1128
|
+
"announced": "2026-06-02",
|
|
1129
|
+
"shutdown": "2026-12-01",
|
|
1130
|
+
"dateText": "Dec 1, 2026",
|
|
1131
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
1132
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1133
|
+
"readOn": "2026-11-12",
|
|
1134
|
+
"quote": "| Dec 1, 2026 | `gpt-image-1.5` \\| `gpt-image-1.5-2025-12-16` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
"id": "gpt-image-1.5-2025-12-16",
|
|
1138
|
+
"provider": "openai",
|
|
1139
|
+
"word": "deprecated",
|
|
1140
|
+
"pageWord": "Upcoming deprecations: 2026-06-02: GPT Image model deprecations",
|
|
1141
|
+
"announced": "2026-06-02",
|
|
1142
|
+
"shutdown": "2026-12-01",
|
|
1143
|
+
"dateText": "Dec 1, 2026",
|
|
1144
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
1145
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1146
|
+
"readOn": "2026-11-12",
|
|
1147
|
+
"quote": "| Dec 1, 2026 | `gpt-image-1.5` \\| `gpt-image-1.5-2025-12-16` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
1148
|
+
},
|
|
1149
|
+
{
|
|
1150
|
+
"id": "chatgpt-image-latest",
|
|
1151
|
+
"provider": "openai",
|
|
1152
|
+
"word": "deprecated",
|
|
1153
|
+
"pageWord": "Upcoming deprecations: 2026-06-02: GPT Image model deprecations",
|
|
1154
|
+
"announced": "2026-06-02",
|
|
1155
|
+
"shutdown": "2026-12-01",
|
|
1156
|
+
"dateText": "Dec 1, 2026",
|
|
1157
|
+
"replacement": "gpt-image-2.6-sunburst or gpt-image-2.6-flare",
|
|
1158
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1159
|
+
"readOn": "2026-11-12",
|
|
1160
|
+
"quote": "| Dec 1, 2026 | `chatgpt-image-latest` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"id": "gpt-5.4-cyber",
|
|
1164
|
+
"provider": "openai",
|
|
1165
|
+
"word": "shut down",
|
|
1166
|
+
"pageWord": "Past deprecations: 2026-09-11: GPT-5.4-Cyber",
|
|
1167
|
+
"announced": "2026-09-11",
|
|
1168
|
+
"shutdown": "2026-10-01",
|
|
1169
|
+
"dateText": "Oct 1, 2026",
|
|
1170
|
+
"replacement": "The most capable cyber model available to you.",
|
|
1171
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1172
|
+
"readOn": "2026-11-12",
|
|
1173
|
+
"quote": "| Oct 1, 2026 | `gpt-5.4-cyber` | The most capable cyber model available to you. |"
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
"id": "gpt-5.2-chat-latest",
|
|
1177
|
+
"provider": "openai",
|
|
1178
|
+
"word": "shut down",
|
|
1179
|
+
"pageWord": "Past deprecations: 2026-05-08: `gpt-5.2-chat-latest` and `gpt-5.3-chat-latest` model snapshots",
|
|
1180
|
+
"announced": "2026-05-08",
|
|
1181
|
+
"shutdown": "2026-08-10",
|
|
1182
|
+
"dateText": "Aug 10, 2026",
|
|
1183
|
+
"replacement": "gpt-5.6-sol",
|
|
1184
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1185
|
+
"readOn": "2026-11-12",
|
|
1186
|
+
"quote": "| Aug 10, 2026 | `gpt-5.2-chat-latest` | `gpt-5.6-sol` |"
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"id": "gpt-5.3-chat-latest",
|
|
1190
|
+
"provider": "openai",
|
|
1191
|
+
"word": "shut down",
|
|
1192
|
+
"pageWord": "Past deprecations: 2026-05-08: `gpt-5.2-chat-latest` and `gpt-5.3-chat-latest` model snapshots",
|
|
1193
|
+
"announced": "2026-05-08",
|
|
1194
|
+
"shutdown": "2026-08-10",
|
|
1195
|
+
"dateText": "Aug 10, 2026",
|
|
1196
|
+
"replacement": "gpt-5.6-sol",
|
|
1197
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1198
|
+
"readOn": "2026-11-12",
|
|
1199
|
+
"quote": "| Aug 10, 2026 | `gpt-5.3-chat-latest` | `gpt-5.6-sol` |"
|
|
1200
|
+
},
|
|
1201
|
+
{
|
|
1202
|
+
"id": "gpt-3.5-turbo-0125",
|
|
1203
|
+
"provider": "openai",
|
|
1204
|
+
"word": "shut down",
|
|
1205
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1206
|
+
"announced": "2026-04-22",
|
|
1207
|
+
"shutdown": "2026-10-23",
|
|
1208
|
+
"dateText": "October 23, 2026",
|
|
1209
|
+
"replacement": "gpt-5.6-terra",
|
|
1210
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1211
|
+
"readOn": "2026-11-12",
|
|
1212
|
+
"quote": "| October 23, 2026 | `gpt-3.5-turbo-0125` \\| `gpt-3.5-turbo`, `gpt-3.5-turbo-completions` | `gpt-5.6-terra` |"
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
"id": "gpt-3.5-turbo",
|
|
1216
|
+
"provider": "openai",
|
|
1217
|
+
"word": "shut down",
|
|
1218
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1219
|
+
"announced": "2026-04-22",
|
|
1220
|
+
"shutdown": "2026-10-23",
|
|
1221
|
+
"dateText": "October 23, 2026",
|
|
1222
|
+
"replacement": "gpt-5.6-terra",
|
|
1223
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1224
|
+
"readOn": "2026-11-12",
|
|
1225
|
+
"quote": "| October 23, 2026 | `gpt-3.5-turbo-0125` \\| `gpt-3.5-turbo`, `gpt-3.5-turbo-completions` | `gpt-5.6-terra` |"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"id": "gpt-3.5-turbo-completions",
|
|
1229
|
+
"provider": "openai",
|
|
1230
|
+
"word": "shut down",
|
|
1231
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1232
|
+
"announced": "2026-04-22",
|
|
1233
|
+
"shutdown": "2026-10-23",
|
|
1234
|
+
"dateText": "October 23, 2026",
|
|
1235
|
+
"replacement": "gpt-5.6-terra",
|
|
1236
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1237
|
+
"readOn": "2026-11-12",
|
|
1238
|
+
"quote": "| October 23, 2026 | `gpt-3.5-turbo-0125` \\| `gpt-3.5-turbo`, `gpt-3.5-turbo-completions` | `gpt-5.6-terra` |"
|
|
1239
|
+
},
|
|
1240
|
+
{
|
|
1241
|
+
"id": "gpt-4-0613",
|
|
1242
|
+
"provider": "openai",
|
|
1243
|
+
"word": "shut down",
|
|
1244
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1245
|
+
"announced": "2026-04-22",
|
|
1246
|
+
"shutdown": "2026-10-23",
|
|
1247
|
+
"dateText": "October 23, 2026",
|
|
1248
|
+
"replacement": "gpt-5.6-sol",
|
|
1249
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1250
|
+
"readOn": "2026-11-12",
|
|
1251
|
+
"quote": "| October 23, 2026 | `gpt-4-0613` \\| `gpt-4`, `gpt-4-0613-completions`, `gpt-4-completions` | `gpt-5.6-sol` |"
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"id": "gpt-4",
|
|
1255
|
+
"provider": "openai",
|
|
1256
|
+
"word": "shut down",
|
|
1257
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1258
|
+
"announced": "2026-04-22",
|
|
1259
|
+
"shutdown": "2026-10-23",
|
|
1260
|
+
"dateText": "October 23, 2026",
|
|
1261
|
+
"replacement": "gpt-5.6-sol",
|
|
1262
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1263
|
+
"readOn": "2026-11-12",
|
|
1264
|
+
"quote": "| October 23, 2026 | `gpt-4-0613` \\| `gpt-4`, `gpt-4-0613-completions`, `gpt-4-completions` | `gpt-5.6-sol` |"
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
"id": "gpt-4-0613-completions",
|
|
1268
|
+
"provider": "openai",
|
|
1269
|
+
"word": "shut down",
|
|
1270
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1271
|
+
"announced": "2026-04-22",
|
|
1272
|
+
"shutdown": "2026-10-23",
|
|
1273
|
+
"dateText": "October 23, 2026",
|
|
1274
|
+
"replacement": "gpt-5.6-sol",
|
|
1275
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1276
|
+
"readOn": "2026-11-12",
|
|
1277
|
+
"quote": "| October 23, 2026 | `gpt-4-0613` \\| `gpt-4`, `gpt-4-0613-completions`, `gpt-4-completions` | `gpt-5.6-sol` |"
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
"id": "gpt-4-completions",
|
|
1281
|
+
"provider": "openai",
|
|
1282
|
+
"word": "shut down",
|
|
1283
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1284
|
+
"announced": "2026-04-22",
|
|
1285
|
+
"shutdown": "2026-10-23",
|
|
1286
|
+
"dateText": "October 23, 2026",
|
|
1287
|
+
"replacement": "gpt-5.6-sol",
|
|
1288
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1289
|
+
"readOn": "2026-11-12",
|
|
1290
|
+
"quote": "| October 23, 2026 | `gpt-4-0613` \\| `gpt-4`, `gpt-4-0613-completions`, `gpt-4-completions` | `gpt-5.6-sol` |"
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
"id": "gpt-4-1106-preview",
|
|
1294
|
+
"provider": "openai",
|
|
1295
|
+
"word": "shut down",
|
|
1296
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1297
|
+
"announced": "2026-04-22",
|
|
1298
|
+
"shutdown": "2026-10-23",
|
|
1299
|
+
"dateText": "October 23, 2026",
|
|
1300
|
+
"replacement": "gpt-5.6-sol",
|
|
1301
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1302
|
+
"readOn": "2026-11-12",
|
|
1303
|
+
"quote": "| October 23, 2026 | `gpt-4-1106-preview` | `gpt-5.6-sol` |"
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"id": "gpt-4-turbo",
|
|
1307
|
+
"provider": "openai",
|
|
1308
|
+
"word": "shut down",
|
|
1309
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1310
|
+
"announced": "2026-04-22",
|
|
1311
|
+
"shutdown": "2026-10-23",
|
|
1312
|
+
"dateText": "October 23, 2026",
|
|
1313
|
+
"replacement": "gpt-5.6-sol",
|
|
1314
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1315
|
+
"readOn": "2026-11-12",
|
|
1316
|
+
"quote": "| October 23, 2026 | `gpt-4-turbo` \\| `gpt-4-turbo-2024-04-09`, `gpt-4-turbo-completions` | `gpt-5.6-sol` |"
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
"id": "gpt-4-turbo-2024-04-09",
|
|
1320
|
+
"provider": "openai",
|
|
1321
|
+
"word": "shut down",
|
|
1322
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1323
|
+
"announced": "2026-04-22",
|
|
1324
|
+
"shutdown": "2026-10-23",
|
|
1325
|
+
"dateText": "October 23, 2026",
|
|
1326
|
+
"replacement": "gpt-5.6-sol",
|
|
1327
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1328
|
+
"readOn": "2026-11-12",
|
|
1329
|
+
"quote": "| October 23, 2026 | `gpt-4-turbo` \\| `gpt-4-turbo-2024-04-09`, `gpt-4-turbo-completions` | `gpt-5.6-sol` |"
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
"id": "gpt-4-turbo-completions",
|
|
1333
|
+
"provider": "openai",
|
|
1334
|
+
"word": "shut down",
|
|
1335
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1336
|
+
"announced": "2026-04-22",
|
|
1337
|
+
"shutdown": "2026-10-23",
|
|
1338
|
+
"dateText": "October 23, 2026",
|
|
1339
|
+
"replacement": "gpt-5.6-sol",
|
|
1340
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1341
|
+
"readOn": "2026-11-12",
|
|
1342
|
+
"quote": "| October 23, 2026 | `gpt-4-turbo` \\| `gpt-4-turbo-2024-04-09`, `gpt-4-turbo-completions` | `gpt-5.6-sol` |"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
"id": "gpt-4.1-nano",
|
|
1346
|
+
"provider": "openai",
|
|
1347
|
+
"word": "shut down",
|
|
1348
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1349
|
+
"announced": "2026-04-22",
|
|
1350
|
+
"shutdown": "2026-10-23",
|
|
1351
|
+
"dateText": "October 23, 2026",
|
|
1352
|
+
"replacement": "gpt-5.6-luna",
|
|
1353
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1354
|
+
"readOn": "2026-11-12",
|
|
1355
|
+
"quote": "| October 23, 2026 | `gpt-4.1-nano` \\| `gpt-4.1-nano-2025-04-14` | `gpt-5.6-luna` |"
|
|
1356
|
+
},
|
|
1357
|
+
{
|
|
1358
|
+
"id": "gpt-4.1-nano-2025-04-14",
|
|
1359
|
+
"provider": "openai",
|
|
1360
|
+
"word": "shut down",
|
|
1361
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1362
|
+
"announced": "2026-04-22",
|
|
1363
|
+
"shutdown": "2026-10-23",
|
|
1364
|
+
"dateText": "October 23, 2026",
|
|
1365
|
+
"replacement": "gpt-5.6-luna",
|
|
1366
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1367
|
+
"readOn": "2026-11-12",
|
|
1368
|
+
"quote": "| October 23, 2026 | `gpt-4.1-nano` \\| `gpt-4.1-nano-2025-04-14` | `gpt-5.6-luna` |"
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"id": "gpt-4o-2024-05-13",
|
|
1372
|
+
"provider": "openai",
|
|
1373
|
+
"word": "shut down",
|
|
1374
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1375
|
+
"announced": "2026-04-22",
|
|
1376
|
+
"shutdown": "2026-10-23",
|
|
1377
|
+
"dateText": "October 23, 2026",
|
|
1378
|
+
"replacement": "gpt-5.6-sol",
|
|
1379
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1380
|
+
"readOn": "2026-11-12",
|
|
1381
|
+
"quote": "| October 23, 2026 | `gpt-4o-2024-05-13` | `gpt-5.6-sol` |"
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
"id": "gpt-image-1",
|
|
1385
|
+
"provider": "openai",
|
|
1386
|
+
"word": "shut down",
|
|
1387
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1388
|
+
"announced": "2026-04-22",
|
|
1389
|
+
"shutdown": "2026-10-23",
|
|
1390
|
+
"dateText": "October 23, 2026",
|
|
1391
|
+
"replacement": "gpt-image-2.5-sunburst or gpt-image-2.5-flare",
|
|
1392
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1393
|
+
"readOn": "2026-11-12",
|
|
1394
|
+
"quote": "| October 23, 2026 | `gpt-image-1` | `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` |"
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"id": "o1-2024-12-17",
|
|
1398
|
+
"provider": "openai",
|
|
1399
|
+
"word": "shut down",
|
|
1400
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1401
|
+
"announced": "2026-04-22",
|
|
1402
|
+
"shutdown": "2026-10-23",
|
|
1403
|
+
"dateText": "October 23, 2026",
|
|
1404
|
+
"replacement": "gpt-5.6-sol",
|
|
1405
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1406
|
+
"readOn": "2026-11-12",
|
|
1407
|
+
"quote": "| October 23, 2026 | `o1-2024-12-17` \\| `o1` | `gpt-5.6-sol` |"
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
"id": "o1",
|
|
1411
|
+
"provider": "openai",
|
|
1412
|
+
"word": "shut down",
|
|
1413
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1414
|
+
"announced": "2026-04-22",
|
|
1415
|
+
"shutdown": "2026-10-23",
|
|
1416
|
+
"dateText": "October 23, 2026",
|
|
1417
|
+
"replacement": "gpt-5.6-sol",
|
|
1418
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1419
|
+
"readOn": "2026-11-12",
|
|
1420
|
+
"quote": "| October 23, 2026 | `o1-2024-12-17` \\| `o1` | `gpt-5.6-sol` |"
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
"id": "o1-pro-2025-03-19",
|
|
1424
|
+
"provider": "openai",
|
|
1425
|
+
"word": "shut down",
|
|
1426
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1427
|
+
"announced": "2026-04-22",
|
|
1428
|
+
"shutdown": "2026-10-23",
|
|
1429
|
+
"dateText": "October 23, 2026",
|
|
1430
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1431
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1432
|
+
"readOn": "2026-11-12",
|
|
1433
|
+
"quote": "| October 23, 2026 | `o1-pro-2025-03-19` \\| `o1-pro` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
"id": "o1-pro",
|
|
1437
|
+
"provider": "openai",
|
|
1438
|
+
"word": "shut down",
|
|
1439
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1440
|
+
"announced": "2026-04-22",
|
|
1441
|
+
"shutdown": "2026-10-23",
|
|
1442
|
+
"dateText": "October 23, 2026",
|
|
1443
|
+
"replacement": "gpt-5.6-sol (reasoning.mode: pro)",
|
|
1444
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1445
|
+
"readOn": "2026-11-12",
|
|
1446
|
+
"quote": "| October 23, 2026 | `o1-pro-2025-03-19` \\| `o1-pro` | `gpt-5.6-sol` (`reasoning.mode: pro`) |"
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
"id": "o3-mini-2025-01-31",
|
|
1450
|
+
"provider": "openai",
|
|
1451
|
+
"word": "shut down",
|
|
1452
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1453
|
+
"announced": "2026-04-22",
|
|
1454
|
+
"shutdown": "2026-10-23",
|
|
1455
|
+
"dateText": "October 23, 2026",
|
|
1456
|
+
"replacement": "gpt-5.6-sol",
|
|
1457
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1458
|
+
"readOn": "2026-11-12",
|
|
1459
|
+
"quote": "| October 23, 2026 | `o3-mini-2025-01-31` \\| `o3-mini` | `gpt-5.6-sol` |"
|
|
1460
|
+
},
|
|
1461
|
+
{
|
|
1462
|
+
"id": "o3-mini",
|
|
1463
|
+
"provider": "openai",
|
|
1464
|
+
"word": "shut down",
|
|
1465
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1466
|
+
"announced": "2026-04-22",
|
|
1467
|
+
"shutdown": "2026-10-23",
|
|
1468
|
+
"dateText": "October 23, 2026",
|
|
1469
|
+
"replacement": "gpt-5.6-sol",
|
|
1470
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1471
|
+
"readOn": "2026-11-12",
|
|
1472
|
+
"quote": "| October 23, 2026 | `o3-mini-2025-01-31` \\| `o3-mini` | `gpt-5.6-sol` |"
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"id": "ft-o4-mini-2025-04-16",
|
|
1476
|
+
"provider": "openai",
|
|
1477
|
+
"word": "shut down",
|
|
1478
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1479
|
+
"announced": "2026-04-22",
|
|
1480
|
+
"shutdown": "2026-10-23",
|
|
1481
|
+
"dateText": "October 23, 2026",
|
|
1482
|
+
"replacement": "gpt-5.6-terra",
|
|
1483
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1484
|
+
"readOn": "2026-11-12",
|
|
1485
|
+
"quote": "| October 23, 2026 | `ft-o4-mini-2025-04-16` | `gpt-5.6-terra` |"
|
|
1486
|
+
},
|
|
1487
|
+
{
|
|
1488
|
+
"id": "o4-mini-2025-04-16",
|
|
1489
|
+
"provider": "openai",
|
|
1490
|
+
"word": "shut down",
|
|
1491
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1492
|
+
"announced": "2026-04-22",
|
|
1493
|
+
"shutdown": "2026-10-23",
|
|
1494
|
+
"dateText": "October 23, 2026",
|
|
1495
|
+
"replacement": "gpt-5.6-terra",
|
|
1496
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1497
|
+
"readOn": "2026-11-12",
|
|
1498
|
+
"quote": "| October 23, 2026 | `o4-mini-2025-04-16` \\| `o4-mini` | `gpt-5.6-terra` |"
|
|
1499
|
+
},
|
|
1500
|
+
{
|
|
1501
|
+
"id": "o4-mini",
|
|
1502
|
+
"provider": "openai",
|
|
1503
|
+
"word": "shut down",
|
|
1504
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots",
|
|
1505
|
+
"announced": "2026-04-22",
|
|
1506
|
+
"shutdown": "2026-10-23",
|
|
1507
|
+
"dateText": "October 23, 2026",
|
|
1508
|
+
"replacement": "gpt-5.6-terra",
|
|
1509
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1510
|
+
"readOn": "2026-11-12",
|
|
1511
|
+
"quote": "| October 23, 2026 | `o4-mini-2025-04-16` \\| `o4-mini` | `gpt-5.6-terra` |"
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"id": "computer-use-preview-2025-03-11",
|
|
1515
|
+
"provider": "openai",
|
|
1516
|
+
"word": "shut down",
|
|
1517
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1518
|
+
"announced": "2026-04-22",
|
|
1519
|
+
"shutdown": "2026-07-23",
|
|
1520
|
+
"dateText": "July 23, 2026",
|
|
1521
|
+
"replacement": "gpt-5.6-terra",
|
|
1522
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1523
|
+
"readOn": "2026-11-12",
|
|
1524
|
+
"quote": "| July 23, 2026 | `computer-use-preview-2025-03-11` \\| `computer-use-preview` | `gpt-5.6-terra` |"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
"id": "computer-use-preview",
|
|
1528
|
+
"provider": "openai",
|
|
1529
|
+
"word": "shut down",
|
|
1530
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1531
|
+
"announced": "2026-04-22",
|
|
1532
|
+
"shutdown": "2026-07-23",
|
|
1533
|
+
"dateText": "July 23, 2026",
|
|
1534
|
+
"replacement": "gpt-5.6-terra",
|
|
1535
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1536
|
+
"readOn": "2026-11-12",
|
|
1537
|
+
"quote": "| July 23, 2026 | `computer-use-preview-2025-03-11` \\| `computer-use-preview` | `gpt-5.6-terra` |"
|
|
1538
|
+
},
|
|
1539
|
+
{
|
|
1540
|
+
"id": "gpt-4o-mini-search-preview-2025-03-11",
|
|
1541
|
+
"provider": "openai",
|
|
1542
|
+
"word": "shut down",
|
|
1543
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1544
|
+
"announced": "2026-04-22",
|
|
1545
|
+
"shutdown": "2026-07-23",
|
|
1546
|
+
"dateText": "July 23, 2026",
|
|
1547
|
+
"replacement": "gpt-5.6-terra",
|
|
1548
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1549
|
+
"readOn": "2026-11-12",
|
|
1550
|
+
"quote": "| July 23, 2026 | `gpt-4o-mini-search-preview-2025-03-11` | `gpt-5.6-terra` |"
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
"id": "gpt-4o-search-preview-2025-03-11",
|
|
1554
|
+
"provider": "openai",
|
|
1555
|
+
"word": "shut down",
|
|
1556
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1557
|
+
"announced": "2026-04-22",
|
|
1558
|
+
"shutdown": "2026-07-23",
|
|
1559
|
+
"dateText": "July 23, 2026",
|
|
1560
|
+
"replacement": "gpt-5.6-terra",
|
|
1561
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1562
|
+
"readOn": "2026-11-12",
|
|
1563
|
+
"quote": "| July 23, 2026 | `gpt-4o-search-preview-2025-03-11` | `gpt-5.6-terra` |"
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
"id": "gpt-5-chat-latest",
|
|
1567
|
+
"provider": "openai",
|
|
1568
|
+
"word": "shut down",
|
|
1569
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1570
|
+
"announced": "2026-04-22",
|
|
1571
|
+
"shutdown": "2026-07-23",
|
|
1572
|
+
"dateText": "July 23, 2026",
|
|
1573
|
+
"replacement": "gpt-5.6-sol",
|
|
1574
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1575
|
+
"readOn": "2026-11-12",
|
|
1576
|
+
"quote": "| July 23, 2026 | `gpt-5-chat-latest` | `gpt-5.6-sol` |"
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
"id": "gpt-5-codex",
|
|
1580
|
+
"provider": "openai",
|
|
1581
|
+
"word": "shut down",
|
|
1582
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1583
|
+
"announced": "2026-04-22",
|
|
1584
|
+
"shutdown": "2026-07-23",
|
|
1585
|
+
"dateText": "July 23, 2026",
|
|
1586
|
+
"replacement": "gpt-5.6-sol",
|
|
1587
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1588
|
+
"readOn": "2026-11-12",
|
|
1589
|
+
"quote": "| July 23, 2026 | `gpt-5-codex` | `gpt-5.6-sol` |"
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
"id": "gpt-5.1-chat-latest",
|
|
1593
|
+
"provider": "openai",
|
|
1594
|
+
"word": "shut down",
|
|
1595
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1596
|
+
"announced": "2026-04-22",
|
|
1597
|
+
"shutdown": "2026-07-23",
|
|
1598
|
+
"dateText": "July 23, 2026",
|
|
1599
|
+
"replacement": "gpt-5.6-sol",
|
|
1600
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1601
|
+
"readOn": "2026-11-12",
|
|
1602
|
+
"quote": "| July 23, 2026 | `gpt-5.1-chat-latest` | `gpt-5.6-sol` |"
|
|
1603
|
+
},
|
|
1604
|
+
{
|
|
1605
|
+
"id": "gpt-5.1-codex",
|
|
1606
|
+
"provider": "openai",
|
|
1607
|
+
"word": "shut down",
|
|
1608
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1609
|
+
"announced": "2026-04-22",
|
|
1610
|
+
"shutdown": "2026-07-23",
|
|
1611
|
+
"dateText": "July 23, 2026",
|
|
1612
|
+
"replacement": "gpt-5.6-sol",
|
|
1613
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1614
|
+
"readOn": "2026-11-12",
|
|
1615
|
+
"quote": "| July 23, 2026 | `gpt-5.1-codex` | `gpt-5.6-sol` |"
|
|
1616
|
+
},
|
|
1617
|
+
{
|
|
1618
|
+
"id": "gpt-5.1-codex-max",
|
|
1619
|
+
"provider": "openai",
|
|
1620
|
+
"word": "shut down",
|
|
1621
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1622
|
+
"announced": "2026-04-22",
|
|
1623
|
+
"shutdown": "2026-07-23",
|
|
1624
|
+
"dateText": "July 23, 2026",
|
|
1625
|
+
"replacement": "gpt-5.6-sol",
|
|
1626
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1627
|
+
"readOn": "2026-11-12",
|
|
1628
|
+
"quote": "| July 23, 2026 | `gpt-5.1-codex-max` | `gpt-5.6-sol` |"
|
|
1629
|
+
},
|
|
1630
|
+
{
|
|
1631
|
+
"id": "gpt-5.1-codex-mini",
|
|
1632
|
+
"provider": "openai",
|
|
1633
|
+
"word": "shut down",
|
|
1634
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1635
|
+
"announced": "2026-04-22",
|
|
1636
|
+
"shutdown": "2026-07-23",
|
|
1637
|
+
"dateText": "July 23, 2026",
|
|
1638
|
+
"replacement": "gpt-5.6-terra",
|
|
1639
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1640
|
+
"readOn": "2026-11-12",
|
|
1641
|
+
"quote": "| July 23, 2026 | `gpt-5.1-codex-mini` | `gpt-5.6-terra` |"
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
"id": "gpt-audio-mini-2025-10-06",
|
|
1645
|
+
"provider": "openai",
|
|
1646
|
+
"word": "shut down",
|
|
1647
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1648
|
+
"announced": "2026-04-22",
|
|
1649
|
+
"shutdown": "2026-07-23",
|
|
1650
|
+
"dateText": "July 23, 2026",
|
|
1651
|
+
"replacement": "gpt-audio-1.5",
|
|
1652
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1653
|
+
"readOn": "2026-11-12",
|
|
1654
|
+
"quote": "| July 23, 2026 | `gpt-audio-mini-2025-10-06` | `gpt-audio-1.5` |"
|
|
1655
|
+
},
|
|
1656
|
+
{
|
|
1657
|
+
"id": "gpt-realtime-mini-2025-10-06",
|
|
1658
|
+
"provider": "openai",
|
|
1659
|
+
"word": "shut down",
|
|
1660
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1661
|
+
"announced": "2026-04-22",
|
|
1662
|
+
"shutdown": "2026-07-23",
|
|
1663
|
+
"dateText": "July 23, 2026",
|
|
1664
|
+
"replacement": "gpt-realtime-2.1-mini",
|
|
1665
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1666
|
+
"readOn": "2026-11-12",
|
|
1667
|
+
"quote": "| July 23, 2026 | `gpt-realtime-mini-2025-10-06` | `gpt-realtime-2.1-mini` |"
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
"id": "o3-deep-research-2025-06-26",
|
|
1671
|
+
"provider": "openai",
|
|
1672
|
+
"word": "shut down",
|
|
1673
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1674
|
+
"announced": "2026-04-22",
|
|
1675
|
+
"shutdown": "2026-07-23",
|
|
1676
|
+
"dateText": "July 23, 2026",
|
|
1677
|
+
"replacement": "gpt-5.6-sol",
|
|
1678
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1679
|
+
"readOn": "2026-11-12",
|
|
1680
|
+
"quote": "| July 23, 2026 | `o3-deep-research-2025-06-26` \\| `o3-deep-research` | `gpt-5.6-sol` |"
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
"id": "o3-deep-research",
|
|
1684
|
+
"provider": "openai",
|
|
1685
|
+
"word": "shut down",
|
|
1686
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1687
|
+
"announced": "2026-04-22",
|
|
1688
|
+
"shutdown": "2026-07-23",
|
|
1689
|
+
"dateText": "July 23, 2026",
|
|
1690
|
+
"replacement": "gpt-5.6-sol",
|
|
1691
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1692
|
+
"readOn": "2026-11-12",
|
|
1693
|
+
"quote": "| July 23, 2026 | `o3-deep-research-2025-06-26` \\| `o3-deep-research` | `gpt-5.6-sol` |"
|
|
1694
|
+
},
|
|
1695
|
+
{
|
|
1696
|
+
"id": "o4-mini-deep-research-2025-06-26",
|
|
1697
|
+
"provider": "openai",
|
|
1698
|
+
"word": "shut down",
|
|
1699
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1700
|
+
"announced": "2026-04-22",
|
|
1701
|
+
"shutdown": "2026-07-23",
|
|
1702
|
+
"dateText": "July 23, 2026",
|
|
1703
|
+
"replacement": "gpt-5.6-sol",
|
|
1704
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1705
|
+
"readOn": "2026-11-12",
|
|
1706
|
+
"quote": "| July 23, 2026 | `o4-mini-deep-research-2025-06-26` \\| `o4-mini-deep-research` | `gpt-5.6-sol` |"
|
|
1707
|
+
},
|
|
1708
|
+
{
|
|
1709
|
+
"id": "o4-mini-deep-research",
|
|
1710
|
+
"provider": "openai",
|
|
1711
|
+
"word": "shut down",
|
|
1712
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1713
|
+
"announced": "2026-04-22",
|
|
1714
|
+
"shutdown": "2026-07-23",
|
|
1715
|
+
"dateText": "July 23, 2026",
|
|
1716
|
+
"replacement": "gpt-5.6-sol",
|
|
1717
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1718
|
+
"readOn": "2026-11-12",
|
|
1719
|
+
"quote": "| July 23, 2026 | `o4-mini-deep-research-2025-06-26` \\| `o4-mini-deep-research` | `gpt-5.6-sol` |"
|
|
1720
|
+
},
|
|
1721
|
+
{
|
|
1722
|
+
"id": "gpt-5.2-codex",
|
|
1723
|
+
"provider": "openai",
|
|
1724
|
+
"word": "shut down",
|
|
1725
|
+
"pageWord": "Past deprecations: 2026-04-22: Legacy GPT model snapshots (July 2026 shutdown)",
|
|
1726
|
+
"announced": "2026-04-22",
|
|
1727
|
+
"shutdown": "2026-07-23",
|
|
1728
|
+
"dateText": "July 23, 2026",
|
|
1729
|
+
"replacement": "gpt-5.6-sol",
|
|
1730
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1731
|
+
"readOn": "2026-11-12",
|
|
1732
|
+
"quote": "| July 23, 2026 | `gpt-5.2-codex` | `gpt-5.6-sol` |"
|
|
1733
|
+
},
|
|
1734
|
+
{
|
|
1735
|
+
"id": "sora-2",
|
|
1736
|
+
"provider": "openai",
|
|
1737
|
+
"word": "shut down",
|
|
1738
|
+
"pageWord": "Past deprecations: 2026-03-24: Sora 2 video generation models and Videos API",
|
|
1739
|
+
"announced": "2026-03-24",
|
|
1740
|
+
"shutdown": "2026-09-24",
|
|
1741
|
+
"dateText": "2026-09-24",
|
|
1742
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1743
|
+
"readOn": "2026-11-12",
|
|
1744
|
+
"quote": "| 2026-09-24 | `sora-2` | --- |"
|
|
1745
|
+
},
|
|
1746
|
+
{
|
|
1747
|
+
"id": "sora-2-pro",
|
|
1748
|
+
"provider": "openai",
|
|
1749
|
+
"word": "shut down",
|
|
1750
|
+
"pageWord": "Past deprecations: 2026-03-24: Sora 2 video generation models and Videos API",
|
|
1751
|
+
"announced": "2026-03-24",
|
|
1752
|
+
"shutdown": "2026-09-24",
|
|
1753
|
+
"dateText": "2026-09-24",
|
|
1754
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1755
|
+
"readOn": "2026-11-12",
|
|
1756
|
+
"quote": "| 2026-09-24 | `sora-2-pro` | --- |"
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
"id": "sora-2-2025-10-06",
|
|
1760
|
+
"provider": "openai",
|
|
1761
|
+
"word": "shut down",
|
|
1762
|
+
"pageWord": "Past deprecations: 2026-03-24: Sora 2 video generation models and Videos API",
|
|
1763
|
+
"announced": "2026-03-24",
|
|
1764
|
+
"shutdown": "2026-09-24",
|
|
1765
|
+
"dateText": "2026-09-24",
|
|
1766
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1767
|
+
"readOn": "2026-11-12",
|
|
1768
|
+
"quote": "| 2026-09-24 | `sora-2-2025-10-06` | --- |"
|
|
1769
|
+
},
|
|
1770
|
+
{
|
|
1771
|
+
"id": "sora-2-2025-12-08",
|
|
1772
|
+
"provider": "openai",
|
|
1773
|
+
"word": "shut down",
|
|
1774
|
+
"pageWord": "Past deprecations: 2026-03-24: Sora 2 video generation models and Videos API",
|
|
1775
|
+
"announced": "2026-03-24",
|
|
1776
|
+
"shutdown": "2026-09-24",
|
|
1777
|
+
"dateText": "2026-09-24",
|
|
1778
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1779
|
+
"readOn": "2026-11-12",
|
|
1780
|
+
"quote": "| 2026-09-24 | `sora-2-2025-12-08` | --- |"
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
"id": "sora-2-pro-2025-10-06",
|
|
1784
|
+
"provider": "openai",
|
|
1785
|
+
"word": "shut down",
|
|
1786
|
+
"pageWord": "Past deprecations: 2026-03-24: Sora 2 video generation models and Videos API",
|
|
1787
|
+
"announced": "2026-03-24",
|
|
1788
|
+
"shutdown": "2026-09-24",
|
|
1789
|
+
"dateText": "2026-09-24",
|
|
1790
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1791
|
+
"readOn": "2026-11-12",
|
|
1792
|
+
"quote": "| 2026-09-24 | `sora-2-pro-2025-10-06` | --- |"
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
"id": "chatgpt-4o-latest",
|
|
1796
|
+
"provider": "openai",
|
|
1797
|
+
"word": "shut down",
|
|
1798
|
+
"pageWord": "Past deprecations: 2025-11-18: `chatgpt-4o-latest` snapshot",
|
|
1799
|
+
"announced": "2025-11-18",
|
|
1800
|
+
"shutdown": "2026-02-17",
|
|
1801
|
+
"dateText": "2026-02-17",
|
|
1802
|
+
"replacement": "gpt-5.1-chat-latest",
|
|
1803
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1804
|
+
"readOn": "2026-11-12",
|
|
1805
|
+
"quote": "| 2026-02-17 | `chatgpt-4o-latest` | `gpt-5.1-chat-latest` |"
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
"id": "codex-mini-latest",
|
|
1809
|
+
"provider": "openai",
|
|
1810
|
+
"word": "shut down",
|
|
1811
|
+
"pageWord": "Past deprecations: 2025-11-17: `codex-mini-latest` model snapshot",
|
|
1812
|
+
"announced": "2025-11-17",
|
|
1813
|
+
"shutdown": "2026-02-12",
|
|
1814
|
+
"dateText": "2026-02-12",
|
|
1815
|
+
"replacement": "gpt-5-codex-mini",
|
|
1816
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1817
|
+
"readOn": "2026-11-12",
|
|
1818
|
+
"quote": "| 2026-02-12 | `codex-mini-latest` | `gpt-5-codex-mini` |"
|
|
1819
|
+
},
|
|
1820
|
+
{
|
|
1821
|
+
"id": "dall-e-2",
|
|
1822
|
+
"provider": "openai",
|
|
1823
|
+
"word": "shut down",
|
|
1824
|
+
"pageWord": "Past deprecations: 2025-11-14: DALL\xB7E model snapshots",
|
|
1825
|
+
"announced": "2025-11-14",
|
|
1826
|
+
"shutdown": "2026-05-12",
|
|
1827
|
+
"dateText": "2026-05-12",
|
|
1828
|
+
"replacement": "gpt-image-2, gpt-image-1, or gpt-image-1-mini",
|
|
1829
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1830
|
+
"readOn": "2026-11-12",
|
|
1831
|
+
"quote": "| 2026-05-12 | `dall-e-2` | `gpt-image-2`, `gpt-image-1`, or `gpt-image-1-mini` |"
|
|
1832
|
+
},
|
|
1833
|
+
{
|
|
1834
|
+
"id": "dall-e-3",
|
|
1835
|
+
"provider": "openai",
|
|
1836
|
+
"word": "shut down",
|
|
1837
|
+
"pageWord": "Past deprecations: 2025-11-14: DALL\xB7E model snapshots",
|
|
1838
|
+
"announced": "2025-11-14",
|
|
1839
|
+
"shutdown": "2026-05-12",
|
|
1840
|
+
"dateText": "2026-05-12",
|
|
1841
|
+
"replacement": "gpt-image-2, gpt-image-1, or gpt-image-1-mini",
|
|
1842
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1843
|
+
"readOn": "2026-11-12",
|
|
1844
|
+
"quote": "| 2026-05-12 | `dall-e-3` | `gpt-image-2`, `gpt-image-1`, or `gpt-image-1-mini` |"
|
|
1845
|
+
},
|
|
1846
|
+
{
|
|
1847
|
+
"id": "gpt-3.5-turbo-instruct",
|
|
1848
|
+
"provider": "openai",
|
|
1849
|
+
"word": "shut down",
|
|
1850
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots",
|
|
1851
|
+
"announced": "2025-09-26",
|
|
1852
|
+
"shutdown": "2026-09-28",
|
|
1853
|
+
"dateText": "2026-09-28",
|
|
1854
|
+
"replacement": "gpt-5.6-terra",
|
|
1855
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1856
|
+
"readOn": "2026-11-12",
|
|
1857
|
+
"quote": "| 2026-09-28 | `gpt-3.5-turbo-instruct` | `gpt-5.6-terra` |"
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"id": "babbage-002",
|
|
1861
|
+
"provider": "openai",
|
|
1862
|
+
"word": "shut down",
|
|
1863
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots",
|
|
1864
|
+
"announced": "2025-09-26",
|
|
1865
|
+
"shutdown": "2026-09-28",
|
|
1866
|
+
"dateText": "2026-09-28",
|
|
1867
|
+
"replacement": "gpt-5.6-terra",
|
|
1868
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1869
|
+
"readOn": "2026-11-12",
|
|
1870
|
+
"quote": "| 2026-09-28 | `babbage-002` | `gpt-5.6-terra` |"
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"id": "davinci-002",
|
|
1874
|
+
"provider": "openai",
|
|
1875
|
+
"word": "shut down",
|
|
1876
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots",
|
|
1877
|
+
"announced": "2025-09-26",
|
|
1878
|
+
"shutdown": "2026-09-28",
|
|
1879
|
+
"dateText": "2026-09-28",
|
|
1880
|
+
"replacement": "gpt-5.6-terra",
|
|
1881
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1882
|
+
"readOn": "2026-11-12",
|
|
1883
|
+
"quote": "| 2026-09-28 | `davinci-002` | `gpt-5.6-terra` |"
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
"id": "gpt-3.5-turbo-1106",
|
|
1887
|
+
"provider": "openai",
|
|
1888
|
+
"word": "shut down",
|
|
1889
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots",
|
|
1890
|
+
"announced": "2025-09-26",
|
|
1891
|
+
"shutdown": "2026-09-28",
|
|
1892
|
+
"dateText": "2026-09-28",
|
|
1893
|
+
"replacement": "gpt-5.6-terra",
|
|
1894
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1895
|
+
"readOn": "2026-11-12",
|
|
1896
|
+
"quote": "| 2026-09-28 | `gpt-3.5-turbo-1106` | `gpt-5.6-terra` |"
|
|
1897
|
+
},
|
|
1898
|
+
{
|
|
1899
|
+
"id": "gpt-4-0314",
|
|
1900
|
+
"provider": "openai",
|
|
1901
|
+
"word": "shut down",
|
|
1902
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots (March 2026 shutdown)",
|
|
1903
|
+
"announced": "2025-09-26",
|
|
1904
|
+
"shutdown": "2026-03-26",
|
|
1905
|
+
"dateText": "2026-03-26",
|
|
1906
|
+
"replacement": "gpt-5 or gpt-4.1*",
|
|
1907
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1908
|
+
"readOn": "2026-11-12",
|
|
1909
|
+
"quote": "| 2026\u201103\u201126 | `gpt-4-0314` | `gpt-5` or `gpt-4.1*` |"
|
|
1910
|
+
},
|
|
1911
|
+
{
|
|
1912
|
+
"id": "gpt-4-0125-preview",
|
|
1913
|
+
"provider": "openai",
|
|
1914
|
+
"word": "shut down",
|
|
1915
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots (March 2026 shutdown)",
|
|
1916
|
+
"announced": "2025-09-26",
|
|
1917
|
+
"shutdown": "2026-03-26",
|
|
1918
|
+
"dateText": "2026-03-26",
|
|
1919
|
+
"replacement": "gpt-5 or gpt-4.1*",
|
|
1920
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1921
|
+
"readOn": "2026-11-12",
|
|
1922
|
+
"quote": "| 2026\u201103\u201126 | `gpt-4-0125-preview` (including `gpt-4-turbo-preview` and `gpt-4-turbo-preview-completions`, which point to this snapshot) | `gpt-5` or `gpt-4.1*` |"
|
|
1923
|
+
},
|
|
1924
|
+
{
|
|
1925
|
+
"id": "gpt-4-turbo-preview",
|
|
1926
|
+
"provider": "openai",
|
|
1927
|
+
"word": "shut down",
|
|
1928
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots (March 2026 shutdown)",
|
|
1929
|
+
"announced": "2025-09-26",
|
|
1930
|
+
"shutdown": "2026-03-26",
|
|
1931
|
+
"dateText": "2026-03-26",
|
|
1932
|
+
"replacement": "gpt-5 or gpt-4.1*",
|
|
1933
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1934
|
+
"readOn": "2026-11-12",
|
|
1935
|
+
"quote": "| 2026\u201103\u201126 | `gpt-4-0125-preview` (including `gpt-4-turbo-preview` and `gpt-4-turbo-preview-completions`, which point to this snapshot) | `gpt-5` or `gpt-4.1*` |"
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
"id": "gpt-4-turbo-preview-completions",
|
|
1939
|
+
"provider": "openai",
|
|
1940
|
+
"word": "shut down",
|
|
1941
|
+
"pageWord": "Past deprecations: 2025-09-26: Legacy GPT model snapshots (March 2026 shutdown)",
|
|
1942
|
+
"announced": "2025-09-26",
|
|
1943
|
+
"shutdown": "2026-03-26",
|
|
1944
|
+
"dateText": "2026-03-26",
|
|
1945
|
+
"replacement": "gpt-5 or gpt-4.1*",
|
|
1946
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1947
|
+
"readOn": "2026-11-12",
|
|
1948
|
+
"quote": "| 2026\u201103\u201126 | `gpt-4-0125-preview` (including `gpt-4-turbo-preview` and `gpt-4-turbo-preview-completions`, which point to this snapshot) | `gpt-5` or `gpt-4.1*` |"
|
|
1949
|
+
},
|
|
1950
|
+
{
|
|
1951
|
+
"id": "gpt-4o-realtime-preview",
|
|
1952
|
+
"provider": "openai",
|
|
1953
|
+
"word": "shut down",
|
|
1954
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
1955
|
+
"announced": "2025-09-15",
|
|
1956
|
+
"shutdown": "2026-05-07",
|
|
1957
|
+
"dateText": "2026-05-07",
|
|
1958
|
+
"replacement": "gpt-realtime-1.5",
|
|
1959
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1960
|
+
"readOn": "2026-11-12",
|
|
1961
|
+
"quote": "| 2026-05-07 | `gpt-4o-realtime-preview` | `gpt-realtime-1.5` |"
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
"id": "gpt-4o-realtime-preview-2025-06-03",
|
|
1965
|
+
"provider": "openai",
|
|
1966
|
+
"word": "shut down",
|
|
1967
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
1968
|
+
"announced": "2025-09-15",
|
|
1969
|
+
"shutdown": "2026-05-07",
|
|
1970
|
+
"dateText": "2026-05-07",
|
|
1971
|
+
"replacement": "gpt-realtime-1.5",
|
|
1972
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1973
|
+
"readOn": "2026-11-12",
|
|
1974
|
+
"quote": "| 2026-05-07 | `gpt-4o-realtime-preview-2025-06-03` | `gpt-realtime-1.5` |"
|
|
1975
|
+
},
|
|
1976
|
+
{
|
|
1977
|
+
"id": "gpt-4o-realtime-preview-2024-12-17",
|
|
1978
|
+
"provider": "openai",
|
|
1979
|
+
"word": "shut down",
|
|
1980
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
1981
|
+
"announced": "2025-09-15",
|
|
1982
|
+
"shutdown": "2026-05-07",
|
|
1983
|
+
"dateText": "2026-05-07",
|
|
1984
|
+
"replacement": "gpt-realtime-1.5",
|
|
1985
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1986
|
+
"readOn": "2026-11-12",
|
|
1987
|
+
"quote": "| 2026-05-07 | `gpt-4o-realtime-preview-2024-12-17` | `gpt-realtime-1.5` |"
|
|
1988
|
+
},
|
|
1989
|
+
{
|
|
1990
|
+
"id": "gpt-4o-mini-realtime-preview",
|
|
1991
|
+
"provider": "openai",
|
|
1992
|
+
"word": "shut down",
|
|
1993
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
1994
|
+
"announced": "2025-09-15",
|
|
1995
|
+
"shutdown": "2026-05-07",
|
|
1996
|
+
"dateText": "2026-05-07",
|
|
1997
|
+
"replacement": "gpt-realtime-mini",
|
|
1998
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
1999
|
+
"readOn": "2026-11-12",
|
|
2000
|
+
"quote": "| 2026-05-07 | `gpt-4o-mini-realtime-preview` | `gpt-realtime-mini` |"
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"id": "gpt-4o-audio-preview",
|
|
2004
|
+
"provider": "openai",
|
|
2005
|
+
"word": "shut down",
|
|
2006
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
2007
|
+
"announced": "2025-09-15",
|
|
2008
|
+
"shutdown": "2026-05-07",
|
|
2009
|
+
"dateText": "2026-05-07",
|
|
2010
|
+
"replacement": "gpt-audio-1.5",
|
|
2011
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2012
|
+
"readOn": "2026-11-12",
|
|
2013
|
+
"quote": "| 2026-05-07 | `gpt-4o-audio-preview` | `gpt-audio-1.5` |"
|
|
2014
|
+
},
|
|
2015
|
+
{
|
|
2016
|
+
"id": "gpt-4o-mini-audio-preview",
|
|
2017
|
+
"provider": "openai",
|
|
2018
|
+
"word": "shut down",
|
|
2019
|
+
"pageWord": "Past deprecations: 2025-09-15: `gpt-4o-realtime-preview` models",
|
|
2020
|
+
"announced": "2025-09-15",
|
|
2021
|
+
"shutdown": "2026-05-07",
|
|
2022
|
+
"dateText": "2026-05-07",
|
|
2023
|
+
"replacement": "gpt-audio-mini",
|
|
2024
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2025
|
+
"readOn": "2026-11-12",
|
|
2026
|
+
"quote": "| 2026-05-07 | `gpt-4o-mini-audio-preview` | `gpt-audio-mini` |"
|
|
2027
|
+
},
|
|
2028
|
+
{
|
|
2029
|
+
"id": "gpt-4o-realtime-preview-2024-10-01",
|
|
2030
|
+
"provider": "openai",
|
|
2031
|
+
"word": "shut down",
|
|
2032
|
+
"pageWord": "Past deprecations: 2025-06-10: `gpt-4o-realtime-preview-2024-10-01`",
|
|
2033
|
+
"announced": "2025-06-10",
|
|
2034
|
+
"shutdown": "2025-10-10",
|
|
2035
|
+
"dateText": "2025-10-10",
|
|
2036
|
+
"replacement": "gpt-realtime-1.5",
|
|
2037
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2038
|
+
"readOn": "2026-11-12",
|
|
2039
|
+
"quote": "| 2025-10-10 | `gpt-4o-realtime-preview-2024-10-01` | `gpt-realtime-1.5` |"
|
|
2040
|
+
},
|
|
2041
|
+
{
|
|
2042
|
+
"id": "gpt-4o-audio-preview-2024-10-01",
|
|
2043
|
+
"provider": "openai",
|
|
2044
|
+
"word": "shut down",
|
|
2045
|
+
"pageWord": "Past deprecations: 2025-06-10: `gpt-4o-audio-preview-2024-10-01`",
|
|
2046
|
+
"announced": "2025-06-10",
|
|
2047
|
+
"shutdown": "2025-10-10",
|
|
2048
|
+
"dateText": "2025-10-10",
|
|
2049
|
+
"replacement": "gpt-audio-1.5",
|
|
2050
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2051
|
+
"readOn": "2026-11-12",
|
|
2052
|
+
"quote": "| 2025-10-10 | `gpt-4o-audio-preview-2024-10-01` | `gpt-audio-1.5` |"
|
|
2053
|
+
},
|
|
2054
|
+
{
|
|
2055
|
+
"id": "text-moderation-007",
|
|
2056
|
+
"provider": "openai",
|
|
2057
|
+
"word": "shut down",
|
|
2058
|
+
"pageWord": "Past deprecations: 2025-04-28: `text-moderation`",
|
|
2059
|
+
"announced": "2025-04-28",
|
|
2060
|
+
"shutdown": "2025-10-27",
|
|
2061
|
+
"dateText": "2025-10-27",
|
|
2062
|
+
"replacement": "omni-moderation",
|
|
2063
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2064
|
+
"readOn": "2026-11-12",
|
|
2065
|
+
"quote": "| 2025-10-27 | `text-moderation-007` | `omni-moderation` |"
|
|
2066
|
+
},
|
|
2067
|
+
{
|
|
2068
|
+
"id": "text-moderation-stable",
|
|
2069
|
+
"provider": "openai",
|
|
2070
|
+
"word": "shut down",
|
|
2071
|
+
"pageWord": "Past deprecations: 2025-04-28: `text-moderation`",
|
|
2072
|
+
"announced": "2025-04-28",
|
|
2073
|
+
"shutdown": "2025-10-27",
|
|
2074
|
+
"dateText": "2025-10-27",
|
|
2075
|
+
"replacement": "omni-moderation",
|
|
2076
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2077
|
+
"readOn": "2026-11-12",
|
|
2078
|
+
"quote": "| 2025-10-27 | `text-moderation-stable` | `omni-moderation` |"
|
|
2079
|
+
},
|
|
2080
|
+
{
|
|
2081
|
+
"id": "text-moderation-latest",
|
|
2082
|
+
"provider": "openai",
|
|
2083
|
+
"word": "shut down",
|
|
2084
|
+
"pageWord": "Past deprecations: 2025-04-28: `text-moderation`",
|
|
2085
|
+
"announced": "2025-04-28",
|
|
2086
|
+
"shutdown": "2025-10-27",
|
|
2087
|
+
"dateText": "2025-10-27",
|
|
2088
|
+
"replacement": "omni-moderation",
|
|
2089
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2090
|
+
"readOn": "2026-11-12",
|
|
2091
|
+
"quote": "| 2025-10-27 | `text-moderation-latest` | `omni-moderation` |"
|
|
2092
|
+
},
|
|
2093
|
+
{
|
|
2094
|
+
"id": "o1-preview",
|
|
2095
|
+
"provider": "openai",
|
|
2096
|
+
"word": "shut down",
|
|
2097
|
+
"pageWord": "Past deprecations: 2025-04-28: `o1-preview` and `o1-mini`",
|
|
2098
|
+
"announced": "2025-04-28",
|
|
2099
|
+
"shutdown": "2025-07-28",
|
|
2100
|
+
"dateText": "2025-07-28",
|
|
2101
|
+
"replacement": "o3",
|
|
2102
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2103
|
+
"readOn": "2026-11-12",
|
|
2104
|
+
"quote": "| 2025-07-28 | `o1-preview` | `o3` |"
|
|
2105
|
+
},
|
|
2106
|
+
{
|
|
2107
|
+
"id": "o1-mini",
|
|
2108
|
+
"provider": "openai",
|
|
2109
|
+
"word": "shut down",
|
|
2110
|
+
"pageWord": "Past deprecations: 2025-04-28: `o1-preview` and `o1-mini`",
|
|
2111
|
+
"announced": "2025-04-28",
|
|
2112
|
+
"shutdown": "2025-10-27",
|
|
2113
|
+
"dateText": "2025-10-27",
|
|
2114
|
+
"replacement": "o4-mini",
|
|
2115
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2116
|
+
"readOn": "2026-11-12",
|
|
2117
|
+
"quote": "| 2025-10-27 | `o1-mini` | `o4-mini` |"
|
|
2118
|
+
},
|
|
2119
|
+
{
|
|
2120
|
+
"id": "gpt-4.5-preview",
|
|
2121
|
+
"provider": "openai",
|
|
2122
|
+
"word": "shut down",
|
|
2123
|
+
"pageWord": "Past deprecations: 2025-04-14: GPT-4.5-preview",
|
|
2124
|
+
"announced": "2025-04-14",
|
|
2125
|
+
"shutdown": "2025-07-14",
|
|
2126
|
+
"dateText": "2025-07-14",
|
|
2127
|
+
"replacement": "gpt-4.1",
|
|
2128
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2129
|
+
"readOn": "2026-11-12",
|
|
2130
|
+
"quote": "| 2025-07-14 | `gpt-4.5-preview` | `gpt-4.1` |"
|
|
2131
|
+
},
|
|
2132
|
+
{
|
|
2133
|
+
"id": "gpt-4-32k",
|
|
2134
|
+
"provider": "openai",
|
|
2135
|
+
"word": "shut down",
|
|
2136
|
+
"pageWord": "Past deprecations: 2024-06-06: GPT-4-32K and Vision Preview models",
|
|
2137
|
+
"announced": "2024-06-06",
|
|
2138
|
+
"shutdown": "2025-06-06",
|
|
2139
|
+
"dateText": "2025-06-06",
|
|
2140
|
+
"replacement": "gpt-4o",
|
|
2141
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2142
|
+
"readOn": "2026-11-12",
|
|
2143
|
+
"quote": "| 2025-06-06 | `gpt-4-32k` | $60.00 / 1M input tokens + $120 / 1M output tokens | `gpt-4o` |"
|
|
2144
|
+
},
|
|
2145
|
+
{
|
|
2146
|
+
"id": "gpt-4-32k-0613",
|
|
2147
|
+
"provider": "openai",
|
|
2148
|
+
"word": "shut down",
|
|
2149
|
+
"pageWord": "Past deprecations: 2024-06-06: GPT-4-32K and Vision Preview models",
|
|
2150
|
+
"announced": "2024-06-06",
|
|
2151
|
+
"shutdown": "2025-06-06",
|
|
2152
|
+
"dateText": "2025-06-06",
|
|
2153
|
+
"replacement": "gpt-4o",
|
|
2154
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2155
|
+
"readOn": "2026-11-12",
|
|
2156
|
+
"quote": "| 2025-06-06 | `gpt-4-32k-0613` | $60.00 / 1M input tokens + $120 / 1M output tokens | `gpt-4o` |"
|
|
2157
|
+
},
|
|
2158
|
+
{
|
|
2159
|
+
"id": "gpt-4-32k-0314",
|
|
2160
|
+
"provider": "openai",
|
|
2161
|
+
"word": "shut down",
|
|
2162
|
+
"pageWord": "Past deprecations: 2024-06-06: GPT-4-32K and Vision Preview models",
|
|
2163
|
+
"announced": "2024-06-06",
|
|
2164
|
+
"shutdown": "2025-06-06",
|
|
2165
|
+
"dateText": "2025-06-06",
|
|
2166
|
+
"replacement": "gpt-4o",
|
|
2167
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2168
|
+
"readOn": "2026-11-12",
|
|
2169
|
+
"quote": "| 2025-06-06 | `gpt-4-32k-0314` | $60.00 / 1M input tokens + $120 / 1M output tokens | `gpt-4o` |"
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"id": "gpt-4-vision-preview",
|
|
2173
|
+
"provider": "openai",
|
|
2174
|
+
"word": "shut down",
|
|
2175
|
+
"pageWord": "Past deprecations: 2024-06-06: GPT-4-32K and Vision Preview models",
|
|
2176
|
+
"announced": "2024-06-06",
|
|
2177
|
+
"shutdown": "2024-12-06",
|
|
2178
|
+
"dateText": "2024-12-06",
|
|
2179
|
+
"replacement": "gpt-4o",
|
|
2180
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2181
|
+
"readOn": "2026-11-12",
|
|
2182
|
+
"quote": "| 2024-12-06 | `gpt-4-vision-preview` | $10.00 / 1M input tokens + $30 / 1M output tokens | `gpt-4o` |"
|
|
2183
|
+
},
|
|
2184
|
+
{
|
|
2185
|
+
"id": "gpt-4-1106-vision-preview",
|
|
2186
|
+
"provider": "openai",
|
|
2187
|
+
"word": "shut down",
|
|
2188
|
+
"pageWord": "Past deprecations: 2024-06-06: GPT-4-32K and Vision Preview models",
|
|
2189
|
+
"announced": "2024-06-06",
|
|
2190
|
+
"shutdown": "2024-12-06",
|
|
2191
|
+
"dateText": "2024-12-06",
|
|
2192
|
+
"replacement": "gpt-4o",
|
|
2193
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2194
|
+
"readOn": "2026-11-12",
|
|
2195
|
+
"quote": "| 2024-12-06 | `gpt-4-1106-vision-preview` | $10.00 / 1M input tokens + $30 / 1M output tokens | `gpt-4o` |"
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"id": "gpt-3.5-turbo-0613",
|
|
2199
|
+
"provider": "openai",
|
|
2200
|
+
"word": "shut down",
|
|
2201
|
+
"pageWord": "Past deprecations: 2023-11-06: Chat model updates",
|
|
2202
|
+
"announced": "2023-11-06",
|
|
2203
|
+
"shutdown": "2024-09-13",
|
|
2204
|
+
"dateText": "2024-09-13",
|
|
2205
|
+
"replacement": "gpt-3.5-turbo",
|
|
2206
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2207
|
+
"readOn": "2026-11-12",
|
|
2208
|
+
"quote": "| 2024-09-13 | `gpt-3.5-turbo-0613` | $1.50 / 1M input tokens + $2.00 / 1M output tokens | `gpt-3.5-turbo` |"
|
|
2209
|
+
},
|
|
2210
|
+
{
|
|
2211
|
+
"id": "gpt-3.5-turbo-16k-0613",
|
|
2212
|
+
"provider": "openai",
|
|
2213
|
+
"word": "shut down",
|
|
2214
|
+
"pageWord": "Past deprecations: 2023-11-06: Chat model updates",
|
|
2215
|
+
"announced": "2023-11-06",
|
|
2216
|
+
"shutdown": "2024-09-13",
|
|
2217
|
+
"dateText": "2024-09-13",
|
|
2218
|
+
"replacement": "gpt-3.5-turbo",
|
|
2219
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2220
|
+
"readOn": "2026-11-12",
|
|
2221
|
+
"quote": "| 2024-09-13 | `gpt-3.5-turbo-16k-0613` | $3.00 / 1M input tokens + $4.00 / 1M output tokens | `gpt-3.5-turbo` |"
|
|
2222
|
+
},
|
|
2223
|
+
{
|
|
2224
|
+
"id": "text-ada-001",
|
|
2225
|
+
"provider": "openai",
|
|
2226
|
+
"word": "shut down",
|
|
2227
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2228
|
+
"shutdown": "2024-01-04",
|
|
2229
|
+
"dateText": "2024-01-04",
|
|
2230
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2231
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2232
|
+
"readOn": "2026-11-12",
|
|
2233
|
+
"quote": "| 2024-01-04 | `text-ada-001` | $0.40 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2234
|
+
},
|
|
2235
|
+
{
|
|
2236
|
+
"id": "text-babbage-001",
|
|
2237
|
+
"provider": "openai",
|
|
2238
|
+
"word": "shut down",
|
|
2239
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2240
|
+
"shutdown": "2024-01-04",
|
|
2241
|
+
"dateText": "2024-01-04",
|
|
2242
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2243
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2244
|
+
"readOn": "2026-11-12",
|
|
2245
|
+
"quote": "| 2024-01-04 | `text-babbage-001` | $0.50 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2246
|
+
},
|
|
2247
|
+
{
|
|
2248
|
+
"id": "text-curie-001",
|
|
2249
|
+
"provider": "openai",
|
|
2250
|
+
"word": "shut down",
|
|
2251
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2252
|
+
"shutdown": "2024-01-04",
|
|
2253
|
+
"dateText": "2024-01-04",
|
|
2254
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2255
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2256
|
+
"readOn": "2026-11-12",
|
|
2257
|
+
"quote": "| 2024-01-04 | `text-curie-001` | $2.00 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2258
|
+
},
|
|
2259
|
+
{
|
|
2260
|
+
"id": "text-davinci-001",
|
|
2261
|
+
"provider": "openai",
|
|
2262
|
+
"word": "shut down",
|
|
2263
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2264
|
+
"shutdown": "2024-01-04",
|
|
2265
|
+
"dateText": "2024-01-04",
|
|
2266
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2267
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2268
|
+
"readOn": "2026-11-12",
|
|
2269
|
+
"quote": "| 2024-01-04 | `text-davinci-001` | $20.00 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2270
|
+
},
|
|
2271
|
+
{
|
|
2272
|
+
"id": "text-davinci-002",
|
|
2273
|
+
"provider": "openai",
|
|
2274
|
+
"word": "shut down",
|
|
2275
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2276
|
+
"shutdown": "2024-01-04",
|
|
2277
|
+
"dateText": "2024-01-04",
|
|
2278
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2279
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2280
|
+
"readOn": "2026-11-12",
|
|
2281
|
+
"quote": "| 2024-01-04 | `text-davinci-002` | $20.00 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2282
|
+
},
|
|
2283
|
+
{
|
|
2284
|
+
"id": "text-davinci-003",
|
|
2285
|
+
"provider": "openai",
|
|
2286
|
+
"word": "shut down",
|
|
2287
|
+
"pageWord": "Past deprecations: InstructGPT models",
|
|
2288
|
+
"shutdown": "2024-01-04",
|
|
2289
|
+
"dateText": "2024-01-04",
|
|
2290
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2291
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2292
|
+
"readOn": "2026-11-12",
|
|
2293
|
+
"quote": "| 2024-01-04 | `text-davinci-003` | $20.00 / 1M tokens | `gpt-3.5-turbo-instruct` |"
|
|
2294
|
+
},
|
|
2295
|
+
{
|
|
2296
|
+
"id": "ada",
|
|
2297
|
+
"provider": "openai",
|
|
2298
|
+
"word": "shut down",
|
|
2299
|
+
"pageWord": "Past deprecations: Base GPT models",
|
|
2300
|
+
"shutdown": "2024-01-04",
|
|
2301
|
+
"dateText": "2024-01-04",
|
|
2302
|
+
"replacement": "babbage-002",
|
|
2303
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2304
|
+
"readOn": "2026-11-12",
|
|
2305
|
+
"quote": "| 2024-01-04 | `ada` | $0.40 / 1M tokens | `babbage-002` |"
|
|
2306
|
+
},
|
|
2307
|
+
{
|
|
2308
|
+
"id": "babbage",
|
|
2309
|
+
"provider": "openai",
|
|
2310
|
+
"word": "shut down",
|
|
2311
|
+
"pageWord": "Past deprecations: Base GPT models",
|
|
2312
|
+
"shutdown": "2024-01-04",
|
|
2313
|
+
"dateText": "2024-01-04",
|
|
2314
|
+
"replacement": "babbage-002",
|
|
2315
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2316
|
+
"readOn": "2026-11-12",
|
|
2317
|
+
"quote": "| 2024-01-04 | `babbage` | $0.50 / 1M tokens | `babbage-002` |"
|
|
2318
|
+
},
|
|
2319
|
+
{
|
|
2320
|
+
"id": "curie",
|
|
2321
|
+
"provider": "openai",
|
|
2322
|
+
"word": "shut down",
|
|
2323
|
+
"pageWord": "Past deprecations: Base GPT models",
|
|
2324
|
+
"shutdown": "2024-01-04",
|
|
2325
|
+
"dateText": "2024-01-04",
|
|
2326
|
+
"replacement": "davinci-002",
|
|
2327
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2328
|
+
"readOn": "2026-11-12",
|
|
2329
|
+
"quote": "| 2024-01-04 | `curie` | $2.00 / 1M tokens | `davinci-002` |"
|
|
2330
|
+
},
|
|
2331
|
+
{
|
|
2332
|
+
"id": "davinci",
|
|
2333
|
+
"provider": "openai",
|
|
2334
|
+
"word": "shut down",
|
|
2335
|
+
"pageWord": "Past deprecations: Base GPT models",
|
|
2336
|
+
"shutdown": "2024-01-04",
|
|
2337
|
+
"dateText": "2024-01-04",
|
|
2338
|
+
"replacement": "davinci-002",
|
|
2339
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2340
|
+
"readOn": "2026-11-12",
|
|
2341
|
+
"quote": "| 2024-01-04 | `davinci` | $20.00 / 1M tokens | `davinci-002` |"
|
|
2342
|
+
},
|
|
2343
|
+
{
|
|
2344
|
+
"id": "code-davinci-002",
|
|
2345
|
+
"provider": "openai",
|
|
2346
|
+
"word": "shut down",
|
|
2347
|
+
"pageWord": "Past deprecations: Base GPT models",
|
|
2348
|
+
"shutdown": "2024-01-04",
|
|
2349
|
+
"dateText": "2024-01-04",
|
|
2350
|
+
"replacement": "gpt-3.5-turbo-instruct",
|
|
2351
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2352
|
+
"readOn": "2026-11-12",
|
|
2353
|
+
"quote": "| 2024-01-04 | `code-davinci-002` | --- | `gpt-3.5-turbo-instruct` |"
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
"id": "text-davinci-edit-001",
|
|
2357
|
+
"provider": "openai",
|
|
2358
|
+
"word": "shut down",
|
|
2359
|
+
"pageWord": "Past deprecations: Edit models & endpoint",
|
|
2360
|
+
"shutdown": "2024-01-04",
|
|
2361
|
+
"dateText": "2024-01-04",
|
|
2362
|
+
"replacement": "gpt-4o",
|
|
2363
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2364
|
+
"readOn": "2026-11-12",
|
|
2365
|
+
"quote": "| 2024-01-04 | `text-davinci-edit-001` | `gpt-4o` |"
|
|
2366
|
+
},
|
|
2367
|
+
{
|
|
2368
|
+
"id": "code-davinci-edit-001",
|
|
2369
|
+
"provider": "openai",
|
|
2370
|
+
"word": "shut down",
|
|
2371
|
+
"pageWord": "Past deprecations: Edit models & endpoint",
|
|
2372
|
+
"shutdown": "2024-01-04",
|
|
2373
|
+
"dateText": "2024-01-04",
|
|
2374
|
+
"replacement": "gpt-4o",
|
|
2375
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2376
|
+
"readOn": "2026-11-12",
|
|
2377
|
+
"quote": "| 2024-01-04 | `code-davinci-edit-001` | `gpt-4o` |"
|
|
2378
|
+
},
|
|
2379
|
+
{
|
|
2380
|
+
"id": "text-similarity-ada-001",
|
|
2381
|
+
"provider": "openai",
|
|
2382
|
+
"word": "shut down",
|
|
2383
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2384
|
+
"shutdown": "2024-01-04",
|
|
2385
|
+
"dateText": "2024-01-04",
|
|
2386
|
+
"replacement": "text-embedding-3-small",
|
|
2387
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2388
|
+
"readOn": "2026-11-12",
|
|
2389
|
+
"quote": "| 2024-01-04 | `text-similarity-ada-001` | $4.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
"id": "text-search-ada-doc-001",
|
|
2393
|
+
"provider": "openai",
|
|
2394
|
+
"word": "shut down",
|
|
2395
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2396
|
+
"shutdown": "2024-01-04",
|
|
2397
|
+
"dateText": "2024-01-04",
|
|
2398
|
+
"replacement": "text-embedding-3-small",
|
|
2399
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2400
|
+
"readOn": "2026-11-12",
|
|
2401
|
+
"quote": "| 2024-01-04 | `text-search-ada-doc-001` | $4.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2402
|
+
},
|
|
2403
|
+
{
|
|
2404
|
+
"id": "text-search-ada-query-001",
|
|
2405
|
+
"provider": "openai",
|
|
2406
|
+
"word": "shut down",
|
|
2407
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2408
|
+
"shutdown": "2024-01-04",
|
|
2409
|
+
"dateText": "2024-01-04",
|
|
2410
|
+
"replacement": "text-embedding-3-small",
|
|
2411
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2412
|
+
"readOn": "2026-11-12",
|
|
2413
|
+
"quote": "| 2024-01-04 | `text-search-ada-query-001` | $4.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2414
|
+
},
|
|
2415
|
+
{
|
|
2416
|
+
"id": "code-search-ada-code-001",
|
|
2417
|
+
"provider": "openai",
|
|
2418
|
+
"word": "shut down",
|
|
2419
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2420
|
+
"shutdown": "2024-01-04",
|
|
2421
|
+
"dateText": "2024-01-04",
|
|
2422
|
+
"replacement": "text-embedding-3-small",
|
|
2423
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2424
|
+
"readOn": "2026-11-12",
|
|
2425
|
+
"quote": "| 2024-01-04 | `code-search-ada-code-001` | $4.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2426
|
+
},
|
|
2427
|
+
{
|
|
2428
|
+
"id": "code-search-ada-text-001",
|
|
2429
|
+
"provider": "openai",
|
|
2430
|
+
"word": "shut down",
|
|
2431
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2432
|
+
"shutdown": "2024-01-04",
|
|
2433
|
+
"dateText": "2024-01-04",
|
|
2434
|
+
"replacement": "text-embedding-3-small",
|
|
2435
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2436
|
+
"readOn": "2026-11-12",
|
|
2437
|
+
"quote": "| 2024-01-04 | `code-search-ada-text-001` | $4.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2438
|
+
},
|
|
2439
|
+
{
|
|
2440
|
+
"id": "text-similarity-babbage-001",
|
|
2441
|
+
"provider": "openai",
|
|
2442
|
+
"word": "shut down",
|
|
2443
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2444
|
+
"shutdown": "2024-01-04",
|
|
2445
|
+
"dateText": "2024-01-04",
|
|
2446
|
+
"replacement": "text-embedding-3-small",
|
|
2447
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2448
|
+
"readOn": "2026-11-12",
|
|
2449
|
+
"quote": "| 2024-01-04 | `text-similarity-babbage-001` | $5.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2450
|
+
},
|
|
2451
|
+
{
|
|
2452
|
+
"id": "text-search-babbage-doc-001",
|
|
2453
|
+
"provider": "openai",
|
|
2454
|
+
"word": "shut down",
|
|
2455
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2456
|
+
"shutdown": "2024-01-04",
|
|
2457
|
+
"dateText": "2024-01-04",
|
|
2458
|
+
"replacement": "text-embedding-3-small",
|
|
2459
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2460
|
+
"readOn": "2026-11-12",
|
|
2461
|
+
"quote": "| 2024-01-04 | `text-search-babbage-doc-001` | $5.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2462
|
+
},
|
|
2463
|
+
{
|
|
2464
|
+
"id": "text-search-babbage-query-001",
|
|
2465
|
+
"provider": "openai",
|
|
2466
|
+
"word": "shut down",
|
|
2467
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2468
|
+
"shutdown": "2024-01-04",
|
|
2469
|
+
"dateText": "2024-01-04",
|
|
2470
|
+
"replacement": "text-embedding-3-small",
|
|
2471
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2472
|
+
"readOn": "2026-11-12",
|
|
2473
|
+
"quote": "| 2024-01-04 | `text-search-babbage-query-001` | $5.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2474
|
+
},
|
|
2475
|
+
{
|
|
2476
|
+
"id": "code-search-babbage-code-001",
|
|
2477
|
+
"provider": "openai",
|
|
2478
|
+
"word": "shut down",
|
|
2479
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2480
|
+
"shutdown": "2024-01-04",
|
|
2481
|
+
"dateText": "2024-01-04",
|
|
2482
|
+
"replacement": "text-embedding-3-small",
|
|
2483
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2484
|
+
"readOn": "2026-11-12",
|
|
2485
|
+
"quote": "| 2024-01-04 | `code-search-babbage-code-001` | $5.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2486
|
+
},
|
|
2487
|
+
{
|
|
2488
|
+
"id": "code-search-babbage-text-001",
|
|
2489
|
+
"provider": "openai",
|
|
2490
|
+
"word": "shut down",
|
|
2491
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2492
|
+
"shutdown": "2024-01-04",
|
|
2493
|
+
"dateText": "2024-01-04",
|
|
2494
|
+
"replacement": "text-embedding-3-small",
|
|
2495
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2496
|
+
"readOn": "2026-11-12",
|
|
2497
|
+
"quote": "| 2024-01-04 | `code-search-babbage-text-001` | $5.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2498
|
+
},
|
|
2499
|
+
{
|
|
2500
|
+
"id": "text-similarity-curie-001",
|
|
2501
|
+
"provider": "openai",
|
|
2502
|
+
"word": "shut down",
|
|
2503
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2504
|
+
"shutdown": "2024-01-04",
|
|
2505
|
+
"dateText": "2024-01-04",
|
|
2506
|
+
"replacement": "text-embedding-3-small",
|
|
2507
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2508
|
+
"readOn": "2026-11-12",
|
|
2509
|
+
"quote": "| 2024-01-04 | `text-similarity-curie-001` | $20.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2510
|
+
},
|
|
2511
|
+
{
|
|
2512
|
+
"id": "text-search-curie-doc-001",
|
|
2513
|
+
"provider": "openai",
|
|
2514
|
+
"word": "shut down",
|
|
2515
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2516
|
+
"shutdown": "2024-01-04",
|
|
2517
|
+
"dateText": "2024-01-04",
|
|
2518
|
+
"replacement": "text-embedding-3-small",
|
|
2519
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2520
|
+
"readOn": "2026-11-12",
|
|
2521
|
+
"quote": "| 2024-01-04 | `text-search-curie-doc-001` | $20.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2522
|
+
},
|
|
2523
|
+
{
|
|
2524
|
+
"id": "text-search-curie-query-001",
|
|
2525
|
+
"provider": "openai",
|
|
2526
|
+
"word": "shut down",
|
|
2527
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2528
|
+
"shutdown": "2024-01-04",
|
|
2529
|
+
"dateText": "2024-01-04",
|
|
2530
|
+
"replacement": "text-embedding-3-small",
|
|
2531
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2532
|
+
"readOn": "2026-11-12",
|
|
2533
|
+
"quote": "| 2024-01-04 | `text-search-curie-query-001` | $20.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2534
|
+
},
|
|
2535
|
+
{
|
|
2536
|
+
"id": "text-similarity-davinci-001",
|
|
2537
|
+
"provider": "openai",
|
|
2538
|
+
"word": "shut down",
|
|
2539
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2540
|
+
"shutdown": "2024-01-04",
|
|
2541
|
+
"dateText": "2024-01-04",
|
|
2542
|
+
"replacement": "text-embedding-3-small",
|
|
2543
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2544
|
+
"readOn": "2026-11-12",
|
|
2545
|
+
"quote": "| 2024-01-04 | `text-similarity-davinci-001` | $200.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2546
|
+
},
|
|
2547
|
+
{
|
|
2548
|
+
"id": "text-search-davinci-doc-001",
|
|
2549
|
+
"provider": "openai",
|
|
2550
|
+
"word": "shut down",
|
|
2551
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2552
|
+
"shutdown": "2024-01-04",
|
|
2553
|
+
"dateText": "2024-01-04",
|
|
2554
|
+
"replacement": "text-embedding-3-small",
|
|
2555
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2556
|
+
"readOn": "2026-11-12",
|
|
2557
|
+
"quote": "| 2024-01-04 | `text-search-davinci-doc-001` | $200.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2558
|
+
},
|
|
2559
|
+
{
|
|
2560
|
+
"id": "text-search-davinci-query-001",
|
|
2561
|
+
"provider": "openai",
|
|
2562
|
+
"word": "shut down",
|
|
2563
|
+
"pageWord": "Past deprecations: First-generation text embedding models",
|
|
2564
|
+
"shutdown": "2024-01-04",
|
|
2565
|
+
"dateText": "2024-01-04",
|
|
2566
|
+
"replacement": "text-embedding-3-small",
|
|
2567
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2568
|
+
"readOn": "2026-11-12",
|
|
2569
|
+
"quote": "| 2024-01-04 | `text-search-davinci-query-001` | $200.00 / 1M tokens | `text-embedding-3-small` |"
|
|
2570
|
+
},
|
|
2571
|
+
{
|
|
2572
|
+
"id": "gpt-3.5-turbo-0301",
|
|
2573
|
+
"provider": "openai",
|
|
2574
|
+
"word": "shut down",
|
|
2575
|
+
"pageWord": "Past deprecations: 2023-06-13: Updated chat models",
|
|
2576
|
+
"announced": "2023-06-13",
|
|
2577
|
+
"shutdown": "2024-09-13",
|
|
2578
|
+
"dateText": "2024-09-13",
|
|
2579
|
+
"replacement": "gpt-3.5-turbo",
|
|
2580
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2581
|
+
"readOn": "2026-11-12",
|
|
2582
|
+
"quote": "| 2024-09-13 | `gpt-3.5-turbo-0301` | $15.00 / 1M input tokens + $20.00 / 1M output tokens | `gpt-3.5-turbo` |"
|
|
2583
|
+
},
|
|
2584
|
+
{
|
|
2585
|
+
"id": "code-davinci-001",
|
|
2586
|
+
"provider": "openai",
|
|
2587
|
+
"word": "shut down",
|
|
2588
|
+
"pageWord": "Past deprecations: 2023-03-20: Codex models",
|
|
2589
|
+
"announced": "2023-03-20",
|
|
2590
|
+
"shutdown": "2023-03-23",
|
|
2591
|
+
"dateText": "2023-03-23",
|
|
2592
|
+
"replacement": "gpt-4o",
|
|
2593
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2594
|
+
"readOn": "2026-11-12",
|
|
2595
|
+
"quote": "| 2023-03-23 | `code-davinci-001` | `gpt-4o` |"
|
|
2596
|
+
},
|
|
2597
|
+
{
|
|
2598
|
+
"id": "code-cushman-002",
|
|
2599
|
+
"provider": "openai",
|
|
2600
|
+
"word": "shut down",
|
|
2601
|
+
"pageWord": "Past deprecations: 2023-03-20: Codex models",
|
|
2602
|
+
"announced": "2023-03-20",
|
|
2603
|
+
"shutdown": "2023-03-23",
|
|
2604
|
+
"dateText": "2023-03-23",
|
|
2605
|
+
"replacement": "gpt-4o",
|
|
2606
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2607
|
+
"readOn": "2026-11-12",
|
|
2608
|
+
"quote": "| 2023-03-23 | `code-cushman-002` | `gpt-4o` |"
|
|
2609
|
+
},
|
|
2610
|
+
{
|
|
2611
|
+
"id": "code-cushman-001",
|
|
2612
|
+
"provider": "openai",
|
|
2613
|
+
"word": "shut down",
|
|
2614
|
+
"pageWord": "Past deprecations: 2023-03-20: Codex models",
|
|
2615
|
+
"announced": "2023-03-20",
|
|
2616
|
+
"shutdown": "2023-03-23",
|
|
2617
|
+
"dateText": "2023-03-23",
|
|
2618
|
+
"replacement": "gpt-4o",
|
|
2619
|
+
"url": "https://developers.openai.com/api/docs/deprecations.md",
|
|
2620
|
+
"readOn": "2026-11-12",
|
|
2621
|
+
"quote": "| 2023-03-23 | `code-cushman-001` | `gpt-4o` |"
|
|
2622
|
+
},
|
|
2623
|
+
{
|
|
2624
|
+
"id": "gemini-3.7-flash",
|
|
2625
|
+
"provider": "google",
|
|
2626
|
+
"word": "deprecated",
|
|
2627
|
+
"pageWord": "`gemini-3.7-flash`](/docs/whats-new-gemini-3.7) is deprecated",
|
|
2628
|
+
"dateText": "N/A",
|
|
2629
|
+
"replacement": "gemini-3.8-flash",
|
|
2630
|
+
"routesTo": "gemini-3.8-flash",
|
|
2631
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2632
|
+
"readOn": "2026-11-12",
|
|
2633
|
+
"section": "Gemini 3 models",
|
|
2634
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
2635
|
+
"alsoQuote": "`gemini-3.7-flash`](/docs/whats-new-gemini-3.7) is deprecated",
|
|
2636
|
+
"alsoReadOn": "2026-11-12",
|
|
2637
|
+
"quote": "`gemini-3.7-flash` | August 13, 2026 | N/A | `gemini-3.8-flash` (`gemini-3.7-flash` is no longer available in Google AI Studio; the endpoint is not shutting down and automatically routes API requests to `gemini-3.8-flash`)"
|
|
2638
|
+
},
|
|
2639
|
+
{
|
|
2640
|
+
"id": "gemini-3.5-flash",
|
|
2641
|
+
"provider": "google",
|
|
2642
|
+
"word": "deprecated",
|
|
2643
|
+
"pageWord": "`gemini-3.5-flash`](/docs/whats-new-gemini-3.5) is deprecated",
|
|
2644
|
+
"dateText": "N/A",
|
|
2645
|
+
"replacement": "gemini-3.6-flash",
|
|
2646
|
+
"routesTo": "gemini-3.6-flash",
|
|
2647
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2648
|
+
"readOn": "2026-11-12",
|
|
2649
|
+
"section": "Gemini 3 models",
|
|
2650
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
2651
|
+
"alsoQuote": "`gemini-3.5-flash`](/docs/whats-new-gemini-3.5) is deprecated",
|
|
2652
|
+
"alsoReadOn": "2026-11-12",
|
|
2653
|
+
"quote": "`gemini-3.5-flash` | May 19, 2026 | N/A | `gemini-3.6-flash` (`gemini-3.5-flash` is no longer available in Google AI Studio; the endpoint is not shutting down and automatically routes API requests to `gemini-3.6-flash`)"
|
|
2654
|
+
},
|
|
2655
|
+
{
|
|
2656
|
+
"id": "gemini-3.1-flash-lite",
|
|
2657
|
+
"provider": "google",
|
|
2658
|
+
"word": "scheduled for shutdown",
|
|
2659
|
+
"pageWord": "shutdown date May 7, 2027, no deprecation word on either page",
|
|
2660
|
+
"shutdownFloor": "2027-05-07",
|
|
2661
|
+
"dateText": "May 7, 2027",
|
|
2662
|
+
"replacement": "gemini-3.5-flash-lite",
|
|
2663
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2664
|
+
"readOn": "2026-11-12",
|
|
2665
|
+
"section": "Gemini 3 models",
|
|
2666
|
+
"quote": "`gemini-3.1-flash-lite` | May 7, 2026 | May 7, 2027 | `gemini-3.5-flash-lite`"
|
|
2667
|
+
},
|
|
2668
|
+
{
|
|
2669
|
+
"id": "gemini-3.1-flash-tts-preview",
|
|
2670
|
+
"provider": "google",
|
|
2671
|
+
"word": "scheduled for shutdown",
|
|
2672
|
+
"pageWord": "shutdown date November 17, 2026, no deprecation word on either page",
|
|
2673
|
+
"shutdownFloor": "2026-11-17",
|
|
2674
|
+
"dateText": "November 17, 2026",
|
|
2675
|
+
"replacement": "gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts",
|
|
2676
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2677
|
+
"readOn": "2026-11-12",
|
|
2678
|
+
"section": "Gemini 3 models \u203A Preview models",
|
|
2679
|
+
"quote": "`gemini-3.1-flash-tts-preview` | February 26, 2026 | November 17, 2026 | `gemini-3.8-flash-tts` or `gemini-3.8-flash-lite-tts`"
|
|
2680
|
+
},
|
|
2681
|
+
{
|
|
2682
|
+
"id": "gemini-3-pro-preview",
|
|
2683
|
+
"provider": "google",
|
|
2684
|
+
"word": "shut down",
|
|
2685
|
+
"pageWord": "listed under Gemini 3 models \u203A Deprecated models",
|
|
2686
|
+
"shutdownFloor": "2026-03-09",
|
|
2687
|
+
"dateText": "March 9, 2026",
|
|
2688
|
+
"replacement": "gemini-3.1-pro-preview",
|
|
2689
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2690
|
+
"readOn": "2026-11-12",
|
|
2691
|
+
"section": "Gemini 3 models \u203A Deprecated models",
|
|
2692
|
+
"quote": "`gemini-3-pro-preview` | November 18, 2025 | March 9, 2026 | `gemini-3.1-pro-preview`"
|
|
2693
|
+
},
|
|
2694
|
+
{
|
|
2695
|
+
"id": "gemini-3.1-flash-lite-preview",
|
|
2696
|
+
"provider": "google",
|
|
2697
|
+
"word": "shut down",
|
|
2698
|
+
"pageWord": "listed under Gemini 3 models \u203A Deprecated models",
|
|
2699
|
+
"shutdownFloor": "2026-05-25",
|
|
2700
|
+
"dateText": "May 25, 2026",
|
|
2701
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2702
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2703
|
+
"readOn": "2026-11-12",
|
|
2704
|
+
"section": "Gemini 3 models \u203A Deprecated models",
|
|
2705
|
+
"quote": "`gemini-3.1-flash-lite-preview` | March 3, 2026 | May 25, 2026 | `gemini-3.1-flash-lite`"
|
|
2706
|
+
},
|
|
2707
|
+
{
|
|
2708
|
+
"id": "gemini-2.5-pro",
|
|
2709
|
+
"provider": "google",
|
|
2710
|
+
"word": "deprecated",
|
|
2711
|
+
"pageWord": "`gemini-2.5-pro` is deprecated",
|
|
2712
|
+
"shutdown": "2026-12-01",
|
|
2713
|
+
"dateText": "December 1, 2026",
|
|
2714
|
+
"replacement": "gemini-3.8-flash",
|
|
2715
|
+
"routesTo": "gemini-3.8-flash",
|
|
2716
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2717
|
+
"readOn": "2026-11-12",
|
|
2718
|
+
"section": "Gemini 2.5 Pro models",
|
|
2719
|
+
"quote": "`gemini-2.5-pro` | June 17, 2025 | December 1, 2026 | `gemini-3.8-flash` (`gemini-2.5-pro` is no longer available in Google AI Studio; effective December 1, 2026, API requests to `gemini-2.5-pro` will automatically route to `gemini-3.8-flash`)"
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
"id": "gemini-2.5-computer-use-preview-10-2025",
|
|
2723
|
+
"provider": "google",
|
|
2724
|
+
"word": "shut down",
|
|
2725
|
+
"pageWord": "listed under Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2726
|
+
"shutdownFloor": "2026-07-28",
|
|
2727
|
+
"dateText": "July 28, 2026",
|
|
2728
|
+
"replacement": "gemini-3.8-flash",
|
|
2729
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2730
|
+
"readOn": "2026-11-12",
|
|
2731
|
+
"section": "Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2732
|
+
"quote": "`gemini-2.5-computer-use-preview-10-2025` | October 7, 2025 | July 28, 2026 | `gemini-3.8-flash`"
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
"id": "gemini-2.5-pro-preview-03-25",
|
|
2736
|
+
"provider": "google",
|
|
2737
|
+
"word": "shut down",
|
|
2738
|
+
"pageWord": "listed under Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2739
|
+
"shutdownFloor": "2025-12-02",
|
|
2740
|
+
"dateText": "December 2, 2025",
|
|
2741
|
+
"replacement": "gemini-3.8-flash",
|
|
2742
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2743
|
+
"readOn": "2026-11-12",
|
|
2744
|
+
"section": "Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2745
|
+
"quote": "`gemini-2.5-pro-preview-03-25` | March 3, 2025 | December 2, 2025 | `gemini-3.8-flash`"
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
"id": "gemini-2.5-pro-preview-05-06",
|
|
2749
|
+
"provider": "google",
|
|
2750
|
+
"word": "shut down",
|
|
2751
|
+
"pageWord": "listed under Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2752
|
+
"shutdownFloor": "2025-12-02",
|
|
2753
|
+
"dateText": "December 2, 2025",
|
|
2754
|
+
"replacement": "gemini-3.8-flash",
|
|
2755
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2756
|
+
"readOn": "2026-11-12",
|
|
2757
|
+
"section": "Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2758
|
+
"quote": "`gemini-2.5-pro-preview-05-06` | May 6, 2025 | December 2, 2025 | `gemini-3.8-flash`"
|
|
2759
|
+
},
|
|
2760
|
+
{
|
|
2761
|
+
"id": "gemini-2.5-pro-preview-06-05",
|
|
2762
|
+
"provider": "google",
|
|
2763
|
+
"word": "shut down",
|
|
2764
|
+
"pageWord": "listed under Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2765
|
+
"shutdownFloor": "2025-12-02",
|
|
2766
|
+
"dateText": "December 2, 2025",
|
|
2767
|
+
"replacement": "gemini-3.8-flash",
|
|
2768
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2769
|
+
"readOn": "2026-11-12",
|
|
2770
|
+
"section": "Gemini 2.5 Pro models \u203A Deprecated models",
|
|
2771
|
+
"quote": "`gemini-2.5-pro-preview-06-05` | June 5, 2025 | December 2, 2025 | `gemini-3.8-flash`"
|
|
2772
|
+
},
|
|
2773
|
+
{
|
|
2774
|
+
"id": "gemini-2.5-flash",
|
|
2775
|
+
"provider": "google",
|
|
2776
|
+
"word": "deprecated",
|
|
2777
|
+
"pageWord": "`gemini-2.5-flash` is deprecated",
|
|
2778
|
+
"shutdown": "2026-12-01",
|
|
2779
|
+
"dateText": "December 1, 2026",
|
|
2780
|
+
"replacement": "gemini-3.5-flash-lite",
|
|
2781
|
+
"routesTo": "gemini-3.5-flash-lite",
|
|
2782
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2783
|
+
"readOn": "2026-11-12",
|
|
2784
|
+
"section": "Gemini 2.5 Flash models",
|
|
2785
|
+
"quote": "`gemini-2.5-flash` | June 17, 2025 | December 1, 2026 | `gemini-3.5-flash-lite` (`gemini-2.5-flash` is no longer available in Google AI Studio; effective December 1, 2026, API requests to `gemini-2.5-flash` will automatically route to `gemini-3.5-flash-lite`)"
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"id": "gemini-2.5-flash-lite-preview-09-2025",
|
|
2789
|
+
"provider": "google",
|
|
2790
|
+
"word": "shut down",
|
|
2791
|
+
"pageWord": "listed under Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2792
|
+
"shutdownFloor": "2026-03-31",
|
|
2793
|
+
"dateText": "March 31, 2026",
|
|
2794
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2795
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2796
|
+
"readOn": "2026-11-12",
|
|
2797
|
+
"section": "Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2798
|
+
"quote": "`gemini-2.5-flash-lite-preview-09-2025` | September 25, 2025 | March 31, 2026 | `gemini-3.1-flash-lite`"
|
|
2799
|
+
},
|
|
2800
|
+
{
|
|
2801
|
+
"id": "gemini-2.5-flash-preview-05-20",
|
|
2802
|
+
"provider": "google",
|
|
2803
|
+
"word": "shut down",
|
|
2804
|
+
"pageWord": "listed under Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2805
|
+
"shutdownFloor": "2025-11-18",
|
|
2806
|
+
"dateText": "November 18, 2025",
|
|
2807
|
+
"replacement": "gemini-3.6-flash",
|
|
2808
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2809
|
+
"readOn": "2026-11-12",
|
|
2810
|
+
"section": "Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2811
|
+
"quote": "`gemini-2.5-flash-preview-05-20` | May 20, 2025 | November 18, 2025 | `gemini-3.6-flash`"
|
|
2812
|
+
},
|
|
2813
|
+
{
|
|
2814
|
+
"id": "gemini-2.5-flash-preview-09-2025",
|
|
2815
|
+
"provider": "google",
|
|
2816
|
+
"word": "shut down",
|
|
2817
|
+
"pageWord": "listed under Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2818
|
+
"shutdownFloor": "2026-02-17",
|
|
2819
|
+
"dateText": "February 17, 2026",
|
|
2820
|
+
"replacement": "gemini-3.6-flash",
|
|
2821
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2822
|
+
"readOn": "2026-11-12",
|
|
2823
|
+
"section": "Gemini 2.5 Flash models \u203A Deprecated models",
|
|
2824
|
+
"quote": "`gemini-2.5-flash-preview-09-2025` | September 25, 2025 | February 17, 2026 | `gemini-3.6-flash`"
|
|
2825
|
+
},
|
|
2826
|
+
{
|
|
2827
|
+
"id": "gemini-2.0-flash",
|
|
2828
|
+
"provider": "google",
|
|
2829
|
+
"word": "shut down",
|
|
2830
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2831
|
+
"shutdownFloor": "2026-06-01",
|
|
2832
|
+
"dateText": "June 1, 2026",
|
|
2833
|
+
"replacement": "gemini-3.6-flash",
|
|
2834
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2835
|
+
"readOn": "2026-11-12",
|
|
2836
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2837
|
+
"quote": "`gemini-2.0-flash` | February 5, 2025 | June 1, 2026 | `gemini-3.6-flash`"
|
|
2838
|
+
},
|
|
2839
|
+
{
|
|
2840
|
+
"id": "gemini-2.0-flash-001",
|
|
2841
|
+
"provider": "google",
|
|
2842
|
+
"word": "shut down",
|
|
2843
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2844
|
+
"shutdownFloor": "2026-06-01",
|
|
2845
|
+
"dateText": "June 1, 2026",
|
|
2846
|
+
"replacement": "gemini-3.6-flash",
|
|
2847
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2848
|
+
"readOn": "2026-11-12",
|
|
2849
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2850
|
+
"quote": "`gemini-2.0-flash-001` | February 5, 2025 | June 1, 2026 | `gemini-3.6-flash`"
|
|
2851
|
+
},
|
|
2852
|
+
{
|
|
2853
|
+
"id": "gemini-2.0-flash-lite",
|
|
2854
|
+
"provider": "google",
|
|
2855
|
+
"word": "shut down",
|
|
2856
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2857
|
+
"shutdownFloor": "2026-06-01",
|
|
2858
|
+
"dateText": "June 1, 2026",
|
|
2859
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2860
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2861
|
+
"readOn": "2026-11-12",
|
|
2862
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2863
|
+
"quote": "`gemini-2.0-flash-lite` | February 25, 2025 | June 1, 2026 | `gemini-3.1-flash-lite`"
|
|
2864
|
+
},
|
|
2865
|
+
{
|
|
2866
|
+
"id": "gemini-2.0-flash-lite-001",
|
|
2867
|
+
"provider": "google",
|
|
2868
|
+
"word": "shut down",
|
|
2869
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2870
|
+
"shutdownFloor": "2026-06-01",
|
|
2871
|
+
"dateText": "June 1, 2026",
|
|
2872
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2873
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2874
|
+
"readOn": "2026-11-12",
|
|
2875
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2876
|
+
"quote": "`gemini-2.0-flash-lite-001` | February 25, 2025 | June 1, 2026 | `gemini-3.1-flash-lite`"
|
|
2877
|
+
},
|
|
2878
|
+
{
|
|
2879
|
+
"id": "gemini-2.0-flash-lite-preview",
|
|
2880
|
+
"provider": "google",
|
|
2881
|
+
"word": "shut down",
|
|
2882
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2883
|
+
"shutdownFloor": "2025-12-09",
|
|
2884
|
+
"dateText": "December 9, 2025",
|
|
2885
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2886
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2887
|
+
"readOn": "2026-11-12",
|
|
2888
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2889
|
+
"quote": "`gemini-2.0-flash-lite-preview` | February 5, 2025 | December 9, 2025 | `gemini-3.1-flash-lite`"
|
|
2890
|
+
},
|
|
2891
|
+
{
|
|
2892
|
+
"id": "gemini-2.0-flash-lite-preview-02-05",
|
|
2893
|
+
"provider": "google",
|
|
2894
|
+
"word": "shut down",
|
|
2895
|
+
"pageWord": "listed under Gemini 2.0 models \u203A Deprecated models",
|
|
2896
|
+
"shutdownFloor": "2025-12-09",
|
|
2897
|
+
"dateText": "December 9, 2025",
|
|
2898
|
+
"replacement": "gemini-3.1-flash-lite",
|
|
2899
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2900
|
+
"readOn": "2026-11-12",
|
|
2901
|
+
"section": "Gemini 2.0 models \u203A Deprecated models",
|
|
2902
|
+
"quote": "`gemini-2.0-flash-lite-preview-02-05` | February 5, 2025 | December 9, 2025 | `gemini-3.1-flash-lite`"
|
|
2903
|
+
},
|
|
2904
|
+
{
|
|
2905
|
+
"id": "gemini-3.1-flash-live-preview",
|
|
2906
|
+
"provider": "google",
|
|
2907
|
+
"word": "scheduled for shutdown",
|
|
2908
|
+
"pageWord": "shutdown date November 17, 2026, no deprecation word on either page",
|
|
2909
|
+
"shutdownFloor": "2026-11-17",
|
|
2910
|
+
"dateText": "November 17, 2026",
|
|
2911
|
+
"replacement": "gemini-3.8-live",
|
|
2912
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2913
|
+
"readOn": "2026-11-12",
|
|
2914
|
+
"section": "Live API models \u203A Preview models",
|
|
2915
|
+
"quote": "`gemini-3.1-flash-live-preview` | March 11, 2026 | November 17, 2026 | `gemini-3.8-live`"
|
|
2916
|
+
},
|
|
2917
|
+
{
|
|
2918
|
+
"id": "gemini-2.5-flash-native-audio-preview-12-2025",
|
|
2919
|
+
"provider": "google",
|
|
2920
|
+
"word": "scheduled for shutdown",
|
|
2921
|
+
"pageWord": "shutdown date November 17, 2026, no deprecation word on either page",
|
|
2922
|
+
"shutdownFloor": "2026-11-17",
|
|
2923
|
+
"dateText": "November 17, 2026",
|
|
2924
|
+
"replacement": "gemini-3.8-live",
|
|
2925
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2926
|
+
"readOn": "2026-11-12",
|
|
2927
|
+
"section": "Live API models \u203A Preview models",
|
|
2928
|
+
"quote": "`gemini-2.5-flash-native-audio-preview-12-2025` | December 12, 2025 | November 17, 2026 | `gemini-3.8-live`"
|
|
2929
|
+
},
|
|
2930
|
+
{
|
|
2931
|
+
"id": "gemini-live-2.5-flash-preview",
|
|
2932
|
+
"provider": "google",
|
|
2933
|
+
"word": "shut down",
|
|
2934
|
+
"pageWord": "listed under Live API models \u203A Deprecated models",
|
|
2935
|
+
"shutdownFloor": "2025-12-09",
|
|
2936
|
+
"dateText": "December 9, 2025",
|
|
2937
|
+
"replacement": "gemini-3.8-live",
|
|
2938
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2939
|
+
"readOn": "2026-11-12",
|
|
2940
|
+
"section": "Live API models \u203A Deprecated models",
|
|
2941
|
+
"quote": "`gemini-live-2.5-flash-preview` | June 17, 2025 | December 9, 2025 | `gemini-3.8-live`"
|
|
2942
|
+
},
|
|
2943
|
+
{
|
|
2944
|
+
"id": "gemini-2.0-flash-live-001",
|
|
2945
|
+
"provider": "google",
|
|
2946
|
+
"word": "shut down",
|
|
2947
|
+
"pageWord": "listed under Live API models \u203A Deprecated models",
|
|
2948
|
+
"shutdownFloor": "2025-12-09",
|
|
2949
|
+
"dateText": "December 9, 2025",
|
|
2950
|
+
"replacement": "gemini-3.8-live",
|
|
2951
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2952
|
+
"readOn": "2026-11-12",
|
|
2953
|
+
"section": "Live API models \u203A Deprecated models",
|
|
2954
|
+
"quote": "`gemini-2.0-flash-live-001` | April 9, 2025 | December 9, 2025 | `gemini-3.8-live`"
|
|
2955
|
+
},
|
|
2956
|
+
{
|
|
2957
|
+
"id": "gemini-2.5-flash-preview-tts",
|
|
2958
|
+
"provider": "google",
|
|
2959
|
+
"word": "scheduled for shutdown",
|
|
2960
|
+
"pageWord": "shutdown date November 17, 2026, no deprecation word on either page",
|
|
2961
|
+
"shutdownFloor": "2026-11-17",
|
|
2962
|
+
"dateText": "November 17, 2026",
|
|
2963
|
+
"replacement": "gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts",
|
|
2964
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2965
|
+
"readOn": "2026-11-12",
|
|
2966
|
+
"section": "Audio models \u203A Preview models",
|
|
2967
|
+
"quote": "`gemini-2.5-flash-preview-tts` | May 20, 2025 | November 17, 2026 | `gemini-3.8-flash-tts` or `gemini-3.8-flash-lite-tts`"
|
|
2968
|
+
},
|
|
2969
|
+
{
|
|
2970
|
+
"id": "gemini-2.5-pro-preview-tts",
|
|
2971
|
+
"provider": "google",
|
|
2972
|
+
"word": "scheduled for shutdown",
|
|
2973
|
+
"pageWord": "shutdown date November 17, 2026, no deprecation word on either page",
|
|
2974
|
+
"shutdownFloor": "2026-11-17",
|
|
2975
|
+
"dateText": "November 17, 2026",
|
|
2976
|
+
"replacement": "gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts",
|
|
2977
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2978
|
+
"readOn": "2026-11-12",
|
|
2979
|
+
"section": "Audio models \u203A Preview models",
|
|
2980
|
+
"quote": "`gemini-2.5-pro-preview-tts` | May 20, 2025 | November 17, 2026 | `gemini-3.8-flash-tts` or `gemini-3.8-flash-lite-tts`"
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
"id": "gemini-embedding-001",
|
|
2984
|
+
"provider": "google",
|
|
2985
|
+
"word": "scheduled for shutdown",
|
|
2986
|
+
"pageWord": "shutdown date May 14, 2028, no deprecation word on either page",
|
|
2987
|
+
"shutdownFloor": "2028-05-14",
|
|
2988
|
+
"dateText": "May 14, 2028",
|
|
2989
|
+
"replacement": "gemini-embedding-2",
|
|
2990
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
2991
|
+
"readOn": "2026-11-12",
|
|
2992
|
+
"section": "Embedding models",
|
|
2993
|
+
"quote": "`gemini-embedding-001` | July 14, 2025 | May 14, 2028 | `gemini-embedding-2`"
|
|
2994
|
+
},
|
|
2995
|
+
{
|
|
2996
|
+
"id": "gemini-embedding-2-preview",
|
|
2997
|
+
"provider": "google",
|
|
2998
|
+
"word": "deprecated",
|
|
2999
|
+
"pageWord": "`gemini-embedding-2-preview`](/docs/models/gemini-embedding-2-preview) is [deprecated](/docs/deprecations#embedding-deprecated-models)",
|
|
3000
|
+
"shutdown": "2026-11-06",
|
|
3001
|
+
"dateText": "November 6, 2026",
|
|
3002
|
+
"replacement": "gemini-embedding-2",
|
|
3003
|
+
"routesTo": "gemini-embedding-2",
|
|
3004
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3005
|
+
"readOn": "2026-11-12",
|
|
3006
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3007
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
3008
|
+
"alsoQuote": "`gemini-embedding-2-preview`](/docs/models/gemini-embedding-2-preview) is [deprecated](/docs/deprecations#embedding-deprecated-models)",
|
|
3009
|
+
"alsoReadOn": "2026-11-12",
|
|
3010
|
+
"quote": "`gemini-embedding-2-preview` | March 10, 2026 | November 6, 2026 | `gemini-embedding-2` (effective November 6, 2026, API requests to `gemini-embedding-2-preview` route to `gemini-embedding-2`)"
|
|
3011
|
+
},
|
|
3012
|
+
{
|
|
3013
|
+
"id": "text-embedding-004",
|
|
3014
|
+
"provider": "google",
|
|
3015
|
+
"word": "shut down",
|
|
3016
|
+
"pageWord": "listed under Embedding models \u203A Deprecated models",
|
|
3017
|
+
"shutdownFloor": "2026-01-14",
|
|
3018
|
+
"dateText": "January 14, 2026",
|
|
3019
|
+
"replacement": "gemini-embedding-2",
|
|
3020
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3021
|
+
"readOn": "2026-11-12",
|
|
3022
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3023
|
+
"quote": "`text-embedding-004` | April 9, 2024 | January 14, 2026 | `gemini-embedding-2`"
|
|
3024
|
+
},
|
|
3025
|
+
{
|
|
3026
|
+
"id": "embedding-001",
|
|
3027
|
+
"provider": "google",
|
|
3028
|
+
"word": "shut down",
|
|
3029
|
+
"pageWord": "listed under Embedding models \u203A Deprecated models",
|
|
3030
|
+
"shutdownFloor": "2025-10-30",
|
|
3031
|
+
"dateText": "October 30, 2025",
|
|
3032
|
+
"replacement": "gemini-embedding-2",
|
|
3033
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3034
|
+
"readOn": "2026-11-12",
|
|
3035
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3036
|
+
"quote": "`embedding-001` | April 9, 2024 | October 30, 2025 | `gemini-embedding-2`"
|
|
3037
|
+
},
|
|
3038
|
+
{
|
|
3039
|
+
"id": "embedding-gecko-001",
|
|
3040
|
+
"provider": "google",
|
|
3041
|
+
"word": "shut down",
|
|
3042
|
+
"pageWord": "listed under Embedding models \u203A Deprecated models",
|
|
3043
|
+
"shutdownFloor": "2025-10-30",
|
|
3044
|
+
"dateText": "October 30, 2025",
|
|
3045
|
+
"replacement": "gemini-embedding-2",
|
|
3046
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3047
|
+
"readOn": "2026-11-12",
|
|
3048
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3049
|
+
"quote": "`embedding-gecko-001` | | October 30, 2025 | `gemini-embedding-2`"
|
|
3050
|
+
},
|
|
3051
|
+
{
|
|
3052
|
+
"id": "gemini-embedding-exp",
|
|
3053
|
+
"provider": "google",
|
|
3054
|
+
"word": "shut down",
|
|
3055
|
+
"pageWord": "listed under Embedding models \u203A Deprecated models",
|
|
3056
|
+
"shutdownFloor": "2025-10-30",
|
|
3057
|
+
"dateText": "October 30, 2025",
|
|
3058
|
+
"replacement": "gemini-embedding-2",
|
|
3059
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3060
|
+
"readOn": "2026-11-12",
|
|
3061
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3062
|
+
"quote": "`gemini-embedding-exp` | | October 30, 2025 | `gemini-embedding-2`"
|
|
3063
|
+
},
|
|
3064
|
+
{
|
|
3065
|
+
"id": "gemini-embedding-exp-03-07",
|
|
3066
|
+
"provider": "google",
|
|
3067
|
+
"word": "shut down",
|
|
3068
|
+
"pageWord": "listed under Embedding models \u203A Deprecated models",
|
|
3069
|
+
"shutdownFloor": "2025-10-30",
|
|
3070
|
+
"dateText": "October 30, 2025",
|
|
3071
|
+
"replacement": "gemini-embedding-2",
|
|
3072
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3073
|
+
"readOn": "2026-11-12",
|
|
3074
|
+
"section": "Embedding models \u203A Deprecated models",
|
|
3075
|
+
"quote": "`gemini-embedding-exp-03-07` | | October 30, 2025 | `gemini-embedding-2`"
|
|
3076
|
+
},
|
|
3077
|
+
{
|
|
3078
|
+
"id": "gemini-3.1-flash-image",
|
|
3079
|
+
"provider": "google",
|
|
3080
|
+
"word": "deprecated",
|
|
3081
|
+
"pageWord": "`gemini-3.1-flash-image` model is deprecated",
|
|
3082
|
+
"dateText": "No shutdown date announced",
|
|
3083
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3084
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3085
|
+
"readOn": "2026-11-12",
|
|
3086
|
+
"section": "Nano Banana models",
|
|
3087
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
3088
|
+
"alsoQuote": "`gemini-3.1-flash-image` model is deprecated",
|
|
3089
|
+
"alsoReadOn": "2026-11-12",
|
|
3090
|
+
"quote": "`gemini-3.1-flash-image` | May 28, 2026 | No shutdown date announced | `gemini-nano-banana-2.1`"
|
|
3091
|
+
},
|
|
3092
|
+
{
|
|
3093
|
+
"id": "gemini-2.5-flash-image",
|
|
3094
|
+
"provider": "google",
|
|
3095
|
+
"word": "scheduled for shutdown",
|
|
3096
|
+
"pageWord": "shutdown date March 15, 2027, no deprecation word on either page",
|
|
3097
|
+
"shutdownFloor": "2027-03-15",
|
|
3098
|
+
"dateText": "March 15, 2027",
|
|
3099
|
+
"replacement": "gemini-3.1-flash-lite-image",
|
|
3100
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3101
|
+
"readOn": "2026-11-12",
|
|
3102
|
+
"section": "Nano Banana models",
|
|
3103
|
+
"quote": "`gemini-2.5-flash-image` | October 2, 2025 | March 15, 2027 | `gemini-3.1-flash-lite-image`"
|
|
3104
|
+
},
|
|
3105
|
+
{
|
|
3106
|
+
"id": "gemini-3.1-flash-image-preview",
|
|
3107
|
+
"provider": "google",
|
|
3108
|
+
"word": "shut down",
|
|
3109
|
+
"pageWord": "listed under Nano Banana models \u203A Deprecated models",
|
|
3110
|
+
"shutdownFloor": "2026-06-25",
|
|
3111
|
+
"dateText": "June 25, 2026",
|
|
3112
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3113
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3114
|
+
"readOn": "2026-11-12",
|
|
3115
|
+
"section": "Nano Banana models \u203A Deprecated models",
|
|
3116
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
3117
|
+
"alsoQuote": "The `gemini-3.1-flash-image-preview` and `gemini-3-pro-image-preview` models are deprecated",
|
|
3118
|
+
"alsoReadOn": "2026-11-12",
|
|
3119
|
+
"quote": "`gemini-3.1-flash-image-preview` | February 26, 2026 | June 25, 2026 | `gemini-nano-banana-2.1`"
|
|
3120
|
+
},
|
|
3121
|
+
{
|
|
3122
|
+
"id": "gemini-3-pro-image-preview",
|
|
3123
|
+
"provider": "google",
|
|
3124
|
+
"word": "shut down",
|
|
3125
|
+
"pageWord": "listed under Nano Banana models \u203A Deprecated models",
|
|
3126
|
+
"shutdownFloor": "2026-06-25",
|
|
3127
|
+
"dateText": "June 25, 2026",
|
|
3128
|
+
"replacement": "gemini-3-pro-image",
|
|
3129
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3130
|
+
"readOn": "2026-11-12",
|
|
3131
|
+
"section": "Nano Banana models \u203A Deprecated models",
|
|
3132
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
3133
|
+
"alsoQuote": "The `gemini-3.1-flash-image-preview` and `gemini-3-pro-image-preview` models are deprecated",
|
|
3134
|
+
"alsoReadOn": "2026-11-12",
|
|
3135
|
+
"quote": "`gemini-3-pro-image-preview` | November 20, 2025 | June 25, 2026 | `gemini-3-pro-image`"
|
|
3136
|
+
},
|
|
3137
|
+
{
|
|
3138
|
+
"id": "gemini-2.5-flash-image-preview",
|
|
3139
|
+
"provider": "google",
|
|
3140
|
+
"word": "shut down",
|
|
3141
|
+
"pageWord": "listed under Nano Banana models \u203A Deprecated models",
|
|
3142
|
+
"shutdownFloor": "2026-01-15",
|
|
3143
|
+
"dateText": "January 15, 2026",
|
|
3144
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3145
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3146
|
+
"readOn": "2026-11-12",
|
|
3147
|
+
"section": "Nano Banana models \u203A Deprecated models",
|
|
3148
|
+
"quote": "`gemini-2.5-flash-image-preview` | May 7, 2025 | January 15, 2026 | `gemini-nano-banana-2.1`"
|
|
3149
|
+
},
|
|
3150
|
+
{
|
|
3151
|
+
"id": "gemini-2.0-flash-preview-image-generation",
|
|
3152
|
+
"provider": "google",
|
|
3153
|
+
"word": "shut down",
|
|
3154
|
+
"pageWord": "listed under Nano Banana models \u203A Deprecated models",
|
|
3155
|
+
"shutdownFloor": "2025-11-14",
|
|
3156
|
+
"dateText": "November 14, 2025",
|
|
3157
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3158
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3159
|
+
"readOn": "2026-11-12",
|
|
3160
|
+
"section": "Nano Banana models \u203A Deprecated models",
|
|
3161
|
+
"quote": "`gemini-2.0-flash-preview-image-generation` | May 7, 2025 | November 14, 2025 | `gemini-nano-banana-2.1`"
|
|
3162
|
+
},
|
|
3163
|
+
{
|
|
3164
|
+
"id": "imagen-4.0-generate-001",
|
|
3165
|
+
"provider": "google",
|
|
3166
|
+
"word": "shut down",
|
|
3167
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3168
|
+
"shutdownFloor": "2026-08-17",
|
|
3169
|
+
"dateText": "August 17, 2026",
|
|
3170
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3171
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3172
|
+
"readOn": "2026-11-12",
|
|
3173
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3174
|
+
"quote": "`imagen-4.0-generate-001` | June 24, 2025 | August 17, 2026 | `gemini-nano-banana-2.1`"
|
|
3175
|
+
},
|
|
3176
|
+
{
|
|
3177
|
+
"id": "imagen-4.0-ultra-generate-001",
|
|
3178
|
+
"provider": "google",
|
|
3179
|
+
"word": "shut down",
|
|
3180
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3181
|
+
"shutdownFloor": "2026-08-17",
|
|
3182
|
+
"dateText": "August 17, 2026",
|
|
3183
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3184
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3185
|
+
"readOn": "2026-11-12",
|
|
3186
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3187
|
+
"quote": "`imagen-4.0-ultra-generate-001` | June 24, 2025 | August 17, 2026 | `gemini-nano-banana-2.1`"
|
|
3188
|
+
},
|
|
3189
|
+
{
|
|
3190
|
+
"id": "imagen-4.0-fast-generate-001",
|
|
3191
|
+
"provider": "google",
|
|
3192
|
+
"word": "shut down",
|
|
3193
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3194
|
+
"shutdownFloor": "2026-08-17",
|
|
3195
|
+
"dateText": "August 17, 2026",
|
|
3196
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3197
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3198
|
+
"readOn": "2026-11-12",
|
|
3199
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3200
|
+
"quote": "`imagen-4.0-fast-generate-001` | June 24, 2025 | August 17, 2026 | `gemini-nano-banana-2.1`"
|
|
3201
|
+
},
|
|
3202
|
+
{
|
|
3203
|
+
"id": "imagen-4.0-generate-preview-06-06",
|
|
3204
|
+
"provider": "google",
|
|
3205
|
+
"word": "shut down",
|
|
3206
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3207
|
+
"shutdownFloor": "2026-02-17",
|
|
3208
|
+
"dateText": "February 17, 2026",
|
|
3209
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3210
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3211
|
+
"readOn": "2026-11-12",
|
|
3212
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3213
|
+
"quote": "`imagen-4.0-generate-preview-06-06` | June 24, 2025 | February 17, 2026 | `gemini-nano-banana-2.1`"
|
|
3214
|
+
},
|
|
3215
|
+
{
|
|
3216
|
+
"id": "imagen-4.0-ultra-generate-preview-06-06",
|
|
3217
|
+
"provider": "google",
|
|
3218
|
+
"word": "shut down",
|
|
3219
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3220
|
+
"shutdownFloor": "2026-02-17",
|
|
3221
|
+
"dateText": "February 17, 2026",
|
|
3222
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3223
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3224
|
+
"readOn": "2026-11-12",
|
|
3225
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3226
|
+
"quote": "`imagen-4.0-ultra-generate-preview-06-06` | June 24, 2025 | February 17, 2026 | `gemini-nano-banana-2.1`"
|
|
3227
|
+
},
|
|
3228
|
+
{
|
|
3229
|
+
"id": "imagen-3.0-generate-002",
|
|
3230
|
+
"provider": "google",
|
|
3231
|
+
"word": "shut down",
|
|
3232
|
+
"pageWord": "listed under Imagen models \u203A Deprecated models",
|
|
3233
|
+
"shutdownFloor": "2025-11-10",
|
|
3234
|
+
"dateText": "November 10, 2025",
|
|
3235
|
+
"replacement": "gemini-nano-banana-2.1",
|
|
3236
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3237
|
+
"readOn": "2026-11-12",
|
|
3238
|
+
"section": "Imagen models \u203A Deprecated models",
|
|
3239
|
+
"quote": "`imagen-3.0-generate-002` | February 6, 2025 | November 10, 2025 | `gemini-nano-banana-2.1`"
|
|
3240
|
+
},
|
|
3241
|
+
{
|
|
3242
|
+
"id": "veo-3.1-lite-generate-preview",
|
|
3243
|
+
"provider": "google",
|
|
3244
|
+
"word": "shut down",
|
|
3245
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3246
|
+
"shutdownFloor": "2026-10-22",
|
|
3247
|
+
"dateText": "October 22, 2026",
|
|
3248
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3249
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3250
|
+
"readOn": "2026-11-12",
|
|
3251
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3252
|
+
"quote": "`veo-3.1-lite-generate-preview` | March 31, 2026 | October 22, 2026 | `gemini-omni-1.2-flash`"
|
|
3253
|
+
},
|
|
3254
|
+
{
|
|
3255
|
+
"id": "veo-3.1-generate-preview",
|
|
3256
|
+
"provider": "google",
|
|
3257
|
+
"word": "shut down",
|
|
3258
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3259
|
+
"shutdownFloor": "2026-10-22",
|
|
3260
|
+
"dateText": "October 22, 2026",
|
|
3261
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3262
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3263
|
+
"readOn": "2026-11-12",
|
|
3264
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3265
|
+
"quote": "`veo-3.1-generate-preview` | October 15, 2025 | October 22, 2026 | `gemini-omni-1.2-flash`"
|
|
3266
|
+
},
|
|
3267
|
+
{
|
|
3268
|
+
"id": "veo-3.1-fast-generate-preview",
|
|
3269
|
+
"provider": "google",
|
|
3270
|
+
"word": "shut down",
|
|
3271
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3272
|
+
"shutdownFloor": "2026-10-22",
|
|
3273
|
+
"dateText": "October 22, 2026",
|
|
3274
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3275
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3276
|
+
"readOn": "2026-11-12",
|
|
3277
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3278
|
+
"quote": "`veo-3.1-fast-generate-preview` | October 15, 2025 | October 22, 2026 | `gemini-omni-1.2-flash`"
|
|
3279
|
+
},
|
|
3280
|
+
{
|
|
3281
|
+
"id": "veo-3.0-generate-001",
|
|
3282
|
+
"provider": "google",
|
|
3283
|
+
"word": "shut down",
|
|
3284
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3285
|
+
"shutdownFloor": "2026-06-30",
|
|
3286
|
+
"dateText": "June 30, 2026",
|
|
3287
|
+
"replacement": "gemini-omni-1.2-flash or the GA models on the Gemini Enterprise Agent Platform",
|
|
3288
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3289
|
+
"readOn": "2026-11-12",
|
|
3290
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3291
|
+
"quote": "`veo-3.0-generate-001` | September 9, 2025 | June 30, 2026 | `gemini-omni-1.2-flash` or the GA models on the [Gemini Enterprise Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/veo/3-1-generate)"
|
|
3292
|
+
},
|
|
3293
|
+
{
|
|
3294
|
+
"id": "veo-3.0-fast-generate-001",
|
|
3295
|
+
"provider": "google",
|
|
3296
|
+
"word": "shut down",
|
|
3297
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3298
|
+
"shutdownFloor": "2026-06-30",
|
|
3299
|
+
"dateText": "June 30, 2026",
|
|
3300
|
+
"replacement": "gemini-omni-1.2-flash or the GA models on the Gemini Enterprise Agent Platform",
|
|
3301
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3302
|
+
"readOn": "2026-11-12",
|
|
3303
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3304
|
+
"quote": "`veo-3.0-fast-generate-001` | September 9, 2025 | June 30, 2026 | `gemini-omni-1.2-flash` or the GA models on the [Gemini Enterprise Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/veo/3-1-generate)"
|
|
3305
|
+
},
|
|
3306
|
+
{
|
|
3307
|
+
"id": "veo-2.0-generate-001",
|
|
3308
|
+
"provider": "google",
|
|
3309
|
+
"word": "shut down",
|
|
3310
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3311
|
+
"shutdownFloor": "2026-06-30",
|
|
3312
|
+
"dateText": "June 30, 2026",
|
|
3313
|
+
"replacement": "gemini-omni-1.2-flash or the GA models on the Gemini Enterprise Agent Platform",
|
|
3314
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3315
|
+
"readOn": "2026-11-12",
|
|
3316
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3317
|
+
"quote": "`veo-2.0-generate-001` | April 9, 2025 | June 30, 2026 | `gemini-omni-1.2-flash` or the GA models on the [Gemini Enterprise Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/veo/3-1-generate)"
|
|
3318
|
+
},
|
|
3319
|
+
{
|
|
3320
|
+
"id": "veo-3.0-generate-preview",
|
|
3321
|
+
"provider": "google",
|
|
3322
|
+
"word": "shut down",
|
|
3323
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3324
|
+
"shutdownFloor": "2025-11-12",
|
|
3325
|
+
"dateText": "November 12, 2025",
|
|
3326
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3327
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3328
|
+
"readOn": "2026-11-12",
|
|
3329
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3330
|
+
"quote": "`veo-3.0-generate-preview` | July 31, 2025 | November 12, 2025 | `gemini-omni-1.2-flash`"
|
|
3331
|
+
},
|
|
3332
|
+
{
|
|
3333
|
+
"id": "veo-3.0-fast-generate-preview",
|
|
3334
|
+
"provider": "google",
|
|
3335
|
+
"word": "shut down",
|
|
3336
|
+
"pageWord": "listed under Veo models \u203A Deprecated models",
|
|
3337
|
+
"shutdownFloor": "2025-11-12",
|
|
3338
|
+
"dateText": "November 12, 2025",
|
|
3339
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3340
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3341
|
+
"readOn": "2026-11-12",
|
|
3342
|
+
"section": "Veo models \u203A Deprecated models",
|
|
3343
|
+
"quote": "`veo-3.0-fast-generate-preview` | July 31, 2025 | November 12, 2025 | `gemini-omni-1.2-flash`"
|
|
3344
|
+
},
|
|
3345
|
+
{
|
|
3346
|
+
"id": "gemini-omni-1.1-flash",
|
|
3347
|
+
"provider": "google",
|
|
3348
|
+
"word": "rerouted",
|
|
3349
|
+
"pageWord": "gemini-omni-1.2-flash (Effective December 3, 2026, the endpoint is automatically routing API requests to gemini-omni-1.2-flash)",
|
|
3350
|
+
"shutdown": "2026-12-03",
|
|
3351
|
+
"dateText": "December 3, 2026",
|
|
3352
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3353
|
+
"routesTo": "gemini-omni-1.2-flash",
|
|
3354
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3355
|
+
"readOn": "2026-11-12",
|
|
3356
|
+
"section": "Gemini Omni Flash models",
|
|
3357
|
+
"quote": "`gemini-omni-1.1-flash` | August 27, 2026 | December 3, 2026 | `gemini-omni-1.2-flash` (Effective December 3, 2026, the endpoint is automatically routing API requests to `gemini-omni-1.2-flash`)"
|
|
3358
|
+
},
|
|
3359
|
+
{
|
|
3360
|
+
"id": "gemini-omni-flash-preview",
|
|
3361
|
+
"provider": "google",
|
|
3362
|
+
"word": "shut down",
|
|
3363
|
+
"pageWord": "listed under Gemini Omni Flash models \u203A Deprecated models",
|
|
3364
|
+
"shutdownFloor": "2026-10-22",
|
|
3365
|
+
"dateText": "October 22, 2026",
|
|
3366
|
+
"replacement": "gemini-omni-1.2-flash",
|
|
3367
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3368
|
+
"readOn": "2026-11-12",
|
|
3369
|
+
"section": "Gemini Omni Flash models \u203A Deprecated models",
|
|
3370
|
+
"quote": "`gemini-omni-flash-preview` | June 30, 2026 | October 22, 2026 | `gemini-omni-1.2-flash`"
|
|
3371
|
+
},
|
|
3372
|
+
{
|
|
3373
|
+
"id": "gemini-robotics-er-1.6-preview",
|
|
3374
|
+
"provider": "google",
|
|
3375
|
+
"word": "shut down",
|
|
3376
|
+
"pageWord": "listed under Robotics models \u203A Deprecated models",
|
|
3377
|
+
"shutdownFloor": "2026-08-31",
|
|
3378
|
+
"dateText": "August 31, 2026",
|
|
3379
|
+
"replacement": "gemini-robotics-er-2-preview",
|
|
3380
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3381
|
+
"readOn": "2026-11-12",
|
|
3382
|
+
"section": "Robotics models \u203A Deprecated models",
|
|
3383
|
+
"quote": "`gemini-robotics-er-1.6-preview` | April 14, 2026 | August 31, 2026 | `gemini-robotics-er-2-preview`"
|
|
3384
|
+
},
|
|
3385
|
+
{
|
|
3386
|
+
"id": "gemini-robotics-er-1.5-preview",
|
|
3387
|
+
"provider": "google",
|
|
3388
|
+
"word": "shut down",
|
|
3389
|
+
"pageWord": "listed under Robotics models \u203A Deprecated models",
|
|
3390
|
+
"shutdownFloor": "2026-04-30",
|
|
3391
|
+
"dateText": "April 30, 2026",
|
|
3392
|
+
"replacement": "gemini-robotics-er-2-preview",
|
|
3393
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3394
|
+
"readOn": "2026-11-12",
|
|
3395
|
+
"section": "Robotics models \u203A Deprecated models",
|
|
3396
|
+
"quote": "`gemini-robotics-er-1.5-preview` | September 25, 2025 | April 30, 2026 | `gemini-robotics-er-2-preview`"
|
|
3397
|
+
},
|
|
3398
|
+
{
|
|
3399
|
+
"id": "deep-research-pro-preview-12-2025",
|
|
3400
|
+
"provider": "google",
|
|
3401
|
+
"word": "shut down",
|
|
3402
|
+
"pageWord": "listed under Managed agents \u203A Deprecated agents",
|
|
3403
|
+
"shutdownFloor": "2026-10-23",
|
|
3404
|
+
"dateText": "October 23, 2026",
|
|
3405
|
+
"replacement": "deep-research-preview-04-2026",
|
|
3406
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3407
|
+
"readOn": "2026-11-12",
|
|
3408
|
+
"section": "Managed agents \u203A Deprecated agents",
|
|
3409
|
+
"quote": "`deep-research-pro-preview-12-2025` | December 11, 2025 | October 23, 2026 | `deep-research-preview-04-2026`"
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
"id": "antigravity-preview-05-2026",
|
|
3413
|
+
"provider": "google",
|
|
3414
|
+
"word": "shut down",
|
|
3415
|
+
"pageWord": "listed under Managed agents \u203A Deprecated agents",
|
|
3416
|
+
"shutdownFloor": "2026-10-05",
|
|
3417
|
+
"dateText": "October 5, 2026",
|
|
3418
|
+
"replacement": "antigravity-preview-09-2026",
|
|
3419
|
+
"url": "https://aistudio.google.com/docs/deprecations",
|
|
3420
|
+
"readOn": "2026-11-12",
|
|
3421
|
+
"section": "Managed agents \u203A Deprecated agents",
|
|
3422
|
+
"alsoUrl": "https://aistudio.google.com/docs/changelog",
|
|
3423
|
+
"alsoQuote": "replaces and deprecates `antigravity-preview-05-2026`",
|
|
3424
|
+
"alsoReadOn": "2026-11-12",
|
|
3425
|
+
"quote": "`antigravity-preview-05-2026` | May 19, 2026 | October 5, 2026 | `antigravity-preview-09-2026`"
|
|
3426
|
+
},
|
|
3427
|
+
{
|
|
3428
|
+
"id": "gemini-2.5-flash-preview-09-25",
|
|
3429
|
+
"provider": "google",
|
|
3430
|
+
"word": "shut down",
|
|
3431
|
+
"pageWord": "release notes February 17, 2026: are shut down(/docs/deprecations)",
|
|
3432
|
+
"shutdown": "2026-02-17",
|
|
3433
|
+
"dateText": "February 17, 2026",
|
|
3434
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3435
|
+
"readOn": "2026-11-12",
|
|
3436
|
+
"announced": "2026-02-17",
|
|
3437
|
+
"quote": "The following models are [shut down](/docs/deprecations)"
|
|
3438
|
+
},
|
|
3439
|
+
{
|
|
3440
|
+
"id": "gemini-2.0-flash-exp-image-generation",
|
|
3441
|
+
"provider": "google",
|
|
3442
|
+
"word": "deprecated",
|
|
3443
|
+
"pageWord": "release notes November 11, 2025: will be shut down",
|
|
3444
|
+
"shutdown": "2025-11-14",
|
|
3445
|
+
"dateText": "2025-11-14",
|
|
3446
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3447
|
+
"readOn": "2026-11-12",
|
|
3448
|
+
"announced": "2025-11-11",
|
|
3449
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3450
|
+
},
|
|
3451
|
+
{
|
|
3452
|
+
"id": "gemini-2.5-flash-lite-preview-06-17",
|
|
3453
|
+
"provider": "google",
|
|
3454
|
+
"word": "deprecated",
|
|
3455
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3456
|
+
"shutdown": "2025-11-18",
|
|
3457
|
+
"dateText": "2025-11-18",
|
|
3458
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3459
|
+
"readOn": "2026-11-12",
|
|
3460
|
+
"announced": "2025-11-04",
|
|
3461
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3462
|
+
},
|
|
3463
|
+
{
|
|
3464
|
+
"id": "gemini-2.0-flash-thinking-exp",
|
|
3465
|
+
"provider": "google",
|
|
3466
|
+
"word": "deprecated",
|
|
3467
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3468
|
+
"shutdown": "2025-12-02",
|
|
3469
|
+
"dateText": "2025-12-02",
|
|
3470
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3471
|
+
"readOn": "2026-11-12",
|
|
3472
|
+
"announced": "2025-11-04",
|
|
3473
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3474
|
+
},
|
|
3475
|
+
{
|
|
3476
|
+
"id": "gemini-2.0-flash-thinking-exp-01-21",
|
|
3477
|
+
"provider": "google",
|
|
3478
|
+
"word": "deprecated",
|
|
3479
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3480
|
+
"shutdown": "2025-12-02",
|
|
3481
|
+
"dateText": "2025-12-02",
|
|
3482
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3483
|
+
"readOn": "2026-11-12",
|
|
3484
|
+
"announced": "2025-11-04",
|
|
3485
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3486
|
+
},
|
|
3487
|
+
{
|
|
3488
|
+
"id": "gemini-2.0-flash-thinking-exp-1219",
|
|
3489
|
+
"provider": "google",
|
|
3490
|
+
"word": "deprecated",
|
|
3491
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3492
|
+
"shutdown": "2025-12-02",
|
|
3493
|
+
"dateText": "2025-12-02",
|
|
3494
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3495
|
+
"readOn": "2026-11-12",
|
|
3496
|
+
"announced": "2025-11-04",
|
|
3497
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3498
|
+
},
|
|
3499
|
+
{
|
|
3500
|
+
"id": "gemini-2.0-flash-exp",
|
|
3501
|
+
"provider": "google",
|
|
3502
|
+
"word": "deprecated",
|
|
3503
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3504
|
+
"shutdown": "2025-12-09",
|
|
3505
|
+
"dateText": "2025-12-09",
|
|
3506
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3507
|
+
"readOn": "2026-11-12",
|
|
3508
|
+
"announced": "2025-11-04",
|
|
3509
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3510
|
+
},
|
|
3511
|
+
{
|
|
3512
|
+
"id": "gemini-2.0-pro-exp",
|
|
3513
|
+
"provider": "google",
|
|
3514
|
+
"word": "deprecated",
|
|
3515
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3516
|
+
"shutdown": "2025-12-09",
|
|
3517
|
+
"dateText": "2025-12-09",
|
|
3518
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3519
|
+
"readOn": "2026-11-12",
|
|
3520
|
+
"announced": "2025-11-04",
|
|
3521
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3522
|
+
},
|
|
3523
|
+
{
|
|
3524
|
+
"id": "gemini-2.0-pro-exp-02-05",
|
|
3525
|
+
"provider": "google",
|
|
3526
|
+
"word": "deprecated",
|
|
3527
|
+
"pageWord": "release notes November 4, 2025: will be shut down",
|
|
3528
|
+
"shutdown": "2025-12-09",
|
|
3529
|
+
"dateText": "2025-12-09",
|
|
3530
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3531
|
+
"readOn": "2026-11-12",
|
|
3532
|
+
"announced": "2025-11-04",
|
|
3533
|
+
"quote": "Deprecation announcement: The following models will be shut down"
|
|
3534
|
+
},
|
|
3535
|
+
{
|
|
3536
|
+
"id": "gemini-2.5-flash-preview-native-audio-dialog",
|
|
3537
|
+
"provider": "google",
|
|
3538
|
+
"word": "shut down",
|
|
3539
|
+
"pageWord": "release notes October 20, 2025: are now shut down",
|
|
3540
|
+
"shutdown": "2025-10-20",
|
|
3541
|
+
"dateText": "October 20, 2025",
|
|
3542
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3543
|
+
"readOn": "2026-11-12",
|
|
3544
|
+
"announced": "2025-10-20",
|
|
3545
|
+
"quote": "The following Gemini Live API models are now shut down"
|
|
3546
|
+
},
|
|
3547
|
+
{
|
|
3548
|
+
"id": "gemini-2.5-flash-exp-native-audio-thinking-dialog",
|
|
3549
|
+
"provider": "google",
|
|
3550
|
+
"word": "shut down",
|
|
3551
|
+
"pageWord": "release notes October 20, 2025: are now shut down",
|
|
3552
|
+
"shutdown": "2025-10-20",
|
|
3553
|
+
"dateText": "October 20, 2025",
|
|
3554
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3555
|
+
"readOn": "2026-11-12",
|
|
3556
|
+
"announced": "2025-10-20",
|
|
3557
|
+
"quote": "The following Gemini Live API models are now shut down"
|
|
3558
|
+
},
|
|
3559
|
+
{
|
|
3560
|
+
"id": "gemini-1.5-pro",
|
|
3561
|
+
"provider": "google",
|
|
3562
|
+
"word": "shut down",
|
|
3563
|
+
"pageWord": "release notes September 29, 2025: are now shut down",
|
|
3564
|
+
"shutdown": "2025-09-29",
|
|
3565
|
+
"dateText": "September 29, 2025",
|
|
3566
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3567
|
+
"readOn": "2026-11-12",
|
|
3568
|
+
"announced": "2025-09-29",
|
|
3569
|
+
"quote": "The following Gemini 1.5 models are now shut down"
|
|
3570
|
+
},
|
|
3571
|
+
{
|
|
3572
|
+
"id": "gemini-1.5-flash-8b",
|
|
3573
|
+
"provider": "google",
|
|
3574
|
+
"word": "shut down",
|
|
3575
|
+
"pageWord": "release notes September 29, 2025: are now shut down",
|
|
3576
|
+
"shutdown": "2025-09-29",
|
|
3577
|
+
"dateText": "September 29, 2025",
|
|
3578
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3579
|
+
"readOn": "2026-11-12",
|
|
3580
|
+
"announced": "2025-09-29",
|
|
3581
|
+
"quote": "The following Gemini 1.5 models are now shut down"
|
|
3582
|
+
},
|
|
3583
|
+
{
|
|
3584
|
+
"id": "gemini-1.5-flash",
|
|
3585
|
+
"provider": "google",
|
|
3586
|
+
"word": "shut down",
|
|
3587
|
+
"pageWord": "release notes September 29, 2025: are now shut down",
|
|
3588
|
+
"shutdown": "2025-09-29",
|
|
3589
|
+
"dateText": "September 29, 2025",
|
|
3590
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3591
|
+
"readOn": "2026-11-12",
|
|
3592
|
+
"announced": "2025-09-29",
|
|
3593
|
+
"quote": "The following Gemini 1.5 models are now shut down"
|
|
3594
|
+
},
|
|
3595
|
+
{
|
|
3596
|
+
"id": "gemini-2.5-pro-exp-03-25",
|
|
3597
|
+
"provider": "google",
|
|
3598
|
+
"word": "shut down",
|
|
3599
|
+
"pageWord": "release notes June 26, 2025: is shut down",
|
|
3600
|
+
"shutdown": "2025-06-26",
|
|
3601
|
+
"dateText": "June 26, 2025",
|
|
3602
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3603
|
+
"readOn": "2026-11-12",
|
|
3604
|
+
"announced": "2025-06-26",
|
|
3605
|
+
"quote": "`gemini-2.5-pro-exp-03-25` is shut down"
|
|
3606
|
+
},
|
|
3607
|
+
{
|
|
3608
|
+
"id": "gemini-2.5-flash-preview-04-17",
|
|
3609
|
+
"provider": "google",
|
|
3610
|
+
"word": "deprecated",
|
|
3611
|
+
"pageWord": "`gemini-2.5-flash-preview-04-17` will be deprecated on July 15, 2025",
|
|
3612
|
+
"shutdown": "2025-07-15",
|
|
3613
|
+
"dateText": "July 15, 2025",
|
|
3614
|
+
"url": "https://aistudio.google.com/docs/changelog",
|
|
3615
|
+
"readOn": "2026-11-12",
|
|
3616
|
+
"announced": "2025-06-17",
|
|
3617
|
+
"quote": "`gemini-2.5-flash-preview-04-17` will be deprecated on July 15, 2025"
|
|
3618
|
+
},
|
|
3619
|
+
{
|
|
3620
|
+
"id": "deepseek-chat",
|
|
3621
|
+
"provider": "deepseek",
|
|
3622
|
+
"word": "legacy",
|
|
3623
|
+
"pageWord": "legacy API model name, to be discontinued",
|
|
3624
|
+
"announced": "2026-04-24",
|
|
3625
|
+
"shutdown": "2026-07-24",
|
|
3626
|
+
"dateText": "2026-07-24",
|
|
3627
|
+
"pointedTo": "deepseek-v4-flash",
|
|
3628
|
+
"url": "https://api-docs.deepseek.com/updates",
|
|
3629
|
+
"readOn": "2026-11-12",
|
|
3630
|
+
"quote": "The two legacy API model names, deepseek-chat and deepseek-reasoner, will be discontinued in three months (2026-07-24).",
|
|
3631
|
+
"note": "During the current period, these two model names point to the non-thinking mode and thinking mode of deepseek-v4-flash, respectively."
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
"id": "deepseek-reasoner",
|
|
3635
|
+
"provider": "deepseek",
|
|
3636
|
+
"word": "legacy",
|
|
3637
|
+
"pageWord": "legacy API model name, to be discontinued",
|
|
3638
|
+
"announced": "2026-04-24",
|
|
3639
|
+
"shutdown": "2026-07-24",
|
|
3640
|
+
"dateText": "2026-07-24",
|
|
3641
|
+
"pointedTo": "deepseek-v4-flash",
|
|
3642
|
+
"url": "https://api-docs.deepseek.com/updates",
|
|
3643
|
+
"readOn": "2026-11-12",
|
|
3644
|
+
"quote": "The two legacy API model names, deepseek-chat and deepseek-reasoner, will be discontinued in three months (2026-07-24).",
|
|
3645
|
+
"note": "During the current period, these two model names point to the non-thinking mode and thinking mode of deepseek-v4-flash, respectively."
|
|
3646
|
+
},
|
|
3647
|
+
{
|
|
3648
|
+
"id": "deepseek-v4-flash",
|
|
3649
|
+
"provider": "deepseek",
|
|
3650
|
+
"word": "retired",
|
|
3651
|
+
"pageWord": "have been retired",
|
|
3652
|
+
"announced": "2026-09-10",
|
|
3653
|
+
"replacement": "deepseek-flash",
|
|
3654
|
+
"routesTo": "V4.1 Flash",
|
|
3655
|
+
"url": "https://api-docs.deepseek.com/updates",
|
|
3656
|
+
"readOn": "2026-11-12",
|
|
3657
|
+
"quote": "The previous-generation models V4 Flash and V4 Flash Vision Exp have been retired; for compatibility, the model names deepseek-v4-flash and deepseek-v4-flash-vision-exp are temporarily routed to V4.1 Flash.",
|
|
3658
|
+
"note": "Change the model name to deepseek-flash to call the latest V4.1 Flash model.",
|
|
3659
|
+
"alsoUrl": "https://api-docs.deepseek.com/news",
|
|
3660
|
+
"alsoQuote": "The legacy names deepseek-v4-flash and deepseek-v4-flash-vision-exp are still accepted, but the corresponding models have been retired; their requests are served by DeepSeek-V4.1-Flash-1017 and billed at the Flash price.",
|
|
3661
|
+
"alsoReadOn": "2026-11-12"
|
|
3662
|
+
},
|
|
3663
|
+
{
|
|
3664
|
+
"id": "deepseek-v4-flash-vision-exp",
|
|
3665
|
+
"provider": "deepseek",
|
|
3666
|
+
"word": "retired",
|
|
3667
|
+
"pageWord": "have been retired",
|
|
3668
|
+
"announced": "2026-09-10",
|
|
3669
|
+
"replacement": "deepseek-flash",
|
|
3670
|
+
"routesTo": "V4.1 Flash",
|
|
3671
|
+
"url": "https://api-docs.deepseek.com/updates",
|
|
3672
|
+
"readOn": "2026-11-12",
|
|
3673
|
+
"quote": "The previous-generation models V4 Flash and V4 Flash Vision Exp have been retired; for compatibility, the model names deepseek-v4-flash and deepseek-v4-flash-vision-exp are temporarily routed to V4.1 Flash.",
|
|
3674
|
+
"note": "Change the model name to deepseek-flash to call the latest V4.1 Flash model.",
|
|
3675
|
+
"alsoUrl": "https://api-docs.deepseek.com/news",
|
|
3676
|
+
"alsoQuote": "The legacy names deepseek-v4-flash and deepseek-v4-flash-vision-exp are still accepted, but the corresponding models have been retired; their requests are served by DeepSeek-V4.1-Flash-1017 and billed at the Flash price.",
|
|
3677
|
+
"alsoReadOn": "2026-11-12"
|
|
3678
|
+
}
|
|
3679
|
+
];
|
|
3680
|
+
|
|
3681
|
+
// src/lifecycle.ts
|
|
3682
|
+
import { allProfiles, tryGetProfile } from "@warmdrift/kgauto-compiler";
|
|
3683
|
+
var GATEWAYS = /* @__PURE__ */ new Set(["openrouter"]);
|
|
3684
|
+
var PREFIXES = {
|
|
3685
|
+
openrouter: "openrouter",
|
|
3686
|
+
openai: null,
|
|
3687
|
+
anthropic: null,
|
|
3688
|
+
google: null,
|
|
3689
|
+
deepseek: null,
|
|
3690
|
+
gemini: null,
|
|
3691
|
+
models: null,
|
|
3692
|
+
xai: null,
|
|
3693
|
+
mistral: null,
|
|
3694
|
+
huggingface: null,
|
|
3695
|
+
nvidia_nim: null,
|
|
3696
|
+
perplexity: null,
|
|
3697
|
+
vllm: null,
|
|
3698
|
+
watsonx: null,
|
|
3699
|
+
vertex_ai: "vertex",
|
|
3700
|
+
bedrock: "bedrock",
|
|
3701
|
+
azure: "azure",
|
|
3702
|
+
azure_ai: "azure"
|
|
3703
|
+
};
|
|
3704
|
+
var ROUTE_SEGMENTS = /* @__PURE__ */ new Set(["converse", "invoke", "converse_like", "chat_completions", "o_series", "gemini"]);
|
|
3705
|
+
var DATED_ANTHROPIC = /-(\d{8})$/;
|
|
3706
|
+
var DATED_OPENAI = /-(\d{4}-\d{2}-\d{2})$/;
|
|
3707
|
+
function stripSnapshot(id) {
|
|
3708
|
+
if (DATED_ANTHROPIC.test(id)) return id.replace(DATED_ANTHROPIC, "");
|
|
3709
|
+
if (DATED_OPENAI.test(id)) return id.replace(DATED_OPENAI, "");
|
|
3710
|
+
return void 0;
|
|
3711
|
+
}
|
|
3712
|
+
function resolveId(configured) {
|
|
3713
|
+
let id = configured.trim();
|
|
3714
|
+
const steps = [];
|
|
3715
|
+
let partner;
|
|
3716
|
+
for (let depth = 0; depth < 4; depth++) {
|
|
3717
|
+
const slash = id.indexOf("/");
|
|
3718
|
+
if (slash === -1) break;
|
|
3719
|
+
const head = id.slice(0, slash).toLowerCase();
|
|
3720
|
+
const known = Object.prototype.hasOwnProperty.call(PREFIXES, head);
|
|
3721
|
+
const route = depth > 0 && ROUTE_SEGMENTS.has(head) && id.slice(slash + 1).length > 0;
|
|
3722
|
+
if (!known && !route) break;
|
|
3723
|
+
if (known && PREFIXES[head]) partner = PREFIXES[head];
|
|
3724
|
+
steps.push(`removed the \`${head}/\` prefix`);
|
|
3725
|
+
id = id.slice(slash + 1);
|
|
3726
|
+
}
|
|
3727
|
+
const bedrock = /^(?:[a-z]{2,6}\.)?anthropic\.(claude-[a-z0-9.-]+?)(?:-v\d+(?::\d+)?)?$/.exec(id);
|
|
3728
|
+
if (bedrock) {
|
|
3729
|
+
steps.push("read the Amazon Bedrock form");
|
|
3730
|
+
id = bedrock[1];
|
|
3731
|
+
partner = "bedrock";
|
|
3732
|
+
}
|
|
3733
|
+
const vertex = /^(claude-[a-z0-9.-]+)@(\d{8})$/.exec(id);
|
|
3734
|
+
if (vertex) {
|
|
3735
|
+
steps.push("read the Google Cloud (Vertex) form");
|
|
3736
|
+
id = `${vertex[1]}-${vertex[2]}`;
|
|
3737
|
+
partner = "vertex";
|
|
3738
|
+
}
|
|
3739
|
+
if (steps.length > 0 && /^claude-.*\d\.\d/.test(id)) {
|
|
3740
|
+
const dashed = id.replace(/(\d)\.(\d)/g, "$1-$2");
|
|
3741
|
+
if (dashed !== id) {
|
|
3742
|
+
steps.push("wrote the dotted version with hyphens, as Anthropic does");
|
|
3743
|
+
id = dashed;
|
|
3744
|
+
}
|
|
3745
|
+
}
|
|
3746
|
+
return { configured, base: id, steps, ...partner ? { partner } : {} };
|
|
3747
|
+
}
|
|
3748
|
+
var byId = /* @__PURE__ */ new Map();
|
|
3749
|
+
for (const r of LEDGER) byId.set(r.id, r);
|
|
3750
|
+
var byBase = /* @__PURE__ */ new Map();
|
|
3751
|
+
{
|
|
3752
|
+
const groups = /* @__PURE__ */ new Map();
|
|
3753
|
+
for (const r of LEDGER) {
|
|
3754
|
+
const b = stripSnapshot(r.id);
|
|
3755
|
+
if (!b || byId.has(b)) continue;
|
|
3756
|
+
groups.set(b, [...groups.get(b) ?? [], r]);
|
|
3757
|
+
}
|
|
3758
|
+
for (const [b, rs] of groups) {
|
|
3759
|
+
const first = rs[0];
|
|
3760
|
+
if (rs.every((r) => r.word === first.word && r.shutdown === first.shutdown)) byBase.set(b, first);
|
|
3761
|
+
}
|
|
3762
|
+
}
|
|
3763
|
+
function lookupLedger(res) {
|
|
3764
|
+
const exact = byId.get(res.base);
|
|
3765
|
+
if (exact) return { row: exact, catalogId: stripSnapshot(res.base) ?? res.base };
|
|
3766
|
+
const stripped = stripSnapshot(res.base);
|
|
3767
|
+
if (stripped) {
|
|
3768
|
+
const r = byId.get(stripped) ?? byBase.get(stripped);
|
|
3769
|
+
if (r) return { row: r, via: r.id, catalogId: stripped };
|
|
3770
|
+
}
|
|
3771
|
+
const derived = byBase.get(res.base);
|
|
3772
|
+
if (derived) return { row: derived, via: derived.id, catalogId: res.base };
|
|
3773
|
+
return { catalogId: res.base };
|
|
3774
|
+
}
|
|
3775
|
+
function catalogProfile(id, get = tryGetProfile) {
|
|
3776
|
+
const p = get(id);
|
|
3777
|
+
if (p) return { profile: p, id };
|
|
3778
|
+
const b = stripSnapshot(id);
|
|
3779
|
+
if (b) {
|
|
3780
|
+
const q = get(b);
|
|
3781
|
+
if (q) return { profile: q, id: b };
|
|
3782
|
+
}
|
|
3783
|
+
return { id };
|
|
3784
|
+
}
|
|
3785
|
+
var PROVIDER_NAME = {
|
|
3786
|
+
anthropic: "Anthropic",
|
|
3787
|
+
openai: "OpenAI",
|
|
3788
|
+
google: "Google",
|
|
3789
|
+
deepseek: "DeepSeek"
|
|
3790
|
+
};
|
|
3791
|
+
var LEDGER_READ_ON = LEDGER_SOURCES.map((s) => s.readAt.slice(0, 10)).sort().at(-1) ?? "unknown";
|
|
3792
|
+
var WORD_DEFINITION = {
|
|
3793
|
+
anthropic: { retired: "The model is no longer available for use. Requests to retired models fail." },
|
|
3794
|
+
openai: { "shut down": "At the time of the shut down, the model or endpoint will no longer be accessible." },
|
|
3795
|
+
google: { "shut down": "it is completely turned off, and the endpoint is no longer available." }
|
|
3796
|
+
};
|
|
3797
|
+
var DEFINITION_PAGE = {
|
|
3798
|
+
anthropic: "https://platform.claude.com/docs/en/about-claude/model-deprecations.md",
|
|
3799
|
+
openai: "https://developers.openai.com/api/docs/deprecations.md",
|
|
3800
|
+
google: "https://aistudio.google.com/docs/deprecations",
|
|
3801
|
+
deepseek: "https://api-docs.deepseek.com/updates"
|
|
3802
|
+
};
|
|
3803
|
+
var PARTNER_NAME = {
|
|
3804
|
+
vertex: "Vertex AI",
|
|
3805
|
+
bedrock: "Amazon Bedrock",
|
|
3806
|
+
azure: "Azure",
|
|
3807
|
+
openrouter: "OpenRouter"
|
|
3808
|
+
};
|
|
3809
|
+
function partnerPage(partner, provider) {
|
|
3810
|
+
if (partner === "openrouter") return "https://openrouter.ai/docs/guides/overview/models";
|
|
3811
|
+
if (partner === "vertex" && provider === "google") return "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/model-versions";
|
|
3812
|
+
if (partner === "vertex" && provider === "anthropic")
|
|
3813
|
+
return "https://platform.claude.com/docs/en/build-with-claude/claude-models-on-google-cloud/google-managed";
|
|
3814
|
+
if (partner === "bedrock") return "https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html";
|
|
3815
|
+
if (partner === "azure" && provider === "openai")
|
|
3816
|
+
return "https://learn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/model-retirements";
|
|
3817
|
+
return void 0;
|
|
3818
|
+
}
|
|
3819
|
+
function wordPartner(site) {
|
|
3820
|
+
const text2 = `${site.id ?? ""} ${site.where ?? ""} ${site.notes ?? ""}`;
|
|
3821
|
+
if (/vertex|aiplatform|\bproject\b[^.]{0,60}\blocation\b|\blocation\b[^.]{0,60}\bproject\b/i.test(text2)) return "vertex";
|
|
3822
|
+
if (/bedrock/i.test(text2)) return "bedrock";
|
|
3823
|
+
if (/azure|foundry/i.test(text2)) return "azure";
|
|
3824
|
+
return void 0;
|
|
3825
|
+
}
|
|
3826
|
+
function siteState(site, res) {
|
|
3827
|
+
const stated = site.platform;
|
|
3828
|
+
if (res.partner) {
|
|
3829
|
+
const conflict = stated === "provider-api" || (stated === "vertex" || stated === "bedrock" || stated === "azure") && stated !== res.partner ? `the extract says ${stated === "provider-api" ? "the provider's own API" : PARTNER_NAME[stated]}, but the id's form is ${PARTNER_NAME[res.partner]}'s` : void 0;
|
|
3830
|
+
return { partner: res.partner, providerApi: false, source: "id", ...conflict ? { conflict } : {} };
|
|
3831
|
+
}
|
|
3832
|
+
if (stated === "vertex" || stated === "bedrock" || stated === "azure") return { partner: stated, providerApi: false, source: "stated" };
|
|
3833
|
+
const words = wordPartner(site);
|
|
3834
|
+
if (stated === "provider-api") {
|
|
3835
|
+
if (words)
|
|
3836
|
+
return { partner: words, providerApi: false, source: "words", conflict: `the extract says the provider's own API, but its notes or path name ${PARTNER_NAME[words]}` };
|
|
3837
|
+
return { providerApi: true };
|
|
3838
|
+
}
|
|
3839
|
+
return { ...words ? { partner: words, source: "words" } : {}, providerApi: false };
|
|
3840
|
+
}
|
|
3841
|
+
function coveredBy(provider, partner) {
|
|
3842
|
+
if (provider === "anthropic" && partner === "azure") return "Microsoft Foundry";
|
|
3843
|
+
return void 0;
|
|
3844
|
+
}
|
|
3845
|
+
function familyAndVersion(id) {
|
|
3846
|
+
const base = stripSnapshot(id) ?? id;
|
|
3847
|
+
if (base.includes("/")) return null;
|
|
3848
|
+
const parts = base.split("-");
|
|
3849
|
+
const fam = [];
|
|
3850
|
+
const ver = [];
|
|
3851
|
+
let i = 0;
|
|
3852
|
+
while (i < parts.length && /^[a-z]+$/.test(parts[i])) fam.push(parts[i++]);
|
|
3853
|
+
while (i < parts.length && /^v?\d+(\.\d+)*$/.test(parts[i])) {
|
|
3854
|
+
ver.push(...parts[i].replace(/^v/, "").split(".").map(Number));
|
|
3855
|
+
i++;
|
|
3856
|
+
}
|
|
3857
|
+
if (fam.length === 0 || ver.length === 0) return null;
|
|
3858
|
+
const tail = parts.slice(i);
|
|
3859
|
+
if (tail.some((t) => !/^[a-z]+$/.test(t))) return null;
|
|
3860
|
+
return { family: [...fam, ...tail].join("-"), version: ver };
|
|
3861
|
+
}
|
|
3862
|
+
var cmp = (a, b) => {
|
|
3863
|
+
for (let i = 0; i < Math.max(a.length, b.length); i++) {
|
|
3864
|
+
const d = (a[i] ?? 0) - (b[i] ?? 0);
|
|
3865
|
+
if (d !== 0) return d;
|
|
3866
|
+
}
|
|
3867
|
+
return 0;
|
|
3868
|
+
};
|
|
3869
|
+
function newerThanFamily(id, roster = allProfiles) {
|
|
3870
|
+
const me = familyAndVersion(id);
|
|
3871
|
+
if (!me) return null;
|
|
3872
|
+
const known = [...roster().map((p) => p.id), ...LEDGER.map((r) => r.id)].map(familyAndVersion).filter((x) => !!x && x.family === me.family);
|
|
3873
|
+
if (known.length === 0) return null;
|
|
3874
|
+
return known.every((k) => cmp(me.version, k.version) > 0) ? me.family : null;
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3877
|
+
// src/engine.ts
|
|
3878
|
+
import {
|
|
3879
|
+
allProfiles as allProfiles2,
|
|
3880
|
+
tryGetProfile as tryGetProfile2,
|
|
3881
|
+
resolveModelAlias,
|
|
3882
|
+
isArchetype,
|
|
3883
|
+
LIBRARY_VERSION,
|
|
3884
|
+
hasConfirmedEvidence,
|
|
3885
|
+
isCapabilityReducing
|
|
3886
|
+
} from "@warmdrift/kgauto-compiler";
|
|
3887
|
+
import { retirementFloorClause, deriveCliffEvidenceClass } from "@warmdrift/kgauto-compiler/profiles";
|
|
3888
|
+
var DESTINATION_SENTENCE = "This check ran on your machine, against the catalog bundled with it and the providers\u2019 deprecation pages it was built with. Nothing was uploaded; no rows were written anywhere.";
|
|
3889
|
+
var SHARE_DESTINATION_SENTENCE = "This check ran on your machine, against the catalog bundled with it and the providers\u2019 deprecation pages it was built with. Because you ran it with --share, this card and the extract are sent after it is printed.";
|
|
3890
|
+
var defaultResolve = (id) => ({ canonical: resolveModelAlias(id), profile: tryGetProfile2(id) });
|
|
3891
|
+
function perCallCostUsd(p, inTok, outTok) {
|
|
3892
|
+
return inTok / 1e6 * p.costInputPer1m + outTok / 1e6 * p.costOutputPer1m;
|
|
3893
|
+
}
|
|
3894
|
+
var capital = (w) => w.charAt(0).toUpperCase() + w.slice(1);
|
|
3895
|
+
var UNSTATED_CLAUSE = "If this call goes through a cloud platform (Vertex, Bedrock, Azure, a gateway), that platform may keep its own schedule.";
|
|
3896
|
+
function placeLine(line, provider, st) {
|
|
3897
|
+
if (st.providerApi) return line;
|
|
3898
|
+
const P = PROVIDER_NAME[provider] ?? provider;
|
|
3899
|
+
const parts = [];
|
|
3900
|
+
let basis = line.basis;
|
|
3901
|
+
if (st.partner) {
|
|
3902
|
+
const N = PARTNER_NAME[st.partner];
|
|
3903
|
+
const covered = coveredBy(provider, st.partner);
|
|
3904
|
+
if (covered) {
|
|
3905
|
+
parts.push(`${P}'s deprecations page says its dates apply on ${covered}, so they hold on this site's platform too.`);
|
|
3906
|
+
} else {
|
|
3907
|
+
const page = partnerPage(st.partner, provider);
|
|
3908
|
+
const where = page ? ` (its page: ${page}).` : " (no page of its own for this model was read).";
|
|
3909
|
+
parts.push(
|
|
3910
|
+
GATEWAYS.has(st.partner) ? `This id is written for ${N}, a gateway, and ${N} may keep its own schedule for the model${where}` : `This site runs on ${N}, and ${N} runs its own schedule${where}`
|
|
3911
|
+
);
|
|
3912
|
+
if (page) basis = `${basis}; ${N}: ${page}`;
|
|
3913
|
+
}
|
|
3914
|
+
} else {
|
|
3915
|
+
parts.push(UNSTATED_CLAUSE);
|
|
3916
|
+
}
|
|
3917
|
+
if (st.conflict) parts.push(`The extract and the code disagree: ${st.conflict}.`);
|
|
3918
|
+
return { ...line, confidence: "likely", detail: `${line.detail} ${parts.join(" ")}`, basis };
|
|
3919
|
+
}
|
|
3920
|
+
function ledgerLine(a) {
|
|
3921
|
+
const { row, shown } = a;
|
|
3922
|
+
const P = PROVIDER_NAME[row.provider];
|
|
3923
|
+
const readOn = row.readOn;
|
|
3924
|
+
const date = row.shutdown;
|
|
3925
|
+
const floor = row.shutdownFloor;
|
|
3926
|
+
const past = date !== void 0 && date <= readOn;
|
|
3927
|
+
const on = `On ${P}'s own API, ${shown}`;
|
|
3928
|
+
let title;
|
|
3929
|
+
switch (row.word) {
|
|
3930
|
+
case "retired":
|
|
3931
|
+
title = date ? `${on} was retired on ${date}` : `${on} was retired${row.announced ? ` (change log, ${row.announced})` : ""}`;
|
|
3932
|
+
break;
|
|
3933
|
+
case "shut down":
|
|
3934
|
+
title = date ? `${on} was shut down on ${date}` : floor ? `${on} has been shut down (the earliest shutdown date the page gave was ${floor})` : `${on} has been shut down`;
|
|
3935
|
+
break;
|
|
3936
|
+
case "legacy":
|
|
3937
|
+
title = `${on} is a legacy name ${P} said it would discontinue on ${date}${past ? ", a date before this read; the page states nothing later" : ""}`;
|
|
3938
|
+
break;
|
|
3939
|
+
case "rerouted":
|
|
3940
|
+
title = `${on} has its requests routed to \`${row.routesTo}\`${date && !past ? ` from ${date}` : ""}`;
|
|
3941
|
+
break;
|
|
3942
|
+
case "scheduled for shutdown":
|
|
3943
|
+
title = `${on} is scheduled for shutdown not before ${floor ?? date}`;
|
|
3944
|
+
break;
|
|
3945
|
+
default: {
|
|
3946
|
+
if (row.routesTo) {
|
|
3947
|
+
title = `${on} is deprecated; ${date && !past ? `from ${date} its requests route to` : "its requests are routed to"} \`${row.routesTo}\``;
|
|
3948
|
+
} else if (date) {
|
|
3949
|
+
title = past ? `${on} is deprecated, with a shutdown date of ${date}, before this read` : `${on} is deprecated and shuts down on ${date}`;
|
|
3950
|
+
} else if (floor) {
|
|
3951
|
+
title = `${on} is deprecated; shutdown not before ${floor}`;
|
|
3952
|
+
} else {
|
|
3953
|
+
title = `${on} is deprecated`;
|
|
3954
|
+
}
|
|
3955
|
+
}
|
|
3956
|
+
}
|
|
3957
|
+
const repl = row.replacement && row.replacement !== row.routesTo ? row.replacement : void 0;
|
|
3958
|
+
if (repl) title += `; its page names \`${repl}\``;
|
|
3959
|
+
const parts = [];
|
|
3960
|
+
if (a.via) parts.push(`The page lists the dated snapshot \`${a.via}\`.`);
|
|
3961
|
+
const def = WORD_DEFINITION[row.provider]?.[row.word];
|
|
3962
|
+
if (def) parts.push(`${P}'s deprecations page (${DEFINITION_PAGE[row.provider]}): \u201C${def}\u201D`);
|
|
3963
|
+
if (row.word === "legacy" && row.pointedTo) {
|
|
3964
|
+
parts.push(`When ${P} announced it (${row.announced}), the name pointed to \`${row.pointedTo}\`.`);
|
|
3965
|
+
}
|
|
3966
|
+
if (row.word === "retired" && row.routesTo) {
|
|
3967
|
+
parts.push(`${P}'s page: the name is "temporarily routed to ${row.routesTo}".`);
|
|
3968
|
+
}
|
|
3969
|
+
if (parts.length === 0 || !def && row.word !== "legacy" && !a.via)
|
|
3970
|
+
parts.unshift(`The page's line: \u201C${row.quote.replace(/\s+/g, " ").replace(/\[([^\]]+)\]\([^)]*\)/g, "$1").slice(0, 240)}\u201D.`);
|
|
3971
|
+
if (a.checksSkip) parts.push("The catalog has no entry for it, so its limits and price were not checked.");
|
|
3972
|
+
const severity = row.word === "retired" || row.word === "shut down" || row.word === "legacy" && past ? "red" : "yellow";
|
|
3973
|
+
return {
|
|
3974
|
+
severity,
|
|
3975
|
+
confidence: "certain",
|
|
3976
|
+
title,
|
|
3977
|
+
detail: parts.join(" "),
|
|
3978
|
+
basis: `${P}'s page, read ${readOn}: ${row.url}${row.alsoUrl ? ` (and ${row.alsoUrl})` : ""}`
|
|
3979
|
+
};
|
|
3980
|
+
}
|
|
3981
|
+
function providerLifecycleLine(shown, p) {
|
|
3982
|
+
const pl = p.providerLifecycle;
|
|
3983
|
+
if (!pl || pl.status === "active") return void 0;
|
|
3984
|
+
const P = PROVIDER_NAME[p.provider] ?? p.provider;
|
|
3985
|
+
const floor = retirementFloorClause({ retirementFloor: pl.retirementFloor, readOn: pl.readOn });
|
|
3986
|
+
return {
|
|
3987
|
+
severity: pl.status === "retired" ? "red" : "yellow",
|
|
3988
|
+
confidence: "certain",
|
|
3989
|
+
title: `On ${P}'s own API, ${shown} is ${capital(pl.status)}: its model page says so (read ${pl.readOn})${floor}${pl.replacement ? `; it names \`${pl.replacement}\`` : ""}`,
|
|
3990
|
+
detail: pl.status === "legacy" ? `${P}'s word for a model that no longer receives updates and may be deprecated later.` : `${P}'s word, read on the model's own page.`,
|
|
3991
|
+
basis: `catalog providerLifecycle, read ${pl.readOn}: ${pl.url}`
|
|
3992
|
+
};
|
|
3993
|
+
}
|
|
3994
|
+
var ACTION_WORDS = {
|
|
3995
|
+
downgrade_quality_warning: "attaches a warning to the compiled request and leaves the request as it is",
|
|
3996
|
+
quality_gate_structured: "ranks the model lower for a request that asks for structured output at this size",
|
|
3997
|
+
force_thinking_budget_zero: "turns the model's thinking off for the request",
|
|
3998
|
+
force_terse_output: "asks the model for a short answer",
|
|
3999
|
+
drop_to_top_relevant: "sends only the most relevant tools",
|
|
4000
|
+
strip_tools: "sends the request without its tools",
|
|
4001
|
+
escalate_target: "moves the request to a stronger model"
|
|
4002
|
+
};
|
|
4003
|
+
var ACTION_WOULD = {
|
|
4004
|
+
force_thinking_budget_zero: "turn the model's thinking off for the request",
|
|
4005
|
+
force_terse_output: "ask the model for a short answer",
|
|
4006
|
+
drop_to_top_relevant: "send only the most relevant tools",
|
|
4007
|
+
strip_tools: "send the request without its tools"
|
|
4008
|
+
};
|
|
4009
|
+
var QUALITY_ACTIONS = /* @__PURE__ */ new Set(["downgrade_quality_warning", "quality_gate_structured"]);
|
|
4010
|
+
function actionSentence(c) {
|
|
4011
|
+
if (isCapabilityReducing(c.action) && !hasConfirmedEvidence(c)) {
|
|
4012
|
+
return `What the compiler does about it: it would ${ACTION_WOULD[c.action] ?? c.action.replaceAll("_", " ")}, but holds that back until a probe confirms the cliff.`;
|
|
4013
|
+
}
|
|
4014
|
+
if (c.action === "quality_gate_structured") {
|
|
4015
|
+
return `What the compiler does about it: it stops trusting this model's structured output at or above this size${c.whenIntent ? ` on ${c.whenIntent} work` : ""}, and ranks the model lower for such a request.`;
|
|
4016
|
+
}
|
|
4017
|
+
const w = ACTION_WORDS[c.action];
|
|
4018
|
+
return w ? `What the compiler does about it: it ${w}.` : `What the compiler does about it: its action is "${c.action.replaceAll("_", " ")}".`;
|
|
4019
|
+
}
|
|
4020
|
+
function evidenceSentence(c) {
|
|
4021
|
+
const ev = c.evidence;
|
|
4022
|
+
const n = /\bn=(\d+)\b/.exec(c.reason)?.[1];
|
|
4023
|
+
const count = n ? `, on ${n} ${n === "1" ? "call" : "calls"} (the count its reason gives)` : "";
|
|
4024
|
+
if (!ev) {
|
|
4025
|
+
const derived = deriveCliffEvidenceClass(c);
|
|
4026
|
+
if (derived === "observed") return "Evidence: no evidence record; the catalog's note describes a measured incident.";
|
|
4027
|
+
if (derived === "assumed") return "Evidence: the rule carries no evidence record; its reason says it is carried over, not measured on this model.";
|
|
4028
|
+
return "Evidence: the rule carries no evidence record.";
|
|
4029
|
+
}
|
|
4030
|
+
const when = ev.lastProbed ? `, last ${ev.class === "observed" ? "seen" : "run"} ${ev.lastProbed}` : "";
|
|
4031
|
+
switch (ev.class) {
|
|
4032
|
+
case "probed": {
|
|
4033
|
+
const v = ev.verdict === "confirmed" ? "a probe reproduced it" : ev.verdict === "knee-moved" ? "a probe moved its threshold and the rule was re-pinned" : ev.verdict === "flagged" ? "a probe did not reproduce it" : "a probe ran; its verdict is not recorded";
|
|
4034
|
+
return `Evidence: ${v}${when}${count}.`;
|
|
4035
|
+
}
|
|
4036
|
+
case "observed":
|
|
4037
|
+
return `Evidence: observed in real calls${when}${count}.`;
|
|
4038
|
+
case "assumed":
|
|
4039
|
+
return "Evidence: carried over from a similar model, not measured on this one.";
|
|
4040
|
+
default:
|
|
4041
|
+
return "Evidence: stated in the catalog without a measurement.";
|
|
4042
|
+
}
|
|
4043
|
+
}
|
|
4044
|
+
function scopeSentence(reason) {
|
|
4045
|
+
const endpoint = /(\/v\d+[a-z]*\/[a-z0-9_/.:-]*[a-z0-9_])/i.exec(reason)?.[1];
|
|
4046
|
+
if (endpoint) return `It is about one endpoint, \`${endpoint}\`: it says nothing about the model reached another way.`;
|
|
4047
|
+
const wire = /\bon (?:the |kgauto's )?([A-Za-z][\w .-]*?) wire\b/.exec(reason)?.[1];
|
|
4048
|
+
if (wire) return `It is about one wire, ${wire}: it says nothing about the model reached another way.`;
|
|
4049
|
+
return "";
|
|
4050
|
+
}
|
|
4051
|
+
var INTERNAL_APPS = [
|
|
4052
|
+
"playbacksam",
|
|
4053
|
+
"tt-intel",
|
|
4054
|
+
"tt-intelligence",
|
|
4055
|
+
"inspire-central",
|
|
4056
|
+
"global-expansion",
|
|
4057
|
+
"lovable-intelligence",
|
|
4058
|
+
"incantato",
|
|
4059
|
+
"ivypass"
|
|
4060
|
+
];
|
|
4061
|
+
var namesInternalApp = (text2) => INTERNAL_APPS.some((n) => text2.toLowerCase().includes(n));
|
|
4062
|
+
function cliffLine(canonical, c, metricValue) {
|
|
4063
|
+
const parts = [];
|
|
4064
|
+
const onWork = c.whenIntent ? ` on ${c.whenIntent} work` : "";
|
|
4065
|
+
const recorded = c.evidence?.class === "observed" || hasConfirmedEvidence(c);
|
|
4066
|
+
if (QUALITY_ACTIONS.has(c.action) && recorded) {
|
|
4067
|
+
parts.push(`Above this threshold${onWork}, quality degrades in a measured, repeatable way.`);
|
|
4068
|
+
}
|
|
4069
|
+
parts.push(
|
|
4070
|
+
namesInternalApp(c.reason) ? "The catalog's note for this rule is written for our own records and is not quoted." : `The catalog's reason${c.whenIntent ? ` (for ${c.whenIntent} work)` : ""}: \u201C${c.reason.trim().replace(/\.$/, "")}\u201D.`
|
|
4071
|
+
);
|
|
4072
|
+
const scope = scopeSentence(c.reason);
|
|
4073
|
+
if (scope) parts.push(scope);
|
|
4074
|
+
parts.push(actionSentence(c));
|
|
4075
|
+
parts.push(evidenceSentence(c));
|
|
4076
|
+
const where = metricValue === c.threshold ? "at the line" : "over the line";
|
|
4077
|
+
parts.push(
|
|
4078
|
+
c.metric === "tool_count" ? `This site offers ${metricValue.toLocaleString()} ${metricValue === 1 ? "tool" : "tools"}, ${where}.` : `Your estimate of ${metricValue.toLocaleString()} sits ${where}.`
|
|
4079
|
+
);
|
|
4080
|
+
const ev = c.evidence;
|
|
4081
|
+
const tag = ev ? `evidence: ${[ev.class, ev.verdict, ev.lastProbed].filter(Boolean).join(", ")}` : "no evidence record";
|
|
4082
|
+
return {
|
|
4083
|
+
severity: "yellow",
|
|
4084
|
+
confidence: "likely",
|
|
4085
|
+
// Amendment D2: the title agrees with the sentence — "reaches" at equality, "crosses" above.
|
|
4086
|
+
title: `\`${canonical}\` has a known ${c.metric.replaceAll("_", " ")} cliff at ${c.threshold.toLocaleString()} \u2014 this site ${metricValue === c.threshold ? "reaches" : "crosses"} it`,
|
|
4087
|
+
detail: parts.join(" "),
|
|
4088
|
+
basis: `the catalog's cliff rule (${tag}) vs ${c.metric === "tool_count" ? "this site's tool count" : "your estimate"}`
|
|
4089
|
+
};
|
|
4090
|
+
}
|
|
4091
|
+
function analyseModel(configured, opts = {}, site = {}) {
|
|
4092
|
+
const resolveCat = opts.resolve ?? defaultResolve;
|
|
4093
|
+
const roster = opts.roster ?? allProfiles2;
|
|
4094
|
+
const res = resolveId(configured);
|
|
4095
|
+
const st = siteState(site, res);
|
|
4096
|
+
const partner = st.partner;
|
|
4097
|
+
const hit = lookupLedger(res);
|
|
4098
|
+
const looked = res.base !== configured ? res.base : void 0;
|
|
4099
|
+
const cat = catalogProfile(hit.catalogId, (id) => resolveCat(id).profile);
|
|
4100
|
+
let profile = cat.profile;
|
|
4101
|
+
const canonical = profile ? resolveCat(cat.id).canonical : cat.id;
|
|
4102
|
+
const shownId = cat.profile && cat.id !== res.base || looked ? `\`${configured}\` (looked up as \`${cat.profile ? cat.id : res.base}\`)` : `\`${configured}\``;
|
|
4103
|
+
const row = hit.row;
|
|
4104
|
+
if (row && profile) {
|
|
4105
|
+
if (row.word === "retired" && !row.routesTo) profile = void 0;
|
|
4106
|
+
else if (row.word === "shut down") profile = void 0;
|
|
4107
|
+
else if (canonical !== cat.id && row.replacement !== canonical && row.routesTo !== canonical) profile = void 0;
|
|
4108
|
+
}
|
|
4109
|
+
const lines = [];
|
|
4110
|
+
if (row) {
|
|
4111
|
+
lines.push(placeLine(ledgerLine({ shown: shownId, row, via: hit.via, res, checksSkip: !profile }), row.provider, st));
|
|
4112
|
+
} else if (profile) {
|
|
4113
|
+
const pl = providerLifecycleLine(shownId, profile);
|
|
4114
|
+
if (pl) lines.push(placeLine(pl, profile.provider, st));
|
|
4115
|
+
} else {
|
|
4116
|
+
const fam = newerThanFamily(res.base, roster);
|
|
4117
|
+
lines.push({
|
|
4118
|
+
severity: "info",
|
|
4119
|
+
confidence: "certain",
|
|
4120
|
+
title: `${shownId} was not recognised`,
|
|
4121
|
+
detail: `The check could not match this id to the catalog or to a provider's deprecation list, so nothing about it was checked: not its lifecycle, its limits or its price.` + (fam ? ` Its name sorts above every \`${fam}\` id the check knows, so it may be newer than the catalog.` : ""),
|
|
4122
|
+
basis: "catalog lookup and the providers\u2019 deprecation lists"
|
|
4123
|
+
});
|
|
4124
|
+
}
|
|
4125
|
+
return { res, shown: shownId, row, via: hit.via, profile, canonical: profile ? canonical : res.base, lines, partner, state: st };
|
|
4126
|
+
}
|
|
4127
|
+
function runCheck(extract, opts = {}) {
|
|
4128
|
+
const roster = opts.roster ?? allProfiles2;
|
|
4129
|
+
const findings = [];
|
|
4130
|
+
let n = 0;
|
|
4131
|
+
const add = (f) => {
|
|
4132
|
+
findings.push({ id: `F${++n}`, ...f });
|
|
4133
|
+
};
|
|
4134
|
+
const analyses = /* @__PURE__ */ new Map();
|
|
4135
|
+
const bySite = /* @__PURE__ */ new Map();
|
|
4136
|
+
const analyse = (m, site) => {
|
|
4137
|
+
const st = siteState(site, resolveId(m));
|
|
4138
|
+
const key = `${m}|${st.partner ?? ""}|${st.providerApi}|${st.conflict ?? ""}|${st.source ?? ""}`;
|
|
4139
|
+
let a = bySite.get(key);
|
|
4140
|
+
if (!a) {
|
|
4141
|
+
a = analyseModel(m, opts, site);
|
|
4142
|
+
bySite.set(key, a);
|
|
4143
|
+
if (!analyses.has(m)) analyses.set(m, a);
|
|
4144
|
+
}
|
|
4145
|
+
return a;
|
|
4146
|
+
};
|
|
4147
|
+
for (const site of extract.callSites) {
|
|
4148
|
+
const a = analyse(site.model, site);
|
|
4149
|
+
const at = [site.id];
|
|
4150
|
+
for (const l of a.lines) add({ ...l, callSites: at });
|
|
4151
|
+
const profile = a.profile;
|
|
4152
|
+
if (!profile) continue;
|
|
4153
|
+
const canonical = a.canonical;
|
|
4154
|
+
const offApi = a.partner;
|
|
4155
|
+
const docTier = profile.verifiedAgainstDocs && !offApi ? "certain" : "likely";
|
|
4156
|
+
const docBasis = profile.verifiedAgainstDocs ? `catalog, verified against the provider's page ${profile.verifiedAgainstDocs}` : "catalog value, not dated against a provider page";
|
|
4157
|
+
const PP = PROVIDER_NAME[profile.provider] ?? profile.provider;
|
|
4158
|
+
const NP = offApi ? PARTNER_NAME[offApi] : "";
|
|
4159
|
+
const whose = offApi ? (GATEWAYS.has(offApi) ? ` This id is written for ${NP}, a gateway: the figure is from ${PP}'s own API, and ${NP} may set its own.` : a.state?.source === "words" ? ` This site's path or notes name ${NP}; if it runs there, the figure is from ${PP}'s own API and ${NP} may set its own.` : ` This site runs on ${NP}: the figure is from ${PP}'s own API, and ${NP} may set its own.`) + (a.state?.conflict ? ` The extract and the code disagree: ${a.state.conflict}.` : "") : "";
|
|
4160
|
+
const worstIn = site.maxInputTokens ?? site.estInputTokens;
|
|
4161
|
+
if (worstIn !== void 0 && worstIn > profile.maxContextTokens) {
|
|
4162
|
+
add({
|
|
4163
|
+
severity: "red",
|
|
4164
|
+
confidence: site.maxInputTokens !== void 0 ? docTier : "likely",
|
|
4165
|
+
title: `input can exceed \`${canonical}\`'s context window`,
|
|
4166
|
+
detail: `Your ${site.maxInputTokens !== void 0 ? "worst-case" : "typical"} input estimate (${worstIn.toLocaleString()} tokens) exceeds the model's ${profile.maxContextTokens.toLocaleString()}-token window. Those calls fail outright or silently truncate, depending on the provider.${whose}`,
|
|
4167
|
+
basis: `your estimate vs ${docBasis}: maxContextTokens=${profile.maxContextTokens}`,
|
|
4168
|
+
callSites: at
|
|
4169
|
+
});
|
|
4170
|
+
}
|
|
4171
|
+
if (site.estOutputTokens !== void 0 && site.estOutputTokens > profile.maxOutputTokens) {
|
|
4172
|
+
add({
|
|
4173
|
+
severity: "red",
|
|
4174
|
+
confidence: "likely",
|
|
4175
|
+
title: `expected output exceeds \`${canonical}\`'s output cap`,
|
|
4176
|
+
detail: `You expect ~${site.estOutputTokens.toLocaleString()} output tokens; the model caps at ${profile.maxOutputTokens.toLocaleString()}. Responses will be cut mid-generation \u2014 on JSON output this is the classic unparseable-tail failure.${whose}`,
|
|
4177
|
+
basis: `your estimate vs ${docBasis}: maxOutputTokens=${profile.maxOutputTokens}`,
|
|
4178
|
+
callSites: at
|
|
4179
|
+
});
|
|
4180
|
+
}
|
|
4181
|
+
if (site.usesParallelToolCalls && !profile.parallelToolCalls) {
|
|
4182
|
+
add({
|
|
4183
|
+
severity: "yellow",
|
|
4184
|
+
confidence: "likely",
|
|
4185
|
+
title: `the catalog measured \`${canonical}\` making tool calls one at a time`,
|
|
4186
|
+
detail: `This site relies on parallel tool use. A measurement made for the catalog (not a provider statement) found the model calls tools sequentially \u2014 roughly 10\xD7 fewer operations per step on agentic workloads.`,
|
|
4187
|
+
basis: "catalog parallelToolCalls=false (a catalog measurement, not a provider page)",
|
|
4188
|
+
callSites: at
|
|
4189
|
+
});
|
|
4190
|
+
}
|
|
4191
|
+
if (site.expectsStructuredOutput && profile.structuredOutput === "none") {
|
|
4192
|
+
add({
|
|
4193
|
+
severity: "red",
|
|
4194
|
+
confidence: docTier,
|
|
4195
|
+
title: `\`${canonical}\` has no structured-output support, but this site parses JSON`,
|
|
4196
|
+
detail: `Output-shape failures here land on your parser as intermittent exceptions. Models with native or grammar-constrained output move that failure from runtime to the request.${whose}`,
|
|
4197
|
+
basis: `${docBasis}: structuredOutput=none`,
|
|
4198
|
+
callSites: at
|
|
4199
|
+
});
|
|
4200
|
+
}
|
|
4201
|
+
const archetype = site.archetype && isArchetype(site.archetype) ? site.archetype : void 0;
|
|
4202
|
+
for (const cliff of profile.cliffs) {
|
|
4203
|
+
if (cliff.whenIntent && cliff.whenIntent !== archetype) continue;
|
|
4204
|
+
const metricValue = cliff.metric === "input_tokens" ? worstIn : cliff.metric === "tool_count" ? site.toolCount : void 0;
|
|
4205
|
+
if (metricValue === void 0 || metricValue < cliff.threshold) continue;
|
|
4206
|
+
if (cliff.action === "quality_gate_structured" && !site.expectsStructuredOutput) continue;
|
|
4207
|
+
add({ ...cliffLine(canonical, cliff, metricValue), callSites: at });
|
|
4208
|
+
}
|
|
4209
|
+
if (site.retry === "none") {
|
|
4210
|
+
const PN = PROVIDER_NAME[profile.provider] ?? profile.provider;
|
|
4211
|
+
add({
|
|
4212
|
+
severity: "yellow",
|
|
4213
|
+
confidence: "likely",
|
|
4214
|
+
title: `no second model and no retry found at this site`,
|
|
4215
|
+
detail: `If ${PN} fails this request, the error reaches your users.`,
|
|
4216
|
+
basis: "extract retry=none: what was read in the code at this site",
|
|
4217
|
+
callSites: at
|
|
4218
|
+
});
|
|
4219
|
+
}
|
|
4220
|
+
if (site.estInputTokens !== void 0 && site.estOutputTokens !== void 0 && site.estInputTokens + site.estOutputTokens > 0) {
|
|
4221
|
+
const perCall = perCallCostUsd(profile, site.estInputTokens, site.estOutputTokens);
|
|
4222
|
+
const monthly = site.estCallsPerMonth !== void 0 ? perCall * site.estCallsPerMonth : void 0;
|
|
4223
|
+
const inputShare = site.estInputTokens / (site.estInputTokens + site.estOutputTokens);
|
|
4224
|
+
add({
|
|
4225
|
+
severity: "info",
|
|
4226
|
+
confidence: "likely",
|
|
4227
|
+
title: `~$${perCall.toFixed(4)}/call on \`${canonical}\`${monthly !== void 0 ? ` (~$${monthly.toFixed(2)}/month at your volume)` : ""}`,
|
|
4228
|
+
detail: `From your token estimates and doc-verified prices ($${profile.costInputPer1m}/M in, $${profile.costOutputPer1m}/M out${profile.verifiedAgainstDocs ? `, verified ${profile.verifiedAgainstDocs}` : ""}).${whose}`,
|
|
4229
|
+
basis: "arithmetic on your estimates \xD7 verified catalog prices",
|
|
4230
|
+
callSites: at
|
|
4231
|
+
});
|
|
4232
|
+
if (inputShare > 0.85) {
|
|
4233
|
+
add({
|
|
4234
|
+
severity: "yellow",
|
|
4235
|
+
confidence: "likely",
|
|
4236
|
+
title: `${Math.round(inputShare * 100)}% of this site's tokens are input`,
|
|
4237
|
+
detail: `Above ~85% input share, spend is dominated by context rather than answers \u2014 the single strongest signal of a leaking prompt. What's actually IN that context, and how much of it each call needed, is measurable, not guessable.`,
|
|
4238
|
+
basis: "your token estimates; the >85% threshold is a measured portfolio heuristic",
|
|
4239
|
+
callSites: at
|
|
4240
|
+
});
|
|
4241
|
+
}
|
|
4242
|
+
if (archetype) {
|
|
4243
|
+
const cheaper = roster().filter(
|
|
4244
|
+
(p) => p.status === "current" && p.id !== canonical && perCallCostUsd(p, site.estInputTokens, site.estOutputTokens) < perCall * 0.5
|
|
4245
|
+
).sort(
|
|
4246
|
+
(a2, b) => perCallCostUsd(a2, site.estInputTokens, site.estOutputTokens) - perCallCostUsd(b, site.estInputTokens, site.estOutputTokens)
|
|
4247
|
+
);
|
|
4248
|
+
const cheapest = cheaper[0];
|
|
4249
|
+
if (cheapest) {
|
|
4250
|
+
add({
|
|
4251
|
+
severity: "info",
|
|
4252
|
+
confidence: "measurable-only",
|
|
4253
|
+
title: `${cheaper.length} model(s) in the catalog price under half of \`${canonical}\` on ${archetype} work`,
|
|
4254
|
+
detail: `Cheapest: \`${cheapest.id}\` at ~$${perCallCostUsd(cheapest, site.estInputTokens, site.estOutputTokens).toFixed(4)}/call. The price is arithmetic; whether any of them holds YOUR quality bar on ${archetype} work is exactly what a one-day observe run with a judged eval measures. The check never ranks a model on price alone.`,
|
|
4255
|
+
basis: "verified catalog prices; quality deliberately unclaimed",
|
|
4256
|
+
callSites: at
|
|
4257
|
+
});
|
|
4258
|
+
}
|
|
4259
|
+
}
|
|
4260
|
+
}
|
|
4261
|
+
}
|
|
4262
|
+
for (const m of extract.models ?? []) {
|
|
4263
|
+
const a = analyse(m.model, m);
|
|
4264
|
+
for (const l of a.lines) add({ ...l, callSites: [m.where] });
|
|
4265
|
+
}
|
|
4266
|
+
const everyWhere = [...extract.callSites.map((s) => s.id), ...(extract.models ?? []).map((m) => m.where)];
|
|
4267
|
+
if (everyWhere.length > 0) {
|
|
4268
|
+
add({
|
|
4269
|
+
severity: "info",
|
|
4270
|
+
confidence: "measurable-only",
|
|
4271
|
+
title: "what a code read cannot tell you (and a one-day observe run can)",
|
|
4272
|
+
detail: `Your actual failure rate per model (walkaway failures look like green health checks); your actual input-waste ratio per call; which call sites dominate spend; whether a cheaper model holds quality on your real traffic. These need one day of observed calls \u2014 observe-only, your keys, no routing changes.`,
|
|
4273
|
+
basis: "the honest limit of static analysis",
|
|
4274
|
+
callSites: everyWhere
|
|
4275
|
+
});
|
|
4276
|
+
}
|
|
4277
|
+
const merged = [];
|
|
4278
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
4279
|
+
for (const f of findings) {
|
|
4280
|
+
const key = `${f.severity}|${f.confidence}|${f.title}|${f.detail}`;
|
|
4281
|
+
const existing = byKey.get(key);
|
|
4282
|
+
if (existing) {
|
|
4283
|
+
for (const cs of f.callSites) {
|
|
4284
|
+
if (!existing.callSites.includes(cs)) existing.callSites.push(cs);
|
|
4285
|
+
}
|
|
4286
|
+
} else {
|
|
4287
|
+
const copy = { ...f, callSites: [...f.callSites] };
|
|
4288
|
+
byKey.set(key, copy);
|
|
4289
|
+
merged.push(copy);
|
|
4290
|
+
}
|
|
4291
|
+
}
|
|
4292
|
+
return {
|
|
4293
|
+
findings: merged,
|
|
4294
|
+
card: renderCard(extract, merged, analyses, opts.share === true),
|
|
4295
|
+
catalogVersion: LIBRARY_VERSION
|
|
4296
|
+
};
|
|
4297
|
+
}
|
|
4298
|
+
var TIER_ORDER = ["certain", "likely", "measurable-only"];
|
|
4299
|
+
var TIER_HEADING = {
|
|
4300
|
+
certain: "Certain \u2014 read from the providers\u2019 pages and your code",
|
|
4301
|
+
// 0.4.1 (R5): since 0.4.0 this tier also holds a provider's word on a call that may not use the provider's own
|
|
4302
|
+
// API (a partner, a gateway, an unstated platform) and the no-fallback line; the heading names all three.
|
|
4303
|
+
likely: "Likely \u2014 priced from your estimates or a catalog value no provider page is cited for; a provider\u2019s word where the call may not use its own API; no retry or fallback found in the code",
|
|
4304
|
+
"measurable-only": "Only measurable \u2014 what the observe day answers"
|
|
4305
|
+
};
|
|
4306
|
+
var SEV_MARK = { red: "\u{1F534}", yellow: "\u{1F7E1}", info: "\u2139\uFE0F" };
|
|
4307
|
+
function renderCard(extract, findings, analyses = /* @__PURE__ */ new Map(), share = false) {
|
|
4308
|
+
const lines = [];
|
|
4309
|
+
lines.push(`# Communicating Vessels \u2014 the check: ${extract.project.name}`);
|
|
4310
|
+
lines.push("");
|
|
4311
|
+
const models = [
|
|
4312
|
+
.../* @__PURE__ */ new Set([...extract.callSites.map((s) => s.model), ...(extract.models ?? []).map((m) => m.model)])
|
|
4313
|
+
];
|
|
4314
|
+
const label = (m) => {
|
|
4315
|
+
const a = analyses.get(m);
|
|
4316
|
+
return a ? a.shown : `\`${m}\``;
|
|
4317
|
+
};
|
|
4318
|
+
const flagged = models.filter((m) => analyses.get(m)?.row || analyses.get(m)?.profile?.providerLifecycle?.status && analyses.get(m)?.profile?.providerLifecycle?.status !== "active").length;
|
|
4319
|
+
const unknown = models.filter((m) => {
|
|
4320
|
+
const a = analyses.get(m);
|
|
4321
|
+
return a && !a.row && !a.profile;
|
|
4322
|
+
}).length;
|
|
4323
|
+
if (models.length === 0) {
|
|
4324
|
+
lines.push(
|
|
4325
|
+
"No AI call site and no model id were found in this extract, so there is nothing to check against the catalog or the providers\u2019 pages."
|
|
4326
|
+
);
|
|
4327
|
+
} else {
|
|
4328
|
+
const counts = [
|
|
4329
|
+
flagged > 0 ? `${flagged} flagged by its provider` : "",
|
|
4330
|
+
unknown > 0 ? `${unknown} not recognised` : ""
|
|
4331
|
+
].filter(Boolean);
|
|
4332
|
+
lines.push(
|
|
4333
|
+
`${extract.callSites.length} AI call site(s), ${models.length} model id(s): ${models.map(label).join(", ")}` + (counts.length ? ` (${counts.join(", ")})` : "")
|
|
4334
|
+
);
|
|
4335
|
+
if (extract.callSites.length === 0) {
|
|
4336
|
+
lines.push("");
|
|
4337
|
+
lines.push(
|
|
4338
|
+
"No call site was found to check a request shape against: the lines below are about the model ids the project holds."
|
|
4339
|
+
);
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4342
|
+
for (const tier of TIER_ORDER) {
|
|
4343
|
+
const group = findings.filter((f) => f.confidence === tier);
|
|
4344
|
+
if (group.length === 0) continue;
|
|
4345
|
+
lines.push("");
|
|
4346
|
+
lines.push(`## ${TIER_HEADING[tier]}`);
|
|
4347
|
+
lines.push("");
|
|
4348
|
+
for (const f of group) {
|
|
4349
|
+
lines.push(`- ${SEV_MARK[f.severity]} **${f.title}** \u2014 ${f.detail}`);
|
|
4350
|
+
lines.push(` <sub>${f.callSites.join(", ")} \xB7 basis: ${f.basis}</sub>`);
|
|
4351
|
+
}
|
|
4352
|
+
}
|
|
4353
|
+
lines.push("");
|
|
4354
|
+
lines.push("---");
|
|
4355
|
+
lines.push(`*${share ? SHARE_DESTINATION_SENTENCE : DESTINATION_SENTENCE}*`);
|
|
4356
|
+
lines.push(
|
|
4357
|
+
`<sub>@warmdrift/kgauto-check ${CHECK_VERSION} \xB7 catalog @warmdrift/kgauto-compiler ${LIBRARY_VERSION} \xB7 deprecation pages read ${LEDGER_READ_ON}</sub>`
|
|
4358
|
+
);
|
|
4359
|
+
return lines.join("\n");
|
|
4360
|
+
}
|
|
4361
|
+
|
|
4362
|
+
// src/share.ts
|
|
4363
|
+
var SHARE_ENDPOINT_DEFAULT = "https://kgauto-dashboard.vercel.app/api/check-submission";
|
|
4364
|
+
var SHARE_STORED_SENTENCE = "With --share, one row is stored: a row number, the time it arrived, the project name, the extract, the card, the check\u2019s version and the catalog\u2019s version.";
|
|
4365
|
+
async function postShare(endpoint, body, fetchImpl = fetch) {
|
|
4366
|
+
try {
|
|
4367
|
+
const res = await fetchImpl(endpoint, {
|
|
4368
|
+
method: "POST",
|
|
4369
|
+
headers: { "content-type": "application/json" },
|
|
4370
|
+
body: JSON.stringify(body)
|
|
4371
|
+
});
|
|
4372
|
+
const parsed = await res.json().catch(() => ({}));
|
|
4373
|
+
if (res.ok && parsed.ok === true && parsed.id !== void 0 && parsed.id !== null) return { ok: true, id: String(parsed.id) };
|
|
4374
|
+
return { ok: false, reason: `${res.status}${parsed.error ? `: ${String(parsed.error)}` : parsed.ok === true ? "" : ": no {ok: true, id} in the answer"}` };
|
|
4375
|
+
} catch (err) {
|
|
4376
|
+
return { ok: false, reason: err instanceof Error ? err.message : String(err) };
|
|
4377
|
+
}
|
|
4378
|
+
}
|
|
4379
|
+
function shareFailure(reason) {
|
|
4380
|
+
return `[--share] FAILED (${reason}) \u2014 the endpoint did not confirm a row, so a row may or may not exist. The check itself is unaffected.`;
|
|
4381
|
+
}
|
|
4382
|
+
function shareConfirmation(endpoint, id) {
|
|
4383
|
+
return `[--share] Sent to ${endpoint} (submission ${id}). ${SHARE_STORED_SENTENCE}`;
|
|
4384
|
+
}
|
|
4385
|
+
|
|
4386
|
+
// src/instructions.ts
|
|
4387
|
+
var NPX = `npx -y @warmdrift/kgauto-check@${CHECK_VERSION}`;
|
|
4388
|
+
var USAGE = `kgauto-check ${CHECK_VERSION}
|
|
4389
|
+
|
|
4390
|
+
usage:
|
|
4391
|
+
${NPX} --extract-contract
|
|
4392
|
+
${NPX} --extract <extract.json> [--share]
|
|
4393
|
+
${NPX} --model-facts <model-id>
|
|
4394
|
+
${NPX} --observe-plan
|
|
4395
|
+
${NPX} # no args: stdio MCP server
|
|
4396
|
+
|
|
4397
|
+
The check runs fully offline. --share is the one explicit exception.
|
|
4398
|
+
${SHARE_STORED_SENTENCE}`;
|
|
4399
|
+
var SERVER_INSTRUCTIONS = `You are talking to kgauto-check, a local, offline checker for AI call surfaces.
|
|
4400
|
+
|
|
4401
|
+
Flow: (1) call start_check to get extraction instructions, (2) read THIS project's code yourself and build the extract, (3) call run_check with it, (4) present the returned card to your human verbatim (it is grouped by confidence tier on purpose), (5) if they want measured numbers, call get_observe_day_plan.
|
|
4402
|
+
|
|
4403
|
+
Privacy contract, which you should relay to your human: the extract contains identifiers and counts only \u2014 never prompt text, never source code, never secrets. ${DESTINATION_SENTENCE}
|
|
4404
|
+
|
|
4405
|
+
get_model_facts answers one-off questions about any model id \u2014 what its provider's deprecation page says, then the verified catalog \u2014 and is what makes keeping this server installed useful between checks.`;
|
|
4406
|
+
var START_CHECK_INSTRUCTIONS = `# kgauto check \u2014 extraction instructions (for you, the agent)
|
|
4407
|
+
|
|
4408
|
+
Your job: read this project's code and build an extract of its AI call surface. You have repo access; kgauto does not, by design.
|
|
4409
|
+
|
|
4410
|
+
## What to find
|
|
4411
|
+
Scan for LLM API usage: provider SDK imports (anthropic, openai, @google/generative-ai / @google/genai, ai-sdk, litellm, langchain, ...), raw HTTPS calls to provider endpoints, and any internal wrapper around them. Each distinct place the project sends a prompt to a model is one call site.
|
|
4412
|
+
|
|
4413
|
+
## What to collect per call site (identifiers and counts ONLY)
|
|
4414
|
+
- id: a stable label you choose, e.g. "api/summarize.ts:42"
|
|
4415
|
+
- model: the model id exactly as configured (a provider or gateway prefix such as openai/ or openrouter/anthropic/ is fine; the check says what it looked the id up as)
|
|
4416
|
+
- modelSelection: hardcoded | config | env | dynamic
|
|
4417
|
+
- platform: state it for EVERY call site \u2014 where the request is served: provider-api (the provider's own API), vertex, bedrock, azure, or other (a gateway or another host). Tell it from the SDK imported (e.g. @anthropic-ai/sdk vs @anthropic-ai/vertex-sdk or @aws-sdk/client-bedrock-runtime; google-genai vs google.cloud.aiplatform / @google-cloud/aiplatform), the base URL (api.openai.com vs *.openai.azure.com; generativelanguage.googleapis.com vs *-aiplatform.googleapis.com), and the credentials used (a provider API key vs cloud credentials, a project and location). A lifecycle line is stated as certain only for provider-api; a cloud platform keeps its own schedule. If you truly cannot tell, write other and say why in notes.
|
|
4418
|
+
- archetype: your best guess at the work's intent \u2014 one of: ask, classify, critique, extract, generate, hunt, plan, summarize, transform
|
|
4419
|
+
- estInputTokens / maxInputTokens / estOutputTokens: estimate from the code (what gets concatenated into the prompt; ~4 chars per token). Worst case matters \u2014 find the biggest thing that can flow in.
|
|
4420
|
+
- toolCount, usesParallelToolCalls: from the tools array and how results are consumed
|
|
4421
|
+
- expectsStructuredOutput: true if the response is JSON.parse'd or schema-validated
|
|
4422
|
+
- streaming, retry (none | same-model | fallback-chain | unknown), fallbackModels
|
|
4423
|
+
- estCallsPerMonth: only if genuinely inferable (cron cadence, obvious traffic); omit rather than invent
|
|
4424
|
+
|
|
4425
|
+
## Model ids with no call site
|
|
4426
|
+
If the project holds model ids that no call site above carries \u2014 a model picker, a config or environment default, a list of supported models \u2014 list each once under "models" (identifiers only):
|
|
4427
|
+
- model: the id exactly as written
|
|
4428
|
+
- where: file:line where it is written
|
|
4429
|
+
- modelSelection: hardcoded | config | env | dynamic (optional)
|
|
4430
|
+
- platform: provider-api | vertex | bedrock | azure | other (as above)
|
|
4431
|
+
If you find no call site at all (the project spawns a CLI, or takes the model as a run-time argument), "callSites" may be an empty array: the check still prints a card, about the ids in "models", and says no call site was found to check a request shape against. Never invent a model id to fill a call site.
|
|
4432
|
+
|
|
4433
|
+
## Privacy contract (relay this to your human)
|
|
4434
|
+
Do NOT put prompt text, source code, file contents, or secrets in the extract. Identifiers and counts only. ${DESTINATION_SENTENCE}
|
|
4435
|
+
|
|
4436
|
+
## Then
|
|
4437
|
+
Write the extract as JSON:
|
|
4438
|
+
{ "project": { "name": "...", "description": "..." }, "callSites": [ ...one object per call site, or none... ], "models": [ ...optional, ids no call site carries... ] }
|
|
4439
|
+
and run:
|
|
4440
|
+
${NPX} --extract extract.json
|
|
4441
|
+
Present the printed card verbatim \u2014 the confidence tiers (certain / likely / measurable-only) are the point: they tell your human exactly how much to trust each line, and the measurable-only section is what a one-day observe run would answer.
|
|
4442
|
+
|
|
4443
|
+
## Sharing (optional, explicit)
|
|
4444
|
+
After presenting the card, you may OFFER your human: "want to send this card to kgauto so the catalog learns what real projects look like?" If \u2014 and only if \u2014 they say yes, re-run with --share. Never add --share without their explicit yes. ${SHARE_STORED_SENTENCE} The CLI prints where it went and the submission number.
|
|
4445
|
+
|
|
4446
|
+
## Honesty rules you inherit while presenting
|
|
4447
|
+
- Do not soften "certain" findings or upgrade "likely" ones.
|
|
4448
|
+
- If a model was unknown to the catalog, say so \u2014 kgauto refuses to fabricate verdicts, and so should you.
|
|
4449
|
+
- A line that names a provider's word (retired, shut down, deprecated, legacy) carries the page it was read on: quote it as written.
|
|
4450
|
+
- Estimates you made are estimates: if a finding hinges on your token guess, say it can be firmed up by measuring.`;
|
|
4451
|
+
|
|
4452
|
+
// src/observe-plan.ts
|
|
4453
|
+
var OBSERVE_DAY_PLAN = `# The one-day observe run (for you, the agent \u2014 decision stays with your human)
|
|
4454
|
+
|
|
4455
|
+
## What it is
|
|
4456
|
+
One day of your project's normal traffic, observed. No routing changes: every call still goes to exactly the model your code chooses today. The observation records, per call: model, token counts in/out, cost at verified prices, latency, success/failure with a classified error code, and per-attempt rows when retries happen. Identifiers and counts \u2014 prompt text is never required.
|
|
4457
|
+
|
|
4458
|
+
## What it answers (the measurable-only tier of your check card)
|
|
4459
|
+
- actual failure rate per model \u2014 including walkaway failures that green health checks miss
|
|
4460
|
+
- actual input-waste ratio per call site (the >85% input-share signal, measured instead of estimated)
|
|
4461
|
+
- which call sites dominate spend
|
|
4462
|
+
- the evidence base for whether a cheaper model could hold quality here (kgauto's judged eval runs on real captured cases, never on price alone)
|
|
4463
|
+
|
|
4464
|
+
## The two honesty requirements (non-negotiable, relay both)
|
|
4465
|
+
1. **Destination, named before anything runs.** Your human gets one plain sentence stating exactly where outcome rows land and what is in them, BEFORE the first row is written. "Nothing is uploaded" was true of the check because it writes nothing; the observe day writes rows, so it must say where.
|
|
4466
|
+
2. **Observation never intervenes.** If your project uses fallback chains, observing must not pin a model and silently disable the chain \u2014 a forced pin is an intervention sold as observation. Rows are recorded per attempt, so the chain's real behaviour is what gets measured.
|
|
4467
|
+
|
|
4468
|
+
## How to proceed
|
|
4469
|
+
The integration is small (the kgauto compiler's call/record path with your existing keys), but because rows now land somewhere, the wiring starts with that destination sentence and your human's explicit yes. Next step: have your human reply to whoever pointed them at kgauto \u2014 the observe day is set up per-project, together.`;
|
|
4470
|
+
|
|
4471
|
+
// src/model-facts.ts
|
|
4472
|
+
import { LIBRARY_VERSION as LIBRARY_VERSION2 } from "@warmdrift/kgauto-compiler";
|
|
4473
|
+
import { retirementFloorClause as retirementFloorClause2 } from "@warmdrift/kgauto-compiler/profiles";
|
|
4474
|
+
function renderModelFacts(model) {
|
|
4475
|
+
const a = analyseModel(model);
|
|
4476
|
+
const out = [];
|
|
4477
|
+
const looked = a.res.base !== model || a.profile && a.canonical !== model ? a.profile ? a.canonical : a.res.base : void 0;
|
|
4478
|
+
out.push(`# ${model}${looked ? ` (looked up as \`${looked}\`${a.res.steps.length ? `: ${a.res.steps.join(", ")}` : ""})` : ""}`);
|
|
4479
|
+
out.push("");
|
|
4480
|
+
if (a.row) {
|
|
4481
|
+
const r = a.row;
|
|
4482
|
+
const P = PROVIDER_NAME[r.provider];
|
|
4483
|
+
const dates = [
|
|
4484
|
+
r.announced ? `announced ${r.announced}` : "",
|
|
4485
|
+
r.shutdown ? `${r.word === "deprecated" || r.word === "legacy" || r.word === "rerouted" ? "shutdown / discontinuation date" : r.word} ${r.shutdown}` : "",
|
|
4486
|
+
// 0.4.1 (R5): on a model already shut down the floor is the page's earliest date, said in the past.
|
|
4487
|
+
r.shutdownFloor ? r.word === "shut down" ? `the earliest shutdown date the page gave was ${r.shutdownFloor}` : `not before ${r.shutdownFloor}` : ""
|
|
4488
|
+
].filter(Boolean);
|
|
4489
|
+
out.push(
|
|
4490
|
+
`- ${P}'s word: **${r.word}**${dates.length ? ` (${dates.join("; ")})` : ""}${r.replacement ? ` \xB7 replacement the page names: \`${r.replacement}\`` : ""}${r.routesTo ? ` \xB7 requests routed to: ${r.routesTo}` : ""}`
|
|
4491
|
+
);
|
|
4492
|
+
out.push(`- source: ${r.url} (read ${r.readOn}) \u2014 \u201C${r.quote.replace(/\s+/g, " ").slice(0, 300)}\u201D`);
|
|
4493
|
+
if (r.alsoUrl) out.push(`- also: ${r.alsoUrl} (read ${r.alsoReadOn}) \u2014 \u201C${r.alsoQuote}\u201D`);
|
|
4494
|
+
if (a.via) out.push(`- matched the dated snapshot \`${a.via}\` the page lists`);
|
|
4495
|
+
if (a.partner) {
|
|
4496
|
+
const page = partnerPage(a.partner, r.provider);
|
|
4497
|
+
const N = PARTNER_NAME[a.partner];
|
|
4498
|
+
out.push(
|
|
4499
|
+
GATEWAYS.has(a.partner) ? `- this id form is ${N}'s, a gateway: ${P}'s word above is for ${P}'s own API, and ${N} may keep its own schedule${page ? ` (${page})` : ""}` : `- this id form is ${N}'s: ${P}'s word above is for ${P}'s own API, and ${N} runs its own schedule${page ? ` (${page})` : ""}`
|
|
4500
|
+
);
|
|
4501
|
+
}
|
|
4502
|
+
}
|
|
4503
|
+
const p = a.profile;
|
|
4504
|
+
if (!p) {
|
|
4505
|
+
if (!a.row) {
|
|
4506
|
+
out.push(
|
|
4507
|
+
`\`${model}\` was not recognised: the check could not match it to the catalog (@warmdrift/kgauto-compiler ${LIBRARY_VERSION2}) or to a provider's deprecation list, so it says nothing about its lifecycle, limits or price.`
|
|
4508
|
+
);
|
|
4509
|
+
} else {
|
|
4510
|
+
out.push("- the catalog has no entry for this id, so its limits and price are not shown.");
|
|
4511
|
+
}
|
|
4512
|
+
out.push("");
|
|
4513
|
+
out.push(`_Catalog: @warmdrift/kgauto-compiler ${LIBRARY_VERSION2}; deprecation pages read ${LEDGER_READ_ON}; bundled locally \u2014 this lookup made no network call._`);
|
|
4514
|
+
return out.join("\n");
|
|
4515
|
+
}
|
|
4516
|
+
const pl = p.providerLifecycle;
|
|
4517
|
+
if (!a.row) {
|
|
4518
|
+
out.push(
|
|
4519
|
+
pl ? `- ${PROVIDER_NAME[p.provider] ?? p.provider}'s word: **${pl.status}** (model page, read ${pl.readOn})${retirementFloorClause2({ retirementFloor: pl.retirementFloor, readOn: pl.readOn })}${pl.replacement ? ` \xB7 names \`${pl.replacement}\`` : ""} \u2014 ${pl.url}` : `- provider's word: no lifecycle page read for this model in this catalog`
|
|
4520
|
+
);
|
|
4521
|
+
}
|
|
4522
|
+
out.push(
|
|
4523
|
+
`- the catalog's routing status: ${p.status} \u2014 the catalog's word for whether the model may lead a route, not the provider's`
|
|
4524
|
+
);
|
|
4525
|
+
out.push(
|
|
4526
|
+
`- provider: ${p.provider}${p.verifiedAgainstDocs ? ` \xB7 prices and limits verified against provider docs ${p.verifiedAgainstDocs}` : ""}`
|
|
4527
|
+
);
|
|
4528
|
+
out.push(`- price: $${p.costInputPer1m}/M input \xB7 $${p.costOutputPer1m}/M output`);
|
|
4529
|
+
out.push(`- limits: ${p.maxContextTokens.toLocaleString()} context \xB7 ${p.maxOutputTokens.toLocaleString()} max output`);
|
|
4530
|
+
out.push(
|
|
4531
|
+
`- tool definitions per call the catalog's router sends to it: ${p.maxTools === 0 ? "none (the router\u2019s own wire for this model sends no tools; that is not a limit of the model)" : `up to ${p.maxTools} (a routing default, not a provider-stated limit)`}`
|
|
4532
|
+
);
|
|
4533
|
+
out.push(
|
|
4534
|
+
`- capabilities: parallel tool calls ${p.parallelToolCalls ? "yes" : "no (measured sequential calls)"} \xB7 structured output: ${p.structuredOutput} \xB7 streaming: ${p.streaming ? "yes" : "no"}`
|
|
4535
|
+
);
|
|
4536
|
+
out.push(
|
|
4537
|
+
p.cliffs.length > 0 ? `- known cliffs (executable in the kgauto compiler):
|
|
4538
|
+
${p.cliffs.map(
|
|
4539
|
+
(c) => ` - ${c.metric.replaceAll("_", " ")} \u2265 ${c.threshold.toLocaleString()}${c.whenIntent ? ` on ${c.whenIntent}` : ""} \u2192 ${c.action.replaceAll("_", " ")}`
|
|
4540
|
+
).join("\n")}` : p.probedLimits?.length ? "- known cliffs: none recorded \u2014 and see the probed limits below, which is why that is a finding rather than a blank" : "- known cliffs: none recorded (nothing measured here yet \u2014 kgauto does not invent one)"
|
|
4541
|
+
);
|
|
4542
|
+
if (p.probedLimits?.length) {
|
|
4543
|
+
out.push(
|
|
4544
|
+
`- probed limits (we ran the call; ${p.probedLimits.length === 1 ? "this is a measurement" : "these are measurements"}, not a spec sheet):
|
|
4545
|
+
${p.probedLimits.map(
|
|
4546
|
+
(l) => ` - ${l.metric.replaceAll("_", " ")} @ ${l.testedAt.toLocaleString()} \u2192 **${l.outcome}**. ${l.claim}${l.probeRunId ? ` (run ${l.probeRunId})` : ""}`
|
|
4547
|
+
).join("\n")}`
|
|
4548
|
+
);
|
|
4549
|
+
}
|
|
4550
|
+
if (p.notes) out.push(`- notes: ${p.notes}`);
|
|
4551
|
+
out.push("");
|
|
4552
|
+
out.push(`_Catalog: @warmdrift/kgauto-compiler ${LIBRARY_VERSION2}; deprecation pages read ${LEDGER_READ_ON}; bundled locally \u2014 this lookup made no network call._`);
|
|
4553
|
+
return out.join("\n");
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
// src/server.ts
|
|
4557
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4558
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4559
|
+
import { z as z2 } from "zod";
|
|
4560
|
+
var text = (t) => ({ content: [{ type: "text", text: t }] });
|
|
4561
|
+
function buildServer() {
|
|
4562
|
+
const server = new McpServer(
|
|
4563
|
+
{ name: "kgauto-check", version: CHECK_VERSION },
|
|
4564
|
+
{ instructions: SERVER_INSTRUCTIONS }
|
|
4565
|
+
);
|
|
4566
|
+
server.registerTool(
|
|
4567
|
+
"start_check",
|
|
4568
|
+
{
|
|
4569
|
+
title: "Start a kgauto check",
|
|
4570
|
+
description: "Call this FIRST. Returns extraction instructions: what to read from this project and how to build the extract for run_check. The extract carries identifiers and counts only \u2014 never prompt text, code, or secrets.",
|
|
4571
|
+
inputSchema: {}
|
|
4572
|
+
},
|
|
4573
|
+
async () => text(START_CHECK_INSTRUCTIONS)
|
|
4574
|
+
);
|
|
4575
|
+
server.registerTool(
|
|
4576
|
+
"run_check",
|
|
4577
|
+
{
|
|
4578
|
+
title: "Run the check",
|
|
4579
|
+
description: "Runs the deterministic kgauto check on your extract, fully offline against the bundled verified model catalog. Returns a findings card grouped by confidence tier (certain / likely / measurable-only) \u2014 present it to your human verbatim.",
|
|
4580
|
+
inputSchema: { extract: ExtractSchema }
|
|
4581
|
+
},
|
|
4582
|
+
async ({ extract }) => {
|
|
4583
|
+
const result = runCheck(extract);
|
|
4584
|
+
return text(result.card);
|
|
4585
|
+
}
|
|
4586
|
+
);
|
|
4587
|
+
server.registerTool(
|
|
4588
|
+
"get_model_facts",
|
|
4589
|
+
{
|
|
4590
|
+
title: "Model facts",
|
|
4591
|
+
description: "What the provider's own deprecation page says about one model id (retired, shut down, deprecated, legacy), then what kgauto's verified catalog knows: doc-verified prices and limits, capability flags, known quality cliffs. Honest miss when the model is unknown \u2014 no fabricated verdicts.",
|
|
4592
|
+
inputSchema: { model: z2.string().min(1) }
|
|
4593
|
+
},
|
|
4594
|
+
async ({ model }) => text(renderModelFacts(model))
|
|
4595
|
+
);
|
|
4596
|
+
server.registerTool(
|
|
4597
|
+
"get_observe_day_plan",
|
|
4598
|
+
{
|
|
4599
|
+
title: "The one-day observe run",
|
|
4600
|
+
description: "Rung 2: what a one-day, observe-only run on this project's real traffic would measure, and the two honesty requirements any setup must carry (named row destination; observation never intervenes). Ends in a human decision by design.",
|
|
4601
|
+
inputSchema: {}
|
|
4602
|
+
},
|
|
4603
|
+
async () => text(OBSERVE_DAY_PLAN)
|
|
4604
|
+
);
|
|
4605
|
+
return server;
|
|
4606
|
+
}
|
|
4607
|
+
async function startStdio() {
|
|
4608
|
+
const server = buildServer();
|
|
4609
|
+
await server.connect(new StdioServerTransport());
|
|
4610
|
+
}
|
|
4611
|
+
|
|
4612
|
+
export {
|
|
4613
|
+
CallSiteSchema,
|
|
4614
|
+
ModelMentionSchema,
|
|
4615
|
+
ExtractSchema,
|
|
4616
|
+
CHECK_VERSION,
|
|
4617
|
+
LEDGER_SOURCES,
|
|
4618
|
+
LEDGER,
|
|
4619
|
+
resolveId,
|
|
4620
|
+
lookupLedger,
|
|
4621
|
+
DESTINATION_SENTENCE,
|
|
4622
|
+
analyseModel,
|
|
4623
|
+
runCheck,
|
|
4624
|
+
renderCard,
|
|
4625
|
+
SHARE_ENDPOINT_DEFAULT,
|
|
4626
|
+
postShare,
|
|
4627
|
+
shareFailure,
|
|
4628
|
+
shareConfirmation,
|
|
4629
|
+
USAGE,
|
|
4630
|
+
SERVER_INSTRUCTIONS,
|
|
4631
|
+
START_CHECK_INSTRUCTIONS,
|
|
4632
|
+
OBSERVE_DAY_PLAN,
|
|
4633
|
+
renderModelFacts,
|
|
4634
|
+
buildServer,
|
|
4635
|
+
startStdio
|
|
4636
|
+
};
|