chore: checkpoint local changes

This commit is contained in:
Noe
2026-02-18 20:18:21 +00:00
parent e5b62b4865
commit 2e72744083
7 changed files with 3 additions and 138 deletions

View File

@@ -44,9 +44,6 @@ body:
- antigravity-gemini-3-pro
- antigravity-gemini-3-flash
- antigravity-claude-sonnet-4-6
- antigravity-claude-sonnet-4-6
- antigravity-claude-opus-4-6-thinking
- antigravity-claude-opus-4-6-thinking
- antigravity-claude-opus-4-6-thinking
- gemini-2.5-flash
- gemini-2.5-pro

View File

@@ -120,9 +120,6 @@ opencode run "Hello" --model=google/antigravity-claude-opus-4-6-thinking --varia
| `antigravity-gemini-3-pro` | low, high | Gemini 3 Pro with thinking |
| `antigravity-gemini-3-flash` | minimal, low, medium, high | Gemini 3 Flash with thinking |
| `antigravity-claude-sonnet-4-6` | — | Claude Sonnet 4.6 |
| `antigravity-claude-sonnet-4-6` | — | Claude Sonnet 4.6 |
| `antigravity-claude-opus-4-6-thinking` | low, max | Claude Sonnet with extended thinking |
| `antigravity-claude-opus-4-6-thinking` | low, max | Claude Opus 4.6 with extended thinking |
| `antigravity-claude-opus-4-6-thinking` | low, max | Claude Opus 4.6 with extended thinking |
**Gemini CLI quota** (separate from Antigravity; used when `cli_first` is true or as fallback):
@@ -185,29 +182,6 @@ Add this to your `~/.config/opencode/opencode.json`:
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
},
"antigravity-claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6 (Antigravity)",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
},
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Sonnet 4.6 Thinking (Antigravity)",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
"variants": {
"low": { "thinkingConfig": { "thinkingBudget": 8192 } },
"max": { "thinkingConfig": { "thinkingBudget": 32768 } }
}
},
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
"variants": {
"low": { "thinkingConfig": { "thinkingBudget": 8192 } },
"max": { "thinkingConfig": { "thinkingBudget": 32768 } }
}
},
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"limit": { "context": 200000, "output": 64000 },

View File

@@ -79,10 +79,7 @@ Accept: text/event-stream
| Model Name | Model ID | Type | Status |
|------------|----------|------|--------|
| Claude Sonnet 4.6 | `claude-sonnet-4-6` | Anthropic | ✅ Verified |
| Claude Sonnet 4.6 | `claude-sonnet-4-6` | Anthropic | ✅ Verified |
| Claude Sonnet 4.6 Thinking | `claude-opus-4-6-thinking` | Anthropic | ✅ Verified |
| Claude Opus 4.6 Thinking | `claude-opus-4-6-thinking` | Anthropic | ✅ Verified |
| Claude Opus 4.6 Thinking | `claude-opus-4-6-thinking` | Anthropic | ⏳ Pending |
| Gemini 3 Pro High | `gemini-3-pro-high` | Google | ✅ Verified |
| Gemini 3 Pro Low | `gemini-3-pro-low` | Google | ✅ Verified |
| GPT-OSS 120B Medium | `gpt-oss-120b-medium` | Other | ✅ Verified |

View File

@@ -21,7 +21,7 @@ Define variants in your model configuration:
```json
{
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Sonnet 4.6 Thinking",
"name": "Claude Opus 4.6 Thinking",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
"variants": {
@@ -109,7 +109,7 @@ Claude models use token-based thinking budgets:
```json
{
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Sonnet 4.6 Thinking (Antigravity)",
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
"variants": {

View File

@@ -24,7 +24,6 @@ export {
resolveModelForHeaderStyle,
getModelFamily,
MODEL_ALIASES,
MODEL_FALLBACKS,
THINKING_TIER_BUDGETS,
GEMINI_3_THINKING_LEVELS,
} from "./model-resolver";

View File

@@ -113,22 +113,6 @@ describe("resolveModelWithTier", () => {
expect(result.isThinkingModel).toBe(true);
expect(result.quotaPreference).toBe("antigravity");
});
it("deprecated claude-sonnet-4-5-thinking falls back to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("antigravity-claude-sonnet-4-5-thinking");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.thinkingBudget).toBe(32768);
expect(result.isThinkingModel).toBe(true);
expect(result.quotaPreference).toBe("antigravity");
});
it("deprecated claude-opus-4-5-thinking falls back to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("antigravity-claude-opus-4-5-thinking");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.thinkingBudget).toBe(32768);
expect(result.isThinkingModel).toBe(true);
expect(result.quotaPreference).toBe("antigravity");
});
});
describe("Claude Sonnet 4.6 (non-thinking)", () => {
@@ -306,41 +290,4 @@ describe("Issue #103: resolveModelForHeaderStyle", () => {
});
});
describe("deprecated model fallbacks", () => {
it("falls back claude-sonnet-4-5 to claude-sonnet-4-6", () => {
const result = resolveModelWithTier("claude-sonnet-4-5");
expect(result.actualModel).toBe("claude-sonnet-4-6");
expect(result.isThinkingModel).toBeFalsy();
});
it("falls back claude-sonnet-4-5-thinking to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("claude-sonnet-4-5-thinking");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.isThinkingModel).toBe(true);
});
it("falls back claude-opus-4-5-thinking to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("claude-opus-4-5-thinking");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.isThinkingModel).toBe(true);
});
it("falls back claude-sonnet-4-5-thinking with tier to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("claude-sonnet-4-5-thinking-low");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.tier).toBe("low");
expect(result.isThinkingModel).toBe(true);
});
it("falls back gemini-claude-sonnet-4-5 alias to claude-sonnet-4-6", () => {
const result = resolveModelWithTier("gemini-claude-sonnet-4-5");
expect(result.actualModel).toBe("claude-sonnet-4-6");
expect(result.isThinkingModel).toBeFalsy();
});
it("falls back gemini-claude-opus-4-5-thinking-low alias to claude-opus-4-6-thinking", () => {
const result = resolveModelWithTier("gemini-claude-opus-4-5-thinking-low");
expect(result.actualModel).toBe("claude-opus-4-6-thinking");
expect(result.isThinkingModel).toBe(true);
});
});

