Text Generation
Transformers
English
qwen2
code-generation
python
fine-tuning
Qwen
tools
agent-framework
multi-agent
conversational
Eval Results (legacy)
Instructions to use my-ai-stack/Stack-2-9-finetuned with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use my-ai-stack/Stack-2-9-finetuned with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="my-ai-stack/Stack-2-9-finetuned") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("my-ai-stack/Stack-2-9-finetuned") model = AutoModelForCausalLM.from_pretrained("my-ai-stack/Stack-2-9-finetuned") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use my-ai-stack/Stack-2-9-finetuned with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "my-ai-stack/Stack-2-9-finetuned" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/my-ai-stack/Stack-2-9-finetuned
- SGLang
How to use my-ai-stack/Stack-2-9-finetuned with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "my-ai-stack/Stack-2-9-finetuned" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "my-ai-stack/Stack-2-9-finetuned" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use my-ai-stack/Stack-2-9-finetuned with Docker Model Runner:
docker model run hf.co/my-ai-stack/Stack-2-9-finetuned
| # Stack 2.9 - Complete Tools Reference | |
| Stack 2.9 provides **38 built-in tools** for file operations, git, code execution, web requests, memory, and task management. This document provides the complete reference with actual parameter names, types, and usage examples. | |
| --- | |
| ## Tool Calling Format | |
| Tools are called using a JSON-based function calling format. The agent automatically selects tools based on user intent, but you can also call them directly via the agent API. | |
| ### Example Tool Call | |
| ```json | |
| { | |
| "tool": "read", | |
| "params": { | |
| "path": "/path/to/file.py" | |
| }, | |
| "id": "call_123" | |
| } | |
| ``` | |
| ### Return Format | |
| All tools return a JSON-serializable dict: | |
| ```json | |
| { | |
| "success": true|false, | |
| "result": <tool-specific result data>, | |
| "error": <error message if failed> | |
| } | |
| ``` | |
| --- | |
| ## Complete Tool Catalog | |
| ### 1. File Operations | |
| #### `read` | |
| Read file contents with optional pagination. | |
| - **Parameters:** | |
| - `path` (string, required) - Path to the file | |
| - `offset` (integer, optional, default: 0) - Line number to start from (0-indexed) | |
| - `limit` (integer, optional, default: -1) - Maximum lines to read (-1 = all) | |
| - **Returns:** `{success, content, total_lines, path}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "read", | |
| "params": {"path": "stack_cli/cli.py", "limit": 50} | |
| } | |
| ``` | |
| #### `write` | |
| Write content to a file (overwrites by default). | |
| - **Parameters:** | |
| - `path` (string, required) - Destination file path | |
| - `content` (string, required) - Content to write | |
| - `append` (boolean, optional, default: false) - Append instead of overwrite | |
| - **Returns:** `{success, path, lines_written}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "write", | |
| "params": { | |
| "path": "output.txt", | |
| "content": "Hello, World!", | |
| "append": false | |
| } | |
| } | |
| ``` | |
| #### `edit` | |
| Replace exact text in a file (single occurrence). | |
| - **Parameters:** | |
| - `path` (string, required) - File to edit | |
| - `old_text` (string, required) - Text to find and replace | |
| - `new_text` (string, required) - Replacement text | |
| - **Returns:** `{success, path, edits_made}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "edit", | |
| "params": { | |
| "path": "config.yaml", | |
| "old_text": "debug: false", | |
| "new_text": "debug: true" | |
| } | |
| } | |
| ``` | |
| #### `search` | |
| Recursively search for files matching a glob pattern. | |
| - **Parameters:** | |
| - `path` (string, required) - Directory to search in | |
| - `pattern` (string, required) - Glob pattern (e.g., `"*.py"`, `"**/*.md"`) | |
| - `exclude` (array of strings, optional) - Paths to exclude | |
| - **Returns:** `{success, matches, count}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "search", | |
| "params": { | |
| "path": ".", | |
| "pattern": "**/*.py", | |
| "exclude": ["__pycache__", "node_modules"] | |
| } | |
| } | |
| ``` | |
| #### `grep` | |
| Search for regex pattern across files with optional context. | |
| - **Parameters:** | |
| - `path` (string, required) - File or directory to search | |
| - `pattern` (string, required) - Regular expression pattern | |
| - `context` (integer, optional, default: 0) - Lines of context before/after | |
| - **Returns:** `{success, matches, count}` where each match has `{file, line, content, context?}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "grep", | |
| "params": { | |
| "path": "stack_cli", | |
| "pattern": "def tool_", | |
| "context": 2 | |
| } | |
| } | |
| ``` | |
| #### `copy` | |
| Copy file or directory (recursive for directories). | |
| - **Parameters:** | |
| - `source` (string, required) - Source path | |
| - `destination` (string, required) - Destination path | |
| - **Returns:** `{success, source, destination}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "copy", | |
| "params": { | |
| "source": "config.example.yaml", | |
| "destination": "config.yaml" | |
| } | |
| } | |
| ``` | |
| #### `move` | |
| Move or rename file/directory. | |
| - **Parameters:** | |
| - `source` (string, required) - Current path | |
| - `destination` (string, required) - New path | |
| - **Returns:** `{success, source, destination}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "move", | |
| "params": { | |
| "source": "old_name.py", | |
| "destination": "new_name.py" | |
| } | |
| } | |
| ``` | |
| #### `delete` | |
| Delete file or directory (requires force=True for safety). | |
| - **Parameters:** | |
| - `path` (string, required) - Path to delete | |
| - `force` (boolean, optional, default: false) - Actually delete when true | |
| - **Returns:** `{success, deleted/would_delete, warning?}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "delete", | |
| "params": { | |
| "path": "obsolete_file.txt", | |
| "force": true | |
| } | |
| } | |
| ``` | |
| --- | |
| ### 2. Git Operations | |
| #### `git_status` | |
| Get git repository status (porcelain format). | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") - Repository root | |
| - **Returns:** `{success, files, count, repo}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_status", | |
| "params": {"repo_path": "."} | |
| } | |
| ``` | |
| #### `git_commit` | |
| Stage changes and create a commit. | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") - Repository root | |
| - `message` (string, required) - Commit message | |
| - `files` (array of strings, optional) - Specific files to stage (stages all if omitted) | |
| - **Returns:** `{success, message, output}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_commit", | |
| "params": { | |
| "repo_path": ".", | |
| "message": "feat: add new tool documentation", | |
| "files": ["TOOLS.md", "docs/tools.md"] | |
| } | |
| } | |
| ``` | |
| #### `git_push` | |
| Push commits to remote repository. | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") - Repository root | |
| - `remote` (string, optional, default: "origin") - Remote name | |
| - `branch` (string, optional) - Branch name (pushes current branch if omitted) | |
| - **Returns:** `{success, remote, branch, output}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_push", | |
| "params": { | |
| "repo_path": ".", | |
| "remote": "origin", | |
| "branch": "main" | |
| } | |
| } | |
| ``` | |
| #### `git_pull` | |
| Pull changes from remote. | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") - Repository root | |
| - `remote` (string, optional, default: "origin") - Remote name | |
| - `branch` (string, optional) - Branch name (pulls current branch if omitted) | |
| - **Returns:** `{success, remote, branch, output}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_pull", | |
| "params": { | |
| "repo_path": ".", | |
| "remote": "origin" | |
| } | |
| } | |
| ``` | |
| #### `git_branch` | |
| List, create, or delete branches. | |
| - **Parameters (mutually exclusive):** | |
| - `repo_path` (string, optional, default: ".") | |
| - `create` (string, optional) - Create and checkout new branch | |
| - `delete` (string, optional) - Delete branch | |
| - **Returns:** `{success, branches?, count?, created?, deleted?}` | |
| **Examples:** | |
| ```json | |
| // List branches | |
| {"tool": "git_branch", "params": {"repo_path": "."}} | |
| // Create branch | |
| {"tool": "git_branch", "params": {"create": "feature/new-docs"}} | |
| // Delete branch | |
| {"tool": "git_branch", "params": {"delete": "old-branch"}} | |
| ``` | |
| #### `git_log` | |
| View commit history. | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") | |
| - `limit` (integer, optional, default: 10) - Maximum commits | |
| - **Returns:** `{success, commits, count}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_log", | |
| "params": {"repo_path": ".", "limit": 20} | |
| } | |
| ``` | |
| #### `git_diff` | |
| Show changes between commits or working tree. | |
| - **Parameters:** | |
| - `repo_path` (string, optional, default: ".") | |
| - `file` (string, optional) - Specific file to diff | |
| - `staged` (boolean, optional, default: false) - Show staged changes | |
| - **Returns:** `{success, diff, has_changes}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "git_diff", | |
| "params": { | |
| "repo_path": ".", | |
| "staged": true | |
| } | |
| } | |
| ``` | |
| --- | |
| ### 3. Code Execution | |
| #### `run` | |
| Execute shell command with timeout. | |
| - **Parameters:** | |
| - `command` (string, required) - Shell command to run | |
| - `timeout` (integer, optional, default: 60) - Seconds before timeout | |
| - `cwd` (string, optional) - Working directory | |
| - `env` (object, optional) - Environment variables to merge | |
| - **Returns:** `{success, returncode, stdout, stderr, command}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "run", | |
| "params": { | |
| "command": "python -m pytest tests/ -v", | |
| "timeout": 300, | |
| "cwd": "." | |
| } | |
| } | |
| ``` | |
| #### `test` | |
| Run tests using pytest. | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") - Test directory or file | |
| - `pattern` (string, optional, default: "test*.py") - Test file pattern | |
| - `verbose` (boolean, optional, default: true) - Verbose output | |
| - **Returns:** `{success, output, errors, returncode}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "test", | |
| "params": { | |
| "path": "tests/", | |
| "pattern": "test_*.py", | |
| "verbose": true | |
| } | |
| } | |
| ``` | |
| #### `lint` | |
| Lint code with specified linter (ruff, pylint, mypy). | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") | |
| - `linter` (string, optional, default: "ruff") - "ruff", "pylint", or "mypy" | |
| - **Returns:** `{success, output, errors}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "lint", | |
| "params": { | |
| "path": "stack_cli/", | |
| "linter": "ruff" | |
| } | |
| } | |
| ``` | |
| #### `format` | |
| Format code with specified formatter. | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") | |
| - `formatter` (string, optional, default: "ruff") - "ruff" or "black" | |
| - **Returns:** `{success, output, errors}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "format", | |
| "params": { | |
| "path": ".", | |
| "formatter": "black" | |
| } | |
| } | |
| ``` | |
| #### `typecheck` | |
| Run type checking with mypy. | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") | |
| - **Returns:** `{success, output, errors}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "typecheck", | |
| "params": {"path": "stack_cli"} | |
| } | |
| ``` | |
| #### `server` | |
| Start a development server (optionally in background). | |
| - **Parameters:** | |
| - `command` (string, required) - Command to start server | |
| - `port` (integer, required) - Port number (for reference) | |
| - `cwd` (string, optional) - Working directory | |
| - `background` (boolean, optional, default: false) - Run in background | |
| - **Returns:** `{success, pid?, port, message}` or `{success, output}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "server", | |
| "params": { | |
| "command": "python -m http.server 8000", | |
| "port": 8000, | |
| "background": true | |
| } | |
| } | |
| ``` | |
| #### `install` | |
| Install dependencies from requirements file. | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") - Project directory | |
| - `package_manager` (string, optional, default: "pip") - "pip", "poetry", or "npm" | |
| - **Returns:** `{success, output, errors}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "install", | |
| "params": { | |
| "path": ".", | |
| "package_manager": "pip" | |
| } | |
| } | |
| ``` | |
| --- | |
| ### 4. Web & Search | |
| #### `web_search` | |
| Search the web using Brave Search. | |
| - **Parameters:** | |
| - `query` (string, required) - Search query | |
| - `count` (integer, optional, default: 5) - Number of results (1-10) | |
| - `freshness` (string, optional) - Filter by time: "day", "week", "month", "year" | |
| - `language` (string, optional) - ISO 639-1 language code (e.g., "en", "fr") | |
| - **Returns:** `{success, query, results, count}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "web_search", | |
| "params": { | |
| "query": "Stack 2.9 AI coding assistant", | |
| "count": 10, | |
| "freshness": "month" | |
| } | |
| } | |
| ``` | |
| #### `fetch` | |
| Download and extract content from a URL. | |
| - **Parameters:** | |
| - `url` (string, required) - URL to fetch | |
| - `max_chars` (integer, optional, default: 10000) - Maximum content length | |
| - **Returns:** `{success, url, content, length}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "fetch", | |
| "params": { | |
| "url": "https://example.com/README.md", | |
| "max_chars": 5000 | |
| } | |
| } | |
| ``` | |
| #### `download` | |
| Download file from URL to local path. | |
| - **Parameters:** | |
| - `url` (string, required) - Source URL | |
| - `destination` (string, required) - Local file path | |
| - **Returns:** `{success, url, destination, size}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "download", | |
| "params": { | |
| "url": "https://example.com/dataset.csv", | |
| "destination": "data/dataset.csv" | |
| } | |
| } | |
| ``` | |
| #### `check_url` | |
| Check if URL is accessible (HTTP HEAD request). | |
| - **Parameters:** | |
| - `url` (string, required) - URL to check | |
| - **Returns:** `{success, url, status_code}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "check_url", | |
| "params": {"url": "https://github.com"} | |
| } | |
| ``` | |
| #### `screenshot` | |
| Take screenshot of a webpage (requires puppeteer). | |
| - **Parameters:** | |
| - `url` (string, required) - Webpage URL | |
| - `destination` (string, optional, default: "screenshot.png") - Output path | |
| - **Returns:** `{success, url, destination}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "screenshot", | |
| "params": { | |
| "url": "https://stack-2-9.example.com", | |
| "destination": "website.png" | |
| } | |
| } | |
| ``` | |
| --- | |
| ### 5. Memory & Knowledge | |
| #### `memory_recall` | |
| Search memory files for relevant entries. | |
| - **Parameters:** | |
| - `query` (string, required) - Search query | |
| - `max_results` (integer, optional, default: 5) - Maximum matches | |
| - **Returns:** `{success, query, matches, count}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "memory_recall", | |
| "params": { | |
| "query": "deployment requirements", | |
| "max_results": 10 | |
| } | |
| } | |
| ``` | |
| #### `memory_save` | |
| Store a memory entry in MEMORY.md. | |
| - **Parameters:** | |
| - `key` (string, required) - Entry title/heading | |
| - `value` (string, required) - Content to save | |
| - **Returns:** `{success, key, saved}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "memory_save", | |
| "params": { | |
| "key": "GPU Requirements", | |
| "value": "Minimum: 8GB VRAM, Recommended: 24GB VRAM" | |
| } | |
| } | |
| ``` | |
| #### `memory_list` | |
| List all memory entries with preview. | |
| - **Parameters:** None | |
| - **Returns:** `{success, entries, count}` where each entry has `{title, content}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "memory_list", | |
| "params": {} | |
| } | |
| ``` | |
| #### `context_load` | |
| Load workspace context files (AGENTS.md, SOUL.md, TOOLS.md). | |
| - **Parameters:** | |
| - `projects` (array of strings, optional) - Project names to load | |
| - **Returns:** `{success, context, loaded}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "context_load", | |
| "params": {} | |
| } | |
| ``` | |
| #### `project_scan` | |
| Scan project structure and detect tech stack. | |
| - **Parameters:** | |
| - `path` (string, optional, default: ".") | |
| - **Returns:** `{success, project}` with `{name, files, dirs, has_git, has_pyproject, has_package_json, has_dockerfile}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "project_scan", | |
| "params": {"path": "."} | |
| } | |
| ``` | |
| --- | |
| ### 6. Task & Planning | |
| #### `create_task` | |
| Create a new task. | |
| - **Parameters:** | |
| - `title` (string, required) - Task title | |
| - `description` (string, optional, default: "") - Detailed description | |
| - `priority` (string, optional, default: "medium") - "low", "medium", or "high" | |
| - **Returns:** `{success, task}` with `{id, title, description, priority, status, created}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "create_task", | |
| "params": { | |
| "title": "Write comprehensive tool documentation", | |
| "description": "Create TOOLS.md with all 38 tools documented", | |
| "priority": "high" | |
| } | |
| } | |
| ``` | |
| #### `list_tasks` | |
| List tasks with optional filtering. | |
| - **Parameters:** | |
| - `status` (string, optional) - Filter by "pending", "done", or "all" | |
| - `priority` (string, optional) - Filter by "low", "medium", "high" | |
| - **Returns:** `{success, tasks, count}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "list_tasks", | |
| "params": { | |
| "status": "pending", | |
| "priority": "high" | |
| } | |
| } | |
| ``` | |
| #### `update_task` | |
| Update task status or fields. | |
| - **Parameters:** | |
| - `task_id` (string, required) - Task identifier | |
| - `status` (string, optional) - New status | |
| - Additional fields: `title`, `description`, `priority` | |
| - **Returns:** `{success, task_id, updated}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "update_task", | |
| "params": { | |
| "task_id": "a1b2c3d4", | |
| "status": "done" | |
| } | |
| } | |
| ``` | |
| #### `delete_task` | |
| Delete a task by ID. | |
| - **Parameters:** | |
| - `task_id` (string, required) - Task to delete | |
| - **Returns:** `{success, task_id, deleted}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "delete_task", | |
| "params": {"task_id": "a1b2c3d4"} | |
| } | |
| ``` | |
| #### `create_plan` | |
| Create an execution plan with steps. | |
| - **Parameters:** | |
| - `goal` (string, required) - Plan objective | |
| - `steps` (array of strings, required) - Ordered steps | |
| - **Returns:** `{success, plan}` with `{id, goal, steps, status, created}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "create_plan", | |
| "params": { | |
| "goal": "Deploy to RunPod", | |
| "steps": [ | |
| "Prepare Docker image", | |
| "Upload to registry", | |
| "Launch pod with template", | |
| "Verify deployment" | |
| ] | |
| } | |
| } | |
| ``` | |
| #### `execute_plan` | |
| Mark a plan as in-progress (execution tracking). | |
| - **Parameters:** | |
| - `plan_id` (string, required) - Plan identifier | |
| - **Returns:** `{success, plan_id, status, steps}` | |
| **Example:** | |
| ```json | |
| { | |
| "tool": "execute_plan", | |
| "params": {"plan_id": "p123abc"} | |
| } | |
| ``` | |
| --- | |
| ## Tool Count Clarification | |
| **Actual tool count: 38** (not 37). The following categories: | |
| - File Operations: 8 tools | |
| - Git Operations: 7 tools | |
| - Code Execution: 7 tools | |
| - Web & Search: 5 tools | |
| - Memory & Knowledge: 5 tools | |
| - Task & Planning: 6 tools | |
| - **Total: 38 tools** | |
| --- | |
| ## Extension Mechanism | |
| To add a new tool, edit `stack_cli/tools.py`: | |
| ```python | |
| def tool_my_feature(param1: str, param2: int = 42) -> Dict[str, Any]: | |
| """Brief description for LLM.""" | |
| try: | |
| # Implementation | |
| result = do_something(param1, param2) | |
| return { | |
| "success": True, | |
| "result": result | |
| } | |
| except Exception as e: | |
| return {"success": False, "error": str(e)} | |
| # Register in TOOLS dict | |
| TOOLS["my_feature"] = tool_my_feature | |
| ``` | |
| The tool will be automatically available. Update this document when adding tools. | |
| --- | |
| ## Schema Generation | |
| For programmatic access, use: | |
| ```python | |
| from stack_cli.tools import get_tool_schemas, get_tool | |
| # Get all tool schemas (for LLM function calling) | |
| schemas = get_tool_schemas() | |
| # Get a specific tool function | |
| read_fn = get_tool("read") | |
| result = read_fn(path="file.txt") | |
| ``` | |
| **Note:** The `get_tool_schemas()` function currently provides a limited subset. For full production use, extend it to include all 38 tools with proper JSON Schema parameters derived from function signatures. | |
| --- | |
| ## Best Practices | |
| 1. **Always check `success`** in the return value before using results | |
| 2. **Use pagination** for large files: `read(path, offset=0, limit=1000)` | |
| 3. **Handle errors gracefully** - tools return `error` field when `success=false` | |
| 4. **Be cautious with destructive operations**: `delete` requires `force=true` | |
| 5. **Set appropriate timeouts** for long-running commands (`run` tool) | |
| 6. **Use `git_status` before `git_commit`** to verify what will be committed | |
| 7. **Remember context limits** - tool results count against token limits | |
| --- | |
| ## Quick Reference Table | |
| | Category | Tools | Count | | |
| |----------|-------|-------| | |
| | File Operations | read, write, edit, search, grep, copy, move, delete | 8 | | |
| | Git | git_status, git_commit, git_push, git_pull, git_branch, git_log, git_diff | 7 | | |
| | Execution | run, test, lint, format, typecheck, server, install | 7 | | |
| | Web | web_search, fetch, download, check_url, screenshot | 5 | | |
| | Memory | memory_recall, memory_save, memory_list, context_load, project_scan | 5 | | |
| | Planning | create_task, list_tasks, update_task, delete_task, create_plan, execute_plan | 6 | | |
| | **Total** | | **38** | | |
| --- | |
| *Last updated: 2026-04-02* | |
| *Stack 2.9 - Pattern Memory AI* | |