@anthonyhaussman/opencode-agy-auth 1.0.9 → 1.0.11-alpha.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.
package/dist/index.js CHANGED
@@ -170,7 +170,7 @@ function createAgyActivityRequestId() {
170
170
  import os from "os";
171
171
 
172
172
  // src/sdk/agy-cli-version.ts
173
- var AGY_CLI_VERSION = "1.0.8";
173
+ var AGY_CLI_VERSION = "1.0.10";
174
174
 
175
175
  // src/sdk/user-agent.ts
176
176
  var cachedUserAgent = null;
@@ -14660,6 +14660,904 @@ function buildTrajectoryAnalyticsBody(cascadeId = randomUUID(), platform2 = "DAR
14660
14660
  // src/sdk/request/prepare.ts
14661
14661
  import { randomUUID as randomUUID3 } from "crypto";
14662
14662
 
14663
+ // models.json
14664
+ var models_default = {
14665
+ models: {
14666
+ tab_jump_flash_lite_preview: {
14667
+ maxTokens: 16384,
14668
+ maxOutputTokens: 4096,
14669
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14670
+ quotaInfo: {
14671
+ remainingFraction: 1
14672
+ },
14673
+ model: "MODEL_PLACEHOLDER_M28",
14674
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14675
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14676
+ supportsCumulativeContext: true,
14677
+ tabJumpPrintLineRange: true,
14678
+ supportsEstimateTokenCounter: true,
14679
+ addCursorToFindReplaceTarget: true,
14680
+ toolFormatterType: "TOOL_FORMATTER_TYPE_XML",
14681
+ requiresLeadInGeneration: true,
14682
+ requiresNoXmlToolExamples: true
14683
+ },
14684
+ "gemini-3.1-pro-high": {
14685
+ displayName: "Gemini 3.1 Pro (High)",
14686
+ supportsImages: true,
14687
+ supportsThinking: true,
14688
+ thinkingBudget: 10001,
14689
+ minThinkingBudget: 128,
14690
+ recommended: true,
14691
+ maxTokens: 1048576,
14692
+ maxOutputTokens: 65535,
14693
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14694
+ quotaInfo: {
14695
+ remainingFraction: 1,
14696
+ resetTime: "2026-05-29T18:30:05Z"
14697
+ },
14698
+ model: "MODEL_PLACEHOLDER_M37",
14699
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14700
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14701
+ supportsVideo: true,
14702
+ tagTitle: "New",
14703
+ supportedMimeTypes: {
14704
+ "audio/webm;codecs=opus": true,
14705
+ "application/x-python-code": true,
14706
+ "text/xml": true,
14707
+ "text/x-python": true,
14708
+ "text/html": true,
14709
+ "application/x-ipynb+json": true,
14710
+ "video/text/timestamp": true,
14711
+ "text/markdown": true,
14712
+ "text/x-python-script": true,
14713
+ "video/jpeg2000": true,
14714
+ "image/jpeg": true,
14715
+ "image/png": true,
14716
+ "image/heic": true,
14717
+ "text/plain": true,
14718
+ "application/x-javascript": true,
14719
+ "application/json": true,
14720
+ "application/pdf": true,
14721
+ "text/javascript": true,
14722
+ "image/webp": true,
14723
+ "application/x-typescript": true,
14724
+ "text/x-typescript": true,
14725
+ "text/rtf": true,
14726
+ "video/webm": true,
14727
+ "video/audio/wav": true,
14728
+ "video/audio/s16le": true,
14729
+ "text/csv": true,
14730
+ "video/mp4": true,
14731
+ "video/videoframe/jpeg2000": true,
14732
+ "image/heif": true,
14733
+ "text/css": true,
14734
+ "application/rtf": true
14735
+ },
14736
+ modelExperiments: {
14737
+ experiments: {
14738
+ "cascade-include-ephemeral-message": {
14739
+ stringValue: '{\n "enabled": true,\n "disabledHeuristics": ["running_tasks_reminder"],\n "staticMessages": [],\n "useAllowlist": false,\n "enabledHeuristics": []\n}'
14740
+ },
14741
+ template__system_prompts__communication_style: {
14742
+ stringValue: "- Keep your responses concise.\n- Provide a summary of your work when you end your turn.\n- Format your responses in github-style markdown.\n- If you're unsure about the user's intent, ask for clarification rather than making assumptions.\n- You MUST create clickable links for all files and code symbols (classes, types, functions, structs). Use github style markdown links with the `file://` scheme (e.g., [filename](file:///path/to/file) or [ClassName](file:///path/to/file#L10-L20)`). For Windows, use forward slashes for paths.\n\nCRITICAL INSTRUCTION 1: You may have access to a variety of tools at your disposal. Some tools may be for a specific task such as 'view_file' (for viewing contents of a file). Others may be very broadly applicable such as the ability to run a command on a terminal. Always prioritize using the most specific tool you can for the task at hand. Here are some rules: (a) NEVER run cat inside a bash command to create a new file or append to an existing file. (b) ALWAYS use grep_search instead of running grep inside a bash command unless absolutely needed. (c) DO NOT use ls for listing, cat for viewing, grep for finding, sed for replacing.\nCRITICAL INSTRUCTION 2: Before making tool calls T, think and explicitly list out any related tools for the task at hand. You can only execute a set of tools T if all other tools in the list are either more generic or cannot be used for the task at hand. ALWAYS START your thought with recalling critical instructions 1 and 2. In particular, the format for the start of your thought block must be '...94>thought\\nCRITICAL INSTRUCTION 1: ...\\nCRITICAL INSTRUCTION 2: ...'."
14743
+ },
14744
+ template__system_prompts__identity: {
14745
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
14746
+ },
14747
+ template__system_prompts__planning_more_artifacts: {
14748
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
14749
+ },
14750
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14751
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14752
+ }
14753
+ }
14754
+ }
14755
+ },
14756
+ "gemini-2.5-flash": {
14757
+ displayName: "Gemini 3.1 Flash Lite",
14758
+ maxTokens: 1048576,
14759
+ maxOutputTokens: 65535,
14760
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14761
+ quotaInfo: {
14762
+ remainingFraction: 1,
14763
+ resetTime: "2026-05-29T18:30:05Z"
14764
+ },
14765
+ model: "MODEL_GOOGLE_GEMINI_2_5_FLASH",
14766
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14767
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14768
+ modelExperiments: {
14769
+ experiments: {
14770
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14771
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14772
+ }
14773
+ }
14774
+ }
14775
+ },
14776
+ "claude-opus-4-6-thinking": {
14777
+ displayName: "Claude Opus 4.6 (Thinking)",
14778
+ supportsImages: true,
14779
+ supportsThinking: true,
14780
+ thinkingBudget: 1024,
14781
+ recommended: true,
14782
+ maxTokens: 25e4,
14783
+ maxOutputTokens: 64e3,
14784
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14785
+ quotaInfo: {
14786
+ remainingFraction: 0.6,
14787
+ resetTime: "2026-05-29T19:43:59Z"
14788
+ },
14789
+ model: "MODEL_PLACEHOLDER_M26",
14790
+ apiProvider: "API_PROVIDER_ANTHROPIC_VERTEX",
14791
+ modelProvider: "MODEL_PROVIDER_ANTHROPIC",
14792
+ supportedMimeTypes: {
14793
+ "image/webp": true,
14794
+ "video/jpeg2000": true,
14795
+ "video/videoframe/jpeg2000": true,
14796
+ "image/heic": true,
14797
+ "image/heif": true,
14798
+ "image/jpeg": true,
14799
+ "image/png": true
14800
+ },
14801
+ modelExperiments: {
14802
+ experiments: {
14803
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14804
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_UNSPECIFIED",\n "max_token_limit": "160000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14805
+ },
14806
+ template__system_prompts__planning_more_artifacts: {
14807
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
14808
+ }
14809
+ }
14810
+ },
14811
+ vertexModelId: "claude-opus-4-6@default"
14812
+ },
14813
+ "gemini-2.5-flash-thinking": {
14814
+ displayName: "Gemini 3.1 Flash Lite",
14815
+ maxTokens: 1048576,
14816
+ maxOutputTokens: 65535,
14817
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14818
+ quotaInfo: {
14819
+ remainingFraction: 1,
14820
+ resetTime: "2026-05-29T18:30:05Z"
14821
+ },
14822
+ model: "MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING",
14823
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14824
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14825
+ modelExperiments: {
14826
+ experiments: {
14827
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14828
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14829
+ }
14830
+ }
14831
+ }
14832
+ },
14833
+ "gemini-2.5-pro": {
14834
+ displayName: "Gemini 2.5 Pro",
14835
+ supportsImages: true,
14836
+ supportsThinking: true,
14837
+ thinkingBudget: 1024,
14838
+ minThinkingBudget: 128,
14839
+ recommended: true,
14840
+ maxTokens: 1048576,
14841
+ maxOutputTokens: 65535,
14842
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14843
+ quotaInfo: {
14844
+ remainingFraction: 1,
14845
+ resetTime: "2026-05-29T18:30:05Z"
14846
+ },
14847
+ model: "MODEL_GOOGLE_GEMINI_2_5_PRO",
14848
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14849
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14850
+ supportedMimeTypes: {
14851
+ "video/audio/wav": true,
14852
+ "image/heic": true,
14853
+ "text/html": true,
14854
+ "application/x-python-code": true,
14855
+ "image/heif": true,
14856
+ "text/xml": true,
14857
+ "image/webp": true,
14858
+ "video/jpeg2000": true,
14859
+ "application/pdf": true,
14860
+ "text/csv": true,
14861
+ "image/jpeg": true,
14862
+ "text/markdown": true,
14863
+ "text/css": true,
14864
+ "audio/webm;codecs=opus": true,
14865
+ "application/json": true,
14866
+ "text/x-python-script": true,
14867
+ "video/audio/s16le": true,
14868
+ "text/javascript": true,
14869
+ "text/x-typescript": true,
14870
+ "text/plain": true,
14871
+ "application/x-typescript": true,
14872
+ "application/x-ipynb+json": true,
14873
+ "text/rtf": true,
14874
+ "video/text/timestamp": true,
14875
+ "video/webm": true,
14876
+ "text/x-python": true,
14877
+ "video/videoframe/jpeg2000": true,
14878
+ "application/x-javascript": true,
14879
+ "application/rtf": true,
14880
+ "video/mp4": true,
14881
+ "image/png": true
14882
+ },
14883
+ requiresImageOutputOutsideFunctionResponses: true,
14884
+ modelExperiments: {
14885
+ experiments: {
14886
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14887
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14888
+ }
14889
+ }
14890
+ }
14891
+ },
14892
+ "gemini-3.1-flash-image": {
14893
+ displayName: "Gemini 3.1 Flash Image",
14894
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14895
+ quotaInfo: {
14896
+ remainingFraction: 1,
14897
+ resetTime: "2026-05-29T18:30:05Z"
14898
+ },
14899
+ model: "MODEL_PLACEHOLDER_M21",
14900
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14901
+ modelProvider: "MODEL_PROVIDER_GOOGLE"
14902
+ },
14903
+ "gemini-pro-agent": {
14904
+ displayName: "Gemini 3.1 Pro (High)",
14905
+ supportsImages: true,
14906
+ supportsThinking: true,
14907
+ thinkingBudget: 10001,
14908
+ minThinkingBudget: 128,
14909
+ recommended: true,
14910
+ maxTokens: 1048576,
14911
+ maxOutputTokens: 65535,
14912
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14913
+ quotaInfo: {
14914
+ remainingFraction: 1,
14915
+ resetTime: "2026-05-29T18:30:05Z"
14916
+ },
14917
+ model: "MODEL_PLACEHOLDER_M16",
14918
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14919
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14920
+ supportsVideo: true,
14921
+ supportedMimeTypes: {
14922
+ "image/png": true,
14923
+ "image/heic": true,
14924
+ "text/plain": true,
14925
+ "video/mp4": true,
14926
+ "text/css": true,
14927
+ "text/rtf": true,
14928
+ "text/javascript": true,
14929
+ "audio/webm;codecs=opus": true,
14930
+ "application/x-typescript": true,
14931
+ "video/jpeg2000": true,
14932
+ "video/videoframe/jpeg2000": true,
14933
+ "application/rtf": true,
14934
+ "text/xml": true,
14935
+ "video/text/timestamp": true,
14936
+ "application/x-python-code": true,
14937
+ "text/markdown": true,
14938
+ "text/x-python": true,
14939
+ "image/webp": true,
14940
+ "application/x-javascript": true,
14941
+ "text/x-python-script": true,
14942
+ "application/json": true,
14943
+ "text/html": true,
14944
+ "video/webm": true,
14945
+ "video/audio/s16le": true,
14946
+ "application/x-ipynb+json": true,
14947
+ "image/jpeg": true,
14948
+ "text/x-typescript": true,
14949
+ "text/csv": true,
14950
+ "video/audio/wav": true,
14951
+ "image/heif": true,
14952
+ "application/pdf": true
14953
+ },
14954
+ modelExperiments: {
14955
+ experiments: {
14956
+ template__system_prompts__communication_style: {
14957
+ stringValue: "- Keep your responses concise.\n- Provide a summary of your work when you end your turn.\n- Format your responses in github-style markdown.\n- If you're unsure about the user's intent, ask for clarification rather than making assumptions.\n- You MUST create clickable links for all files and code symbols (classes, types, functions, structs). Use github style markdown links with the `file://` scheme (e.g., [filename](file:///path/to/file) or [ClassName](file:///path/to/file#L10-L20)`). For Windows, use forward slashes for paths.\n\nCRITICAL INSTRUCTION 1: You may have access to a variety of tools at your disposal. Some tools may be for a specific task such as 'view_file' (for viewing contents of a file). Others may be very broadly applicable such as the ability to run a command on a terminal. Always prioritize using the most specific tool you can for the task at hand. Here are some rules: (a) NEVER run cat inside a bash command to create a new file or append to an existing file. (b) ALWAYS use grep_search instead of running grep inside a bash command unless absolutely needed. (c) DO NOT use ls for listing, cat for viewing, grep for finding, sed for replacing.\nCRITICAL INSTRUCTION 2: Before making tool calls T, think and explicitly list out any related tools for the task at hand. You can only execute a set of tools T if all other tools in the list are either more generic or cannot be used for the task at hand. ALWAYS START your thought with recalling critical instructions 1 and 2. In particular, the format for the start of your thought block must be '...94>thought\\nCRITICAL INSTRUCTION 1: ...\\nCRITICAL INSTRUCTION 2: ...'."
14958
+ },
14959
+ template__system_prompts__identity: {
14960
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
14961
+ },
14962
+ template__system_prompts__planning_more_artifacts: {
14963
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
14964
+ },
14965
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
14966
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
14967
+ },
14968
+ "cascade-include-ephemeral-message": {
14969
+ stringValue: '{\n "enabled": true,\n "disabledHeuristics": ["running_tasks_reminder"],\n "staticMessages": [],\n "useAllowlist": false,\n "enabledHeuristics": []\n}'
14970
+ }
14971
+ }
14972
+ }
14973
+ },
14974
+ "gemini-3.5-flash-extra-low": {
14975
+ displayName: "Gemini 3.5 Flash (Low)",
14976
+ supportsImages: true,
14977
+ supportsThinking: true,
14978
+ thinkingBudget: 1e3,
14979
+ minThinkingBudget: 32,
14980
+ recommended: true,
14981
+ maxTokens: 1048576,
14982
+ maxOutputTokens: 65536,
14983
+ tokenizerType: "LLAMA_WITH_SPECIAL",
14984
+ quotaInfo: {
14985
+ remainingFraction: 1,
14986
+ resetTime: "2026-05-29T18:30:05Z"
14987
+ },
14988
+ model: "MODEL_PLACEHOLDER_M187",
14989
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
14990
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
14991
+ supportsVideo: true,
14992
+ tagTitle: "Fast",
14993
+ tagDescription: "Limited time",
14994
+ supportedMimeTypes: {
14995
+ "video/audio/s16le": true,
14996
+ "video/mp4": true,
14997
+ "image/heif": true,
14998
+ "application/x-typescript": true,
14999
+ "image/png": true,
15000
+ "video/jpeg2000": true,
15001
+ "text/csv": true,
15002
+ "text/x-python-script": true,
15003
+ "image/jpeg": true,
15004
+ "text/rtf": true,
15005
+ "text/x-python": true,
15006
+ "audio/webm;codecs=opus": true,
15007
+ "video/text/timestamp": true,
15008
+ "application/pdf": true,
15009
+ "image/webp": true,
15010
+ "application/x-javascript": true,
15011
+ "text/markdown": true,
15012
+ "application/x-ipynb+json": true,
15013
+ "video/audio/wav": true,
15014
+ "text/javascript": true,
15015
+ "application/rtf": true,
15016
+ "video/webm": true,
15017
+ "text/css": true,
15018
+ "text/html": true,
15019
+ "text/xml": true,
15020
+ "text/x-typescript": true,
15021
+ "application/x-python-code": true,
15022
+ "application/json": true,
15023
+ "image/heic": true,
15024
+ "text/plain": true,
15025
+ "video/videoframe/jpeg2000": true
15026
+ },
15027
+ modelExperiments: {
15028
+ experiments: {
15029
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15030
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SAME_MODEL",\n "max_token_limit": "256000",\n "token_threshold": "100000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": true,\n "is_sync": true,\n "max_user_requests": 10,\n "include_last_user_message": true,\n "include_conversation_log": false,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15031
+ },
15032
+ template__system_prompts__identity: {
15033
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
15034
+ },
15035
+ template__system_prompts__planning_more_artifacts: {
15036
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
15037
+ }
15038
+ }
15039
+ }
15040
+ },
15041
+ "gemini-3-flash-agent": {
15042
+ displayName: "Gemini 3.5 Flash (High)",
15043
+ supportsImages: true,
15044
+ supportsThinking: true,
15045
+ thinkingBudget: 1e4,
15046
+ minThinkingBudget: 32,
15047
+ recommended: true,
15048
+ maxTokens: 1048576,
15049
+ maxOutputTokens: 65536,
15050
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15051
+ quotaInfo: {
15052
+ remainingFraction: 1,
15053
+ resetTime: "2026-05-29T18:30:05Z"
15054
+ },
15055
+ model: "MODEL_PLACEHOLDER_M132",
15056
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15057
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15058
+ supportsVideo: true,
15059
+ tagTitle: "Fast",
15060
+ tagDescription: "Limited time",
15061
+ supportedMimeTypes: {
15062
+ "application/json": true,
15063
+ "text/html": true,
15064
+ "text/markdown": true,
15065
+ "image/webp": true,
15066
+ "video/text/timestamp": true,
15067
+ "application/pdf": true,
15068
+ "text/javascript": true,
15069
+ "application/rtf": true,
15070
+ "video/jpeg2000": true,
15071
+ "video/videoframe/jpeg2000": true,
15072
+ "text/csv": true,
15073
+ "text/x-python-script": true,
15074
+ "text/rtf": true,
15075
+ "image/png": true,
15076
+ "audio/webm;codecs=opus": true,
15077
+ "application/x-ipynb+json": true,
15078
+ "video/audio/wav": true,
15079
+ "video/audio/s16le": true,
15080
+ "video/webm": true,
15081
+ "text/x-python": true,
15082
+ "image/heif": true,
15083
+ "text/plain": true,
15084
+ "video/mp4": true,
15085
+ "application/x-javascript": true,
15086
+ "image/heic": true,
15087
+ "text/x-typescript": true,
15088
+ "application/x-python-code": true,
15089
+ "text/css": true,
15090
+ "image/jpeg": true,
15091
+ "text/xml": true,
15092
+ "application/x-typescript": true
15093
+ },
15094
+ modelExperiments: {
15095
+ experiments: {
15096
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15097
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SAME_MODEL",\n "max_token_limit": "256000",\n "token_threshold": "100000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": true,\n "is_sync": true,\n "max_user_requests": 10,\n "include_last_user_message": true,\n "include_conversation_log": false,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15098
+ },
15099
+ template__system_prompts__identity: {
15100
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
15101
+ },
15102
+ template__system_prompts__planning_more_artifacts: {
15103
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
15104
+ }
15105
+ }
15106
+ }
15107
+ },
15108
+ chat_23310: {
15109
+ maxTokens: 32768,
15110
+ tokenizerType: "QWEN2",
15111
+ quotaInfo: {
15112
+ remainingFraction: 1
15113
+ },
15114
+ model: "MODEL_CHAT_23310",
15115
+ apiProvider: "API_PROVIDER_INTERNAL",
15116
+ supportsCumulativeContext: true,
15117
+ supportsEstimateTokenCounter: true,
15118
+ isInternal: true,
15119
+ promptTemplaterType: "PROMPT_TEMPLATER_TYPE_CHATML",
15120
+ toolFormatterType: "TOOL_FORMATTER_TYPE_XML",
15121
+ requiresLeadInGeneration: true
15122
+ },
15123
+ chat_20706: {
15124
+ maxTokens: 16384,
15125
+ tokenizerType: "QWEN2",
15126
+ quotaInfo: {
15127
+ remainingFraction: 1
15128
+ },
15129
+ model: "MODEL_CHAT_20706",
15130
+ apiProvider: "API_PROVIDER_INTERNAL",
15131
+ supportsCumulativeContext: true,
15132
+ tabJumpPrintLineRange: true,
15133
+ supportsEstimateTokenCounter: true,
15134
+ isInternal: true,
15135
+ addCursorToFindReplaceTarget: true,
15136
+ promptTemplaterType: "PROMPT_TEMPLATER_TYPE_CHATML",
15137
+ toolFormatterType: "TOOL_FORMATTER_TYPE_XML",
15138
+ requiresLeadInGeneration: true
15139
+ },
15140
+ "gpt-oss-120b-medium": {
15141
+ displayName: "GPT-OSS 120B (Medium)",
15142
+ supportsThinking: true,
15143
+ thinkingBudget: 8192,
15144
+ recommended: true,
15145
+ maxTokens: 131072,
15146
+ maxOutputTokens: 32768,
15147
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15148
+ quotaInfo: {
15149
+ remainingFraction: 0.6,
15150
+ resetTime: "2026-05-29T19:43:59Z"
15151
+ },
15152
+ model: "MODEL_OPENAI_GPT_OSS_120B_MEDIUM",
15153
+ apiProvider: "API_PROVIDER_OPENAI_VERTEX",
15154
+ modelProvider: "MODEL_PROVIDER_OPENAI",
15155
+ modelExperiments: {
15156
+ experiments: {
15157
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15158
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_UNSPECIFIED",\n "max_token_limit": "80000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "8192",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15159
+ }
15160
+ }
15161
+ },
15162
+ vertexModelId: "openai/gpt-oss-120b-maas"
15163
+ },
15164
+ tab_flash_lite_preview: {
15165
+ maxTokens: 16384,
15166
+ maxOutputTokens: 4096,
15167
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15168
+ quotaInfo: {
15169
+ remainingFraction: 1
15170
+ },
15171
+ model: "MODEL_PLACEHOLDER_M19",
15172
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15173
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15174
+ supportsCumulativeContext: true,
15175
+ supportsEstimateTokenCounter: true,
15176
+ toolFormatterType: "TOOL_FORMATTER_TYPE_XML",
15177
+ requiresLeadInGeneration: true
15178
+ },
15179
+ "gemini-2.5-flash-lite": {
15180
+ displayName: "Gemini 3.1 Flash Lite",
15181
+ maxTokens: 1048576,
15182
+ maxOutputTokens: 65535,
15183
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15184
+ quotaInfo: {
15185
+ remainingFraction: 1,
15186
+ resetTime: "2026-05-29T18:30:05Z"
15187
+ },
15188
+ model: "MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE",
15189
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15190
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15191
+ modelExperiments: {
15192
+ experiments: {
15193
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15194
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15195
+ }
15196
+ }
15197
+ }
15198
+ },
15199
+ "gemini-3.1-flash-lite": {
15200
+ displayName: "Gemini 3.1 Flash Lite",
15201
+ maxTokens: 1048576,
15202
+ maxOutputTokens: 65535,
15203
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15204
+ quotaInfo: {
15205
+ remainingFraction: 1,
15206
+ resetTime: "2026-05-29T18:30:05Z"
15207
+ },
15208
+ model: "MODEL_PLACEHOLDER_M50",
15209
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15210
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15211
+ modelExperiments: {
15212
+ experiments: {
15213
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15214
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15215
+ }
15216
+ }
15217
+ }
15218
+ },
15219
+ "gemini-3-flash": {
15220
+ displayName: "Gemini 3 Flash",
15221
+ supportsImages: true,
15222
+ supportsThinking: true,
15223
+ thinkingBudget: -1,
15224
+ minThinkingBudget: 32,
15225
+ recommended: true,
15226
+ maxTokens: 1048576,
15227
+ maxOutputTokens: 65536,
15228
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15229
+ quotaInfo: {
15230
+ remainingFraction: 1,
15231
+ resetTime: "2026-05-29T18:30:05Z"
15232
+ },
15233
+ model: "MODEL_PLACEHOLDER_M18",
15234
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15235
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15236
+ supportsVideo: true,
15237
+ supportedMimeTypes: {
15238
+ "text/csv": true,
15239
+ "text/html": true,
15240
+ "application/x-typescript": true,
15241
+ "image/heic": true,
15242
+ "audio/webm;codecs=opus": true,
15243
+ "text/javascript": true,
15244
+ "video/videoframe/jpeg2000": true,
15245
+ "video/mp4": true,
15246
+ "application/x-python-code": true,
15247
+ "video/text/timestamp": true,
15248
+ "video/audio/wav": true,
15249
+ "video/jpeg2000": true,
15250
+ "text/css": true,
15251
+ "video/audio/s16le": true,
15252
+ "application/x-javascript": true,
15253
+ "text/x-python-script": true,
15254
+ "text/markdown": true,
15255
+ "image/webp": true,
15256
+ "text/x-python": true,
15257
+ "application/pdf": true,
15258
+ "application/x-ipynb+json": true,
15259
+ "image/heif": true,
15260
+ "application/json": true,
15261
+ "text/x-typescript": true,
15262
+ "text/plain": true,
15263
+ "image/png": true,
15264
+ "application/rtf": true,
15265
+ "text/xml": true,
15266
+ "image/jpeg": true,
15267
+ "video/webm": true,
15268
+ "text/rtf": true
15269
+ },
15270
+ modelExperiments: {
15271
+ experiments: {
15272
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15273
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15274
+ },
15275
+ template__system_prompts__communication_style: {
15276
+ stringValue: '- Keep your responses concise.\n- Provide a summary of your work when you end your turn. Ground your response in the work you did. Keep your tone professional and avoid overconfident language, bragging, or overclaiming success.\n- AVOID using superlatives such as "perfectly", "flawlessly", "100% correct", "Summary of Accomplishments" etc. to summarize your work for the user. Be humble.\n- AVOID over-the-top politeness or complimenting the user excessively.\n- Format your responses in github-style markdown.'
15277
+ }
15278
+ }
15279
+ }
15280
+ },
15281
+ "claude-sonnet-4-6": {
15282
+ displayName: "Claude Sonnet 4.6 (Thinking)",
15283
+ supportsImages: true,
15284
+ supportsThinking: true,
15285
+ thinkingBudget: 1024,
15286
+ recommended: true,
15287
+ maxTokens: 25e4,
15288
+ maxOutputTokens: 64e3,
15289
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15290
+ quotaInfo: {
15291
+ remainingFraction: 0.6,
15292
+ resetTime: "2026-05-29T19:43:59Z"
15293
+ },
15294
+ model: "MODEL_PLACEHOLDER_M35",
15295
+ apiProvider: "API_PROVIDER_ANTHROPIC_VERTEX",
15296
+ modelProvider: "MODEL_PROVIDER_ANTHROPIC",
15297
+ supportedMimeTypes: {
15298
+ "image/png": true,
15299
+ "image/webp": true,
15300
+ "video/jpeg2000": true,
15301
+ "video/videoframe/jpeg2000": true,
15302
+ "image/heic": true,
15303
+ "image/heif": true,
15304
+ "image/jpeg": true
15305
+ },
15306
+ modelExperiments: {
15307
+ experiments: {
15308
+ template__system_prompts__planning_more_artifacts: {
15309
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
15310
+ },
15311
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15312
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_UNSPECIFIED",\n "max_token_limit": "160000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15313
+ },
15314
+ template__system_prompts__identity: {
15315
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
15316
+ }
15317
+ }
15318
+ },
15319
+ vertexModelId: "claude-sonnet-4-6@default"
15320
+ },
15321
+ "gemini-3.1-pro-low": {
15322
+ displayName: "Gemini 3.1 Pro (Low)",
15323
+ supportsImages: true,
15324
+ supportsThinking: true,
15325
+ thinkingBudget: 1001,
15326
+ minThinkingBudget: 128,
15327
+ recommended: true,
15328
+ maxTokens: 1048576,
15329
+ maxOutputTokens: 65535,
15330
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15331
+ quotaInfo: {
15332
+ remainingFraction: 1,
15333
+ resetTime: "2026-05-29T18:30:05Z"
15334
+ },
15335
+ model: "MODEL_PLACEHOLDER_M36",
15336
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15337
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15338
+ supportsVideo: true,
15339
+ supportedMimeTypes: {
15340
+ "text/x-typescript": true,
15341
+ "audio/webm;codecs=opus": true,
15342
+ "image/webp": true,
15343
+ "application/json": true,
15344
+ "application/rtf": true,
15345
+ "text/x-python": true,
15346
+ "video/mp4": true,
15347
+ "text/csv": true,
15348
+ "video/text/timestamp": true,
15349
+ "text/css": true,
15350
+ "image/heif": true,
15351
+ "application/x-typescript": true,
15352
+ "text/x-python-script": true,
15353
+ "application/x-python-code": true,
15354
+ "text/plain": true,
15355
+ "video/webm": true,
15356
+ "video/audio/wav": true,
15357
+ "image/jpeg": true,
15358
+ "text/xml": true,
15359
+ "application/x-javascript": true,
15360
+ "text/javascript": true,
15361
+ "text/html": true,
15362
+ "video/jpeg2000": true,
15363
+ "image/heic": true,
15364
+ "application/pdf": true,
15365
+ "video/audio/s16le": true,
15366
+ "text/markdown": true,
15367
+ "video/videoframe/jpeg2000": true,
15368
+ "image/png": true,
15369
+ "application/x-ipynb+json": true,
15370
+ "text/rtf": true
15371
+ },
15372
+ modelExperiments: {
15373
+ experiments: {
15374
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15375
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SINGLE_PROMPT",\n "max_token_limit": "128000",\n "token_threshold": "50000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": false,\n "is_sync": false,\n "max_user_requests": 10,\n "include_last_user_message": false,\n "include_conversation_log": true,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15376
+ },
15377
+ "cascade-include-ephemeral-message": {
15378
+ stringValue: '{\n "enabled": true,\n "disabledHeuristics": ["running_tasks_reminder"],\n "staticMessages": [],\n "useAllowlist": false,\n "enabledHeuristics": []\n}'
15379
+ },
15380
+ template__system_prompts__communication_style: {
15381
+ stringValue: "- Keep your responses concise.\n- Provide a summary of your work when you end your turn.\n- Format your responses in github-style markdown.\n- If you're unsure about the user's intent, ask for clarification rather than making assumptions.\n- You MUST create clickable links for all files and code symbols (classes, types, functions, structs). Use github style markdown links with the `file://` scheme (e.g., [filename](file:///path/to/file) or [ClassName](file:///path/to/file#L10-L20)`). For Windows, use forward slashes for paths.\n\nCRITICAL INSTRUCTION 1: You may have access to a variety of tools at your disposal. Some tools may be for a specific task such as 'view_file' (for viewing contents of a file). Others may be very broadly applicable such as the ability to run a command on a terminal. Always prioritize using the most specific tool you can for the task at hand. Here are some rules: (a) NEVER run cat inside a bash command to create a new file or append to an existing file. (b) ALWAYS use grep_search instead of running grep inside a bash command unless absolutely needed. (c) DO NOT use ls for listing, cat for viewing, grep for finding, sed for replacing.\nCRITICAL INSTRUCTION 2: Before making tool calls T, think and explicitly list out any related tools for the task at hand. You can only execute a set of tools T if all other tools in the list are either more generic or cannot be used for the task at hand. ALWAYS START your thought with recalling critical instructions 1 and 2. In particular, the format for the start of your thought block must be '...94>thought\\nCRITICAL INSTRUCTION 1: ...\\nCRITICAL INSTRUCTION 2: ...'."
15382
+ },
15383
+ template__system_prompts__identity: {
15384
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
15385
+ },
15386
+ template__system_prompts__planning_more_artifacts: {
15387
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
15388
+ }
15389
+ }
15390
+ }
15391
+ },
15392
+ "gemini-3.5-flash-low": {
15393
+ displayName: "Gemini 3.5 Flash (Medium)",
15394
+ supportsImages: true,
15395
+ supportsThinking: true,
15396
+ thinkingBudget: 4e3,
15397
+ minThinkingBudget: 32,
15398
+ recommended: true,
15399
+ maxTokens: 1048576,
15400
+ maxOutputTokens: 65536,
15401
+ tokenizerType: "LLAMA_WITH_SPECIAL",
15402
+ quotaInfo: {
15403
+ remainingFraction: 1,
15404
+ resetTime: "2026-05-29T18:30:05Z"
15405
+ },
15406
+ model: "MODEL_PLACEHOLDER_M20",
15407
+ apiProvider: "API_PROVIDER_GOOGLE_GEMINI",
15408
+ modelProvider: "MODEL_PROVIDER_GOOGLE",
15409
+ supportsVideo: true,
15410
+ tagTitle: "Fast",
15411
+ tagDescription: "Limited time",
15412
+ supportedMimeTypes: {
15413
+ "video/mp4": true,
15414
+ "text/x-python": true,
15415
+ "image/heic": true,
15416
+ "application/x-ipynb+json": true,
15417
+ "text/markdown": true,
15418
+ "video/text/timestamp": true,
15419
+ "application/x-javascript": true,
15420
+ "video/videoframe/jpeg2000": true,
15421
+ "text/xml": true,
15422
+ "text/x-python-script": true,
15423
+ "image/heif": true,
15424
+ "application/rtf": true,
15425
+ "video/jpeg2000": true,
15426
+ "application/pdf": true,
15427
+ "text/css": true,
15428
+ "application/json": true,
15429
+ "image/webp": true,
15430
+ "text/csv": true,
15431
+ "text/javascript": true,
15432
+ "text/plain": true,
15433
+ "video/audio/wav": true,
15434
+ "image/png": true,
15435
+ "application/x-python-code": true,
15436
+ "video/audio/s16le": true,
15437
+ "audio/webm;codecs=opus": true,
15438
+ "video/webm": true,
15439
+ "image/jpeg": true,
15440
+ "text/rtf": true,
15441
+ "text/html": true,
15442
+ "application/x-typescript": true,
15443
+ "text/x-typescript": true
15444
+ },
15445
+ modelExperiments: {
15446
+ experiments: {
15447
+ template__system_prompts__identity: {
15448
+ stringValue: "You are Antigravity, a powerful agentic AI coding assistant designed by the Google DeepMind team working on Advanced Agentic Coding.\nYou are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.\nThe USER will send you requests, which you must always prioritize addressing. User requests are enclosed within <USER_REQUEST> tags. Along with each USER request, we will attach additional metadata about their current state, such as what files they have open and where their cursor is.\nThis information may or may not be relevant to the coding task, it is up for you to decide."
15449
+ },
15450
+ template__system_prompts__planning_more_artifacts: {
15451
+ stringValue: "When in planning mode, you will work with three special artifacts.\n\n# Tasks\nPath: {{ArtifactDirectoryPath}}/task.md\n\n**Purpose**: A TODO list to organize your work during execution. Create this artifact after receiving user approval on your implementation plan. Break down complex tasks into component-level items and track progress as a living document.\n\n**Format**:\n```markdown\n- `[ ]` uncompleted tasks\n- `[/]` in progress tasks (custom notation)\n- `[x]` completed tasks\n- Use indented lists for sub-items\n```\n\n**Updating task.md**: Mark items as `[/]` when starting work on them, and `[x]` when completed. Update task.md as you make progress through your checklist.\n\n# Implementation Plan\nPath: {{ArtifactDirectoryPath}}/implementation_plan.md\n\n**Purpose**: A detailed design document to present your technical implementation plan to the user for feedback and approval.\nAfter reading the document, the user should understand the key technical details of your plan, and be able to make an informed decision on whether to approve it.\n\n**Format**: Use the following format, omitting any irrelevant sections.\n```markdown\n# [Goal Description]\n\nProvide a brief description of the problem, any background context, and what the change accomplishes.\n\n## User Review Required\n\nDocument anything that requires user review or feedback, for example, breaking changes or significant design decisions. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Open Questions\n\nAny clarifying or design questions for the user that will impact the implementation plan. Use GitHub alerts (IMPORTANT/WARNING/CAUTION) to highlight critical items.\n\n## Proposed Changes\n\nGroup files by component (e.g., package, feature area, dependency layer) and order logically (dependencies first). Separate components with horizontal rules for visual clarity.\n\n### [Component Name]\n\nSummary of what will change in this component, separated by files. For specific files, Use [NEW] and [DELETE] to demarcate new and deleted files, for example:\n\n#### [MODIFY] [file basename](file:///absolute/path/to/modifiedfile)\n#### [NEW] [file basename](file:///absolute/path/to/newfile)\n#### [DELETE] [file basename](file:///absolute/path/to/deletedfile)\n\n## Verification Plan\n\nSummary of how you will verify that your changes have the desired effects.\n\n### Automated Tests\n- The commands of any automated tests you'll run.\n\n### Manual Verification\n- Asking the user to deploy to staging and testing, verifying UI changes on an iOS app etc.\n```\n\n# Walkthrough\nPath: {{ArtifactDirectoryPath}}/walkthrough.md\n\n**Purpose**: After completing work, summarize what you accomplished. Update an existing walkthrough for related follow-up work rather than creating a new one.\n\n**Document**:\n- Changes made\n- What was tested\n- Validation results\n\nEmbed screenshots and recordings to visually demonstrate UI changes and user flows.\n"
15452
+ },
15453
+ CASCADE_USE_EXPERIMENT_CHECKPOINTER: {
15454
+ stringValue: '{\n "strategy": "CHECKPOINT_STRATEGY_SAME_MODEL",\n "max_token_limit": "256000",\n "token_threshold": "100000",\n "max_overhead_ratio": "0.15",\n "moving_window_size": "1",\n "enabled": true,\n "max_output_tokens": "16384",\n "checkpoint_model": "MODEL_PLACEHOLDER_M50",\n "use_last_planner_model": true,\n "is_sync": true,\n "max_user_requests": 10,\n "include_last_user_message": true,\n "include_conversation_log": false,\n "include_running_task_snapshots": true,\n "include_subagent_snapshots": true,\n "include_artifact_snapshots": true,\n "retry_config": {\n "max_retries": 0,\n "initial_sleep_duration_ms": 1000,\n "exponential_multiplier": 2,\n "include_error_feedback": false\n }\n}'
15455
+ }
15456
+ }
15457
+ }
15458
+ }
15459
+ },
15460
+ defaultAgentModelId: "gemini-3.5-flash",
15461
+ agentModelSorts: [
15462
+ {
15463
+ displayName: "Recommended",
15464
+ groups: [
15465
+ {
15466
+ modelIds: [
15467
+ "gemini-3.5-flash",
15468
+ "gemini-3.1-pro",
15469
+ "claude-sonnet-4-6",
15470
+ "claude-opus-4-6-thinking",
15471
+ "gpt-oss-120b-medium"
15472
+ ]
15473
+ }
15474
+ ]
15475
+ }
15476
+ ],
15477
+ commandModelIds: [
15478
+ "gemini-3-flash"
15479
+ ],
15480
+ tabModelIds: [
15481
+ "chat_20706",
15482
+ "chat_23310"
15483
+ ],
15484
+ imageGenerationModelIds: [
15485
+ "gemini-3.1-flash-image"
15486
+ ],
15487
+ mqueryModelIds: [
15488
+ "gemini-3.1-flash-lite"
15489
+ ],
15490
+ webSearchModelIds: [
15491
+ "gemini-3.1-flash-lite"
15492
+ ],
15493
+ deprecatedModelIds: {
15494
+ "gemini-3.1-pro-high": {
15495
+ newModelId: "gemini-pro-agent",
15496
+ oldModelEnum: "MODEL_PLACEHOLDER_M37",
15497
+ newModelEnum: "MODEL_PLACEHOLDER_M16"
15498
+ }
15499
+ },
15500
+ commitMessageModelIds: [
15501
+ "gemini-3.1-flash-lite"
15502
+ ],
15503
+ audioTranscriptionModelIds: [
15504
+ "models/proactive-observer"
15505
+ ],
15506
+ experimentIds: [
15507
+ 106101246,
15508
+ 106168863,
15509
+ 105979552,
15510
+ 105979574,
15511
+ 106015333,
15512
+ 105979579,
15513
+ 105867471,
15514
+ 106123599,
15515
+ 106076629,
15516
+ 106100625,
15517
+ 105930909,
15518
+ 106143956,
15519
+ 105879567,
15520
+ 105856899,
15521
+ 106064030,
15522
+ 105757908,
15523
+ 106240760,
15524
+ 106106760,
15525
+ 106021688,
15526
+ 106014288,
15527
+ 105887299,
15528
+ 106278607,
15529
+ 106212376,
15530
+ 106281951,
15531
+ 106264532,
15532
+ 106044947,
15533
+ 106032303,
15534
+ 106228452,
15535
+ 106121606,
15536
+ 105979531,
15537
+ 105979553,
15538
+ 106015328,
15539
+ 105867469,
15540
+ 106123597,
15541
+ 106100654,
15542
+ 106064028,
15543
+ 106240748,
15544
+ 106038164,
15545
+ 106032301,
15546
+ 106121604
15547
+ ],
15548
+ tieredModelIds: {
15549
+ flashLite: [
15550
+ "gemini-3.1-flash-lite"
15551
+ ],
15552
+ flash: [
15553
+ "gemini-3-flash-agent"
15554
+ ],
15555
+ pro: [
15556
+ "gemini-3.1-pro-low"
15557
+ ]
15558
+ }
15559
+ };
15560
+
14663
15561
  // src/sdk/request-helpers/types.ts
