diff --git a/internal/plugins/template/Examples/README.md b/internal/plugins/template/Examples/README.md index bc108ad8..240bf870 100644 --- a/internal/plugins/template/Examples/README.md +++ b/internal/plugins/template/Examples/README.md @@ -9,7 +9,7 @@ # ❌ This DOES NOT WORK - extensions are not processed in stdin echo "{{ext:word-generator:generate:3}}" | fabric -# ✅ This WORKS - extensions are processed within patterns +# ✅ This WORKS - extensions are processed within patterns fabric -p my-pattern-with-extensions.md ``` @@ -18,6 +18,7 @@ When you pipe directly to fabric without a pattern, the input goes straight to t ## Understanding Extension Architecture ### Registry Structure + The extension registry is stored at `~/.config/fabric/extensions/extensions.yaml` and tracks registered extensions: ```yaml @@ -31,6 +32,7 @@ extensions: The registry maintains security through hash verification of both configs and executables. ### Extension Configuration + Each extension requires a YAML configuration file with the following structure: ```yaml @@ -56,8 +58,10 @@ config: # Output configuration ``` ### Directory Structure + Recommended organization: -``` + +```text ~/.config/fabric/extensions/ ├── bin/ # Extension executables ├── configs/ # Extension YAML configs @@ -65,9 +69,11 @@ Recommended organization: ``` ## Example 1: Python Wrapper (Word Generator) + A simple example wrapping a Python script. ### 1. Position Files + ```bash # Create directories mkdir -p ~/.config/fabric/extensions/{bin,configs} @@ -78,7 +84,9 @@ chmod +x ~/.config/fabric/extensions/bin/word-generator.py ``` ### 2. Configure + Create `~/.config/fabric/extensions/configs/word-generator.yaml`: + ```yaml name: word-generator executable: "~/.config/fabric/extensions/bin/word-generator.py" @@ -97,6 +105,7 @@ config: ``` ### 3. Register & Run + ```bash # Register fabric --addextension ~/.config/fabric/extensions/configs/word-generator.yaml @@ -106,13 +115,16 @@ fabric --addextension ~/.config/fabric/extensions/configs/word-generator.yaml ``` ## Example 2: Direct Executable (SQLite3) + Using a system executable directly. copy the memories to your home directory ~/memories.db ### 1. Configure + Create `~/.config/fabric/extensions/configs/memory-query.yaml`: + ```yaml name: memory-query executable: "/usr/bin/sqlite3" @@ -137,6 +149,7 @@ config: ``` ### 2. Register & Run + ```bash # Register fabric --addextension ~/.config/fabric/extensions/configs/memory-query.yaml @@ -145,10 +158,10 @@ fabric --addextension ~/.config/fabric/extensions/configs/memory-query.yaml # Direct piping to fabric will NOT process extension syntax ``` - ## Extension Management Commands ### Add Extension + ```bash fabric --addextension ~/.config/fabric/extensions/configs/memory-query.yaml ``` @@ -156,25 +169,28 @@ fabric --addextension ~/.config/fabric/extensions/configs/memory-query.yaml Note : if the executable or config file changes, you must re-add the extension. This will recompute the hash for the extension. - ### List Extensions + ```bash fabric --listextensions ``` + Shows all registered extensions with their status and configuration details. ### Remove Extension + ```bash fabric --rmextension ``` -Removes an extension from the registry. +Removes an extension from the registry. ## Extensions in patterns **IMPORTANT**: Extensions are ONLY processed when used within pattern files, not via direct piping to fabric. Create a pattern file (e.g., `test_pattern.md`): + ```markdown These are my favorite {{ext:word-generator:generate:3}} @@ -186,13 +202,14 @@ what does this say about me? ``` Run the pattern: + ```bash fabric -p ./internal/plugins/template/Examples/test_pattern.md ``` ## Passing {{input}} to extensions inside patterns -``` +```text Create a pattern called ai_summarize that uses extensions (see openai.yaml and copy for claude) Summarize the responses from both AI models: @@ -232,6 +249,7 @@ echo "What is Artificial Intelligence" | ../fabric-fix -p ai_summarize ## Troubleshooting ### Common Issues + 1. **Registration Failures** - Verify file permissions - Check executable paths @@ -249,10 +267,10 @@ echo "What is Artificial Intelligence" | ../fabric-fix -p ai_summarize - Monitor disk space for file operations ### Debug Tips + 1. Enable verbose logging when available 2. Check system logs for execution errors 3. Verify extension dependencies 4. Test extensions with minimal configurations first - -Would you like me to expand on any particular section or add more examples? \ No newline at end of file +Would you like me to expand on any particular section or add more examples?