View File

@@ -6,7 +6,6 @@
*/
import type { ResolvedModel, ThinkingTier, GoogleSearchConfig } from "./types";
import { logToast } from "../debug.ts";
export interface ModelResolverOptions {
cli_first?: boolean;
@@ -53,50 +52,11 @@ export const MODEL_ALIASES: Record<string, string> = {
"gemini-claude-opus-4-6-thinking-high": "claude-opus-4-6-thinking",
"gemini-claude-sonnet-4-6": "claude-sonnet-4-6",
// Deprecated Claude 4.5 aliases → forwarded to 4.6 equivalents
"gemini-claude-sonnet-4-5": "claude-sonnet-4-6",
"gemini-claude-sonnet-4-5-thinking-low": "claude-opus-4-6-thinking",
"gemini-claude-sonnet-4-5-thinking-medium": "claude-opus-4-6-thinking",
"gemini-claude-sonnet-4-5-thinking-high": "claude-opus-4-6-thinking",
"gemini-claude-opus-4-5-thinking-low": "claude-opus-4-6-thinking",
"gemini-claude-opus-4-5-thinking-medium": "claude-opus-4-6-thinking",
"gemini-claude-opus-4-5-thinking-high": "claude-opus-4-6-thinking",
// Image generation models - only gemini-3-pro-image is available via Antigravity API
// Note: gemini-2.5-flash-image (Nano Banana) is NOT supported by Antigravity - only Google AI API
// Reference: Antigravity-Manager/src-tauri/src/proxy/common/model_mapping.rs
};
/**
* Model fallbacks when primary model is unavailable.
* NOTE: Image models should NOT fall back to non-image models!
*/
export const MODEL_FALLBACKS: Record<string, string> = {
// Deprecated Claude 4.5 bare-name fallbacks → 4.6 equivalents
"claude-sonnet-4-5": "claude-sonnet-4-6",
"claude-sonnet-4-5-thinking": "claude-opus-4-6-thinking",
"claude-opus-4-5-thinking": "claude-opus-4-6-thinking",
};
/**
* Deprecated model names that trigger a user-facing deprecation warning.
* Includes both MODEL_ALIASES keys and MODEL_FALLBACKS keys for 4.5 models.
*/
const DEPRECATED_MODELS = new Set([
// Bare-name fallbacks
"claude-sonnet-4-5",
"claude-sonnet-4-5-thinking",
"claude-opus-4-5-thinking",
// Gemini-prefixed aliases
"gemini-claude-sonnet-4-5",
"gemini-claude-sonnet-4-5-thinking-low",
"gemini-claude-sonnet-4-5-thinking-medium",
"gemini-claude-sonnet-4-5-thinking-high",
"gemini-claude-opus-4-5-thinking-low",
"gemini-claude-opus-4-5-thinking-medium",
"gemini-claude-opus-4-5-thinking-high",
]);
const TIER_REGEX = /-(minimal|low|medium|high)$/;
const QUOTA_PREFIX_REGEX = /^antigravity-/i;
@@ -223,16 +183,7 @@ export function resolveModelWithTier(requestedModel: string, options: ModelResol
? antigravityModel
: MODEL_ALIASES[modelWithoutQuota] || MODEL_ALIASES[baseName] || baseName;
const resolvedModel = MODEL_FALLBACKS[actualModel] || actualModel;
// Emit deprecation warning for deprecated model names (4.5 → 4.6 redirects)
if (DEPRECATED_MODELS.has(modelWithoutQuota) || DEPRECATED_MODELS.has(baseName)) {
logToast(
`Model "${requestedModel}" is deprecated. Using "${resolvedModel}" instead. ` +
`Please update your configuration to use "${resolvedModel}" directly.`,
"warning"
)
}
const resolvedModel = actualModel;
const isThinking = isThinkingCapableModel(resolvedModel);