Jacob Magar
|
d800c37bfd
|
feat(noxa-9fw.1): add gemini cli provider adapter
- Add LlmError::Subprocess(#[from] io::Error) and LlmError::Timeout variants
- Implement GeminiCliProvider: new(model) -> Self matching OllamaProvider pattern
- Prompts passed exclusively via stdin (Stdio::piped), never as CLI args
- 30s subprocess timeout via tokio::time::timeout to prevent hung processes
- 6-slot Semaphore to bound concurrent subprocess spawns in MCP context
- Stderr captured and included (first 500 bytes) in non-zero exit errors
- is_available(): pure `gemini --version` PATH check, no live inference
- GEMINI_MODEL env override; default model gemini-2.5-pro
- strip_thinking_tags + strip_code_fences applied to stdout output
|
2026-04-11 07:30:41 -04:00 |
|