Commit Graph

529 Commits

Author SHA1 Message Date
Allen Hutchison
3291ffbe09 fix(cli): Clear input buffer before onSubmit in InputPrompt (#633) 2025-05-30 15:16:06 -07:00
Olcan
4225567303 disable markdown for discovered (mcp) tools (#630) 2025-05-30 14:12:51 -07:00
Olcan
1a5fd2ccb2 add flags for markdown rendering and live updating to Tool to avoid special-casing shell tool by name, and open door for other tools to specify their rendering/updating (#629) 2025-05-30 13:59:05 -07:00
Brandon Keiji
0869fd168f fix(sandbox): pull sandbox image if it doesnt exist locally (#628) 2025-05-30 20:49:47 +00:00
Brandon Keiji
cf82b6e127 fix(sandbox): prepare package.json before building sandbox image (#626) 2025-05-30 19:57:46 +00:00
Olcan
a0ba65944f disable markdown rendering of shell tool output (#625) 2025-05-30 12:43:59 -07:00
Brandon Keiji
31a7affb74 feat(sandbox): use package config to dictate sandbox image name (#624) 2025-05-30 19:28:46 +00:00
cperry-goog
9f85f8ed29 docs: Update README, CONTRIBUTING, and CLI configuration docs (#591)
cleaning up for now, will take another pass
2025-05-30 12:20:12 -07:00
Brandon Keiji
816cc08a8f fix(sandbox): set default env var to 'gemini-cli-sandbox' (#620) 2025-05-30 18:02:27 +00:00
N. Taylor Mullen
8c46108a85 feat: Implement retry with backoff for API calls (#613) 2025-05-30 17:57:00 +00:00
Taylor Mullen
c5608869c0 Change ReadFile to not have a result display.
- It's verbose on its own; however, if file content is truncated we'll indicate that in the result display.
2025-05-30 10:48:10 -07:00
Taylor Mullen
9537ff4762 feat(server): consolidate adjacent model content in chat history
- Consolidates consecutive model messages into a single message in the chat history.
- This prevents multiple model messages from being displayed in a row, improving readability.
- This may also address some instances of 500 errors that could have been caused by multiple, rapidly succeeding model messages.
- Adds tests for the new consolidation logic.

Fixes https://b.corp.google.com/issues/421010429
2025-05-30 10:43:48 -07:00
Olcan
7c4a5464f6 truncate (hide) tool output at the top, add some spacing, also fix shell output interval change accidentally undone in a previous commit (#619) 2025-05-30 01:58:09 -07:00
Olcan
a3b557222a tweaks to shell abort logic based on feedback (#618) 2025-05-30 01:35:03 -07:00
Olcan
094b9dc474 use npx json instead of jq (#617) 2025-05-30 01:12:36 -07:00
Olcan
8935a248f6 allow aborting of shell mode (!) commands, similar to shell tool commands. fix bug that prevented aborts after first abort. more robust killing logic (#616) 2025-05-30 00:46:43 -07:00
Olcan
b0aeeb53b1 update shell output at an interval to reduce flicker (#614) 2025-05-30 00:02:30 -07:00
Brandon Keiji
2582c20e2a fix: publish @gemini-code/server (#605) 2025-05-29 23:55:34 +00:00
Brandon Keiji
7468d3cddf fix(sandbox): add SHORT_SHA to image tag (#604) 2025-05-29 23:43:20 +00:00
Olcan
1c066548b4 allow comments in settings when parsed in scripts via jq (#603) 2025-05-29 16:25:16 -07:00
Olcan
fe049c286f fix mcp tool names that are long or have invalid characters (based on 400 error) (#602) 2025-05-29 16:13:11 -07:00
Seth Troisi
2db5d83023 fix name in package.json 2025-05-29 15:56:05 -07:00
Jacob Richman
dab7517622 Refactor read-file and support images. (#480) 2025-05-29 15:30:18 -07:00
Brandon Keiji
f21abdd1f0 fix(sandbox): use CMD for default entrypoint (#601) 2025-05-29 22:16:39 +00:00
Olcan
4b7248fc46 allow writing to user cache directory on macos (fixes use of lyria mcp server [to generate songs] under seatbelt) (#600) 2025-05-29 15:06:09 -07:00
Allen Hutchison
5dbc83fabc feat: Enhance web_fetch tool to process prompts with URLs using Gemini API (#587) 2025-05-29 15:02:31 -07:00
Seth Troisi
4b4ba85313 improve read-many-files output (#596) 2025-05-29 14:03:24 -07:00
Brandon Keiji
dc94a03f39 feat: publish root Dockerfile to our image registry (#599) 2025-05-29 14:01:44 -07:00
Jacob Richman
6a1b94529b Change Config to use named parameters. (#593) 2025-05-29 13:51:17 -07:00
Taylor Mullen
d74c0f581b refactor: Extract MCP discovery from ToolRegistry
- Moves MCP tool discovery logic from ToolRegistry into a new, dedicated MCP client (mcp-client.ts and mcp-tool.ts).
- Updates ToolRegistry to utilize the new MCP client.
- Adds comprehensive tests for the new MCP client and its integration with ToolRegistry.

Part of https://github.com/google-gemini/gemini-cli/issues/577
2025-05-28 17:28:45 -07:00
Allen Hutchison
c413988ae0 fix(ci): Only run post_coverage_comment job on pull_request events (#588) 2025-05-28 17:09:13 -07:00
Allen Hutchison
9ee5eadac0 fix(cli): Support multiple @file references in atCommandProcessor (#590) 2025-05-28 17:08:05 -07:00
Brandon Keiji
fd6f6b02ea feat: add git branch name to footer (#589) 2025-05-28 16:30:05 -07:00
Olcan
0d99398689 much improved support for background processes, avoiding termination (via SIGPIPE) or eventual blocking (e.g. due to filled OS buffers) (#586) 2025-05-28 14:45:46 -07:00
Jacob Richman
00805cb2cd Cleanup: Remove low value StreamingContextType interface. (#585) 2025-05-28 12:46:08 -07:00
Jacob Richman
05a49702d8 Refactor: Add GeminiRespondingSpinner to make use of streamingState idiomatic (#583) 2025-05-28 11:17:19 -07:00
DeWitt Clinton
98dcf43214 Add a keybinding for ctrl+w to delete the previous word. (#582)
Adds the following new keybindings to the cli text input buffer:

- `Ctrl+W` : Delete previous word
2025-05-28 09:59:25 -07:00
DeWitt Clinton
27a773d5b2 Display git commit info in the /about section. (#567)
This change detects the most recent git commit short hash and writes it to the `GIT_COMMIT_INFO` constant in `packages/cli/src/generated/git-commit.sh`, optionally appending the string "(local modifications)" if additional local changes after that commit are detected.

If set, this string is displayed in the `/about` dialog as well as passed into the `/bug` template.

Example:

```
> /about

╭───────────────────────────────────────────────────────────────────────────╮
│                                                                           │
│ About Gemini CLI                                                          │
│                                                                           │
│ CLI Version               development                                     │
│ Git Commit                43370ab (local modifications)                   │
│ Model                     gemini-2.5-pro-preview-05-06                    │
│ Sandbox                   sandbox-exec (minimal)                          │
│ OS                        darwin v23.11.0                                 │
│                                                                           │
╰───────────────────────────────────────────────────────────────────────────╯
```

Additionally, this change updates `.gitignore` to ignore the generated files, `scripts/clean.sh` to remove them, and adds a `npm run generate` stage for this and any other generators we need to write.
2025-05-28 00:04:26 -07:00
Taylor Mullen
f2f2ecf9d8 feat: Allow cancellation of in-progress Gemini requests and pre-execution checks
- Implements cancellation for Gemini requests while they are actively being processed by the model.
- Extends cancellation support to the  logic within tools. This allows users to cancel operations during the phase where the system is determining if a tool execution requires user confirmation, which can include potentially long-running pre-flight checks or LLM-based corrections.
- Underlying LLM calls for edit corrections (within  and ) and next speaker checks can now also be cancelled.
- Previously, cancellation of the main request was not possible until text started streaming, and pre-execution checks were not cancellable.
- This change leverages the updated SDK's ability to accept an abort token and threads s throughout the request, tool execution, and pre-execution check lifecycle.

Fixes https://github.com/google-gemini/gemini-cli/issues/531
2025-05-27 23:46:37 -07:00
Olcan
bfeaac8441 live output from shell tool (#573) 2025-05-27 15:40:18 -07:00
Olcan
0d5f7686d7 fix tool cancellation while executing (#575) 2025-05-27 15:22:30 -07:00
Brandon Keiji
c1395a8808 fix: change entrypoint from 'gemini-code' to 'gemini' in published sandbox (#574) 2025-05-27 22:19:43 +00:00
Brandon Keiji
d4ae1ede39 refactor: use React strict mode (#569) 2025-05-27 14:40:46 -07:00
Olcan
16c16127e7 fix sandboxing anchor (#572) 2025-05-27 14:01:23 -07:00
Olcan
0c5673875b improve shell tool output when cancelled in debug mode (#571) 2025-05-27 13:47:40 -07:00
Allen Hutchison
4e3c539f5e feat: Publish test coverage summaries to PRs (#513) 2025-05-27 12:45:28 -07:00
Olcan
9595e98db8 replace error with warning if sandbox build is triggered without enabling, improve README to reduce confusion (#570) 2025-05-27 10:55:07 -07:00
sasha-gitg
3511e84dc3 fix: default to Gemini API if GEMINI_API_KEY is set and when GOOGLE_GENAI_USE_VERTEXAI is set to True (#566) 2025-05-27 10:00:07 -07:00
Taylor Mullen
b3f52e215a feat: Replace SQLite with JSON logging for macOS sandbox compatibility
- Removes the sqlite3 dependency and refactors the logging mechanism to use a JSON file (logs.json) instead of a database.
- This change is a temporary workaround to address issues with macOS sandboxing that were caused by the SQLite native module.
- Storing all logs in a single JSON file may introduce scalability concerns in the future.

Fixes https://github.com/google-gemini/gemini-cli/issues/522
2025-05-26 16:13:37 -07:00
Taylor Mullen
9e1cfca53f Fix(chat): Finalize next speaker detection logic
- Enhance `checkNextSpeaker` to handle cases where the last message is a function response or an empty model message.
- If the last message is a function response, the model should speak next.
- If the last message is an empty model message, the model should speak next.
- This ensures more robust and accurate determination of the next speaker in the conversation, completing the fix for the issue.
- Updated tests.

Fixes https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26 15:21:45 -07:00