Skip to content

Commit c1e81d5

Browse files
authored
Merge branch 'google-gemini:main' into main
2 parents e9fb0b0 + dadd606 commit c1e81d5

File tree

175 files changed

+8056
-1435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+8056
-1435
lines changed

docs/cli/model-routing.md

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,6 @@ Here's how it works:
2525
`packages/cli/src/zed-integration/zedIntegration.ts` which checks if
2626
`isInFallbackMode()` is true.
2727

28-
## Configuration
29-
30-
Model routing is controlled by the `useModelRouter` setting in your
31-
`settings.json` file.
32-
33-
- **`"experimental.useModelRouter": true` (Default):** Enables the model
34-
routing/fallback feature.
35-
36-
- **`"experimental.useModelRouter": false`:** Disables the model
37-
routing/fallback feature. If a model fails, the CLI will not attempt to switch
38-
to a fallback model.
39-
4028
### Model Selection Precedence
4129

4230
The model used by Gemini CLI is determined by the following order of precedence:
@@ -50,7 +38,4 @@ The model used by Gemini CLI is determined by the following order of precedence:
5038
model specified in the `model.name` property of your `settings.json` file
5139
will be used.
5240
4. **Default Model:** If none of the above are set, the default model will be
53-
used. The default model is determined by the `useModelRouter` setting:
54-
- If `useModelRouter` is `true`, the default model is `"auto"`.
55-
- If `useModelRouter` is `false`, the default model is the standard Gemini
56-
model.
41+
used. The default model is `auto`

docs/cli/settings.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ they appear in the UI.
106106

107107
### Experimental
108108

109-
| UI Label | Setting | Description | Default |
110-
| ----------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------- | ------- |
111-
| Use Model Router | `experimental.useModelRouter` | Enable model routing to route requests to the best model based on complexity. | `true` |
112-
| Enable Codebase Investigator | `experimental.codebaseInvestigatorSettings.enabled` | Enable the Codebase Investigator agent. | `true` |
113-
| Codebase Investigator Max Num Turns | `experimental.codebaseInvestigatorSettings.maxNumTurns` | Maximum number of turns for the Codebase Investigator agent. | `10` |
109+
| UI Label | Setting | Description | Default |
110+
| ----------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ | ------- |
111+
| Enable Codebase Investigator | `experimental.codebaseInvestigatorSettings.enabled` | Enable the Codebase Investigator agent. | `true` |
112+
| Codebase Investigator Max Num Turns | `experimental.codebaseInvestigatorSettings.maxNumTurns` | Maximum number of turns for the Codebase Investigator agent. | `10` |

