Two endpoints, one adapter
Gemini-Pippa runs in two modes. The canonical path uses a paid provider API key from environment config and calls the public Gemini API endpoint directly. The fallback path piggybacks the Gemini CLI's OAuth session and calls the provider CLI's backend endpoint in a Cloud Code Assist envelope — free, but deliberately tool-rate-limited.
Runtime toggle
The mode switches at runtime via Admin Dashboard. Same adapter, two code paths. Paid API remains the front door; OAuth is the visible, sticky fallback. The active path is reflected in the UI and resets on server restart, so a Council round never changes provider path silently.
Wire format quirks
thoughtSignaturemust be preserved in tool-loop continuations or you get a 400.- System prompt is
systemInstruction(camelCase), notsystem_instruction. - Model role is
'model', not'assistant'. - Thinking config is
thinkingLevel: 'HIGH'for 3.x models,thinkingBudget: Nfor 2.x.