@compilr-dev/sdk 0.31.0 → 0.32.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.
@@ -34,8 +34,8 @@ export const MODEL_REGISTRY = [
34
34
  contextWindow: 200000,
35
35
  },
36
36
  {
37
- id: 'claude-sonnet-5',
38
- displayName: 'Sonnet 5',
37
+ id: 'claude-sonnet-5-5',
38
+ displayName: 'Sonnet 5.5',
39
39
  description: 'Balanced (recommended)',
40
40
  provider: 'claude',
41
41
  supportsImages: true,
@@ -44,6 +44,7 @@ export const MODEL_REGISTRY = [
44
44
  thinkingFormat: 'claude',
45
45
  status: 'supported',
46
46
  contextWindow: 1000000,
47
+ notes: 'Adaptive thinking (default effort high); $2/$10 per MTok, same as Sonnet 5',
47
48
  },
48
49
  {
49
50
  id: 'claude-opus-5-5',
@@ -71,6 +72,18 @@ export const MODEL_REGISTRY = [
71
72
  notes: 'Flagship: adaptive thinking always on; premium pricing ($10/$50 per MTok)',
72
73
  },
73
74
  // Legacy Claude models (still supported)
75
+ {
76
+ id: 'claude-sonnet-5',
77
+ displayName: 'Sonnet 5',
78
+ description: 'Previous generation',
79
+ provider: 'claude',
80
+ supportsImages: true,
81
+ supportsTools: true,
82
+ thinkingFormat: 'claude',
83
+ status: 'supported',
84
+ contextWindow: 1000000,
85
+ notes: 'Legacy — consider upgrading to Sonnet 5.5 (same price)',
86
+ },
74
87
  {
75
88
  id: 'claude-opus-5',
76
89
  displayName: 'Opus 5',
@@ -147,17 +160,6 @@ export const MODEL_REGISTRY = [
147
160
  // Gemini Models (Google)
148
161
  // ---------------------------------------------------------------------------
149
162
  // Gemini 2.x - Supported
150
- {
151
- id: 'gemini-2.0-flash',
152
- displayName: 'Gemini 2.0 Flash',
153
- description: 'Fast, no thinking',
154
- provider: 'gemini',
155
- supportsImages: true,
156
- thinkingFormat: 'none',
157
- status: 'supported',
158
- contextWindow: 1000000,
159
- notes: 'Fast, no thinking blocks',
160
- },
161
163
  {
162
164
  id: 'gemini-2.5-flash-lite',
163
165
  displayName: 'Gemini 2.5 Flash Lite',
@@ -218,8 +220,8 @@ export const MODEL_REGISTRY = [
218
220
  // OpenAI Models
219
221
  // ---------------------------------------------------------------------------
220
222
  {
221
- id: 'gpt-5.2-2025-12-11',
222
- displayName: 'GPT-5.2',
223
+ id: 'gpt-6-astra',
224
+ displayName: 'GPT-6 Astra',
223
225
  description: 'Most capable',
224
226
  provider: 'openai',
225
227
  supportsImages: true,
@@ -227,12 +229,12 @@ export const MODEL_REGISTRY = [
227
229
  defaultTier: 'powerful',
228
230
  thinkingFormat: 'none',
229
231
  status: 'supported',
230
- contextWindow: 400000,
231
- notes: 'Latest generation',
232
+ contextWindow: 1050000,
233
+ notes: 'Responses API only (tools + reasoning); max output 128,000; $10/$50 per MTok',
232
234
  },
233
235
  {
234
- id: 'gpt-4o',
235
- displayName: 'GPT-4o',
236
+ id: 'gpt-6-sol',
237
+ displayName: 'GPT-6 Sol',
236
238
  description: 'Balanced (recommended)',
237
239
  provider: 'openai',
238
240
  supportsImages: true,
@@ -240,11 +242,12 @@ export const MODEL_REGISTRY = [
240
242
  defaultTier: 'balanced',
241
243
  thinkingFormat: 'none',
242
244
  status: 'supported',
243
- contextWindow: 128000,
245
+ contextWindow: 1050000,
246
+ notes: 'Coding and agentic work; max output 128,000; $2/$10 per MTok',
244
247
  },
245
248
  {
246
- id: 'gpt-4o-mini',
247
- displayName: 'GPT-4o Mini',
249
+ id: 'gpt-6-luna',
250
+ displayName: 'GPT-6 Luna',
248
251
  description: 'Fast, low cost',
249
252
  provider: 'openai',
250
253
  supportsImages: true,
@@ -252,29 +255,20 @@ export const MODEL_REGISTRY = [
252
255
  defaultTier: 'fast',
253
256
  thinkingFormat: 'none',
254
257
  status: 'supported',
255
- contextWindow: 128000,
258
+ contextWindow: 1050000,
259
+ notes: 'High volume; max output 128,000; $0.10/$0.50 per MTok',
256
260
  },
257
261
  {
258
- id: 'gpt-5-mini-2025-08-07',
259
- displayName: 'GPT-5 Mini',
260
- description: 'Balanced, latest generation',
261
- provider: 'openai',
262
- supportsImages: true,
263
- supportsTools: true,
264
- thinkingFormat: 'none',
265
- status: 'supported',
266
- contextWindow: 400000,
267
- },
268
- {
269
- id: 'gpt-5-nano-2025-08-07',
270
- displayName: 'GPT-5 Nano',
271
- description: 'Fast, latest generation',
262
+ id: 'gpt-5.5',
263
+ displayName: 'GPT-5.5',
264
+ description: 'Previous generation',
272
265
  provider: 'openai',
273
266
  supportsImages: true,
274
267
  supportsTools: true,
275
268
  thinkingFormat: 'none',
276
269
  status: 'supported',
277
270
  contextWindow: 400000,
271
+ notes: 'Legacy — the last OpenAI generation that calls tools on Chat Completions',
278
272
  },
279
273
  // ---------------------------------------------------------------------------
280
274
  // Ollama Models (Local)
@@ -603,7 +597,9 @@ export function modelSupportsImages(modelId) {
603
597
  const id = modelId.toLowerCase();
604
598
  if (id.includes('claude') || id.includes('gemini'))
605
599
  return true;
606
- if (/gpt-4o|gpt-4-turbo|gpt-4\.1|gpt-5/.test(id))
600
+ // ⚠️ Generation-agnostic: a `gpt-\d` check dated to gpt-5 would answer FALSE for gpt-6 and
601
+ // silently disable image input on a model that has it (measured: gpt-6-sol read a PNG).
602
+ if (/gpt-4o|gpt-4-turbo|gpt-4\.1|gpt-[5-9]|gpt-\d{2}/.test(id))
607
603
  return true;
608
604
  return false;
609
605
  }
@@ -68,10 +68,13 @@ export function getShortModelName(modelId) {
68
68
  return 'Opus';
69
69
  if (modelId.includes('claude-fable'))
70
70
  return 'Fable';
71
- if (modelId.includes('gpt-5'))
72
- return 'GPT-5';
71
+ // ⚠️ gpt-4o before the generic pattern, which would otherwise render it "GPT-4".
73
72
  if (modelId.includes('gpt-4o'))
74
73
  return 'GPT-4o';
74
+ // Generation-agnostic, so a future gpt-7 needs no edit here.
75
+ const gpt = /gpt-(\d+(?:\.\d+)?)/.exec(modelId);
76
+ if (gpt)
77
+ return `GPT-${gpt[1]}`;
75
78
  if (modelId.includes('gemini-3'))
76
79
  return 'Gemini 3';
77
80
  if (modelId.includes('gemini-2.5'))
package/dist/models.js CHANGED
@@ -31,7 +31,8 @@ export const DEFAULT_MODELS = (() => {
31
31
  else {
32
32
  // Fallback: first supported model for this provider, or a sensible default
33
33
  const firstModel = MODEL_REGISTRY.find((m) => m.provider === provider && m.status === 'supported');
34
- result[provider] = firstModel?.id ?? 'gpt-4o';
34
+ // Fallback only when the registry has no model at all for the provider; gpt-4o is gone.
35
+ result[provider] = firstModel?.id ?? 'gpt-6-sol';
35
36
  }
36
37
  }
37
38
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compilr-dev/sdk",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Universal agent runtime for building AI-powered applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -81,7 +81,7 @@
81
81
  "node": ">=20.0.0"
82
82
  },
83
83
  "dependencies": {
84
- "@compilr-dev/agents": "^0.6.10",
84
+ "@compilr-dev/agents": "^0.7.0",
85
85
  "@compilr-dev/logger": "^0.1.0",
86
86
  "ajv": "^6.14.0",
87
87
  "yaml": "^2.8.4"