14664
15562
  var GEMINI_PREVIEW_LINK = "https://goo.gle/enable-preview-features";
14665
15563
  var CLOUDCODE_DOMAINS2 = [
@@ -14920,7 +15818,8 @@ import { randomUUID as randomUUID2 } from "crypto";
14920
15818
 
14921
15819
  // src/sdk/request/shared.ts
14922
15820
  var REQUEST_MODEL_FALLBACKS = {
14923
- "gemini-2.5-flash-image": "gemini-2.5-flash"
15821
+ "gemini-2.5-flash-image": "gemini-2.5-flash",
15822
+ "gemini-3.1-pro-high": "gemini-pro-agent"
14924
15823
  };
14925
15824
  var GENERATIVE_LANGUAGE_HOST = new URL(AGY_GENERATIVE_LANGUAGE_ENDPOINT).host;
14926
15825
  var CODE_ASSIST_HOST_SUFFIX = "cloudcode-pa.googleapis.com";
@@ -15389,6 +16288,9 @@ function deduplicateThinkingText(response, sentBuffer, displayedThinkingHashes)
15389
16288
  return block;
15390
16289
  });
15391
16290
  const filteredContent = newContent.filter((b) => b !== null);
16291
+ if (filteredContent.length === 0) {
16292
+ return { ...resp, content: [] };
16293
+ }
15392
16294
  return { ...resp, content: filteredContent };
