docs: mark Phase 2/3 done; add file_diff, git tools, spawn_agent restrictions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-05-12 21:34:26 -04:00
parent 3716e5974f
commit 50c1997e91

View File

@@ -89,6 +89,16 @@ system prompt by `context_loader.py` at all tiers.
- Supports `local_openai` and `gemini_api` model types; returns error string for others - Supports `local_openai` and `gemini_api` model types; returns error string for others
- Admin-only tool (powerful — can spawn arbitrarily long sub-tasks) - Admin-only tool (powerful — can spawn arbitrarily long sub-tasks)
- Host UI: "Max parallel" number input in host edit/add forms - Host UI: "Max parallel" number input in host edit/add forms
- [x] **`spawn_agent` per-call tool restrictions** — `allow_tools` and `deny_tools` params — 2026-05-12
- `allow_tools: list[str]` — intersected with role ceiling; cannot grant beyond role config
- `deny_tools: list[str]` — blocked even when role permits; falls back to `confirm_deny` gate when `tool_list` is None
- Both params documented in FunctionDeclaration for orchestrator use
- [x] **`file_diff`** — unified diff between two project-scoped files — 2026-05-12
- `cortex/tools/files.py``diff -u`, 50 KB output cap, project-scoped path resolution
- [x] **`git_status` / `git_log` / `git_diff`** — read-only git inspection — 2026-05-12
- `cortex/tools/git.py` — new module; all project-scoped, low risk
- `git_log(n, path, oneline)` — last N commits with optional path filter
- `git_diff(ref_a, ref_b, path, stat_only)` — any ref range; no args = unstaged vs HEAD
- [x] **`http_post`** — POST to external URLs — 2026-05-09 - [x] **`http_post`** — POST to external URLs — 2026-05-09
- Params: `url: str`, `body: str`, `headers: dict | None`, `max_chars: int` - Params: `url: str`, `body: str`, `headers: dict | None`, `max_chars: int`
- Per-user URL prefix allowlist in `home/{user}/http_allowlist.json` (JSON array of prefixes) - Per-user URL prefix allowlist in `home/{user}/http_allowlist.json` (JSON array of prefixes)
@@ -165,8 +175,8 @@ read without the user's key.
### [Models] Model Registry V2 — Unified Provider System ### [Models] Model Registry V2 — Unified Provider System
See `DESIGN__Model_Registry_V2.md` for full design. See `DESIGN__Model_Registry_V2.md` for full design.
- [x] **Phase 1** — V2 schema with providers (Anthropic/Google), multi-account Gemini, auto migration, orchestrator uses account API key — 2026-04-27 - [x] **Phase 1** — V2 schema with providers (Anthropic/Google), multi-account Gemini, auto migration, orchestrator uses account API key — 2026-04-27
- [ ] **Phase 2** — Cloud provider UI: Anthropic + Google sections in `/settings/models`, account management, model entry creation for cloud models - [x] **Phase 2** — Cloud provider UI: Anthropic + Google sections in `/settings/models`, account management, model entry creation for cloud models — 2026-04-27
- [ ] **Phase 3** — Unified roles + toggle redesign: standalone role assignments, chat toggle cycles role slots (Primary/Backup 1/Backup 2) showing model label - [x] **Phase 3** — Unified roles + toggle redesign: chat toggle cycles chat-role slot models (Primary/Backup 1/Backup 2) by label; slot sent in chat/orchestrate payload — 2026-05-12
- [ ] **Phase 4** — Polish: Claude API key, OpenRouter as named provider, catalog sync from API - [ ] **Phase 4** — Polish: Claude API key, OpenRouter as named provider, catalog sync from API
### [Intelligence] Knowledge consolidation — Phase 1 ### [Intelligence] Knowledge consolidation — Phase 1