Commit graph

1104 commits

Author SHA1 Message Date
Jerop Kipruto
3c3da655b0
Refactor OTEL logging for API calls (#991)
Refactor OpenTelemetry logging for API requests, responses, and errors. Moved logging responsibility from GeminiClient to GeminiChat for more detailed logging.

#750
2025-06-12 16:36:51 -07:00
Jerop Kipruto
6723c72fa5
telemetry: include user decisions in tool call logs (#966)
Add the user's decision (accept, reject, modify) to tool call telemetry to better understand user intent. The decision provides crucial context to the `success` metric, as a user can reject a call that would have succeeded or accept one that fails. 

Also prettify the arguments json.

Example: 
![image](https://github.com/user-attachments/assets/251cb9fc-ceaa-4cdd-929c-8de47031aca8)

#750
2025-06-12 20:48:10 +00:00
Tommaso Sciortino
f8863f4d00
Make glob tool support abortSignal (#988) 2025-06-12 13:27:40 -07:00
Leo
ad2e47dc20
remove enable editor flag (#984) 2025-06-12 17:28:20 +00:00
Tommaso Sciortino
47ce39c46f
Convert CCPA requests to proper format (#981)
CCPA uses a different format than GenAi. This adds conversion code to get it to the right format.

Note that this doesn't work against the current ccpa staging server, The changes it needs are in cl/770266927
2025-06-12 09:33:49 -07:00
DeWitt Clinton
f2ab6d08c4
Improve the performance of filename completion over large repositories. (#938) 2025-06-12 07:09:38 -07:00
anj-s
6fc7028031
Revert "Add support for local logging per session (#936)" (#970) 2025-06-11 21:59:46 -07:00
Jerop Kipruto
89f682f081
Telemetry: Improve clarity of user prompt event (#967) 2025-06-11 21:43:00 -04:00
Leo
1ef68e0612
feat: External editor settings (#882) 2025-06-11 18:21:54 -07:00
anj-s
2dc79b3bd0
Add support for local logging per session (#936) 2025-06-11 15:05:41 -07:00
JingboWang1997-1
6ecdecbdcc
add excludeTools flag to settings.json config (#957) 2025-06-11 14:32:23 -07:00
Seth Troisi
122678cc09
clean chat history before /resume (#949) 2025-06-11 13:40:44 -07:00
matt korwel
4160d904da
Extensibility: Gemini.md files (#944) 2025-06-11 20:34:35 +00:00
Tommaso Sciortino
24c61147b8
Cache oauth credentials (#927) 2025-06-11 13:26:41 -07:00
jerop
c0580eaf4b feat(telemetry): expand cli configuration event
Adds the following attributes to the  event:
- embedding_model
- api_key_enabled
- code_assist_enabled
- debug_mode
- mcp_servers

This additional data will provide more insight into user configurations.
2025-06-11 16:22:35 -04:00
Louis Jimenez
e0f4f428fc
Restore Checkpoint Feature (#934) 2025-06-11 15:33:09 -04:00
jerop
03bc1f3141 feat(telemetry): Update API response in telemetry
Adds the text content of the API response to the  telemetry event. This provides more context for debugging and analysis without logging the entire, potentially large, response object.

- Adds an optional  field to the  type.
- Updates  to include the  field in the logged attributes.
- Modifies the  to extract the response text using  and pass it to the logger.
- Adds a new test file for the telemetry loggers, including tests for the  function to verify the new functionality.
2025-06-11 14:18:16 -04:00
jerop
d96af8bacd refactor(telemetry): pass config object to telemetry functions
This commit refactors the telemetry system to pass a  object to various logging and metrics functions. This change centralizes configuration management within the telemetry system, making it more modular and easier to maintain.

The  constructor and various tool execution functions have been updated to accept the  object, which is then passed down to the telemetry functions. This eliminates the need to pass individual configuration values, such as , through multiple layers of the application.
2025-06-11 13:24:41 -04:00
Allen Hutchison
1d7090b8ac
feat(core): Create BFS file search utility (#903) 2025-06-11 09:21:23 -07:00
jerop
7ba2b13870 update token usage with types 2025-06-11 10:38:07 -04:00
Anas Sulaiman
00c4527a1b unify diff generation before and after an edit 2025-06-11 09:47:11 -04:00
jerop
3f5ac384cc update from metrics and logs prefix from gemini_code to gemini_cli 2025-06-11 01:28:26 -04:00
jerop
d1e23b7c71 refactor: Centralize session ID generation and propagation 2025-06-11 01:18:40 -04:00
Tommaso Sciortino
95fdc66e7d
Register dependency added in PR:910 (#925) 2025-06-10 20:39:29 -07:00
Seth Troisi
fb6e2927f7
Remove unneeded mockRestore()s from tests (#919) 2025-06-10 20:32:00 -07:00
Seth Troisi
8e0d5076d6
Add [tag] to /save and /resume (#916) 2025-06-10 16:58:39 -07:00
Seth Troisi
36f58a34b4 logConversation
loadConversation

/resume

clean up for review
2025-06-10 16:14:42 -07:00
Tommaso Sciortino
d79dafc577
Basic code assist support (#910) 2025-06-10 16:00:13 -07:00
jerop
fa27bc832f feat: enable gzip compression for otlp exporters 2025-06-10 17:30:50 -04:00
Abhi
9c3f34890f
feat: Add UI for /stats slash command (#883) 2025-06-10 15:59:52 -04:00
Olcan
e38d2078cc
restricted networking for all sandboxing methods, new seatbelt profiles, updated docs, fixes to sandbox build, debugging through sandbox (#891) 2025-06-10 08:58:37 -07:00
Tommaso Sciortino
895c1f132f
GEMINI_SANDBOX=false should disable seatbelt (#888) 2025-06-10 06:22:02 -07:00
Bryan Morgan
1e3abf96b5
addressed b/423798481 (#887) 2025-06-10 08:47:46 -04:00
Abhi
7f1252d364
feat: Display initial token usage metrics in /stats (#879) 2025-06-09 20:25:37 -04:00
Eddie Santos
6484dc9008
Add Windsurf in edit tool to modify changes, if installed (#853) 2025-06-09 16:01:06 -07:00
Tommaso Sciortino
5c9e526f0e
Code to support Oauth login (#881) 2025-06-09 15:14:06 -07:00
matt korwel
3b943c1582
Windows: Refactor Shell Scripts to Node.js for Cross-Platform Compatibility (#784) 2025-06-09 12:19:42 -07:00
Abhi
2182a1cd2c
Bump @google/genai dependency (#870) 2025-06-09 14:17:39 -04:00
Tommaso Sciortino
0613062fc8
Simplify user agent handling. (#828) 2025-06-09 09:31:27 -07:00
Olcan
87474e52d7
rename shell tool more intuitively as run_shell_command (from historical name of execute_bash_command inherited from terminal tool) (#869) 2025-06-09 08:57:30 -07:00
anj-s
c55a1d9012
Add support for sorting files search by recency threshold followed by lexicographic sorting (#867) 2025-06-09 08:07:24 -07:00
Olcan
a2fee6bdd3
fix mcp timeouts and missing description on mcp errors (#868) 2025-06-08 21:52:11 -07:00
matt korwel
37edbd8c18
Rollforward AST changes to unblock Sandboxing (#863) 2025-06-08 19:07:25 -07:00
N. Taylor Mullen
ccdd1df039
feat(core): Add .gitignore support to getFolderStructure (#865) 2025-06-09 01:42:38 +00:00
N. Taylor Mullen
72fa01f62d
feat(git): Refactor gitignore handling to use ignore library instead of minimatch (#864) 2025-06-08 18:32:19 -07:00
N. Taylor Mullen
d62dad5575
Revert "Add batch editing capabilities to Edit Tool (#648)" (#857) 2025-06-08 23:20:43 +00:00
Bryan Morgan
152af28a34
Bryanmorgan/add tool source description (#856) 2025-06-08 19:07:05 -04:00
N. Taylor Mullen
f2ea78d0e4
fix(tool-scheduler): Correctly pipe cancellation signal to tool calls (#852) 2025-06-08 22:42:49 +00:00
Eddie Santos
394312b9c2
Add tests for core/utils/editor (#851) 2025-06-08 19:42:42 +00:00
N. Taylor Mullen
241c404573
fix(cli): correctly handle tool invocation cancellation (#844) 2025-06-08 11:14:45 -07:00
Leo
9efca40dae
feat: Add flow to allow modifying edits during edit tool call (#808) 2025-06-08 10:56:58 -07:00
matt korwel
584286cfd9
fix(deps): externalize tree-sitter (#840)
Submitting without approval to fix broken deployment on main. But also, we should lock this down.
2025-06-08 02:05:55 -07:00
Keith Ballinger
569c977408
refactor(core): remove comments from geminiChat.ts (#834) 2025-06-07 22:20:59 -07:00
Tommaso Sciortino
389907ce65
Introduce ContentGeneratorConfig (#826) 2025-06-07 16:17:27 -07:00
Bryan Morgan
e95a6086fc
Bryanmorgan/add mcp description support (#825) 2025-06-07 18:30:56 -04:00
cperry-goog
18d6a11c04
refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
Tommaso Sciortino
d6cf4d5b0b
Eliminate createServerConfig() (#821) 2025-06-07 13:49:00 -07:00
Eddie Santos
27fdd1b6e6
Add embedder (#818) 2025-06-07 13:38:05 -07:00
matt korwel
f1a4e5d4d3
Creating Node AST Tool. (#756) 2025-06-07 12:07:58 -07:00
Bryan Morgan
28ff62e7b1
Added /mcp command support and cleaned up broken tests (#817) 2025-06-07 15:06:18 -04:00
Tommaso Sciortino
680f4cdd61
More version simplifiction. (#810) 2025-06-07 10:54:23 -07:00
Keith Ballinger
0c86874677
Add batch editing capabilities to Edit Tool (#648)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-06 22:54:37 -07:00
N. Taylor Mullen
1ffe027d8a
Add support for configured mcp client timeout. (#775) 2025-06-05 20:35:00 +00:00
Tommaso Sciortino
e59e18251b
Introduce generate content interface (#755) 2025-06-05 13:26:38 -07:00
Jerop Kipruto
2ebf2fbc82
OpenTelemetry Integration & Telemetry Control Flag (#762) 2025-06-05 13:04:25 -07:00
Eddie Santos
e02868bb1a
Bump default model to gemini-2.5-pro-preview-06-05 (#765) 2025-06-05 11:52:36 -07:00
Eddie Santos
422c763a55
Add support for .geminiignore file (#757) 2025-06-05 10:15:27 -07:00
anj-s
78b2a28fb6
Checks for diff changes before displaying the code snippet (#751) 2025-06-05 06:48:03 -07:00
Jacob Richman
aa386d135b
Jacob314/memory fixes (#754)
Address multiple possible memory leaks found bystatic analysis of the codebase. The primary source of the leaks was event listeners on child processes and global objects that were not being properly removed, potentially causing their closures to be retained in memory indefinitely particularly for processes that did not exit.

There are two commits. A larger one made by gemini CLI and a smaller one by me to make sure we always disconnect child processes as part of the cleanup methods. These changes may not actually fix any leaks but do look like reasonable defensive coding to avoid leaking event listeners or child processes.

The following files were fixed:
This is Gemini's somewhat overconfident description of what it did.

packages/core/src/tools/shell.ts: Fixed a leak where an abortSignal listener was not being reliably removed.
packages/cli/src/utils/readStdin.ts: Fixed a significant leak where listeners on process.stdin were never removed.
packages/cli/src/utils/sandbox.ts: Fixed leaks in the imageExists and pullImage helper functions where listeners on spawned child processes were not being removed.
packages/core/src/tools/grep.ts: Fixed three separate leaks in the isCommandAvailable check and the git grep and system grep strategies due to un-removed listeners on child processes.
packages/core/src/tools/tool-registry.ts: Corrected a leak in the execute method of the DiscoveredTool class where listeners on the spawned tool process were not being removed.
2025-06-05 06:40:33 -07:00
N. Taylor Mullen
afc30e314f
feat(accessibility): Add option to disable loading phrases (#745) 2025-06-04 07:46:57 +00:00
N. Taylor Mullen
d179b3aae4
refactor(core): Centralize tool response formatting (#743) 2025-06-04 07:24:25 +00:00
Keith Ballinger
c313762ba0
Ignore folders files (#651)
# Add .gitignore-Aware File Filtering to gemini-cli

This pull request introduces .gitignore-based file filtering to the gemini-cli, ensuring that git-ignored files are automatically excluded from file-related operations and suggestions throughout the CLI. The update enhances usability, reduces noise from build artifacts and dependencies, and provides new configuration options for fine-tuning file discovery.

Key Improvements
.gitignore File Filtering

All @ (at) commands, file completions, and core discovery tools now honor .gitignore patterns by default.
Git-ignored files (such as node_modules/, dist/, .env, and .git) are excluded from results unless explicitly overridden.
The behavior can be customized via a new fileFiltering section in settings.json, including options for:
Turning .gitignore respect on/off.
Adding custom ignore patterns.
Allowing or excluding build artifacts.
Configuration & Documentation Updates

settings.json schema extended with fileFiltering options.
Documentation updated to explain new filtering controls and usage patterns.
Testing

New and updated integration/unit tests for file filtering logic, configuration merging, and edge cases.
Test coverage ensures .gitignore filtering works as intended across different workflows.
Internal Refactoring

Core file discovery logic refactored for maintainability and extensibility.
Underlying tools (ls, glob, read-many-files) now support git-aware filtering out of the box.


Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-04 04:40:46 +00:00
Cindy Xing
d85f09ac51
Update configuration.md (#722) 2025-06-03 21:33:02 -07:00
Olcan
80a445c7ae
bandaid for broken mcp calls (#732) 2025-06-03 14:40:36 -07:00
Olcan
00a9f654a3
fixed strip-ansi dep by installing it in core package (also ran npm install in cli package that resulted in the minor changes here) (#727) 2025-06-03 13:37:59 -07:00
Brandon Keiji
546e033081
feat: notify user when chat context is compressed (#724) 2025-06-03 19:19:49 +00:00
Brandon Keiji
fa5b616a10
feat: compress chat history when we approach token limit (#711) 2025-06-03 18:54:11 +00:00
anj-s
fffa06f0b1
Modify shortenPath and add param validation (#663) 2025-06-03 08:59:17 -07:00
anj-s
e9d43b9388
Add params check for writeTool (#708) 2025-06-03 07:47:27 -07:00
N. Taylor Mullen
c71d6ddc3b
Fix: Ensure MCP tools are discovered from slow-starting servers (#717) 2025-06-03 07:40:51 +00:00
N. Taylor Mullen
5f6f6a95a2
Refactor: Make MCP server discovery non-blocking (#716) 2025-06-03 06:37:02 +00:00
N. Taylor Mullen
8ab74ef1bb
Refactor: Use config.getGeminiClient() for GeminiClient instantiation (#715) 2025-06-03 05:30:52 +00:00
Brandon Keiji
74801e9004
refactor: maintain 1 GeminiChat per GeminiClient (#710) 2025-06-02 19:10:54 -07:00
Bryan Morgan
91fa770196
upate to PR 669 (#700)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-02 16:59:38 -07:00
N. Taylor Mullen
8563e46ade
React to Gemini API break - Thought Inclusion (#705) 2025-06-02 23:32:45 +00:00
Scott Densmore
e428707e07
Refactor: Centralize GeminiClient in Config (#693)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-02 14:55:51 -07:00
Olcan
1dcf0a4cbd
strip ansi from shell output (#699) 2025-06-02 14:50:12 -07:00
Olcan
8365c8f954
prefer to load gemini-specific .env file from .gemini folder when it exists there (#697) 2025-06-02 14:16:48 -07:00
Allen Hutchison
7f20425c98
feat(cli): add pro model availability check and fallback to flash (#608) 2025-06-02 13:55:54 -07:00
Olcan
59b6267b2f
allow toolDiscoveryCommand to return function declarations with or without a tool wrapper; fully document both toolDiscoveryCommand and toolCallCommand with examples and pointers to API docs (#696) 2025-06-02 13:41:49 -07:00
N. Taylor Mullen
58597c29d3
refactor: Update MCP tool discovery to use @google/genai - Also fixes JSON schema issues. (#682) 2025-06-02 20:39:25 +00:00
Tolik Malibroda
0795e55f0e
feat: Add --yolo mode that automatically accepts all tools executions (#695)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-02 22:05:45 +02:00
Olcan
c5869db080
enable async tool discovery by making the registry accessor async; remove call to discoverTools that caused duplicate discovery (#691) 2025-06-02 09:56:32 -07:00
N. Taylor Mullen
27ba28ef76
fix: Refine model message consolidation for improved model interaction (#685) 2025-06-02 07:28:14 +00:00
N. Taylor Mullen
2828fc6d66
feat: Implement non-interactive mode for CLI (#675) 2025-06-01 23:11:37 +00:00
Bryan Morgan
f7a2442fac
Added replace tool ability to replace more than 1 occurrence (#669)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-01 17:49:48 -04:00
N. Taylor Mullen
f2a8d39f42
refactor: Centralize tool scheduling logic and simplify React hook (#670) 2025-06-01 14:16:24 -07:00
Leo
edc12e416d
Update edit tool validation function to override validateToolParams (#667) 2025-06-01 11:18:43 -07:00
anj-s
9dae07784b
Fix for validating getDescription in read_file tool call (#660) 2025-06-01 00:02:00 -07:00
Bryan Morgan
b1d693786c
Revert "cleanup: removed duplicate check from Config.registerCoreTool()" (#657)
Didn't notice the casing difference - duh....
2025-05-31 20:52:52 +00:00
Bryan Morgan
b228923446
cleanup: removed duplicate check from Config.registerCoreTool() (#656) 2025-05-31 16:50:19 -04:00
Allen Hutchison
53bf778497
feat: allow custom filename for context files (#654)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-31 12:49:28 -07:00
Olcan
0dbd12e295
expose shell process group id to model, along with instructions for how to terminate or signal the group (#645) 2025-05-30 23:25:44 -07:00
Tommaso Sciortino
21fba832d1
Rename server->core (#638) 2025-05-30 18:25:47 -07:00