Incorporate improvements from PR #13 and #105 into the gemini-local adapter: - Add detectGeminiAuthRequired() for runtime auth failure detection with errorCode: "gemini_auth_required" on execution results - Add isGeminiTurnLimitResult() to detect exit code 53 / turn_limit status and clear session to prevent stuck sessions on next heartbeat - Add describeGeminiFailure() for structured error messages from parsed result events including errors array extraction - Return parsed resultEvent in resultJson instead of raw stdout/stderr - Add isRetry guard to prevent stale session ID fallback after retry - Replace boolean yolo with approvalMode string (default/auto_edit/yolo) with backwards-compatible config.yolo fallback - Add sandbox config option (--sandbox / --sandbox=none) - Add GOOGLE_GENAI_USE_GCA auth detection in environment test - Consolidate auth detection regex into shared detectGeminiAuthRequired() - Add gemini-2.0-flash and gemini-2.0-flash-lite model IDs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
2.3 KiB
TypeScript
49 lines
2.3 KiB
TypeScript
export const type = "gemini_local";
|
|
export const label = "Gemini CLI (local)";
|
|
export const DEFAULT_GEMINI_LOCAL_MODEL = "auto";
|
|
|
|
export const models = [
|
|
{ id: DEFAULT_GEMINI_LOCAL_MODEL, label: "Auto" },
|
|
{ id: "gemini-2.5-pro", label: "Gemini 2.5 Pro" },
|
|
{ id: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
|
|
{ id: "gemini-2.5-flash-lite", label: "Gemini 2.5 Flash Lite" },
|
|
{ id: "gemini-2.0-flash", label: "Gemini 2.0 Flash" },
|
|
{ id: "gemini-2.0-flash-lite", label: "Gemini 2.0 Flash Lite" },
|
|
];
|
|
|
|
export const agentConfigurationDoc = `# gemini_local agent configuration
|
|
|
|
Adapter: gemini_local
|
|
|
|
Use when:
|
|
- You want Paperclip to run the Gemini CLI locally on the host machine
|
|
- You want Gemini chat sessions resumed across heartbeats with --resume
|
|
- You want Paperclip skills injected locally without polluting the global environment
|
|
|
|
Don't use when:
|
|
- You need webhook-style external invocation (use http or openclaw_gateway)
|
|
- You only need a one-shot script without an AI coding agent loop (use process)
|
|
- Gemini CLI is not installed on the machine that runs Paperclip
|
|
|
|
Core fields:
|
|
- cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)
|
|
- instructionsFilePath (string, optional): absolute path to a markdown instructions file prepended to the run prompt
|
|
- promptTemplate (string, optional): run prompt template
|
|
- model (string, optional): Gemini model id. Defaults to auto.
|
|
- approvalMode (string, optional): "default", "auto_edit", or "yolo" (default: "default")
|
|
- sandbox (boolean, optional): run in sandbox mode (default: false, passes --sandbox=none)
|
|
- command (string, optional): defaults to "gemini"
|
|
- extraArgs (string[], optional): additional CLI args
|
|
- env (object, optional): KEY=VALUE environment variables
|
|
|
|
Operational fields:
|
|
- timeoutSec (number, optional): run timeout in seconds
|
|
- graceSec (number, optional): SIGTERM grace period in seconds
|
|
|
|
Notes:
|
|
- Runs use positional prompt arguments, not stdin.
|
|
- Sessions resume with --resume when stored session cwd matches the current cwd.
|
|
- Paperclip auto-injects local skills into a temporary \`GEMINI_CLI_HOME\` directory without polluting the host's \`~/.gemini\` environment.
|
|
- Authentication can use GEMINI_API_KEY / GOOGLE_API_KEY or local Gemini CLI login.
|
|
`;
|