Feature Management System¶
Status: ✅ Implemented
Version: 0.1.25
Date: 2025-01-29
Summary¶
Modulares Feature-System für ToolBoxV2 mit automatischer Dependency-Installation.
Usage¶
# List all features
tb manifest list
# Enable feature (auto-installs dependencies via pip/uv)
tb manifest enable web
# Disable feature
tb manifest disable desktop
# Show feature details
tb manifest files isaa
Features¶
| Name | Default | Dependencies |
|---|---|---|
| core | ✅ enabled | - |
| cli | ✅ enabled | prompt-toolkit, ipython |
| web | ❌ disabled | starlette, uvicorn, httpx |
| desktop | ❌ disabled | PyQt6 |
| isaa | ❌ disabled | openai, litellm |
| exotic | ❌ disabled | scipy, matplotlib |
Installation Groups¶
pip install toolboxv2[cli] # CLI only
pip install toolboxv2[web] # Web workers
pip install toolboxv2[desktop] # PyQt6 GUI
pip install toolboxv2[isaa] # AI/LLM
pip install toolboxv2[exotic] # Scientific
pip install toolboxv2[all] # Everything
pip install toolboxv2[production] # CLI + Web
Python API¶
from toolboxv2 import _feature_enabled
if _feature_enabled("web"):
from toolboxv2.workers import start_workers
if _feature_enabled("isaa"):
from toolboxv2.mods.isaa import Agent
Files¶
toolboxv2/
├── features/
│ ├── core/feature.yaml # immutable
│ ├── cli/feature.yaml
│ ├── web/feature.yaml
│ ├── desktop/feature.yaml
│ ├── isaa/feature.yaml
│ └── exotic/feature.yaml
├── utils/system/feature_manager.py
├── utils/manifest/schema.py # FeatureSpec
└── utils/clis/manifest_cli.py # CLI commands
Checklist¶
- [x] FeatureSpec in schema.py
- [x] FeaturesConfig in schema.py
- [x] features/ directory with YAMLs
- [x] FeatureManager (Singleton metaclass)
- [x] CLI: list, enable, disable, files
- [x] main.py integration
- [x] init.py: _feature_enabled()
- [x] pyproject.toml optional-dependencies
- [ ] Registry download (CloudM)
- [ ] Registry upload (CloudM)