import type { DriverTarget } from "@skaile/workspaces/plugin-registry"; import type { Logger } from "@skaile/workspaces/types"; import { type ModelEntry } from "../models.js"; import type { AgentConfig, DriverInfo } from "../types.js"; import { SubprocessCliDriver } from "./_subprocess-cli.js"; /** * Shared base for the Gemini-CLI event family. Gemini CLI and Qwen Code (a fork * of Gemini CLI) emit the same `stream-json` event shape, so both dispatch the * same {@link handleJson}: `init`/`system` → session capture, `message`/ * `assistant` → streamed assistant text, `tool_use` / `tool_result` → tool * events, `result` → tokens + cost. * * @docLink packages/bridge/drivers#gemini-driver */ export declare abstract class GeminiFamilyDriver extends SubprocessCliDriver { protected handleJson(json: any): void; } /** * Agent driver for the Google **Gemini CLI** (`gemini`). * * Spawns `gemini -p "" --output-format stream-json` per turn and maps * the stream-json events to the unified {@link AgentEvent} stream. Google / * Vertex models only — uses `GEMINI_API_KEY` from `apiKeys.google` / * `apiKeys.gemini` / env. * * @remarks * - **Requires Gemini CLI ≥ v0.6.1** — earlier versions reject * `--output-format`. A too-old CLI surfaces as a `process`-category exit error. * - **Session resume is not available in headless (`-p`) mode** — the CLI errors * if asked to resume non-interactively, so this driver runs single-turn per * process and logs a warning when a resume id is present. * - Exit codes: `42` → input/validation error, `53` → turn-limit (treated as a * completed turn). * * @see https://github.com/google-gemini/gemini-cli * @docLink packages/bridge/drivers#gemini-driver */ export declare class GeminiDriver extends GeminiFamilyDriver { readonly driverInfo: DriverInfo; protected readonly log: Logger; protected readonly defaultBin = "gemini"; protected readonly productName = "Gemini CLI"; protected readonly envPrefix = "GEMINI"; protected buildArgs(message: string, resumeId: string | undefined): string[]; protected buildEnv(): Record; protected installHint(): string; protected classifyExit(code: number | null, signal: NodeJS.Signals | null): import("../types.js").AgentError | null; listModels(): Promise; } /** * `DriverTarget` wrapper for the gemini driver. Registered into the plugin * registry by `registerBuiltinDrivers()`. */ export declare const geminiDriverTarget: DriverTarget; //# sourceMappingURL=gemini.d.ts.map