2.5 KiB
2.5 KiB
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.tomlfile.
- Tool presets and categorization data will be stored in a dedicated
- 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 toauto(execute immediately) orask(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/askstatus. - 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.tomlstructure.
- The UI must dynamically render categories and tool lists based on the
Non-Functional Requirements
- Persistence: Changes to presets or tool approval levels must be persisted to the
tool_presets.tomlfile. - 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 tool presets.
- Presets for specific files or folders (scoped only to global or project level).
- Cloud syncing of tool presets.