docs/cli/tutorials.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This page contains tutorials for interacting with Gemini CLI.
88
> and understand the tools it provides. Your use of third-party servers is at
99
> your own risk.
1010
11-
This tutorial demonstrates how to set up a MCP server, using the
11+
This tutorial demonstrates how to set up an MCP server, using the
1212
[GitHub MCP server](https://github.com/github/github-mcp-server) as an example.
1313
The GitHub MCP server provides tools for interacting with GitHub repositories,
1414
such as creating issues and commenting on pull requests.

docs/extensions/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,11 @@ gemini extensions install <source> [--ref <ref>] [--auto-update] [--pre-release]
5454

5555
### Uninstalling an extension
5656

57-
To uninstall, run `gemini extensions uninstall <name>`:
57+
To uninstall one or more extensions, run
58+
`gemini extensions uninstall <name...>`:
5859

5960
```
60-
gemini extensions uninstall gemini-cli-security
61+
gemini extensions uninstall gemini-cli-security gemini-cli-another-extension
6162
```
6263

6364
### Disabling an extension

docs/get-started/authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ To avoid setting environment variables in every terminal session, you can:
256256
257257
## Non-interactive mode / headless environments
258258
259-
Non-interative mode / headless environments will use your existing
259+
Non-interactive mode / headless environments will use your existing
260260
authentication method, if an existing authentication credential is cached.
261261
262262
If you have not already logged in with an authentication credential (such as a

docs/get-started/configuration.md

Lines changed: 187 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ their corresponding top-level category object in your `settings.json` file.
240240
- **`ui.useAlternateBuffer`** (boolean):
241241
- **Description:** Use an alternate screen buffer for the UI, preserving shell
242242
history.
243-
- **Default:** `true`
243+
- **Default:** `false`
244244
- **Requires restart:** Yes
245245

246246
- **`ui.incrementalRendering`** (boolean):
@@ -317,7 +317,187 @@ their corresponding top-level category object in your `settings.json` file.
317317
- **Description:** Named presets for model configs. Can be used in place of a
318318
model name and can inherit from other aliases using an `extends` property.
319319
- **Default:**
320-
`{"base":{"modelConfig":{"generateContentConfig":{"temperature":0,"topP":1}}},"chat-base":{"extends":"base","modelConfig":{"generateContentConfig":{"thinkingConfig":{"includeThoughts":true},"temperature":1,"topP":0.95,"topK":64}}},"chat-base-2.5":{"extends":"chat-base","modelConfig":{"generateContentConfig":{"thinkingConfig":{"thinkingBudget":8192}}}},"chat-base-3":{"extends":"chat-base","modelConfig":{"generateContentConfig":{"thinkingConfig":{"thinkingLevel":"HIGH"}}}},"gemini-3-pro-preview":{"extends":"chat-base-3","modelConfig":{"model":"gemini-3-pro-preview"}},"gemini-2.5-pro":{"extends":"chat-base-2.5","modelConfig":{"model":"gemini-2.5-pro"}},"gemini-2.5-flash":{"extends":"chat-base-2.5","modelConfig":{"model":"gemini-2.5-flash"}},"gemini-2.5-flash-lite":{"extends":"chat-base-2.5","modelConfig":{"model":"gemini-2.5-flash-lite"}},"gemini-2.5-flash-base":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash"}},"classifier":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash-lite","generateContentConfig":{"maxOutputTokens":1024,"thinkingConfig":{"thinkingBudget":512}}}},"prompt-completion":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash-lite","generateContentConfig":{"temperature":0.3,"maxOutputTokens":16000,"thinkingConfig":{"thinkingBudget":0}}}},"edit-corrector":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash-lite","generateContentConfig":{"thinkingConfig":{"thinkingBudget":0}}}},"summarizer-default":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash-lite","generateContentConfig":{"maxOutputTokens":2000}}},"summarizer-shell":{"extends":"base","modelConfig":{"model":"gemini-2.5-flash-lite","generateContentConfig":{"maxOutputTokens":2000}}},"web-search":{"extends":"gemini-2.5-flash-base","modelConfig":{"generateContentConfig":{"tools":[{"googleSearch":{}}]}}},"web-fetch":{"extends":"gemini-2.5-flash-base","modelConfig":{"generateContentConfig":{"tools":[{"urlContext":{}}]}}},"web-fetch-fallback":{"extends":"gemini-2.5-flash-base","modelConfig":{}},"loop-detection":{"extends":"gemini-2.5-flash-base","modelConfig":{}},"loop-detection-double-check":{"extends":"base","modelConfig":{"model":"gemini-2.5-pro"}},"llm-edit-fixer":{"extends":"gemini-2.5-flash-base","modelConfig":{}},"next-speaker-checker":{"extends":"gemini-2.5-flash-base","modelConfig":{}}}`
320+
321+
```json
322+
{
323+
"base": {
324+
"modelConfig": {
325+
"generateContentConfig": {
326+
"temperature": 0,
327+
"topP": 1
328+
}
329+
}
330+
},
331+
"chat-base": {
332+
"extends": "base",
333+
"modelConfig": {
334+
"generateContentConfig": {
335+
"thinkingConfig": {
336+
"includeThoughts": true
337+
},
338+
"temperature": 1,
339+
"topP": 0.95,
340+
"topK": 64
341+
}
342+
}
343+
},
344+
"chat-base-2.5": {
345+
"extends": "chat-base",
346+
"modelConfig": {
347+
"generateContentConfig": {
348+
"thinkingConfig": {
349+
"thinkingBudget": 8192
350+
}
351+
}
352+
}
353+
},
354+
"chat-base-3": {
355+
"extends": "chat-base",
356+
"modelConfig": {
357+
"generateContentConfig": {
358+
"thinkingConfig": {
359+
"thinkingLevel": "HIGH"
360+
}
361+
}
362+
}
363+
},
364+
"gemini-3-pro-preview": {
365+
"extends": "chat-base-3",
366+
"modelConfig": {
367+
"model": "gemini-3-pro-preview"
368+
}
369+
},
370+
"gemini-2.5-pro": {
371+
"extends": "chat-base-2.5",
372+
"modelConfig": {
373+
"model": "gemini-2.5-pro"
374+
}
375+
},
376+
"gemini-2.5-flash": {
377+
"extends": "chat-base-2.5",
378+
"modelConfig": {
379+
"model": "gemini-2.5-flash"
380+
}
381+
},
382+
"gemini-2.5-flash-lite": {
383+
"extends": "chat-base-2.5",
384+
"modelConfig": {
385+
"model": "gemini-2.5-flash-lite"
386+
}
387+
},
388+
"gemini-2.5-flash-base": {
389+
"extends": "base",
390+
"modelConfig": {
391+
"model": "gemini-2.5-flash"
392+
}
393+
},
394+
"classifier": {
395+
"extends": "base",
396+
"modelConfig": {
397+
"model": "gemini-2.5-flash-lite",
398+
"generateContentConfig": {
399+
"maxOutputTokens": 1024,
400+
"thinkingConfig": {
401+
"thinkingBudget": 512
402+
}
403+
}
404+
}
405+
},
406+
"prompt-completion": {
407+
"extends": "base",
408+
"modelConfig": {
409+
"model": "gemini-2.5-flash-lite",
410+
"generateContentConfig": {
411+
"temperature": 0.3,
412+
"maxOutputTokens": 16000,
413+
"thinkingConfig": {
414+
"thinkingBudget": 0
415+
}
416+
}
417+
}
418+
},
419+
"edit-corrector": {
420+
"extends": "base",
421+
"modelConfig": {
422+
"model": "gemini-2.5-flash-lite",
423+
"generateContentConfig": {
424+
"thinkingConfig": {
425+
"thinkingBudget": 0
426+
}
427+
}
428+
}
429+
},
430+
"summarizer-default": {
431+
"extends": "base",
432+
"modelConfig": {
433+
"model": "gemini-2.5-flash-lite",
434+
"generateContentConfig": {
435+
"maxOutputTokens": 2000
436+
}
437+
}
438+
},
439+
"summarizer-shell": {
440+
"extends": "base",
441+
"modelConfig": {
442+
"model": "gemini-2.5-flash-lite",
443+
"generateContentConfig": {
444+
"maxOutputTokens": 2000
445+
}
446+
}
447+
},
448+
"web-search": {
449+
"extends": "gemini-2.5-flash-base",
450+
"modelConfig": {
451+
"generateContentConfig": {
452+
"tools": [
453+
{
454+
"googleSearch": {}
455+
}
456+
]
457+
}
458+
}
459+
},
460+
"web-fetch": {
461+
"extends": "gemini-2.5-flash-base",
462+
"modelConfig": {
463+
"generateContentConfig": {
464+
"tools": [
465+
{
466+
"urlContext": {}
467+
}
468+
]
469+
}
470+
}
471+
},
472+
"web-fetch-fallback": {
473+
"extends": "gemini-2.5-flash-base",
474+
"modelConfig": {}
475+
},
476+
"loop-detection": {
477+
"extends": "gemini-2.5-flash-base",
478+
"modelConfig": {}
479+
},
480+
"loop-detection-double-check": {
481+
"extends": "base",
482+
"modelConfig": {
483+
"model": "gemini-2.5-pro"
484+
}
485+
},
486+
"llm-edit-fixer": {
487+
"extends": "gemini-2.5-flash-base",
488+
"modelConfig": {}
489+
},
490+
"next-speaker-checker": {
491+
"extends": "gemini-2.5-flash-base",
492+
"modelConfig": {}
493+
}
494+
}
495+
```
496+
497+
- **`modelConfigs.customAliases`** (object):
498+
- **Description:** Custom named presets for model configs. These are merged
499+
with (and override) the built-in aliases.
500+
- **Default:** `{}`
321501

322502
- **`modelConfigs.overrides`** (array):
323503
- **Description:** Apply specific configuration overrides based on matches,
@@ -545,7 +725,11 @@ their corresponding top-level category object in your `settings.json` file.
545725

546726
- **`advanced.excludedEnvVars`** (array):
547727
- **Description:** Environment variables to exclude from project context.
548-
- **Default:** `["DEBUG","DEBUG_MODE"]`
728+
- **Default:**
729+
730+
```json
731+
["DEBUG", "DEBUG_MODE"]
732+
```
549733

550734
- **`advanced.bugCommand`** (object):
551735
- **Description:** Configuration for the bug report command.
@@ -563,12 +747,6 @@ their corresponding top-level category object in your `settings.json` file.
563747
- **Default:** `false`
564748
- **Requires restart:** Yes
565749

566-
- **`experimental.useModelRouter`** (boolean):
567-
- **Description:** Enable model routing to route requests to the best model
568-
based on complexity.
569-
- **Default:** `true`
570-
- **Requires restart:** Yes
571-
572750
- **`experimental.codebaseInvestigatorSettings.enabled`** (boolean):
573751
- **Description:** Enable the Codebase Investigator agent.
574752
- **Default:** `true`

integration-tests/test-helper.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ export class TestRig {
321321
selectedType: 'gemini-api-key',
322322
},
323323
},
324+
ui: {
325+
useAlternateBuffer: true,
326+
},
324327
model: DEFAULT_GEMINI_MODEL,
325328
sandbox:
326329
env['GEMINI_SANDBOX'] !== 'false' ? env['GEMINI_SANDBOX'] : false,

0 commit comments

Comments
 (0)