feat: add semantic tool search#2
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2 +/- ##
==========================================
- Coverage 59.31% 52.83% -6.48%
==========================================
Files 15 25 +10
Lines 843 1709 +866
Branches 62 105 +43
==========================================
+ Hits 500 903 +403
- Misses 343 806 +463 ☔ View full report in Codecov by Sentry. |
Summary of ChangesHello @mKeRix, 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 powerful semantic tool search feature to the Highlights
Using Gemini Code AssistThe 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
Customization To customize 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 Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. 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. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a major new feature: semantic tool search. The implementation is comprehensive, covering the search engine itself (with semantic and fuzzy components), caching, CLI commands, gateway endpoints, and extensive documentation. The code is well-structured and the feature is well-designed with graceful degradation.
I've found a few issues:
- A deprecated transitive dependency has been introduced in
deno.lock. - The example code generated by the new
searchcommand and the updatedget-typescommand is incorrect because it doesn't convert server/tool names to camelCase, which will lead to runtime errors for users who copy the examples.
Overall, this is a great addition. Addressing these issues will make it even better.
7e10536 to
b1024a2
Compare
Temporary - to fix an issue on macOS with the underlying onnxruntime-node.
b327a1e to
4753ca9
Compare
4753ca9 to
126f2cd
Compare
711c1f4 to
9544602
Compare
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a major new feature: a hybrid semantic and fuzzy search engine for tool discovery. This is a significant enhancement that improves the developer experience and LLM efficiency by moving from manual listing to natural language search. The implementation is well-structured, with clear separation of concerns into new modules for the search engine, caching, and CLI commands. The changes also include comprehensive documentation, specifications, and E2E tests. My review found a couple of medium-severity issues: a minor documentation inconsistency for a CLI flag and a potential performance optimization in the cosine similarity calculation. Overall, this is an excellent contribution that greatly improves the project's capabilities.
# 1.0.0 (2025-12-01) ### Features * add config merging ([#5](#5)) ([4d58cb7](4d58cb7)) * add semantic tool search ([#2](#2)) ([cac523b](cac523b)) * allow filtering exposed tools ([#4](#4)) ([bd1d64c](bd1d64c)) * implement code mode ([#1](#1)) ([b3c4646](b3c4646)) * initial commit ([5477138](5477138)) * support oauth2 protected mcp servers ([#3](#3)) ([f5408d1](f5408d1))
# 1.0.0 (2025-12-01) ### Features * add config merging ([#5](#5)) ([4d58cb7](4d58cb7)) * add semantic tool search ([#2](#2)) ([cac523b](cac523b)) * allow filtering exposed tools ([#4](#4)) ([bd1d64c](bd1d64c)) * implement code mode ([#1](#1)) ([b3c4646](b3c4646)) * initial commit ([5477138](5477138)) * support oauth2 protected mcp servers ([#3](#3)) ([f5408d1](f5408d1))
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This implements a semantic search pattern for discovering tools, combined with fuzzy matching logic to also cover direct keyword hits. This further reduces the tokens that need to be loaded into the LLM asking about available tools & also simplifies the core workflow to a single search command instead of the multiple list commands it had to do previously.