@prestyj/core 5.3.0 → 5.4.0

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.
@@ -36,6 +36,7 @@ __export(model_registry_exports, {
36
36
  getAuthStorageKeys: () => getAuthStorageKeys,
37
37
  getContextWindow: () => getContextWindow,
38
38
  getDefaultModel: () => getDefaultModel,
39
+ getFastModel: () => getFastModel,
39
40
  getMaxThinkingLevel: () => getMaxThinkingLevel,
40
41
  getModel: () => getModel,
41
42
  getModelsForProvider: () => getModelsForProvider,
@@ -170,49 +171,63 @@ var MODELS = [
170
171
  maxThinkingLevel: "high"
171
172
  },
172
173
  // ── OpenAI (Codex) ─────────────────────────────────────
174
+ // GPT-5.6 family — three agentic coding tiers launched July 2026. All share a
175
+ // 372K context window: the Codex repo's models.json lists both `context_window`
176
+ // AND `max_context_window` as 372000 for every 5.6 variant, so (unlike 5.4/5.5,
177
+ // whose public-API 1M window exceeds the Codex-product cap) there's no split
178
+ // between the API and Codex-transport windows — a single `contextWindow` is
179
+ // correct in both code paths. All three take text+image input, freeform
180
+ // apply_patch, text+image web search, and parallel tool calls.
173
181
  {
174
- id: "gpt-5.5",
175
- name: "GPT-5.5",
182
+ // Sol — "Latest frontier agentic coding model." (priority 1, default low).
183
+ // Reasoning ladder: low → medium → high → xhigh → max → ultra. gg-ai's
184
+ // ThinkingLevel tops out at `max`, so that's the cap here; the `ultra` rung
185
+ // (auto task delegation) needs a ThinkingLevel extension to expose.
186
+ id: "gpt-5.6-sol",
187
+ name: "GPT-5.6 Sol",
176
188
  provider: "openai",
177
- contextWindow: 105e4,
178
- codexContextWindow: 272e3,
189
+ contextWindow: 372e3,
179
190
  maxOutputTokens: 128e3,
180
191
  supportsThinking: true,
181
192
  supportsImages: true,
182
193
  supportsVideo: false,
183
194
  costTier: "high",
184
- maxThinkingLevel: "xhigh"
195
+ maxThinkingLevel: "max"
185
196
  },
186
197
  {
187
- id: "gpt-5.4",
188
- name: "GPT-5.4",
198
+ // Terra — "Balanced agentic coding model for everyday work." (priority 2,
199
+ // default medium). Same 372K context + ultra reasoning ladder as Sol.
200
+ id: "gpt-5.6-terra",
201
+ name: "GPT-5.6 Terra",
189
202
  provider: "openai",
190
- contextWindow: 105e4,
191
- codexContextWindow: 272e3,
203
+ contextWindow: 372e3,
192
204
  maxOutputTokens: 128e3,
193
205
  supportsThinking: true,
194
206
  supportsImages: true,
195
207
  supportsVideo: false,
196
- costTier: "high",
197
- maxThinkingLevel: "xhigh"
208
+ costTier: "medium",
209
+ maxThinkingLevel: "max"
198
210
  },
199
211
  {
200
- id: "gpt-5.4-mini",
201
- name: "GPT-5.4 Mini",
212
+ // Luna — "Fast and affordable agentic coding model." (priority 3, default
213
+ // medium). Same 372K context; reasoning tops out at `max` (no `ultra` rung).
214
+ id: "gpt-5.6-luna",
215
+ name: "GPT-5.6 Luna",
202
216
  provider: "openai",
203
- contextWindow: 4e5,
217
+ contextWindow: 372e3,
204
218
  maxOutputTokens: 128e3,
205
219
  supportsThinking: true,
206
220
  supportsImages: true,
207
221
  supportsVideo: false,
208
222
  costTier: "low",
209
- maxThinkingLevel: "xhigh"
223
+ maxThinkingLevel: "max"
210
224
  },
211
225
  {
212
- id: "gpt-5.3-codex",
213
- name: "GPT-5.3 Codex",
226
+ id: "gpt-5.5",
227
+ name: "GPT-5.5",
214
228
  provider: "openai",
215
- contextWindow: 4e5,
229
+ contextWindow: 105e4,
230
+ codexContextWindow: 272e3,
216
231
  maxOutputTokens: 128e3,
217
232
  supportsThinking: true,
218
233
  supportsImages: true,
@@ -252,8 +267,8 @@ var MODELS = [
252
267
  },
253
268
  // ── Gemini ─────────────────────────────────────────────
254
269
  {
255
- id: "gemini-3.1-flash-lite-preview",
256
- name: "Gemini 3.1 Flash Lite Preview",
270
+ id: "gemini-3.1-flash-lite",
271
+ name: "Gemini 3.1 Flash Lite",
257
272
  provider: "gemini",
258
273
  contextWindow: 1048576,
259
274
  maxOutputTokens: 65536,
@@ -265,7 +280,10 @@ var MODELS = [
265
280
  maxThinkingLevel: "high"
266
281
  },
267
282
  {
268
- id: "gemini-3.5-flash",
283
+ // Wire name `gemini-3-flash` — the Code Assist (OAuth) backend rejects the
284
+ // display string `gemini-3.5-flash` with a 404, so gemini-cli keeps this
285
+ // alternative name (SECONDARY_GEMINI_3_5_FLASH_MODEL) for that endpoint.
286
+ id: "gemini-3-flash",
269
287
  name: "Gemini 3.5 Flash",
270
288
  provider: "gemini",
271
289
  contextWindow: 1048576,
@@ -277,6 +295,22 @@ var MODELS = [
277
295
  costTier: "low",
278
296
  maxThinkingLevel: "high"
279
297
  },
298
+ {
299
+ // Gemini 3.1 Pro is public preview — gated behind Code Assist preview
300
+ // enablement, so free/personal OAuth accounts 404 on it (see
301
+ // ACCOUNT_GATED_MODELS in gg-ai's gemini provider).
302
+ id: "gemini-3.1-pro-preview",
303
+ name: "Gemini 3.1 Pro (Preview)",
304
+ provider: "gemini",
305
+ contextWindow: 1048576,
306
+ maxOutputTokens: 65536,
307
+ supportsThinking: true,
308
+ supportsImages: true,
309
+ supportsVideo: true,
310
+ maxVideoBytes: 20 * 1024 * 1024,
311
+ costTier: "high",
312
+ maxThinkingLevel: "high"
313
+ },
280
314
  // ── Moonshot (Kimi) ────────────────────────────────────
281
315
  {
282
316
  id: "kimi-k2.7-code",
@@ -467,8 +501,8 @@ function getVideoByteLimit(modelId) {
467
501
  }
468
502
  function getDefaultModel(provider) {
469
503
  if (provider === "xiaomi") return MODELS.find((m) => m.id === "mimo-v2.5-pro");
470
- if (provider === "openai") return MODELS.find((m) => m.id === "gpt-5.5");
471
- if (provider === "gemini") return MODELS.find((m) => m.id === "gemini-3.1-flash-lite-preview");
504
+ if (provider === "openai") return MODELS.find((m) => m.id === "gpt-5.6-sol");
505
+ if (provider === "gemini") return MODELS.find((m) => m.id === "gemini-3.1-flash-lite");
472
506
  if (provider === "glm") return MODELS.find((m) => m.id === "glm-5.2");
473
507
  if (provider === "moonshot") return MODELS.find((m) => m.id === "kimi-k2.7-code");
474
508
  if (provider === "minimax") return MODELS.find((m) => m.id === "MiniMax-M3");
@@ -501,6 +535,10 @@ function getSummaryModel(provider, currentModelId) {
501
535
  }
502
536
  return getModel(currentModelId) ?? getDefaultModel(provider);
503
537
  }
538
+ function getFastModel(provider, currentModelId) {
539
+ const low = getModelsForProvider(provider).find((m) => m.costTier === "low");
540
+ return low ?? getModel(currentModelId) ?? getDefaultModel(provider);
541
+ }
504
542
  // Annotate the CommonJS export names for ESM import in node:
505
543
  0 && (module.exports = {
506
544
  DEFAULT_MAX_VIDEO_BYTES,
@@ -509,6 +547,7 @@ function getSummaryModel(provider, currentModelId) {
509
547
  getAuthStorageKeys,
510
548
  getContextWindow,
511
549
  getDefaultModel,
550
+ getFastModel,
512
551
  getMaxThinkingLevel,
513
552
  getModel,
514
553
  getModelsForProvider,