@compilr-dev/cli 0.9.1 → 0.10.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.
Binary file
package/dist/index.js CHANGED
@@ -118,7 +118,7 @@ Other Environment Variables:
118
118
  Examples:
119
119
  compilr Start with auto-detected provider
120
120
  compilr --model claude-sonnet-4-6 Use a specific model
121
- compilr --provider gemini --model gemini-2.0-flash
121
+ compilr --provider gemini --model gemini-2.5-flash
122
122
  compilr --minimal --show-filtering Minimal tools with analysis
123
123
  compilr --update Check for updates
124
124
  `);
@@ -1087,7 +1087,7 @@ function getDefaultModel(provider) {
1087
1087
  return model.id;
1088
1088
  // Fallback to any supported model for this provider
1089
1089
  const anyModel = getDefaultModelForTier(provider, 'fast') ?? getDefaultModelForTier(provider, 'powerful');
1090
- return anyModel?.id ?? 'claude-sonnet-5';
1090
+ return anyModel?.id ?? 'claude-sonnet-5-5';
1091
1091
  }
1092
1092
  // =============================================================================
1093
1093
  // Run
@@ -78,17 +78,17 @@ async function validateOpenAIModel(modelId) {
78
78
  };
79
79
  }
80
80
  try {
81
- const response = await fetch('https://api.openai.com/v1/chat/completions', {
82
- method: 'POST',
83
- headers: {
84
- 'Content-Type': 'application/json',
85
- 'Authorization': `Bearer ${apiKey}`,
86
- },
87
- body: JSON.stringify({
88
- model: modelId,
89
- max_tokens: 1,
90
- messages: [{ role: 'user', content: 'hi' }],
91
- }),
81
+ /*
82
+ ⚠️ ASK WHETHER THE MODEL EXISTS — do not send it a message.
83
+ This used to POST to /v1/chat/completions with `max_tokens: 1`, which made the REQUEST
84
+ BODY part of the test. Every current OpenAI model then failed validation: gpt-6-* and
85
+ gpt-5.x reject `max_tokens` outright ("use 'max_completion_tokens'"), and the Sol/Luna
86
+ generation answers on /v1/responses anyway. Measured 2026-09-30: gpt-6-sol, gpt-6-astra
87
+ and gpt-5.5 all returned 400 here while GET /v1/models/<id> returned 200; only the
88
+ retired gpt-4o passed. A GET carries no body, so it cannot go stale as the API evolves.
89
+ */
90
+ const response = await fetch(`https://api.openai.com/v1/models/${encodeURIComponent(modelId)}`, {
91
+ headers: { Authorization: `Bearer ${apiKey}` },
92
92
  signal: AbortSignal.timeout(15000),
93
93
  });
94
94
  if (response.ok) {
@@ -22,12 +22,13 @@ const MODEL_TIERS = {
22
22
  // ⚠️ Unknown ids fall to 'medium', and /design, /arch, /refine, /scaffold need 'large' — a
23
23
  // missing current model tells its user to "upgrade" to an older one. Add new ids here.
24
24
  'claude-opus-5-5': { tier: 'large', provider: 'anthropic' },
25
+ 'claude-sonnet-5-5': { tier: 'large', provider: 'anthropic' },
25
26
  'claude-fable-5-1': { tier: 'large', provider: 'anthropic' },
26
27
  'claude-opus-5': { tier: 'large', provider: 'anthropic' },
27
28
  'claude-fable-5': { tier: 'large', provider: 'anthropic' },
28
29
  'claude-opus-4-8': { tier: 'large', provider: 'anthropic' },
29
30
  'claude-sonnet-5': { tier: 'large', provider: 'anthropic' },
30
- 'claude-haiku-4-5': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5' },
31
+ 'claude-haiku-4-5': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5-5' },
31
32
  // Claude legacy (for backward compatibility)
32
33
  'claude-opus-4-7': { tier: 'large', provider: 'anthropic' },
33
34
  'claude-opus-4-6': { tier: 'large', provider: 'anthropic' },
@@ -38,18 +39,25 @@ const MODEL_TIERS = {
38
39
  'claude-opus-4': { tier: 'large', provider: 'anthropic' },
39
40
  'claude-sonnet-4': { tier: 'large', provider: 'anthropic' },
40
41
  'claude-3-5-sonnet': { tier: 'large', provider: 'anthropic' },
41
- 'claude-3-5-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5' },
42
- 'claude-3-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5' },
42
+ 'claude-3-5-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5-5' },
43
+ 'claude-3-haiku': { tier: 'medium', provider: 'anthropic', suggestedUpgrade: 'claude-sonnet-5-5' },
43
44
  // OpenAI - GPT-5 series (current)
