# Specification: Saved Tool Presets

## Overview
This feature adds the ability to create, save, and manage "Tool Presets" for agent roles. These presets define which tools are available to an agent and their respective "auto" vs "ask" approval levels. Tools will be organized into dynamic, TOML-defined categories (e.g., Python, General) and integrated into the global and project-specific AI settings.

## Functional Requirements
- **Dedicated Storage:**
    - Tool presets and categorization data will be stored in a dedicated `tool_presets.toml` file.
- **Preset Content:**
    - `name`: A unique identifier for the tool preset.
    - `categories`: A dictionary of tool categories (e.g., `[categories.python]`, `[categories.general]`).
    - `tools`: A list of tool definitions within each category, including:
        - `name`: The tool's identifier (e.g., `read_file`).
        - `approval`: A flag set to `auto` (execute immediately) or `ask` (require user confirmation).
- **GUI Integration:**
    - **AI Settings Panel:** Move tool management to the AI Settings panel (global and project).
    - **Categorized Sections:** Display tools in the UI based on their dynamic categories (Python, General, etc.).
    - **Approval Toggles:** Provide a visual indicator and toggle for each tool's `auto`/`ask` status.
    - **MMA Role Mapping:** Add a "Tool Preset" dropdown to the existing MMA agent role configuration (alongside provider and model selections).
- **Dynamic Categorization:**
    - The UI must dynamically render categories and tool lists based on the `tool_presets.toml` structure.

## Non-Functional Requirements
- **Persistence:** Changes to presets or tool approval levels must be persisted to the `tool_presets.toml` file.
- **Scalability:** The system should handle an arbitrary number of categories and tools.
- **Validation:** Ensure tool names are valid and match existing MCP/native tools.

## Acceptance Criteria
- [ ] Users can create a new tool preset and see it in the dropdown for MMA agent roles.
- [ ] Tools are correctly displayed in dynamic categories (Python, General) in the UI.
- [ ] Changing a tool's approval flag (auto/ask) is correctly persisted.
- [ ] Selecting a tool preset for an MMA role correctly restricts the available tools and sets their default approval levels for that role.
- [ ] The AI Settings panel correctly reflects the categorized tool list.

## Out of Scope
- Support for other file formats (e.g., JSON, YAML) for presets.
- Presets for specific files or folders (scoped only to global or project level).
- Cloud syncing of presets.

---

## Technical Note: Future Persona Consolidation
This track is a prerequisite for the **"Agent Personas: Unified Profiles & Tool Presets"** overhaul. Implementation should align with the modular preset pattern established in `src/presets.py`. 

Consult the **Debrief** in `conductor/tracks/saved_presets_20260308/debrief.md` for context on how these tool presets will eventually be merged with system prompts and model parameters into a unified configuration panel.

