This PR maps the `--yolo` flag natively into a wildcard policy array (`allowedTools: ["*"]`) and removes the concept of `ApprovalMode.YOLO` as a distinct state in the application, fulfilling issue #11303. This removes the hardcoded `ApprovalMode.YOLO` state and its associated UI/bypasses. The `PolicyEngine` now evaluates YOLO purely via data-driven rules. - Removes `ApprovalMode.YOLO` - Removes UI toggle (`Ctrl+Y`) and indicators for YOLO - Removes `yolo.toml` - Updates A2A server and CLI config logic to translate YOLO into a wildcard tool - Rewrites policy engine tests to evaluate the wildcard - Enforces enterprise `disableYoloMode` and `secureModeEnabled` controls by actively preventing manual `--allowed-tools=*` bypasses. Fixes #11303
2.6 KiB
Gemini CLI planning tools
Planning tools let Gemini CLI switch into a safe, read-only "Plan Mode" for researching and planning complex changes, and to signal the finalization of a plan to the user.
1. enter_plan_mode (EnterPlanMode)
enter_plan_mode switches the CLI to Plan Mode. This tool is typically called
by the agent when you ask it to "start a plan" using natural language. In this
mode, the agent is restricted to read-only tools to allow for safe exploration
and planning.
Note
This tool is disabled when all tools are auto-approved via
--yoloor wildcard policies.
- Tool name:
enter_plan_mode - Display name: Enter Plan Mode
- File:
enter-plan-mode.ts - Parameters:
reason(string, optional): A short reason explaining why the agent is entering plan mode (for example, "Starting a complex feature implementation").
- Behavior:
- Switches the CLI's approval mode to
PLAN. - Notifies the user that the agent has entered Plan Mode.
- Switches the CLI's approval mode to
- Output (
llmContent): A message indicating the switch, for example,Switching to Plan mode. - Confirmation: Yes. The user is prompted to confirm entering Plan Mode.
2. exit_plan_mode (ExitPlanMode)
exit_plan_mode signals that the planning phase is complete. It presents the
finalized plan to the user and requests formal approval to start the
implementation. The agent MUST reach an informal agreement with the user in the
chat regarding the proposed strategy BEFORE calling this tool.
- Tool name:
exit_plan_mode - Display name: Exit Plan Mode
- File:
exit-plan-mode.ts - Parameters:
plan_path(string, required): The path to the finalized Markdown plan file. This file MUST be located within the project's temporary plans directory (for example,~/.gemini/tmp/<project>/plans/).
- Behavior:
- Validates that the
plan_pathis within the allowed directory and that the file exists and has content. - Presents the plan to the user for formal review.
- If the user approves the plan:
- Switches the CLI's approval mode to the user's chosen approval mode (
DEFAULTorAUTO_EDIT). - Marks the plan as approved for implementation.
- Switches the CLI's approval mode to the user's chosen approval mode (
- If the user rejects the plan:
- Stays in Plan Mode.
- Returns user feedback to the model to refine the plan.
- Validates that the
- Output (
llmContent):- On approval: A message indicating the plan was approved and the new approval mode.
- On rejection: A message containing the user's feedback.
- Confirmation: Yes. Shows the finalized plan and asks for user formal approval to proceed with implementation.