-
Notifications
You must be signed in to change notification settings - Fork 1
Add Gemini CLI support #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #13
- Add JavaScript Gemini tool implementation (js/src/tools/gemini.mjs) - Support for model mapping (flash, pro, 3-flash variants) - Build arguments with prompt, model, yolo, sandbox, debug, checkpointing, json output - NDJSON output parsing - Session/conversation ID extraction - Usage statistics extraction (standard and Gemini-specific formats) - Error detection - Add Rust Gemini tool implementation (rust/src/tools/gemini.rs) - Parallel implementation with JS for consistency - GeminiBuildOptions, GeminiUsage, GeminiErrorResult structs - Full test coverage - Update tool indexes to include gemini tool - Add comprehensive tests for all Gemini functionality Fixes #13 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This reverts commit 6cbc710.
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
|
We should also check if link-assistant/hive-mind#559 has any useful ideas for that implementation. Double check we do unit test everything we, can and it is executed in CI/CD. Also please add support for manual e2e tests (meaning it should be separate manually executed CI workflow) using free plan of Gemini CLI. |
|
🤖 AI Work Session Started Starting automated work session at 2026-01-10T20:43:20.253Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback. |
- Add new GitHub Actions workflow for manual E2E testing of Gemini CLI - Supports multiple model options (flash, pro, 3-flash) - Configurable test prompt and verbose mode - Tests both JavaScript and Rust implementations - Gracefully handles missing API keys or Gemini CLI - Generates test summary in workflow output - Update model mappings for Gemini CLI: - Add 'lite' alias for gemini-2.5-flash-lite model - Add '3-pro' alias for gemini-3-pro-preview model - Update '3-flash' to use gemini-3-flash-preview (correct naming) - Add comments organizing models by generation - Update tests for new model mappings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
|
Both JavaScript and Rust versions must be implemented, have all the same tess. Make sure all our tests in Rust are in separate files, not mixed with code, like we do in JavaScript. Also ensure all changes are correct, consistent and fully meet original requirements. |
|
🤖 AI Work Session Started Starting automated work session at 2026-01-15T14:19:44.788Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback. |
- Create rust/tests/ directory with separate test files: - claude_tests.rs (20 tests) - gemini_tests.rs (25 tests) - agent_tests.rs (18 tests) - codex_tests.rs (15 tests) - opencode_tests.rs (13 tests) - tools_tests.rs (12 tests) - streaming_tests.rs (17 tests) - lib_tests.rs (10 tests) - Remove embedded #[cfg(test)] mod tests from source files - All 173 Rust tests pass, matching JavaScript test structure - Follows the same pattern as js/test/*.test.mjs files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
Now working session is ended, feel free to review and add any feedback on the solution draft. |
Summary
Implementation Details
JavaScript (
js/src/tools/gemini.mjs)Rust (
rust/src/tools/gemini.rs)GeminiBuildOptions,GeminiUsage,GeminiErrorResultstructsGeminiToolstruct implementing theTooltraitE2E Testing (
e2e-gemini.yml)Test Structure Improvements
#[cfg(test)]modules to separate files inrust/tests/:claude_tests.rs(20 tests)gemini_tests.rs(25 tests)agent_tests.rs(18 tests)codex_tests.rs(15 tests)opencode_tests.rs(13 tests)tools_tests.rs(12 tests)streaming_tests.rs(17 tests)lib_tests.rs(10 tests)js/test/*.test.mjsModel Mappings
flashprolite3-flash3-proTool Features
Test Plan
E2E Testing Instructions
To run E2E tests with Gemini CLI:
GEMINI_API_KEYorGOOGLE_API_KEYto repository secretsFixes #13
🤖 Generated with Claude Code