Request Mapping
Antigravity Manager acts as a universal protocol translator, converting requests from OpenAI and Claude formats into Gemini’s native v1internal format. This enables seamless integration with AI clients while leveraging Google’s powerful models.Architecture Overview
OpenAI to Gemini Conversion
Location:src-tauri/src/proxy/mappers/openai/request.rs
Message Transformation
OpenAI messages are converted to Gemini’s contents format with role mapping:assistant→modeluser→usertool/function→user(tool results are user messages)system/developer→ Extracted tosystemInstruction
System Instructions
System messages are extracted and combined with:- Antigravity Identity (if not already present)
- Global System Prompt (if configured)
- User-provided system messages
Tool Calls Conversion
OpenAI tool calls are transformed into Gemini’s functionCall format: OpenAI Format:Thinking Mode Support
For thinking models (containing-thinking or pro variants):
- Passthrough Mode: Uses user-specified budget
- Custom Mode: Uses configured budget (capped at model limit)
- Auto Mode: Uses model-specific default (24576 for Gemini Pro)
- Adaptive Mode: Dynamic based on request complexity
Multimodal Content
Image URLs are converted to inline data:Generation Config Mapping
| OpenAI Parameter | Gemini Parameter | Notes |
|---|---|---|
temperature | temperature | Direct mapping (default: 1.0) |
top_p | topP | Direct mapping (default: 1.0) |
| N/A | topK | Fixed at 40 (official client alignment) |
max_tokens | maxOutputTokens | Dynamic limit from model specs |
n | candidateCount | Multiple response support |
stop | stopSequences | Converted to array if string |
response_format | responseMimeType | JSON mode support |
Claude to Gemini Conversion
Location:src-tauri/src/proxy/mappers/claude/request.rs
Message Structure
Claude’s message format is more complex, supporting thinking blocks:Block Ordering
Claude requires strict block ordering: Thinking → Text → Tool Use The mapper enforces this with triple-stage partitioning (seesrc-tauri/src/proxy/mappers/claude/request.rs:178-252).
Signature Management
Thinking blocks require signatures for validation:- Client-provided signature (highest priority)
- Context signature (from previous messages)
- Session cache (conversation-level)
- Tool cache (tool-specific)
- Global store (deprecated, for compatibility)
- Minimum length (50 characters)
- Model compatibility (family matching)
- Not from retry attempts
Cache Control Cleanup
Claude clients may sendcache_control fields from history:
Tool Schema Conversion
Claude tool schemas are converted to Gemini’s uppercase type format:format(JSON Schema validation)strict(OpenAI-specific)additionalPropertiesdefinitions/$ref(expanded inline)
Image Generation
Both protocols support image generation throughgemini-3-pro-image models.
Size Parameter Mapping
imageSize > size + quality > model suffix
Quality Mapping
| Quality | Image Size | Resolution |
|---|---|---|
standard | 1K | Default |
medium | 2K | Mid-range |
hd | 4K | High quality |
Aspect Ratio Auto-Detection
WxH format is automatically converted:Request Enhancement
Session ID Injection
All requests include a stable session ID:Safety Settings
All filters are disabled by default for proxy compatibility:GEMINI_SAFETY_THRESHOLD environment variable.
Tool Config
Forces validated tool calling mode:Common Utilities
Location:src-tauri/src/proxy/mappers/common_utils.rs
Google Search Injection
When web search is detected or requested:Undefined Cleanup
Recursively removes[undefined] strings from Cherry Studio and other clients:
JSON Schema Fixes
Common corrections:- Convert
paths(array) →path(string) for tools - Fix parameter types (string vs number)
- Remove validation keywords (
format,pattern) - Expand
$refdefinitions
Error Handling
Request mapping can fail with:- Empty tool names → Skipped
- Invalid signatures → Downgraded to text
- Incompatible thinking history → Thinking disabled
- Missing required fields → Auto-injected defaults
See Also
- Response Mapping - Converting Gemini responses back
- Streaming - SSE event transformation
- Error Handling - Retry logic and self-healing