15393
16295
  }
15394
16296
  return response;
@@ -15531,6 +16433,11 @@ function createStreamingTransformer(signatureStore, callbacks, options = {}) {
15531
16433
  if (!hasSeenUsageMetadata) {
15532
16434
  const syntheticUsage = {
15533
16435
  response: {
16436
+ candidates: [
16437
+ {
16438
+ finishReason: "STOP"
16439
+ }
16440
+ ],
15534
16441
  usageMetadata: {
15535
16442
  promptTokenCount: 0,
15536
16443
  candidatesTokenCount: 0,
@@ -15605,6 +16512,17 @@ function prepareAgyRequest(input, init, accessToken, projectId, thinkingConfigDe
15605
16512
  sessionId
15606
16513
  };
15607
16514
  }
16515
+ function getModelEnum(modelName) {
16516
+ const models = models_default.models;
16517
+ if (models && models[modelName] && models[modelName].model) {
16518
+ return models[modelName].model;
16519
+ }
16520
+ const deprecated = models_default.deprecatedModelIds;
16521
+ if (deprecated && deprecated[modelName] && deprecated[modelName].oldModelEnum) {
16522
+ return deprecated[modelName].oldModelEnum;
16523
+ }
16524
+ return "MODEL_PLACEHOLDER_M16";
16525
+ }
15608
16526
  function transformRequestBody(body, projectId, effectiveModel, requestedModel, thinkingConfigDefaults) {
15609
16527
  const fallbackId = randomUUID3();
15610
16528
  try {
@@ -15633,7 +16551,7 @@ function transformRequestBody(body, projectId, effectiveModel, requestedModel, t
15633
16551
  requestPayloadInside.labels = {
15634
16552
  last_execution_id: randomUUID3(),
15635
16553
  last_step_index: "0",
15636
- model_enum: "MODEL_PLACEHOLDER_M16",
16554
+ model_enum: getModelEnum(effectiveModel),
15637
16555
  trajectory_id: randomUUID3(),
15638
16556
  used_claude: "false",
15639
16557
  used_claude_conservative: "false"
@@ -15644,29 +16562,15 @@ function transformRequestBody(body, projectId, effectiveModel, requestedModel, t
15644
16562
  }
15645
16563
  if (requestPayloadInside && Array.isArray(requestPayloadInside.contents)) {
15646
16564
  let contents2 = requestPayloadInside.contents;
16565
+ injectMissingToolCallIds(contents2);
16566
+ fixOrphanedFunctionResponses(contents2);
15647
16567
  const state = analyzeConversationState(contents2);
15648
16568
  if (needsThinkingRecovery(state)) {
15649
16569
  contents2 = closeToolLoopForThinking(contents2);
15650
16570
  }
15651
16571
  contents2 = normalizeContentsSequence(contents2);
15652
- injectMissingToolCallIds(contents2);
15653
16572
  const latestSig = getLatestSignature(sessionId2);
15654
- const allFunctionCalls = [];
15655
- for (const content of contents2) {
15656
- if (content && typeof content === "object" && Array.isArray(content.parts)) {
15657
- for (const part of content.parts) {
15658
- if (part && typeof part === "object" && part.functionCall) {
15659
- allFunctionCalls.push(part);
15660
- }
15661
- }
15662
- }
15663
- }
15664
- if (allFunctionCalls.length > 0 && latestSig) {
15665
- const lastFunctionCall = allFunctionCalls[allFunctionCalls.length - 1];
15666
- if (!lastFunctionCall.thoughtSignature || lastFunctionCall.thoughtSignature === "skip_thought_signature_validator") {
15667
- lastFunctionCall.thoughtSignature = latestSig;
15668
- }
15669
- }
16573
+ applyLatestSignature(contents2, latestSig);
15670
16574
  requestPayloadInside.contents = contents2;
15671
16575
  }
15672
16576
  return { body: JSON.stringify(wrappedBody2), userPromptId: userPromptId2, sessionId: sessionId2 };
@@ -15687,29 +16591,15 @@ function transformRequestBody(body, projectId, effectiveModel, requestedModel, t
15687
16591
  const { userPromptId, sessionId, requestId } = normalizeRequestPayloadIdentifiers(requestPayload);
15688
16592
  let contents = requestPayload.contents;
15689
16593
  if (Array.isArray(contents)) {
16594
+ injectMissingToolCallIds(contents);
16595
+ fixOrphanedFunctionResponses(contents);
15690
16596
  const state = analyzeConversationState(contents);
15691
16597
  if (needsThinkingRecovery(state)) {
15692
16598
  contents = closeToolLoopForThinking(contents);
15693
16599
  }
15694
16600
  contents = normalizeContentsSequence(contents);
15695
- injectMissingToolCallIds(contents);
15696
16601
  const latestSig = getLatestSignature(sessionId);
15697
- const allFunctionCalls = [];
15698
- for (const content of contents) {
15699
- if (content && typeof content === "object" && Array.isArray(content.parts)) {
15700
- for (const part of content.parts) {
15701
- if (part && typeof part === "object" && part.functionCall) {
15702
- allFunctionCalls.push(part);
15703
- }
15704
- }
15705
- }
15706
- }
15707
- if (allFunctionCalls.length > 0 && latestSig) {
15708
- const lastFunctionCall = allFunctionCalls[allFunctionCalls.length - 1];
15709
- if (!lastFunctionCall.thoughtSignature || lastFunctionCall.thoughtSignature === "skip_thought_signature_validator") {
15710
- lastFunctionCall.thoughtSignature = latestSig;
15711
- }
15712
- }
16602
+ applyLatestSignature(contents, latestSig);
15713
16603
  requestPayload.contents = contents;
15714
16604
  }
15715
16605
  if ("model" in requestPayload) {
@@ -15719,7 +16609,7 @@ function transformRequestBody(body, projectId, effectiveModel, requestedModel, t
15719
16609
  requestPayload.labels = {
15720
16610
  last_execution_id: randomUUID3(),
15721
16611
  last_step_index: "0",
15722
- model_enum: "MODEL_PLACEHOLDER_M16",
16612
+ model_enum: getModelEnum(effectiveModel),
15723
16613
  trajectory_id: randomUUID3(),
15724
16614
  used_claude: "false",
15725
16615
  used_claude_conservative: "false"
@@ -15949,6 +16839,59 @@ function injectMissingToolCallIds(contents) {
15949
16839
  }
15950
16840
  }
15951
16841
  }
16842
+ function applyLatestSignature(contents, latestSig) {
16843
+ const allFunctionCalls = [];
16844
+ for (const content of contents) {
16845
+ if (content && typeof content === "object" && Array.isArray(content.parts)) {
16846
+ for (const part of content.parts) {
16847
+ if (part && typeof part === "object" && part.functionCall) {
16848
+ allFunctionCalls.push(part);
16849
+ }
16850
+ }
16851
+ }
16852
+ }
16853
+ if (allFunctionCalls.length > 0 && latestSig) {
16854
+ const lastFunctionCall = allFunctionCalls[allFunctionCalls.length - 1];
16855
+ if (!lastFunctionCall.thoughtSignature || lastFunctionCall.thoughtSignature === "skip_thought_signature_validator") {
16856
+ lastFunctionCall.thoughtSignature = latestSig;
16857
+ }
16858
+ }
16859
+ }
16860
+ function fixOrphanedFunctionResponses(contents) {
16861
+ const validCallIds = /* @__PURE__ */ new Set();
16862
+ for (const content of contents) {
16863
+ if (!content || typeof content !== "object" || !Array.isArray(content.parts)) {
16864
+ continue;
16865
+ }
16866
+ for (const part of content.parts) {
16867
+ if (part && typeof part === "object" && part.functionCall && part.functionCall.id) {
16868
+ validCallIds.add(part.functionCall.id);
16869
+ }
16870
+ }
16871
+ }
16872
+ for (const content of contents) {
16873
+ if (!content || typeof content !== "object" || !Array.isArray(content.parts)) {
16874
+ continue;
16875
+ }
16876
+ for (const part of content.parts) {
16877
+ if (part && typeof part === "object" && part.functionResponse) {
16878
+ const id = part.functionResponse.id;
16879
+ if (!id || !validCallIds.has(id)) {
16880
+ const name = part.functionResponse.name || "unknown_tool";
16881
+ const responseObj = part.functionResponse.response || {};
16882
+ let responseStr = "";
16883
+ try {
16884
+ responseStr = typeof responseObj === "string" ? responseObj : JSON.stringify(responseObj);
16885
+ } catch (e) {
16886
+ responseStr = String(responseObj);
16887
+ }
16888
+ part.text = `[Orphaned Tool Response for ${name}]: ${responseStr}`;
16889
+ delete part.functionResponse;
16890
+ }
16891
+ }
16892
+ }
16893
+ }
16894
+ }
15952
16895
 
15953
16896
  // src/sdk/request/response.ts
15954
16897
  async function transformAgyResponse(response, streaming, _ignoredDebugContext, requestedModel, sessionId, chatLogger) {
@@ -16358,8 +17301,8 @@ var TIER_MAPPING = {
16358
17301
  },
16359
17302
  "gemini-3.1-pro": {
16360
17303
  low: "gemini-3.1-pro-low",
16361
- medium: "gemini-pro-agent",
16362
- high: "gemini-pro-agent"
17304
+ medium: "gemini-3.1-pro-high",
17305
+ high: "gemini-3.1-pro-high"
16363
17306
  }
16364
17307
  };
16365
17308
  var buildModelFromSimple = (modelId, simple) => {