45
+ // ⚠️ Unknown ids fall to 'medium', and /design, /arch, /refine, /scaffold need 'large' — a
46
+ // missing current model tells its user to "upgrade" to an older one. Add new ids here; the
47
+ // registry-coverage guard in tests/utils/model-tiers.test.ts fails if one is forgotten.
48
+ 'gpt-6-astra': { tier: 'large', provider: 'openai' },
49
+ 'gpt-6-sol': { tier: 'large', provider: 'openai' },
50
+ 'gpt-6-luna': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-6-sol' },
51
+ 'gpt-5.5': { tier: 'large', provider: 'openai' },
44
52
  'gpt-5.2': { tier: 'large', provider: 'openai' },
45
53
  'gpt-5-mini': { tier: 'large', provider: 'openai' },
46
- 'gpt-5-nano': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-5-mini-2025-08-07' },
54
+ 'gpt-5-nano': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-6-sol' },
47
55
  // OpenAI legacy (for backward compatibility)
48
56
  'gpt-4o': { tier: 'large', provider: 'openai' },
49
57
  'gpt-4-turbo': { tier: 'large', provider: 'openai' },
50
58
  'gpt-4': { tier: 'large', provider: 'openai' },
51
- 'gpt-4o-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-5-mini-2025-08-07' },
52
- 'gpt-3.5-turbo': { tier: 'small', provider: 'openai', suggestedUpgrade: 'gpt-5-nano-2025-08-07' },
59
+ 'gpt-4o-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'gpt-6-sol' },
60
+ 'gpt-3.5-turbo': { tier: 'small', provider: 'openai', suggestedUpgrade: 'gpt-6-luna' },
53
61
  'o1': { tier: 'large', provider: 'openai' },
54
62
  'o1-mini': { tier: 'medium', provider: 'openai', suggestedUpgrade: 'o1' },
55
63
  'o3': { tier: 'large', provider: 'openai' },
@@ -61,7 +69,6 @@ const MODEL_TIERS = {
61
69
  // Gemini legacy (for backward compatibility)
62
70
  'gemini-2.5-pro': { tier: 'large', provider: 'google' },
63
71
  'gemini-2.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-3-flash-preview' },
64
- 'gemini-2.0-flash': { tier: 'large', provider: 'google' },
65
72
  'gemini-1.5-pro': { tier: 'large', provider: 'google' },
66
73
  'gemini-1.5-flash': { tier: 'medium', provider: 'google', suggestedUpgrade: 'gemini-3-flash-preview' },
67
74
  // Ollama / Local models (common ones)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compilr-dev/cli",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "AI-powered coding assistant CLI using @compilr-dev/agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -60,7 +60,7 @@
60
60
  "@compilr-dev/editor-core": "^0.0.3",
61
61
  "@compilr-dev/factory": "^0.1.35",
62
62
  "@compilr-dev/logger": "^0.1.0",
63
- "@compilr-dev/sdk": "^0.29.8",
63
+ "@compilr-dev/sdk": "^0.32.0",
64
64
  "@compilr-dev/ui-core": "^0.0.1",
65
65
  "@modelcontextprotocol/sdk": "^1.23.0",
66
66
  "ansi-escapes": "^7.3.0",
@@ -79,8 +79,8 @@
79
79
  "minimatch": ">=10.2.1",
80
80
  "hono": ">=4.13.5",
81
81
  "@hono/node-server": ">=2.0.5",
82
- "fast-uri": ">=3.1.6 <4",
83
- "ip-address": ">=10.3.1",
82
+ "fast-uri": ">=3.1.8 <4",
83
+ "ip-address": ">=10.7.1",
84
84
  "qs": ">=6.16.0"
85
85
  },
86
86
  "devDependencies": {