Files
Cortex-Inara/cortex/static/TOOLS.md
Scott Idem eab92d876d refactor: split tool declarations into domain files + role config UI
tools/__init__.py shrinks from 1,137 → 250 lines. Each domain file now
owns both its callables and its FunctionDeclarations (DECLARATIONS list),
so adding a new tool only touches one file.

New TOOL_CATEGORIES dict exported from __init__ — used by the UI for
grouped tool checkboxes.

Role config UI (Settings → Model Registry → Role Assignments):
- ⚙ button per role expands an inline configure panel
- Textarea for system_append (injected into system prompt for this role)
- Grouped checkboxes for tool allow-list (all checked = no restriction)
- POST /api/models/role-config saves both fields; updates ROLE_CONFIG_DATA
  in-page so re-open reflects current state without a page reload

Backend:
- model_registry.set_role_config() writes system_append + tools to registry
- TOOL_CATEGORIES exported from tools/__init__ for UI rendering
- TOOLS.md header updated: 30 → 39 tools (ae_journal_* and cortex_* additions)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 20:40:50 -04:00

104 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tool Reference
> This reference covers all 39 orchestrator tools available when the ⚡ toggle is on.
> Tools are invoked automatically by the orchestrator — you don't call them directly.
¹ **Admin only** — requires the `admin` role. Invisible to regular users.
² **Confirmation required** — the orchestrator pauses and shows **Confirm / Deny** buttons before executing.
---
## Web
| Tool | What it does |
|---|---|
| `web_search` | DuckDuckGo search — returns titles, URLs, and snippets for the top results |
| `http_fetch` | Fetch a specific URL and return the response body (8 192 char cap) |
## Files ¹
| Tool | What it does |
|---|---|
| `file_read` ¹ | Read any file under the persona home directory |
| `file_list` ¹ | List files and directories with sizes (200 entry cap) |
| `file_write` ¹ ² | Write or append to a file under the persona home directory |
## Shell ¹
| Tool | What it does |
|---|---|
| `shell_exec` ¹ ² | Run any shell command on the Cortex host; timeout 1120 s |
| `claude_allow_dir` ¹ | Add a directory to Claude Code's auto-allowed paths |
## System ¹
| Tool | What it does |
|---|---|
| `cortex_restart` ¹ ² | Restart the Cortex service (5 s delay); connection drops — refresh the page |
| `cortex_logs` ¹ | Recent lines from the systemd journal (default 50, max 200) |
| `cortex_status` ¹ | Current git branch, commit, ahead/behind remote, and service state |
| `cortex_update` ¹ ² | `git pull` + syntax check all `.py` files; reports what changed. Does **not** restart automatically — call `cortex_restart` after reviewing |
## Tasks
| Tool | What it does |
|---|---|
| `task_list` | List personal tasks; pass `include_done=true` to include completed |
| `task_create` | Create a task with title, optional notes and due date |
| `task_update` | Update any fields on an existing task |
| `task_complete` | Mark a task as complete |
## Cron
| Tool | What it does |
|---|---|
| `cron_list` | List all scheduled jobs for this persona |
| `cron_add` | Add a scheduled job — accepts cron syntax or plain-English interval |
| `cron_remove` ² | Remove a scheduled job by ID |
| `cron_toggle` | Enable or disable a job without removing it |
## Reminders
| Tool | What it does |
|---|---|
| `reminders_add` | Add a reminder with optional label; surfaced in context at Tier 2+ |
| `reminders_list` | List all pending reminders, numbered for easy removal |
| `reminders_remove` | Remove a single reminder by number (call `reminders_list` first) |
| `reminders_clear` ² | Clear all reminders at once |
## Scratchpad
| Tool | What it does |
|---|---|
| `scratch_read` | Read the current scratchpad |
| `scratch_write` | Overwrite the scratchpad with new content |
| `scratch_append` | Append a timestamped section to the scratchpad |
| `scratch_clear` | Erase the scratchpad |
## Notifications ¹
| Tool | What it does |
|---|---|
| `email_send` ¹ | Send an email via SMTP; recipient must match your `email_allowlist.json` |
| `nc_talk_send` ¹ | Send a message to a Nextcloud Talk conversation |
## Aether Journals
| Tool | What it does |
|---|---|
| `ae_journal_list` | List all journals for the configured AE account (returns names + IDs) |
| `ae_journal_search` | Search entries by keyword, tag, date range, type, status, or priority |
| `ae_journal_entries_list` | Browse all entries in a specific journal, newest first; paginated |
| `ae_journal_entry_read` | Read the full content of a single entry by ID |
| `ae_journal_entry_create` | Create a new entry with title, content, tags, and summary |
| `ae_journal_entry_update` | Patch any fields on an existing entry (title, content, tags, summary, enable) |
| `ae_journal_entry_disable` | Soft-delete an entry (`enable=false`) without permanently removing it |
| `ae_journal_entry_append` | Append a timestamped section to the bottom of an entry's content |
| `ae_journal_entry_prepend` | Prepend a timestamped section to the top of an entry's content |
## Aether Tasks ¹
| Tool | What it does |
|---|---|
| `ae_task_list` ¹ | List tasks from the agents_sync Kanban board |