63ae706dd0
Add support for tool categories, interface types, and per-tool configuration. Backend: - Add category and interfaces fields to ToolType model - Create ToolConfig model for storing tool-specific settings - Add tool_configs API endpoints (CRUD) - Update built-in tool types with categories and interfaces: - code-server: editor, [web] - jupyter-notebook: notebook, [web] - opencode: ai-assistant, [terminal] - Update instance API to include tool type interfaces - Create Alembic migrations 0008 and 0009 Frontend: - Update ToolType and Session interfaces with new fields - Conditionally show Open/Terminal buttons based on tool interfaces - Add API client for tool configs OpenSpec: tool-config-management change created and implemented.
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
## Why
|
|
|
|
Tool instances need configuration (API keys, settings, files) that varies by user and project. Currently there's no way to manage these configs. Users need to store LLM API keys, editor preferences, and tool-specific settings that get mounted into containers at runtime.
|
|
|
|
## What Changes
|
|
|
|
- Add ToolConfig model for storing key-value configs per user/project/tool
|
|
- Add category and interfaces fields to ToolType model
|
|
- Create API for managing tool configs (global and project-scoped)
|
|
- Mount configs into containers when starting instances
|
|
- Add OpenCode as built-in tool type with terminal interface
|
|
- Update frontend to show tool categories and interface-appropriate actions
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
- `tool-config-management`: Store and manage tool configurations
|
|
- `tool-categories`: Categorize tools and expose appropriate interfaces
|
|
|
|
### Modified Capabilities
|
|
- `tool-types`: Add category and interfaces fields
|
|
|
|
## Impact
|
|
- Backend: New model, API endpoints, container startup changes
|
|
- Frontend: Config management UI, category display
|
|
- Database: New tool_configs table, migrations for tool_types |