Files
manual_slop/conductor/tracks/saved_tool_presets_20260308/spec.md

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.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 tool presets.
  • Presets for specific files or folders (scoped only to global or project level).
  • Cloud syncing of tool presets.