Add Philosophy page and improve documentation
- Add /philosophy page explaining the paradigm shift from libraries to capabilities - Visual diagrams comparing traditional vs CmdForge approach (bin of circuits vs organized workshop) - Composition flow diagram showing tools chaining together - Link from About page and homepage - Update CLAUDE.md with accurate field names (output_schema not structured_output) - Add Provider Install dialog to GUI dialogs list Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
@@ -56,7 +56,7 @@ python -m cmdforge.cli # Alternative CLI invocation
|
||||
- **gui/**: PySide6 desktop GUI
|
||||
- **main_window.py**: Main application window with sidebar navigation
|
||||
- **pages/**: Welcome page, Tools page, Tool Builder, Registry browser, Collections page, Providers management, Profiles
|
||||
- **dialogs/**: Step editors (prompt/code/tool), Argument editor, Provider dialog, Connect/Publish dialogs, Test Step dialog, Settings dialog, System Dep dialog, Help dialogs, Review/Issue dialogs
|
||||
- **dialogs/**: Step editors (prompt/code/tool), Argument editor, Provider dialog, Provider Install dialog, Connect/Publish dialogs, Test Step dialog, Settings dialog, System Dep dialog, Help dialogs, Review/Issue dialogs
|
||||
- **widgets/**: Flow graph visualization (`flow_graph.py`), Icon utilities (`icons.py`)
|
||||
|
||||
### Key Paths
|
||||
@@ -73,7 +73,7 @@ python -m cmdforge.cli # Alternative CLI invocation
|
||||
Tools are YAML configs with:
|
||||
- `name`, `description`, `category`
|
||||
- `arguments`: Custom flags with defaults (e.g., `--max` → `{max}`)
|
||||
- `steps`: Ordered list of `prompt` or `code` steps
|
||||
- `steps`: Ordered list of `prompt`, `code`, or `tool` steps
|
||||
- `output`: Template for final output (e.g., `"{response}"`)
|
||||
|
||||
### Step Types
|
||||
@@ -81,9 +81,11 @@ Tools are YAML configs with:
|
||||
1. **Prompt Step**: Calls AI provider with template, stores result in `output_var`
|
||||
- `profile`: AI persona (system prompt prefix)
|
||||
- `strip_fences`: Remove markdown code fences from output
|
||||
- `structured_output`: JSON schema for validated structured responses
|
||||
- `output_schema`: JSON schema for validated structured responses
|
||||
- `max_tokens`: Max output tokens (provider-dependent, e.g., 4096 for haiku)
|
||||
- `plain_text`: Bypass structured output enforcement
|
||||
2. **Code Step**: Executes Python code via `exec()`, captures specified variables (comma-separated for multiple outputs)
|
||||
3. **Tool Step**: Calls another tool (meta-tools), supports `args` dict and `provider` override. Dependencies resolved via `resolver.py`
|
||||
3. **Tool Step**: Calls another tool (meta-tools), supports `input_template`, `args` dict, and `provider` override. Dependencies resolved via `resolver.py`
|
||||
|
||||
### Variable Flow
|
||||
|
||||
@@ -104,12 +106,28 @@ Providers are CLI tools that accept prompts via stdin and output to stdout. Defi
|
||||
providers:
|
||||
- name: claude
|
||||
command: "claude -p"
|
||||
description: "Anthropic Claude"
|
||||
fallback: claude-haiku # Optional: try this provider if primary fails
|
||||
- name: mock
|
||||
command: "echo '[MOCK]'"
|
||||
```
|
||||
|
||||
Provider fields:
|
||||
- `name`: Provider identifier used in tool configs
|
||||
- `command`: Shell command to invoke (prompt sent via stdin)
|
||||
- `description`: Optional human-readable description
|
||||
- `fallback`: Optional provider to try if this one fails (prevents infinite loops)
|
||||
|
||||
The `mock` provider is built-in for testing without API calls. Use `--provider mock` or `--dry-run` flags when testing tools.
|
||||
|
||||
Provider CLI commands:
|
||||
- `cmdforge providers list` - List all providers and their status
|
||||
- `cmdforge providers add <name> <command>` - Add/update a provider
|
||||
- `cmdforge providers remove <name>` - Remove a provider
|
||||
- `cmdforge providers test <name>` - Test a provider
|
||||
- `cmdforge providers install` - Interactive guide to install AI providers
|
||||
- `cmdforge providers for-tools <tool> [tools...]` - List providers used by tools (with `--warm` to pre-load local models)
|
||||
|
||||
## Web UI & Registry
|
||||
|
||||
CmdForge includes a web interface and tool registry:
|
||||
|
||||
Reference in New Issue
Block a user