2.0 KiB
2.0 KiB
Specification: Gemini CLI Parity
Overview
Achieve full functional and behavioral parity between the Gemini CLI integration (gemini_cli_adapter.py, cli_tool_bridge.py) and the direct Gemini API implementation (ai_client.py). This ensures that users leveraging the Gemini CLI as a headless backend provider experience the same level of capability, reliability, and observability as direct API users.
Functional Requirements
- Token Estimation Parity: Implement accurate token counting for both input and output in the Gemini CLI adapter to match the precision of the direct API.
- Safety Settings Parity: Enable full configuration and enforcement of Gemini safety filters when using the CLI provider.
- Tool Calling Parity: Synchronize tool definition mapping, call handling, and response processing between the CLI bridge and the direct SDK.
- System Instructions Parity: Ensure system prompts and instructions are consistently passed and handled across both providers.
- Bridge Robustness: Enhance the
cli_tool_bridge.pyand adapter to improve latency, error handling (retries), and detailed subprocess observability.
Non-Functional Requirements
- Observability: Detailed logging of CLI subprocess interactions for debugging.
- Performance: Minimize the overhead introduced by the bridge mechanism.
- Maintainability: Ensure that future changes to
ai_client.pycan be easily mirrored in the CLI adapter.
Acceptance Criteria
- Token counts for identical prompts match within a 5% margin between CLI and Direct API.
- Safety settings configured in the GUI are correctly applied to CLI sessions.
- Tool calls from the CLI are successfully executed and returned via the bridge without loss of context.
- System instructions are correctly utilized by the model when using the CLI.
- Automated tests verify that responses and tool execution flows are identical for both providers.
Out of Scope
- Performance optimizations for the
geminiCLI binary itself. - Support for non-Gemini CLI providers in this track.