Add meta-tools, collections, and attribution features
Meta-tools: - Add ToolStep dataclass for tools calling other tools - Implement execute_tool_step() with recursion depth limiting - Add check_dependencies() for validating tool dependencies - Add 'cmdforge check' command for dependency verification Collections: - Add collections API endpoints and database schema - Create collections web UI (list and detail pages) - Add collections to navigation header and homepage - Document collections in REGISTRY.md Attribution: - Add source attribution fields to tool detail page - Document source types (original, adapted, imported) - Add license field documentation Documentation updates across README, DESIGN.md, REGISTRY.md, and new META_TOOLS.md design document. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
@@ -26,6 +26,7 @@ echo "Price $49.99, SKU ABC-123" | json-extract --fields "price, sku"
|
||||
- **Provider Agnostic** - Works with Claude, GPT, Gemini, DeepSeek, local models
|
||||
- **No Lock-in** - Your tools are YAML files, your prompts are yours
|
||||
- **Multi-step Pipelines** - Chain AI prompts with Python code for validation
|
||||
- **Meta-tools** - Tools can call other tools for powerful composition
|
||||
- **12+ Providers Profiled** - We tested them so you don't have to
|
||||
|
||||
## Try It Now (60 seconds)
|
||||
@@ -129,6 +130,7 @@ cmdforge edit mytool # Edit in $EDITOR
|
||||
cmdforge delete mytool # Delete tool
|
||||
cmdforge run mytool # Run a tool
|
||||
cmdforge test mytool # Test with mock provider
|
||||
cmdforge check mytool # Check dependencies (meta-tools)
|
||||
cmdforge refresh # Update executable wrappers
|
||||
```
|
||||
|
||||
@@ -340,13 +342,44 @@ steps:
|
||||
output: "{validated}"
|
||||
```
|
||||
|
||||
### Meta-Tools (Tools Calling Tools)
|
||||
|
||||
Tools can call other tools as steps, enabling powerful composition:
|
||||
|
||||
```yaml
|
||||
name: summarize-and-translate
|
||||
description: Summarize text then translate the summary
|
||||
dependencies:
|
||||
- official/summarize
|
||||
- official/translate
|
||||
steps:
|
||||
- type: tool
|
||||
tool: official/summarize
|
||||
input: "{input}"
|
||||
args:
|
||||
max_words: "100"
|
||||
output_var: summary
|
||||
|
||||
- type: tool
|
||||
tool: official/translate
|
||||
input: "{summary}"
|
||||
args:
|
||||
target_language: "{language}"
|
||||
output_var: translated
|
||||
output: "{translated}"
|
||||
```
|
||||
|
||||
Check dependencies before running: `cmdforge check my-meta-tool`
|
||||
|
||||
See [docs/META_TOOLS.md](docs/META_TOOLS.md) for full documentation.
|
||||
|
||||
### Variables
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `{input}` | The piped/file input |
|
||||
| `{argname}` | Custom argument value |
|
||||
| `{step_output}` | Output from previous step |
|
||||
| `{output_var}` | Output from previous step (prompt, code, or tool) |
|
||||
|
||||
## Shell Integration
|
||||
|
||||
@@ -563,6 +596,7 @@ cmdforge providers test claude
|
||||
### Developer Documentation
|
||||
- [Project Overview](docs/PROJECT.md) - Start here to understand the codebase
|
||||
- [Design Document](docs/DESIGN.md)
|
||||
- [Meta-Tools Design](docs/META_TOOLS.md) - Tools that call other tools
|
||||
- [Registry API Design](docs/REGISTRY.md)
|
||||
- [Web UI Design](docs/WEB_UI.md)
|
||||
- [Deployment Guide](docs/DEPLOYMENT.md)
|
||||
|
||||
Reference in New Issue
Block a user