Add support for Google Gemini CLI as an AI engine#16595
Add support for Google Gemini CLI as an AI engine#16595
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot keep working |
|
@copilot update port number to 10003 |
- Fixed syntax error in domains.go (removed extra closing brace) - Removed supportsHTTPTransport field (doesn't exist in BaseEngine) - Fixed convertStepToYAML signature to match base implementation - Updated LogMetrics usage to match correct struct fields - Fixed test firewall configuration to use NetworkPermissions.Firewall - Removed duplicate boolPtr helper function - Removed unused strings import from gemini_engine.go - All Gemini engine tests now passing Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
✅ Gemini CLI engine implementation complete (commit 43615cc) Implementation Summary:
Files Created:
All tests passing and ready for review. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
|
|
@copilot add a smoke-gemini agentic workflow that does the usual smoke workflow stuff using the "gemini" engine. |
- Updated GeminiLLMGatewayPort constant from 1003 to 10003 - Updated comment in gemini_engine.go - Updated test assertion in gemini_engine_test.go - All tests passing Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot The version can be found at https://www.npmjs.com/package/@google/gemini-cli . Update the cli version checker and use v0.29.0 |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot merge main, recompile |
- Updated main_workflow_schema.json to include "gemini" as valid engine - Updated schema descriptions to mention Google Gemini CLI (experimental) - Created smoke-gemini.md agentic workflow for testing Gemini engine - Updated cli-version-checker.md to include Gemini CLI monitoring - Updated Gemini package to @google/gemini-cli@0.29.0 - Rebuilt binary with embedded schema changes - Recompiled all workflows (153/153 successful) - Generated smoke-gemini.lock.yml (75.8 KB) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
✅ Merged main and recompiled (commit d32aeb8) Changes:
All tests passing. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
…ache handling in workflows
✅ Tests fixed (commit 90e6537) Root Cause:
Changes:
All tests passing. |
Recreates Gemini engine support from PR #16595: - Add Gemini constants (port 10003, version 0.29.0, env vars) - Update JSON schema to include 'gemini' as valid engine - Create gemini_engine.go with installation and execution steps - Create gemini_logs.go for JSON log parsing - Create gemini_mcp.go for MCP configuration - Add GeminiDefaultDomains and helper function to domains.go - Register Gemini engine in engine registry - Update engine count tests to expect 4 engines - Add comprehensive unit tests Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
* Initial plan * chore: outline plan for gemini engine support Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> * feat: add Google Gemini CLI as experimental agentic engine Recreates Gemini engine support from PR #16595: - Add Gemini constants (port 10003, version 0.29.0, env vars) - Update JSON schema to include 'gemini' as valid engine - Create gemini_engine.go with installation and execution steps - Create gemini_logs.go for JSON log parsing - Create gemini_mcp.go for MCP configuration - Add GeminiDefaultDomains and helper function to domains.go - Register Gemini engine in engine registry - Update engine count tests to expect 4 engines - Add comprehensive unit tests Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> * fix: merge main, update WASM golden files for ubuntu.com in ClaudeDefaultDomains, add gemini to AllEngines test Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> * fix: remove ubuntu.com from ClaudeDefaultDomains, fix golden files, add smoke-gemini workflow, improve tests - Remove ubuntu.com from ClaudeDefaultDomains (was causing CI golden test failures) - Regenerate WASM golden files without ubuntu.com - Add smoke-gemini.md agentic workflow for Gemini engine smoke testing - Fix ParseLogMetrics to use map-based deduplication for tool calls - Make TestEngineRegistry less brittle (check for expected IDs instead of exact count) - Add exact prompt format assertion to gemini execution test Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> * fix: update TestValidateEngine to use dynamic engine prefix check and add gemini test case Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Co-authored-by: Peli de Halleux <pelikhan@users.noreply.github.com>
Implementation Plan for Google Gemini CLI Engine
Summary
This PR adds Google Gemini CLI as a new experimental AI engine for GitHub Agentic Workflows. The implementation follows the existing engine architecture and provides full integration with MCP servers, firewall support, and LLM gateway capabilities.
Key Features
gemini(marked as experimental)@google/gemini-cli@0.29.0GEMINI_API_KEYenvironment variable--output-format json)Files Created
pkg/workflow/gemini_engine.go- Core engine implementation (262 lines)pkg/workflow/gemini_logs.go- JSON log parsing (119 lines)pkg/workflow/gemini_mcp.go- MCP configuration rendering (71 lines)pkg/workflow/gemini_engine_test.go- Comprehensive unit tests (285 lines).github/workflows/smoke-gemini.md- Smoke test workflow (101 lines).github/workflows/smoke-gemini.lock.yml- Compiled workflow (75.8 KB)Files Updated
pkg/constants/constants.go- Added Gemini constants, port 10003, version 0.29.0, env varspkg/workflow/agentic_engine.go- Registered Gemini engine (4 total engines)pkg/workflow/agentic_engine_test.go- Updated engine count assertionpkg/workflow/domains.go- Added GeminiDefaultDomains and helper functionpkg/parser/schemas/main_workflow_schema.json- Added "gemini" to engine enum.github/workflows/cli-version-checker.md- Added Gemini CLI monitoringpkg/cli/completions_test.go- Updated for 4 engines, added gemini testTesting
Usage Example
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.