Skip to content

Feat/tool registry discovery#28113

Merged
gundermanc merged 2 commits into
google-gemini:mainfrom
Gsoc26:feat/tool-registry-discovery
Jun 25, 2026
Merged

Feat/tool registry discovery#28113
gundermanc merged 2 commits into
google-gemini:mainfrom
Gsoc26:feat/tool-registry-discovery

Conversation

@ved015

@ved015 ved015 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a small tool registry for eval reporting, plus AST extraction for the tool names used inside eval assertions.

Details

  • Builds a registry from ALL_BUILTIN_TOOL_NAMES and TOOL_LEGACY_ALIASES in @google/gemini-cli-core.
  • Groups built-in tools into categories like file system, shell, web, planning, tracker, agent, and MCP.
  • Adds a typed category map so newly added core tools have to be categorized.
  • Extends eval analysis to collect tool references per eval case and per file.
  • Adds tests for registry creation, alias resolution, category grouping, deduping, sorting, imported constants, and common eval assertion patterns.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

@ved015 ved015 requested a review from a team as a code owner June 23, 2026 18:49
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a structured tool registry to manage built-in tools and their categories, while simultaneously enhancing the eval analysis framework to track tool usage. By statically extracting tool references from eval assertions, the system can now better validate tool names and improve reporting accuracy during evaluation runs.

Highlights

  • Tool Registry Implementation: Introduced a new tool registry utility that categorizes built-in tools and manages legacy alias resolution.
  • Eval Analysis Enhancement: Extended the eval analysis engine to statically extract and validate tool references used within eval assertions.
  • Test Coverage: Added comprehensive unit tests for the tool registry and verified tool reference extraction across various code patterns.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions Bot added the size/l A large sized PR label Jun 23, 2026
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown

📊 PR Size: size/L

  • Lines changed: 752
  • Additions: +752
  • Deletions: -0
  • Files changed: 4

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a tool registry utility (tool-registry.ts) and updates the eval analysis script (eval-analysis.ts) to statically extract and resolve tool references from eval assertions, accompanied by comprehensive unit tests. The feedback correctly identifies that validating tool names solely against the built-in tool registry will cause false-positive warnings for valid Model Context Protocol (MCP) or dynamically discovered tools. To resolve this, the reviewer suggests importing and utilizing isValidToolName from @google/gemini-cli-core to properly handle non-built-in tool name patterns.

Comment thread scripts/utils/eval-analysis.ts Outdated
Comment thread scripts/utils/eval-analysis.ts Outdated
@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label Jun 23, 2026
@gundermanc gundermanc enabled auto-merge June 24, 2026 23:36
@gundermanc gundermanc added this pull request to the merge queue Jun 24, 2026
Merged via the queue into google-gemini:main with commit d845bc5 Jun 25, 2026
33 checks passed
rfcclub pushed a commit to rfcclub/gemini-cli that referenced this pull request Jun 28, 2026
software-0ficial pushed a commit to software-0ficial/gemini-cli that referenced this pull request Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/l A large sized PR status/need-issue Pull requests that need to have an associated issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants