Last active
May 29, 2026 08:22
-
-
Save FrancoStino/be03573acc9b308ddd38fb8eef9a6b8d to your computer and use it in GitHub Desktop.
Antigravity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://json-schema.org/draft/2020-12/schema", | |
| "type": "object", | |
| "properties": { | |
| "$schema": { | |
| "type": "string" | |
| }, | |
| "quiet_mode": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Suppress most toast notifications (rate limit, account switching). Recovery toasts always shown." | |
| }, | |
| "toast_scope": { | |
| "default": "root_only", | |
| "type": "string", | |
| "enum": [ | |
| "root_only", | |
| "all" | |
| ], | |
| "description": "Controls which sessions show toast notifications. 'root_only' (default) shows in root session only, 'all' shows in all sessions." | |
| }, | |
| "debug": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Enable debug logging to file." | |
| }, | |
| "debug_tui": { | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "log_dir": { | |
| "type": "string", | |
| "description": "Custom directory for debug logs." | |
| }, | |
| "keep_thinking": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Preserve thinking blocks for Claude models using signature caching. May cause signature errors." | |
| }, | |
| "session_recovery": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable automatic session recovery from tool_result_missing errors." | |
| }, | |
| "auto_resume": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Automatically send resume prompt after successful recovery." | |
| }, | |
| "resume_text": { | |
| "default": "continue", | |
| "type": "string", | |
| "description": "Custom text to send when auto-resuming after recovery." | |
| }, | |
| "signature_cache": { | |
| "type": "object", | |
| "properties": { | |
| "enabled": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable disk caching of thinking block signatures." | |
| }, | |
| "memory_ttl_seconds": { | |
| "default": 3600, | |
| "type": "number", | |
| "minimum": 60, | |
| "maximum": 86400, | |
| "description": "In-memory TTL in seconds." | |
| }, | |
| "disk_ttl_seconds": { | |
| "default": 172800, | |
| "type": "number", | |
| "minimum": 3600, | |
| "maximum": 604800, | |
| "description": "Disk TTL in seconds." | |
| }, | |
| "write_interval_seconds": { | |
| "default": 60, | |
| "type": "number", | |
| "minimum": 10, | |
| "maximum": 600, | |
| "description": "Background write interval in seconds." | |
| } | |
| }, | |
| "required": [ | |
| "enabled", | |
| "memory_ttl_seconds", | |
| "disk_ttl_seconds", | |
| "write_interval_seconds" | |
| ], | |
| "additionalProperties": false, | |
| "description": "Signature cache configuration for persisting thinking block signatures. Only used when keep_thinking is enabled." | |
| }, | |
| "empty_response_max_attempts": { | |
| "default": 4, | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 10, | |
| "description": "Maximum retry attempts when Antigravity returns an empty response (no candidates)." | |
| }, | |
| "empty_response_retry_delay_ms": { | |
| "default": 2000, | |
| "type": "number", | |
| "minimum": 500, | |
| "maximum": 10000, | |
| "description": "Delay in milliseconds between empty response retries." | |
| }, | |
| "tool_id_recovery": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable tool ID orphan recovery. Matches mismatched tool responses by function name or creates placeholders." | |
| }, | |
| "claude_tool_hardening": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable tool hallucination prevention for Claude models. Injects parameter signatures and strict usage rules." | |
| }, | |
| "claude_prompt_auto_caching": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Enable Claude prompt auto-caching by adding top-level cache_control when absent." | |
| }, | |
| "proactive_token_refresh": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable proactive background token refresh before expiry, ensuring requests never block." | |
| }, | |
| "proactive_refresh_buffer_seconds": { | |
| "default": 1800, | |
| "type": "number", | |
| "minimum": 60, | |
| "maximum": 7200, | |
| "description": "Seconds before token expiry to trigger proactive refresh." | |
| }, | |
| "proactive_refresh_check_interval_seconds": { | |
| "default": 300, | |
| "type": "number", | |
| "minimum": 30, | |
| "maximum": 1800, | |
| "description": "Interval between proactive refresh checks in seconds." | |
| }, | |
| "max_rate_limit_wait_seconds": { | |
| "default": 300, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 3600 | |
| }, | |
| "quota_fallback": { | |
| "default": false, | |
| "type": "boolean", | |
| "description": "Deprecated: accepted for backward compatibility but ignored at runtime. Gemini fallback between Antigravity and Gemini CLI is always enabled." | |
| }, | |
| "account_selection_strategy": { | |
| "default": "hybrid", | |
| "type": "string", | |
| "enum": [ | |
| "sticky", | |
| "round-robin", | |
| "hybrid" | |
| ] | |
| }, | |
| "pid_offset_enabled": { | |
| "default": false, | |
| "type": "boolean" | |
| }, | |
| "switch_on_first_rate_limit": { | |
| "default": true, | |
| "type": "boolean" | |
| }, | |
| "scheduling_mode": { | |
| "default": "cache_first", | |
| "type": "string", | |
| "enum": [ | |
| "cache_first", | |
| "balance", | |
| "performance_first" | |
| ], | |
| "description": "Rate limit scheduling strategy. 'cache_first' (default) waits for cooldowns, 'balance' distributes across accounts, 'performance_first' picks fastest available." | |
| }, | |
| "max_cache_first_wait_seconds": { | |
| "default": 60, | |
| "type": "number", | |
| "minimum": 5, | |
| "maximum": 300, | |
| "description": "Maximum seconds to wait for a rate-limited account in cache_first mode before switching." | |
| }, | |
| "failure_ttl_seconds": { | |
| "default": 3600, | |
| "type": "number", | |
| "minimum": 60, | |
| "maximum": 7200, | |
| "description": "Time in seconds before a failed account is eligible for retry." | |
| }, | |
| "default_retry_after_seconds": { | |
| "default": 60, | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 300 | |
| }, | |
| "max_backoff_seconds": { | |
| "default": 60, | |
| "type": "number", | |
| "minimum": 5, | |
| "maximum": 300 | |
| }, | |
| "request_jitter_max_ms": { | |
| "default": 0, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 5000, | |
| "description": "Maximum random jitter in milliseconds added to outgoing requests to avoid thundering herd." | |
| }, | |
| "soft_quota_threshold_percent": { | |
| "default": 90, | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 100, | |
| "description": "Percentage of quota usage that triggers soft quota warnings and preemptive account switching." | |
| }, | |
| "quota_refresh_interval_minutes": { | |
| "default": 15, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 60, | |
| "description": "Interval in minutes between quota usage checks. Set to 0 to disable periodic checks." | |
| }, | |
| "soft_quota_cache_ttl_minutes": { | |
| "default": "auto", | |
| "anyOf": [ | |
| { | |
| "type": "string", | |
| "const": "auto" | |
| }, | |
| { | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 120 | |
| } | |
| ], | |
| "description": "TTL for cached soft quota data. 'auto' (default) calculates from refresh interval, or set a fixed number of minutes." | |
| }, | |
| "health_score": { | |
| "type": "object", | |
| "properties": { | |
| "initial": { | |
| "default": 70, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 100 | |
| }, | |
| "success_reward": { | |
| "default": 1, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 10 | |
| }, | |
| "rate_limit_penalty": { | |
| "default": -10, | |
| "type": "number", | |
| "minimum": -50, | |
| "maximum": 0 | |
| }, | |
| "failure_penalty": { | |
| "default": -20, | |
| "type": "number", | |
| "minimum": -100, | |
| "maximum": 0 | |
| }, | |
| "recovery_rate_per_hour": { | |
| "default": 2, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 20 | |
| }, | |
| "min_usable": { | |
| "default": 50, | |
| "type": "number", | |
| "minimum": 0, | |
| "maximum": 100 | |
| }, | |
| "max_score": { | |
| "default": 100, | |
| "type": "number", | |
| "minimum": 50, | |
| "maximum": 100 | |
| } | |
| }, | |
| "required": [ | |
| "initial", | |
| "success_reward", | |
| "rate_limit_penalty", | |
| "failure_penalty", | |
| "recovery_rate_per_hour", | |
| "min_usable", | |
| "max_score" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "token_bucket": { | |
| "type": "object", | |
| "properties": { | |
| "max_tokens": { | |
| "default": 50, | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 1000 | |
| }, | |
| "regeneration_rate_per_minute": { | |
| "default": 6, | |
| "type": "number", | |
| "minimum": 0.1, | |
| "maximum": 60 | |
| }, | |
| "initial_tokens": { | |
| "default": 50, | |
| "type": "number", | |
| "minimum": 1, | |
| "maximum": 1000 | |
| } | |
| }, | |
| "required": [ | |
| "max_tokens", | |
| "regeneration_rate_per_minute", | |
| "initial_tokens" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "auto_update": { | |
| "default": true, | |
| "type": "boolean", | |
| "description": "Enable automatic plugin updates." | |
| } | |
| }, | |
| "additionalProperties": false | |
| } |
Comments are disabled for this gist.