From f66fb5a19af1fd5a2203bb3f230fb8b67c6ee9bf Mon Sep 17 00:00:00 2001 From: Eugen Thaci Date: Mon, 23 Mar 2026 12:55:20 +0100 Subject: [PATCH] docs(spec): align ASCII UI tables in specification and related pages Align Unicode box-drawing blocks and related tables in specification.md, ADR-044/045/046, and reference pages for consistent MkDocs rendering. ISSUES CLOSED: #1171 --- .../ADR-044-tui-architecture-and-framework.md | 50 +- docs/adr/ADR-045-tui-persona-system.md | 8 +- ...DR-046-tui-reference-and-command-system.md | 16 +- docs/reference/a2a.md | 82 ++- docs/reference/acms_fusion.md | 47 +- docs/reference/cli_system_commands.md | 46 +- docs/reference/context_indexing.md | 6 +- docs/reference/context_strategies.md | 6 +- docs/reference/decision_model.md | 4 +- docs/reference/devcontainer_resources.md | 2 +- docs/reference/error_handling.md | 4 +- docs/reference/resource_type_inheritance.md | 4 +- docs/reference/semantic_validation.md | 30 +- docs/reference/temporal_data_model.md | 2 +- docs/specification.md | 586 +++++++++--------- 15 files changed, 454 insertions(+), 439 deletions(-) diff --git a/docs/adr/ADR-044-tui-architecture-and-framework.md b/docs/adr/ADR-044-tui-architecture-and-framework.md index 419b2690..a13d3ed4 100644 --- a/docs/adr/ADR-044-tui-architecture-and-framework.md +++ b/docs/adr/ADR-044-tui-architecture-and-framework.md @@ -114,34 +114,34 @@ CleverAgentsApp(App) The MainScreen is the primary interface. It uses a horizontal layout with the conversation taking available space and the sidebar docked to the right: ``` -┌─────────────────────────────────────────────────────┬──────────────────────┐ -│ Throbber (height: 1, full width, visible when busy) │ │ -│ SessionTabs (height: auto, visible when ≥2 sessions)│ │ -├─────────────────────────────────────────────────────┤ SideBar │ -│ │ (dock: right) │ -│ Conversation │ (width: 32-40) │ -│ (flex: 1fr) │ (max-width: 45%) │ -│ │ ┌────────────────┐ │ -│ ┌─ ContentsGrid ─────────────────────────────────┐ │ │ PlansPanel │ │ -│ │ Cursor │ Contents stream │ │ │ (collapsible) │ │ -│ │ (1ch) │ - Welcome / UserInput / ActorResponse│ │ │ │ │ -│ │ │ - ToolCall / PlanProgress / DiffView │ │ ├────────────────┤ │ -│ │ │ - TerminalEmbed / Note / Warning │ │ │ ProjectsPanel │ │ -│ └────────┴───────────────────────────────────────┘ │ │ (collapsible) │ │ -│ │ │ │ │ -│ Flash (notification bar, height: 1) │ └────────────────┘ │ -│ │ │ -│ ┌─ Prompt ───────────────────────────────────────┐ │ │ +┌──────────────────────────────────────────────────────┬──────────────────────┐ +│ Throbber (height: 1, full width, visible when busy) │ │ +│ SessionTabs (height: auto, visible when ≥2 sessions) │ │ +├──────────────────────────────────────────────────────┤ SideBar │ +│ │ (dock: right) │ +│ Conversation │ (width: 32-40) │ +│ (flex: 1fr) │ (max-width: 45%) │ +│ │ ┌────────────────┐ │ +│ ┌─ ContentsGrid ─────────────────────────────────┐ │ │ PlansPanel │ │ +│ │ Cursor │ Contents stream │ │ │ (collapsible) │ │ +│ │ (1ch) │ - Welcome / UserInput / ActorResponse│ │ │ │ │ +│ │ │ - ToolCall / PlanProgress / DiffView │ │ ├────────────────┤ │ +│ │ │ - TerminalEmbed / Note / Warning │ │ │ ProjectsPanel │ │ +│ └────────┴───────────────────────────────────────┘ │ │ (collapsible) │ │ +│ │ │ │ │ +│ Flash (notification bar, height: 1) │ └────────────────┘ │ +│ │ │ +│ ┌─ Prompt ────────────────────────────────────────┐ │ │ │ │ ReferencePickerOverlay (overlay, triggered by @)│ │ │ │ │ SlashCommandOverlay (overlay, triggered by /) │ │ │ -│ │ ┌─ PromptContainer ─────────────────────────┐ │ │ │ -│ │ │ [❯] PromptTextArea │ │ │ │ -│ │ └───────────────────────────────────────────┘ │ │ │ -│ │ PersonaBar: name │ actor │ preset │ cost │ │ │ +│ │ ┌─ PromptContainer ─────────────────────────┐ │ │ │ +│ │ │ [❯] PromptTextArea │ │ │ │ +│ │ └───────────────────────────────────────────┘ │ │ │ +│ │ PersonaBar: name │ actor │ preset │ cost │ │ │ │ └─────────────────────────────────────────────────┘ │ │ -├─────────────────────────────────────────────────────┴──────────────────────┤ -│ Footer: F1 Help │ shift+tab Sidebar │ tab Persona │ ctrl+q Quit │ -└────────────────────────────────────────────────────────────────────────────┘ +├──────────────────────────────────────────────────────┴──────────────────────┤ +│ Footer: F1 Help │ shift+tab Sidebar │ tab Persona │ ctrl+q Quit │ +└─────────────────────────────────────────────────────────────────────────────┘ ``` ### Sidebar Three-State Behavior diff --git a/docs/adr/ADR-045-tui-persona-system.md b/docs/adr/ADR-045-tui-persona-system.md index 1909e715..2013e613 100644 --- a/docs/adr/ADR-045-tui-persona-system.md +++ b/docs/adr/ADR-045-tui-persona-system.md @@ -175,14 +175,14 @@ The active preset's `display` name appears in the PersonaBar. The effective argu ### Persona Lifecycle ``` -┌──────────┐ ┌──────────────┐ ┌───────────────┐ ┌──────────┐ +┌───────────┐ ┌──────────────┐ ┌───────────────┐ ┌──────────┐ │ First Run │────►│ Auto-create │────►│ Active in │────►│ Modified │ │ (no │ │ "default" │ │ session │ │ by user │ │ personas)│ │ persona from │ │ │ │ │ -└──────────┘ │ actor select │ └───────────────┘ └──────────┘ +└───────────┘ │ actor select │ └───────────────┘ └──────────┘ └──────────────┘ ▲ │ │ │ - └─── Saved to YAML ──┘ + └─── Saved to YAML ───┘ ``` 1. **First run**: No personas exist. Actor selection overlay creates a `"default"` persona with auto-generated presets. @@ -212,7 +212,7 @@ The PersonaBar sits directly below the prompt input and is always visible: ``` ┌─────────────────────────────────────────────────────────────────────┐ │ ❯ What would you like to do? │ -│ ▌@▐ refs ▌/▐ commands ▌!▐ shell │ +│ ▌@▐ refs ▌/▐ commands ▌!▐ shell │ └─────────────────────────────────────────────────────────────────────┘ feature-dev │ anthropic/claude-4-sonnet │ think: high │ 2 projects │ $0.12 ``` diff --git a/docs/adr/ADR-046-tui-reference-and-command-system.md b/docs/adr/ADR-046-tui-reference-and-command-system.md index 469b4b21..c1d4b063 100644 --- a/docs/adr/ADR-046-tui-reference-and-command-system.md +++ b/docs/adr/ADR-046-tui-reference-and-command-system.md @@ -140,22 +140,22 @@ Results are sorted by: (1) match weight descending, (2) recency of access descen Each result shows its type, canonical reference, and contextual information: ``` -┌─ Reference Picker ──────────────────────────────────────────┐ +┌─ Reference Picker ───────────────────────────────────────────┐ │ @hand │ -│ ─────────────────────────────────────────────────────────── │ +│ ──────────────────────────────────────────────────────────── │ │ PROJECT api-service:src/auth/handler.py │ │ local/api-service • Python • 245 lines │ │ │ │ PROJECT cleveragents:git_dir/src/cli/commands/handler.py │ │ local/cleveragents • Python • 189 lines │ │ │ -│ PROJECT api-service:src/auth/middleware/handler_base.py │ +│ PROJECT api-service:src/auth/middleware/handler_base.py │ │ local/api-service • Python • 67 lines │ │ │ │ PLAN fix-auth-handler (01HXM8C2...) │ │ Phase: Execute • Actor: claude-4-sonnet │ │ │ -│ ─────────────────────────────────────────────────────────── │ +│ ──────────────────────────────────────────────────────────── │ │ enter Select │ tab Tree │ ctrl+p Projects │ ctrl+l Plans │ └──────────────────────────────────────────────────────────────┘ ``` @@ -178,7 +178,7 @@ While the Reference Picker is open: When the user presses `tab` in the Reference Picker, it switches from search mode to tree browser mode. This shows a navigable tree: ``` -┌─ Reference Picker (Tree) ───────────────────────────────────┐ +┌─ Reference Picker (Tree) ────────────────────────────────────┐ │ │ │ ▼ Projects │ │ ▼ local/cleveragents │ @@ -230,9 +230,9 @@ Commands are TUI operations that execute immediately without being sent to the a When `/` is typed at position 0, the Slash Command overlay appears with filterable command list: ``` -┌─ Commands ──────────────────────────────────────────────────┐ +┌─ Commands ───────────────────────────────────────────────────┐ │ /se │ -│ ─────────────────────────────────────────────────────────── │ +│ ──────────────────────────────────────────────────────────── │ │ /session:create Create a new session tab │ │ /session:list Show all sessions │ │ /session:show Show session details │ @@ -426,7 +426,7 @@ Shell mode provides direct OS command execution from the TUI prompt. │ │ │ Changes not staged for commit: │ │ modified: src/auth/handler.py │ - │ modified: src/auth/middleware.py │ + │ modified: src/auth/middleware.py │ │ │ │ Untracked files: │ │ src/auth/limiter.py │ diff --git a/docs/reference/a2a.md b/docs/reference/a2a.md index b71fe68d..020057b6 100644 --- a/docs/reference/a2a.md +++ b/docs/reference/a2a.md @@ -13,18 +13,34 @@ between the Presentation and Application layers. ## Table of Contents -- [Agent Card](#agent-card) -- [Transport Modes](#transport-modes) -- [Standard A2A Operations](#standard-a2a-operations) -- [Extension Methods](#extension-methods) -- [Streaming Events](#streaming-events) -- [Multi-Turn Interactions](#multi-turn-interactions) -- [Local Facade](#local-facade) -- [Service Wiring](#service-wiring) -- [Error Code Taxonomy](#error-code-taxonomy) -- [Authentication](#authentication) -- [Client Architecture](#client-architecture) -- [Error Hierarchy](#error-hierarchy) +- [A2A (Agent-to-Agent Protocol) Reference](#a2a-agent-to-agent-protocol-reference) + - [Overview](#overview) + - [Table of Contents](#table-of-contents) + - [Agent Card](#agent-card) + - [Transport Modes](#transport-modes) + - [Standard A2A Operations](#standard-a2a-operations) + - [Extension Methods](#extension-methods) + - [Plan Operations](#plan-operations) + - [Registry Operations](#registry-operations) + - [Context Operations](#context-operations) + - [Sync Operations](#sync-operations) + - [Namespace Operations](#namespace-operations) + - [Health and Diagnostics](#health-and-diagnostics) + - [Streaming Events](#streaming-events) + - [Task Lifecycle States](#task-lifecycle-states) + - [Example Streaming Event](#example-streaming-event) + - [Multi-Turn Interactions](#multi-turn-interactions) + - [Local Facade](#local-facade) + - [Constructor](#constructor) + - [Methods](#methods) + - [Service Wiring](#service-wiring) + - [Service Keys](#service-keys) + - [Error Code Taxonomy](#error-code-taxonomy) + - [Example Error Response](#example-error-response) + - [Authentication](#authentication) + - [Client Architecture](#client-architecture) + - [Components](#components) + - [Error Hierarchy](#error-hierarchy) --- @@ -117,7 +133,7 @@ Platform operations use `_cleveragents/`-prefixed extension methods ### Plan Operations | Method | Service Method | Required Params | -|--------|---------------|-----------------| +|--------|----------------|-----------------| | `_cleveragents/plan/use` | `PlanService.create_plan()` | `action_name`, `project_names` | | `_cleveragents/plan/execute` | `PlanLifecycle.execute()` | `plan_id` | | `_cleveragents/plan/apply` | `PlanLifecycle.apply()` | `plan_id` | @@ -139,7 +155,7 @@ Pattern applies to all entity types (`actor`, `skill`, `tool`, `validation`, `invariant`, `lsp`): | Method Pattern | Service Method Pattern | Required Params | -|---------------|----------------------|-----------------| +|----------------|------------------------|-----------------| | `_cleveragents/registry/{entity}/list` | `{Entity}Service.list()` | `namespace` (optional) | | `_cleveragents/registry/{entity}/show` | `{Entity}Service.show()` | `name` | | `_cleveragents/registry/{entity}/add` | `{Entity}Service.add()` | Entity-specific fields | @@ -226,7 +242,7 @@ A2A replaces protocol-level callbacks with multi-turn interactions via the Task lifecycle: | Interaction | How It Works | -|-------------|-------------| +|-------------|--------------| | Human-in-the-loop approval | Task enters `input-required` state; client displays prompt; client responds via `message/send` | | File access (read/write) | `_cleveragents/fs/*` extension methods handled locally by client | | Terminal access | `_cleveragents/terminal/*` extension methods handled locally by client | @@ -258,16 +274,16 @@ result = await facade.dispatch("_cleveragents/plan/status", {"plan_id": "01J..." ### Constructor | Parameter | Type | Default | Description | -|-----------|----------------------------|---------|-------------------------------| -| `services` | `dict[str, Any] \| None` | `None` | Named services for routing | +|------------|----------------------------|---------|-------------------------------| +| `services` | `dict[str, Any] \| None` | `None` | Named services for routing | ### Methods -| Method | Returns | Description | -|---------------------|-------------------|--------------------------------------| -| `dispatch(method, params)` | `dict` | Route extension method to handler | -| `register_service` | `None` | Register a named service | -| `list_methods` | `list[str]` | All supported extension method names | +| Method | Returns | Description | +|----------------------------|-------------------|--------------------------------------| +| `dispatch(method, params)` | `dict` | Route extension method to handler | +| `register_service` | `None` | Register a named service | +| `list_methods` | `list[str]` | All supported extension method names | --- @@ -279,15 +295,15 @@ registered later with `register_service()`. ### Service Keys -| Key | Type | Wired Methods | +| Key | Type | Wired Methods | |------------------------------|-----------------------------|-------------------------------------| -| `session_service` | `SessionWorkflow` | Standard message operations | -| `plan_lifecycle_service` | `PlanLifecycleService` | `_cleveragents/plan/*` | -| `tool_registry` | `ToolRegistry` | `_cleveragents/registry/tool/*` | +| `session_service` | `SessionWorkflow` | Standard message operations | +| `plan_lifecycle_service` | `PlanLifecycleService` | `_cleveragents/plan/*` | +| `tool_registry` | `ToolRegistry` | `_cleveragents/registry/tool/*` | | `resource_registry_service` | `ResourceRegistryService` | `_cleveragents/registry/resource/*` | -| `sync_service` | `SyncService` | `_cleveragents/sync/*` | -| `namespace_service` | `NamespaceService` | `_cleveragents/namespace/*` | -| `context_service` | `ContextService` | `_cleveragents/context/*` | +| `sync_service` | `SyncService` | `_cleveragents/sync/*` | +| `namespace_service` | `NamespaceService` | `_cleveragents/namespace/*` | +| `context_service` | `ContextService` | `_cleveragents/context/*` | --- @@ -381,8 +397,8 @@ CleverAgentsError └── A2aOperationNotFoundError ``` -| Exception | When Raised | -|-----------------------------|-------------------------------------------| +| Exception | When Raised | +|-----------------------------|----------------------------------------------------| | `A2aNotAvailableError` | Server-mode operation attempted without connection | -| `A2aVersionMismatchError` | Unsupported A2A version | -| `A2aOperationNotFoundError` | Unknown method dispatched | +| `A2aVersionMismatchError` | Unsupported A2A version | +| `A2aOperationNotFoundError` | Unknown method dispatched | diff --git a/docs/reference/acms_fusion.md b/docs/reference/acms_fusion.md index 3c15c3a9..6be0910e 100644 --- a/docs/reference/acms_fusion.md +++ b/docs/reference/acms_fusion.md @@ -9,34 +9,33 @@ Phase 2 components respectively. ## Architecture ``` -┌─────────────────────────────────────────────────────────┐ +┌──────────────────────────────────────────────────────────┐ │ StrategyCoordinator │ -│ ┌─────────────────┐ ┌──────────────────┐ ┌──────────┐ │ -│ │ Confidence │ │ Proportional │ │ Parallel │ │ -│ │ Weighted │ │ Budget │ │ Strategy │ │ -│ │ Selector │ │ Allocator │ │ Executor │ │ -│ └────────┬────────┘ └────────┬─────────┘ └────┬─────┘ │ -│ │ select │ allocate │execute │ -│ └───────────────────┴─────────────────┘ │ +│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────┐ │ +│ │ Confidence │ │ Proportional │ │ Parallel │ │ +│ │ Weighted │ │ Budget │ │ Strategy │ │ +│ │ Selector │ │ Allocator │ │ Executor │ │ +│ └────────┬─────────┘ └────────┬─────────┘ └────┬─────┘ │ +│ │ select │ allocate │execute │ +│ └────────────────────┴────────────────┘ │ │ coordinate() │ -└─────────────────────────┬───────────────────────────────┘ +└─────────────────────────┬────────────────────────────────┘ │ fragments ▼ -┌─────────────────────────────────────────────────────────┐ -│ FusionEngine │ -│ ┌──────────┐ ┌───────────┐ ┌─────────┐ ┌───────────┐ │ -│ │ Content │ │ Max Depth │ │Weighted │ │ Greedy │ │ -│ │ Hash │ │ Resolver │ │Composite│ │ Knapsack │ │ -│ │ Dedup │ │ │ │ Scorer │ │ Packer │ │ -│ └────┬─────┘ └─────┬─────┘ └────┬────┘ └─────┬─────┘ │ -│ │ dedup │ resolve │ score │ pack │ -│ └──────────────┴────────────┴─────────────┘ │ -│ fuse() │ -│ ┌──────────────────────────────────────────────────┐ │ -│ │ Budget Overage Guard │ │ -│ │ Drop lowest-relevance fragments if over budget │ │ -│ └──────────────────────────────────────────────────┘ │ -└─────────────────────────────────────────────────────────┘ +┌────────────────────────────────────────────────────────┐ +│ FusionEngine │ +│ ┌──────────┐ ┌───────────┐ ┌─────────┐ ┌───────────┐ │ +│ │ Content │ │ Max Depth │ │Weighted │ │ Greedy │ │ +│ │ Hash │ │ Resolver │ │Composite│ │ Knapsack │ │ +│ │ Dedup │ │ │ │ Scorer │ │ Packer │ │ +│ └────┬─────┘ └─────┬─────┘ └────┬────┘ └─────┬─────┘ │ +│ │ dedup │ resolve │ score │ pack │ +│ └─────────────┴────────────┴────────────┘ │ +│ fuse() │ +│ ┌──────────────────────────────────────────────────┐ │ +│ │ Budget Overage Guard │ │ +│ │ Drop lowest-relevance fragments if over budget │ ││ └──────────────────────────────────────────────────┘ │ +└────────────────────────────────────────────────────────┘ ``` ## StrategyCoordinator diff --git a/docs/reference/cli_system_commands.md b/docs/reference/cli_system_commands.md index 026d5c20..92ce19de 100644 --- a/docs/reference/cli_system_commands.md +++ b/docs/reference/cli_system_commands.md @@ -47,19 +47,19 @@ The `commit` field is resolved in the following order: ### Sample output — rich (default) ``` -╭──────── CLI Version ────────╮ +╭──────── CLI Version ─────────╮ │ CleverAgents CLI │ │ Version: 1.0.0 │ │ Channel: stable │ │ Python: 3.13.2 │ ╰──────────────────────────────╯ -╭──────── Build ──────────────╮ -│ Build Date: 2026-02-17 │ +╭──────── Build ───────────────╮ +│ Build Date: 2026-02-17 │ │ Commit: 6de85ca │ │ Schema: v3 │ │ Platform: linux-x86_64 │ ╰──────────────────────────────╯ -╭──────── Dependencies ───────╮ +╭──────── Dependencies ────────╮ │ langgraph: 0.3.34 │ │ langchain-core: 0.3.41 │ │ pydantic: 2.11.1 │ @@ -142,19 +142,19 @@ agents info [--format rich|plain|json|yaml] ### Sample output — rich (default) ``` -╭──────── Environment ────────╮ +╭──────── Environment ─────────╮ │ Data Dir: /home/user/... │ │ Config: config.toml │ -│ Database: sqlite:///... │ +│ Database: sqlite:///... │ │ Server Mode: disabled │ │ Platform: Linux 6.x (x86) │ ╰──────────────────────────────╯ -╭──────── Runtime ────────────╮ +╭──────── Runtime ─────────────╮ │ Automation: suggest │ │ Providers: 2 configured │ │ Debug Mode: False │ ╰──────────────────────────────╯ -╭──────── Storage ────────────╮ +╭──────── Storage ─────────────╮ │ db_size: 0.1 MB │ │ logs: 0.0 MB │ ╰──────────────────────────────╯ @@ -237,31 +237,31 @@ a gate that blocks deployment when critical checks fail. ``` Checks -┏━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓ -┃ Check ┃ Status┃ Details ┃ -┡━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩ +┏━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Check ┃ Status┃ Details ┃ +┡━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩ │ Config file │ OK │ not present (defaults)│ -│ Data directory │ OK │ writable │ -│ Database │ OK │ writable │ -│ Openai key │ OK │ configured │ -│ Anthropic key │ WARN │ missing │ -│ Google key │ WARN │ missing │ -│ Openrouter key │ WARN │ missing │ -│ Disk space │ OK │ 42.1 GB free │ -│ File permissions │ OK │ data dir r/w │ -│ Git │ OK │ git 2.43.0 │ -└──────────────────┴───────┴──────────────────────┘ +│ Data directory │ OK │ writable │ +│ Database │ OK │ writable │ +│ Openai key │ OK │ configured │ +│ Anthropic key │ WARN │ missing │ +│ Google key │ WARN │ missing │ +│ Openrouter key │ WARN │ missing │ +│ Disk space │ OK │ 42.1 GB free │ +│ File permissions │ OK │ data dir r/w │ +│ Git │ OK │ git 2.43.0 │ +└──────────────────┴───────┴───────────────────────┘ ╭──────── Summary ────────────╮ │ Checks: 10 total │ │ Warnings: 3 │ │ Errors: 0 │ │ Duration: 0.03s │ -╰──────────────────────────────╯ +╰─────────────────────────────╯ ╭──────── Recommendations ────╮ │ - Set ANTHROPIC_API_KEY ... │ │ - Set GOOGLE_API_KEY ... │ │ - Set OPENROUTER_API_KEY ...│ -╰──────────────────────────────╯ +╰─────────────────────────────╯ OK All checks passed ``` diff --git a/docs/reference/context_indexing.md b/docs/reference/context_indexing.md index 42b9d4d9..2b73811c 100644 --- a/docs/reference/context_indexing.md +++ b/docs/reference/context_indexing.md @@ -11,7 +11,7 @@ with 10K+ files. resource_id + root_path | v - ┌─── RepoIndexingService ───┐ + ┌─── RepoIndexingService ─────┐ │ walk filesystem │ │ apply include/exclude globs│ │ enforce max_file_size │ @@ -19,9 +19,9 @@ resource_id + root_path │ SHA-256 content hashing │ │ extension language detect │ │ estimate token counts │ - └──────────┬─────────────────┘ + └──────────┬──────────────────┘ v - ┌─── SQLite persistence ─────┐ + ┌─── SQLite persistence ──────┐ │ repo_indexes table │ │ indexed_files table │ └─────────────────────────────┘ diff --git a/docs/reference/context_strategies.md b/docs/reference/context_strategies.md index 2f810d44..81b6afa5 100644 --- a/docs/reference/context_strategies.md +++ b/docs/reference/context_strategies.md @@ -8,15 +8,15 @@ protocol and are registered via TOML configuration or programmatic API. ``` ContextRequest - ┌─── StrategySelector ───┐ + ┌─── StrategySelector ────┐ │ can_handle() polling │ └──────────┬──────────────┘ v - ┌─── BudgetAllocator ────┐ + ┌─── BudgetAllocator ─────┐ │ proportional alloc │ └──────────┬──────────────┘ v - ┌─── StrategyExecutor ───┐ + ┌─── StrategyExecutor ────┐ │ parallel w/ timeout │ │ circuit breaker │ └──────────┬──────────────┘ diff --git a/docs/reference/decision_model.md b/docs/reference/decision_model.md index 2fa184d8..f54b7ce2 100644 --- a/docs/reference/decision_model.md +++ b/docs/reference/decision_model.md @@ -7,8 +7,8 @@ targeted correction and replay. ## Decision Types -| Type | Phase | Description | -|--------------------------|------------|------------------------------------------| +| Type | Phase | Description | +|--------------------------|------------|-------------------------------------------| | `prompt_definition` | Strategize | Root decision — the plan prompt | | `invariant_enforced` | Strategize | An invariant constraint was applied | | `strategy_choice` | Strategize | High-level approach chosen | diff --git a/docs/reference/devcontainer_resources.md b/docs/reference/devcontainer_resources.md index 9b753aaa..12cf50b5 100644 --- a/docs/reference/devcontainer_resources.md +++ b/docs/reference/devcontainer_resources.md @@ -109,7 +109,7 @@ detected ──► building ──► running ──► stopping ──► stopp └──► building │ (retry) (rebuild) │ - stopped ───────┘ + stopped ────────┘ ``` ### States diff --git a/docs/reference/error_handling.md b/docs/reference/error_handling.md index 562f76bc..3c72e09d 100644 --- a/docs/reference/error_handling.md +++ b/docs/reference/error_handling.md @@ -60,8 +60,8 @@ All errors are mapped to HTTP-like numeric codes: | 523 | FILESYSTEM_ERROR | FileSystemError | | 524 | NETWORK_ERROR | NetworkError | | 525 | CONFIGURATION_ERROR | ConfigurationError | -| 526 | TOKEN_LIMIT | TokenLimitExceededError | -| 527 | MODEL_UNAVAILABLE | ModelNotAvailableError | +| 526 | TOKEN_LIMIT | TokenLimitExceededError | +| 527 | MODEL_UNAVAILABLE | ModelNotAvailableError | | 528 | STREAM_ERROR | StreamRoutingError | ## Error Categories diff --git a/docs/reference/resource_type_inheritance.md b/docs/reference/resource_type_inheritance.md index 80dd5907..221e0df8 100644 --- a/docs/reference/resource_type_inheritance.md +++ b/docs/reference/resource_type_inheritance.md @@ -90,8 +90,8 @@ overlaying the child's explicitly declared scalar fields on top of the parent's resolved fields (which may themselves be inherited). This is a simple **last-writer-wins** override for scalar values: -| Field | Resolution | -|--------------------|---------------------------------------------------| +| Field | Resolution | +|--------------------|----------------------------------------------------| | `description` | Child value wins if set, otherwise parent's value. | | `resource_kind` | Child value wins if set, otherwise parent's value. | | `sandbox_strategy` | Child value wins if set, otherwise parent's value. | diff --git a/docs/reference/semantic_validation.md b/docs/reference/semantic_validation.md index 68d34abe..b93857a2 100644 --- a/docs/reference/semantic_validation.md +++ b/docs/reference/semantic_validation.md @@ -29,9 +29,9 @@ Source Code ──► SemanticValidationService.check_file() ──► [Semantic ## Built-in Rules -| Rule | Description | Default Severity | -|--------------------|-------------------------------------------------------|-----------------| -| `syntax_error` | Parses source via `ast.parse` | `error` | +| Rule | Description | Default Severity| +|--------------------|---------------------------------------------------------|-----------------| +| `syntax_error` | Parses source via `ast.parse` | `error` | | `missing_import` | Flags imports not in `sys.stdlib_module_names` | `warn` | | `broken_reference` | Detects names not defined in any scope (scope-aware) | `warn` | | `duplicate_import` | Finds duplicate relative imports | `error` | @@ -62,9 +62,9 @@ string literals that happen to contain these function names. Each rule produces findings with a severity level. The severity determines how the finding integrates with the `ValidationPipeline`: -| Severity | Pipeline Mode | Behaviour | -|----------|------------------|------------------------------------| -| `error` | `required` | Failure **blocks** the operation | +| Severity | Pipeline Mode | Behaviour | +|----------|------------------|-------------------------------------| +| `error` | `required` | Failure **blocks** the operation | | `warn` | `informational` | Failure is reported, does not block | | `info` | `informational` | Informational only | @@ -254,12 +254,12 @@ results = service.as_pipeline_results(source, "module.py") ### `SemanticValidationService` -| Method | Description | -|-----------------------|------------------------------------------------| -| `check_file()` | Run all (or selected) rules on source code | -| `as_pipeline_results()` | Same as `check_file` but returns pipeline dicts | -| `normalise_output()` | Normalise a single result to passed/message/data | -| `enabled` | Whether semantic validation is globally enabled | -| `python_enabled` | Whether Python-specific checks are enabled | -| `registry` | The rule registry instance | -| `cache` | The result cache instance | +| Method | Description | +|-------------------------|---------------------------------------------------| +| `check_file()` | Run all (or selected) rules on source code | +| `as_pipeline_results()` | Same as `check_file` but returns pipeline dicts | +| `normalise_output()` | Normalise a single result to passed/message/data | +| `enabled` | Whether semantic validation is globally enabled | +| `python_enabled` | Whether Python-specific checks are enabled | +| `registry` | The rule registry instance | +| `cache` | The result cache instance | diff --git a/docs/reference/temporal_data_model.md b/docs/reference/temporal_data_model.md index c3ed86ba..6d481d07 100644 --- a/docs/reference/temporal_data_model.md +++ b/docs/reference/temporal_data_model.md @@ -12,7 +12,7 @@ Based on `docs/specification.md` lines 41940--42499. ``` Code Change ──► Analyzer ──► TemporalService.create_revision() │ - ┌──────────┴──────────┐ + ┌──────────┴───────────┐ │ TemporalBackend │ │ ┌─────────────────┐ │ │ │ Old node: │ │ diff --git a/docs/specification.md b/docs/specification.md index 684b8707..9335bd1c 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -204,7 +204,7 @@ The following standards are integrated into the architecture: ### Command Synopsis

-agents|cleveragents [--data-dir <DATA_PATH>] [--config-path <CONFIG_PATH>]
+agents|cleveragents  [--data-dir <DATA_PATH>] [--config-path <CONFIG_PATH>]
                      [--format (rich|color|table|plain|json|yaml)]
                      [--help|-h] [--version]
                      [--install-completion [<INST_SHELL>]] [--show-completion [<SHOW_SHELL>]]
@@ -321,7 +321,7 @@ The following standards are integrated into the architecture:
 agents resource rebuild <NAME>
 
 agents plan list [--phase <PHASE>] [--state <STATE>] [--project <PROJECT>]
-                [--action <ACTION>] [<REGEX>]
+                 [--action <ACTION>] [<REGEX>]
 agents plan use [--automation-profile <PROFILE>]
                 [--invariant <INVARIANT>]...
                 [--strategy-actor <STRATEGY_ACTOR>]
@@ -2265,7 +2265,7 @@ Send a natural-language request to the orchestrator. The orchestrator can create
     ╰─────────────────────────────────────────────────────────╯
 
     ╭─ Commands Executed ─────────────────────────────────────────────────────────────────────────────────────────╮
-    │ - agents action create --config ./actions/refresh-locks.yaml                                              │
+    │ - agents action create --config ./actions/refresh-locks.yaml                                                │
     │ - agents resource add git-checkout local/platform-repo --path /repos/platform                               │
     │ - agents project link-resource local/platform local/platform-repo                                           │
     ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
@@ -2694,8 +2694,8 @@ Creating a project with resources and invariants in one command:
     ╭─ Linked Resources ───────────────────────────────────────╮
     │ Name               Type          Read-Only               │
     │ ─────────────────  ──────────────  ─────────             │
-    │ local/web-repo     git-checkout    no                   │
-    │ local/web-db       local/database  no                   │
+    │ local/web-repo     git-checkout    no                    │
+    │ local/web-db       local/database  no                    │
     ╰──────────────────────────────────────────────────────────╯
 
     ╭─ Invariants ────────────────────────────────────╮
@@ -3201,17 +3201,17 @@ Show full project details.
     ╰─────────────────────────────────────────────────────────────────────────╯
 
     ╭─ Validations (3) ──────────────────────────────────────────────────────────────────╮
-    │ local/run-tests          Run unit tests with coverage    required                │
-    │   resource: local/api-repo  scope: project  (attachment: 01HXM5A1B2C3D4E5F6G7…)│
-    │ local/lint-check         Lint check                     required                │
-    │   resource: local/api-repo  scope: direct (always active)  (attachment: 01HXM5…)│
-    │ local/check-bundle-size  Check bundle size (advisory)   informational           │
-    │   resource: local/api-repo  scope: project  (attachment: 01HXM5D4E5F6G7H8J9…)│
-    ╰───────────────────────────────────────────────────────────────────────────────────╯
+    │ local/run-tests          Run unit tests with coverage    required                  │
+    │   resource: local/api-repo  scope: project  (attachment: 01HXM5A1B2C3D4E5F6G7…)    │
+    │ local/lint-check         Lint check                     required                   │
+    │   resource: local/api-repo  scope: direct (always active)  (attachment: 01HXM5…)   │
+    │ local/check-bundle-size  Check bundle size (advisory)   informational              │
+    │   resource: local/api-repo  scope: project  (attachment: 01HXM5D4E5F6G7H8J9…)      │
+    ╰────────────────────────────────────────────────────────────────────────────────────╯
 
     ╭─ Context ───────────────────╮
     │ Include: repo               │
-    │ Exclude: **/node_modules/** │
+    │ Exclude: **/node_modules/**     │
     │ Max File Size: 1 MB         │
     ╰─────────────────────────────╯
 
@@ -3808,7 +3808,7 @@ Set the context policy for a project and (optionally) a specific view.
     │ Project: local/api-service  │
     │ View: strategize            │
     │ Include: repo               │
-    │ Exclude: **/node_modules/** │
+    │ Exclude: **/node_modules/**     │
     ╰─────────────────────────────╯
 
     ╭─ Limits ─────────────────────╮
@@ -3965,7 +3965,7 @@ Show the active context policy for a project.
     │ Project: local/api-service  │
     │ View: strategize            │
     │ Include: repo               │
-    │ Exclude: **/node_modules/** │
+    │ Exclude: **/node_modules/**     │
     ╰─────────────────────────────╯
 
     ╭─ Limits ─────────────────────╮
@@ -4133,31 +4133,31 @@ Inspect the current state of the ACMS context assembly for a project. Shows the
     $ agents project context inspect --view execute --focus uko-py:module/src.auth --breadth 2 local/api-service
 
     ╭─ ACMS Context Inspection ────────────────────────────────────────╮
-    │ Project: local/api-service                                      │
-    │ View: execute                                                   │
-    │ Focus: uko-py:module/src.auth                                   │
-    │ Breadth: 2 hops  │  Depth: 3 (MEMBER_SUMMARY)                  │
+    │ Project: local/api-service                                       │
+    │ View: execute                                                    │
+    │ Focus: uko-py:module/src.auth                                    │
+    │ Breadth: 2 hops  │  Depth: 3 (MEMBER_SUMMARY)                    │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ╭─ UKO Graph (2-hop neighborhood) ─────────────────────────────────╮
-    │ uko-py:module/src.auth (depth 9/FULL_SOURCE, 1,240 tokens)      │
-    │   ├─ contains → uko-py:class/AuthHandler (depth 3, 320 tokens)  │
-    │   ├─ contains → uko-py:class/TokenValidator (depth 3, 280 tok)  │
-    │   ├─ imports  → uko-py:module/src.db (depth 0, 90 tokens)       │
-    │   └─ imports  → uko-py:module/src.config (depth 0, 60 tok)      │
+    │ uko-py:module/src.auth (depth 9/FULL_SOURCE, 1,240 tokens)       │
+    │   ├─ contains → uko-py:class/AuthHandler (depth 3, 320 tokens)   │
+    │   ├─ contains → uko-py:class/TokenValidator (depth 3, 280 tok)   │
+    │   ├─ imports  → uko-py:module/src.db (depth 0, 90 tokens)        │
+    │   └─ imports  → uko-py:module/src.config (depth 0, 60 tok)       │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ╭─ Active Strategies ──────────────────────────────────────────────╮
-    │ breadth-depth-navigator  quality=0.85  budget=45%  4 fragments  │
-    │ semantic-embedding       quality=0.60  budget=35%  6 fragments  │
-    │ simple-keyword           quality=0.30  budget=20%  3 fragments  │
+    │ breadth-depth-navigator  quality=0.85  budget=45%  4 fragments   │
+    │ semantic-embedding       quality=0.60  budget=35%  6 fragments   │
+    │ simple-keyword           quality=0.30  budget=20%  3 fragments   │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ╭─ Budget ─────────────────────────────╮
     │ Model Window: 128,000 tokens         │
     │ Response Reserve: 4,096 tokens       │
     │ Tool Definitions: 2,400 tokens       │
-    │ System Prompt: 1,200 tokens           │
+    │ System Prompt: 1,200 tokens          │
     │ Skeleton Reserve: 18,046 (15%)       │
     │ Available Budget: 102,258 tokens     │
     │ Used: 1,990 / 102,258 (1.9%)         │
@@ -4350,34 +4350,34 @@ Simulate a context assembly run without invoking an actor. Produces a dry-run re
         local/api-service
 
     ╭─ ACMS Simulation ────────────────────────────────────────────────╮
-    │ Project: local/api-service                                      │
-    │ View: strategize                                                │
-    │ Budget: 16,000 tokens (override)                               │
-    │ Focus: uko-py:module/src.auth, uko-py:module/src.db             │
+    │ Project: local/api-service                                       │
+    │ View: strategize                                                 │
+    │ Budget: 16,000 tokens (override)                                 │
+    │ Focus: uko-py:module/src.auth, uko-py:module/src.db              │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ╭─ Strategy Results ───────────────────────────────────────────────╮
-    │ breadth-depth-navigator                                        │
-    │   Confidence: 0.85  │  Budget: 7,200 tokens  │  12 fragments    │
-    │   Top: src/auth/__init__.py (depth 9, 1,240t, score=0.95)       │
-    │        src/db/models.py (depth 3, 480t, score=0.88)             │
+    │ breadth-depth-navigator                                          │
+    │   Confidence: 0.85  │  Budget: 7,200 tokens  │  12 fragments     │
+    │   Top: src/auth/__init__.py (depth 9, 1,240t, score=0.95)            │
+    │        src/db/models.py (depth 3, 480t, score=0.88)              │
     │                                                                  │
-    │ semantic-embedding                                             │
-    │   Confidence: 0.60  │  Budget: 5,600 tokens  │  8 fragments     │
-    │   Top: src/auth/jwt.py (depth 3, 380t, score=0.82)              │
+    │ semantic-embedding                                               │
+    │   Confidence: 0.60  │  Budget: 5,600 tokens  │  8 fragments      │
+    │   Top: src/auth/jwt.py (depth 3, 380t, score=0.82)               │
     │        src/middleware/auth_check.py (depth 3, 290t, score=0.79)  │
     │                                                                  │
-    │ simple-keyword                                                 │
-    │   Confidence: 0.30  │  Budget: 3,200 tokens  │  5 fragments     │
-    │   Top: src/auth/utils.py (depth 6, 210t, score=0.71)            │
+    │ simple-keyword                                                   │
+    │   Confidence: 0.30  │  Budget: 3,200 tokens  │  5 fragments      │
+    │   Top: src/auth/utils.py (depth 6, 210t, score=0.71)             │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ╭─ Fusion Result ──────────────────────────────────────────────────╮
-    │ Included: 18 fragments (14,820 tokens, 92.6% of budget)         │
-    │ Excluded: 7 fragments (3,200 tokens, below budget cutoff)       │
-    │ Deduplicated: 4 fragments merged                               │
-    │ Skeleton: 2,400 tokens (15% reserve)                           │
-    │ Preamble: 180 tokens                                           │
+    │ Included: 18 fragments (14,820 tokens, 92.6% of budget)          │
+    │ Excluded: 7 fragments (3,200 tokens, below budget cutoff)        │
+    │ Deduplicated: 4 fragments merged                                 │
+    │ Skeleton: 2,400 tokens (15% reserve)                             │
+    │ Preamble: 180 tokens                                             │
     ╰──────────────────────────────────────────────────────────────────╯
 
     ✓ OK Simulation complete (dry run — no context was assembled)
@@ -4731,11 +4731,11 @@ Running an actor with a custom temperature and skill attachment:
     ╭─ Response ────────────────────────────────────────────────────────╮
     │ I identified 3 potential security concerns in the auth module:    │
     │                                                                   │
-    │ 1. Token expiry not validated in `validate_session()` at          │
+    │ 1. Token expiry not validated in `validate_session()` at              │
     │    src/auth/session.py:42. The JWT expiry claim is decoded but    │
     │    not checked against current time.                              │
     │                                                                   │
-    │ 2. Missing rate limiting on the `/auth/refresh` endpoint.         │
+    │ 2. Missing rate limiting on the `/auth/refresh` endpoint.            │
     │    An attacker could brute-force refresh tokens.                  │
     │                                                                   │
     │ 3. Low severity: Password hashing uses bcrypt with cost=10.       │
@@ -7944,17 +7944,17 @@ When removing a validation, attachments are cleaned up automatically:
 
     ╭─ Validation Removed ─────────────────────────────╮
     │ Name: local/check-bundle-size                    │
-    │ Description: Check bundle size (advisory)       │
+    │ Description: Check bundle size (advisory)        │
     ╰──────────────────────────────────────────────────╯
 
     ╭─ Detached From ────────────────────────────────────────────╮
-    │ Warning: This validation had 2 attachments:               │
-    │ - local/api-repo (scope: project local/api-service)       │
-    │ - local/api-repo (direct)                                 │
-    │ These attachments have been removed.                      │
-    ╰───────────────────────────────────────────────────────────╯
+    │ Warning: This validation had 2 attachments:                │
+    │ - local/api-repo (scope: project local/api-service)        │
+    │ - local/api-repo (direct)                                  │
+    │ These attachments have been removed.                       │
+    ╰────────────────────────────────────────────────────────────╯
 
-    ✓ OK Validation removed
+    ✓ OK Validation removed─
     
=== "Plain" @@ -8046,16 +8046,16 @@ List registered tools with optional filters. Because Validations are a subtype o $ agents tool list --namespace local ╭─ Tools ─────────────────────────────────────────────────────────────────╮ - │ Name Type Source Read-Only Writes │ - │ ───────────────────────── ────────── ─────── ───────── ────── │ - │ local/run-migrations tool custom — ✓ │ - │ local/validate-api-compat tool custom — ✓ │ - │ local/create-subplan tool custom — ✓ │ - │ local/deploy-staging tool agent — ✓ │ - │ local/run-tests validation custom ✓ — │ - │ local/lint-check validation custom ✓ — │ - │ local/check-bundle-size validation custom ✓ — │ - │ local/type-check validation custom ✓ — │ + │ Name Type Source Read-Only Writes │ + │ ───────────────────────── ────────── ─────── ───────── ────── │ + │ local/run-migrations tool custom — ✓ │ + │ local/validate-api-compat tool custom — ✓ │ + │ local/create-subplan tool custom — ✓ │ + │ local/deploy-staging tool agent — ✓ │ + │ local/run-tests validation custom ✓ — │ + │ local/lint-check validation custom ✓ — │ + │ local/check-bundle-size validation custom ✓ — │ + │ local/type-check validation custom ✓ — │ ╰─────────────────────────────────────────────────────────────────────────╯ ╭─ Summary ────────────────╮ @@ -8192,14 +8192,14 @@ List registered tools with optional filters. Because Validations are a subtype o

     $ agents tool list --type validation --namespace local
 
-    ╭─ Validations ────────────────────────────────────────────────────────────────────╮
-    │ Name                       Source   Mode          Attachments                │
-    │ ─────────────────────────  ───────  ────────────  ────────────────────────   │
-    │ local/run-tests            custom   required      2 (1 direct, 1 project)    │
-    │ local/lint-check           custom   required      1 (1 direct)               │
-    │ local/check-bundle-size    custom   informational 1 (1 project)              │
-    │ local/type-check           custom   required      2 (2 project)              │
-    ╰──────────────────────────────────────────────────────────────────────────────────╯
+    ╭─ Validations ─────────────────────────────────────────────────────────────────╮
+    │ Name                       Source   Mode          Attachments                 │
+    │ ─────────────────────────  ───────  ────────────  ────────────────────────    │
+    │ local/run-tests            custom   required      2 (1 direct, 1 project)     │
+    │ local/lint-check           custom   required      1 (1 direct)                │
+    │ local/check-bundle-size    custom   informational 1 (1 project)               │
+    │ local/type-check           custom   required      2 (2 project)               │
+    ╰───────────────────────────────────────────────────────────────────────────────╯
 
     ╭─ Summary ──────────────╮
     │ Total: 4               │
@@ -8475,7 +8475,7 @@ When showing a Validation, the output includes validation-specific sections:
     ╭─ Validation Details ──────────────────────────────╮
     │ Name: local/run-tests                             │
     │ Type: validation                                  │
-    │ Description: Run unit tests with coverage          │
+    │ Description: Run unit tests with coverage         │
     │ Source: custom                                    │
     │ Mode: required                                    │
     │ Config: ./validations/run-tests.yaml              │
@@ -8489,21 +8489,21 @@ When showing a Validation, the output includes validation-specific sections:
     ╭─ Output Schema (Validation Return Format) ─────────╮
     │ passed: boolean (required)                         │
     │ message: string (optional)                         │
-    │ data: object (optional, arbitrary structure)        │
+    │ data: object (optional, arbitrary structure)       │
     ╰────────────────────────────────────────────────────╯
 
     ╭─ Capability ──────────────────────╮
-    │ Read-Only: true (enforced)         │
-    │ Checkpointable: false (enforced)   │
-    │ Timeout: 600s                      │
+    │ Read-Only: true (enforced)        │
+    │ Checkpointable: false (enforced)  │
+    │ Timeout: 600s                     │
     ╰───────────────────────────────────╯
 
     ╭─ Attached To ─────────────────────────────────────────────────────╮
-    │ local/api-repo (direct, always active)                           │
-    │   (attachment: 01HXM5B2C3D4E5F6G7H8J9K0L1)                      │
-    │ local/api-repo (scope: project local/api-service)                │
-    │   (attachment: 01HXM5A1B2C3D4E5F6G7H8J9K0)                      │
-    ╰──────────────────────────────────────────────────────────────────╯
+    │ local/api-repo (direct, always active)                            │
+    │   (attachment: 01HXM5B2C3D4E5F6G7H8J9K0L1)                        │
+    │ local/api-repo (scope: project local/api-service)                 │
+    │   (attachment: 01HXM5A1B2C3D4E5F6G7H8J9K0)                        │
+    ╰───────────────────────────────────────────────────────────────────╯
 
     ✓ OK Validation details loaded
     
@@ -8664,11 +8664,11 @@ Registering a new LSP server: ╭─ LSP Server Registered ──────────────────────────────────╮ │ Name: local/pyright │ - │ Languages: python │ - │ Command: pyright-langserver --stdio │ - │ Capabilities: diagnostics, hover, completions, │ + │ Languages: python │ + │ Command: pyright-langserver --stdio │ + │ Capabilities: diagnostics, hover, completions, │ │ references, definitions, symbols, │ - │ rename, code_actions │ + │ rename, code_actions │ ╰──────────────────────────────────────────────────────────╯ ✓ OK LSP server registered @@ -8814,16 +8814,16 @@ Attempting to add a server that already exists (without `--update`): Remove LSP server local/pyright? [y/N]: y ╭─ LSP Server Removed ─────────────────────╮ - │ Name: local/pyright │ + │ Name: local/pyright │ │ Languages: python │ ╰──────────────────────────────────────────╯ ╭─ References ──────────────────────────────────────────────────╮ │ Warning: This LSP server is referenced by: │ - │ - Actor: local/code-reviewer (lsp: [local/pyright]) │ - │ - Actor: local/refactor-agent (lsp: [local/pyright]) │ + │ - Actor: local/code-reviewer (lsp: [local/pyright]) │ + │ - Actor: local/refactor-agent (lsp: [local/pyright]) │ │ These actor LSP bindings will fail until resolved. │ - ╰──────────────────────────────────────────────────────────────╯ + ╰───────────────────────────────────────────────────────────────╯ ✓ OK LSP server removed @@ -8916,13 +8916,13 @@ List registered LSP servers with optional filters. Shows each server's name, sup

     $ agents lsp list
 
-    ╭─ LSP Registry (3 servers) ───────────────────────────────────────────────────────╮
-    │ NameLanguagesCommandBound │
-    │────────────────────────│──────────────────────│────────────────────────────│───────│
+    ╭─ LSP Registry (3 servers) ───────────────────────────────────────────────────────────╮
+    │ NameLanguagesCommandBound │
+    │─────────────────────────│──────────────────────│─────────────────────────────│───────│
     │ local/pyright           │ python               │ pyright-langserver --stdio  │   3   │
     │ local/ts-server         │ typescript, jsx, tsx │ typescript-language-server  │   2   │
     │ local/gopls             │ go                   │ gopls serve                 │   1   │
-    ╰──────────────────────────────────────────────────────────────────────────────────╯
+    ╰──────────────────────────────────────────────────────────────────────────────────────╯
     
=== "Plain" @@ -9012,9 +9012,9 @@ Filtering by language: $ agents lsp list --language python ╭─ LSP Registry (1 server, filtered: language=python) ─────────────────────────────╮ - │ NameLanguagesCommandBound │ - │────────────────────────│────────────│────────────────────────────│───────│ - │ local/pyright │ python │ pyright-langserver --stdio │ 3 │ + │ NameLanguagesCommandBound │ + │─────────────────────────│────────────│───────────────────────────────────│───────│ + │ local/pyright │ python │ pyright-langserver --stdio │ 3 │ ╰──────────────────────────────────────────────────────────────────────────────────╯ @@ -9094,24 +9094,24 @@ Show full details for a registered LSP server, including its configuration, supp ╭─ LSP Server Details ──────────────────────────────────────────╮ │ Name: local/pyright │ - │ Languages: python │ - │ Command: pyright-langserver --stdio │ - │ Root path: {{ project.root }} │ - │ Init options: │ + │ Languages: python │ + │ Command: pyright-langserver --stdio │ + │ Root path: {{ project.root }} │ + │ Init options: │ │ python.analysis.typeCheckingMode: standard │ │ python.analysis.autoSearchPaths: true │ - ╰──────────────────────────────────────────────────────────────╯ + ╰───────────────────────────────────────────────────────────────╯ ╭─ Capabilities ────────────────────────────────────────────────╮ │ diagnostics, hover, completions, references, definitions, │ │ symbols, rename, code_actions │ - ╰──────────────────────────────────────────────────────────────╯ + ╰───────────────────────────────────────────────────────────────╯ ╭─ Bound Actors ────────────────────────────────────────────────╮ - │ local/code-reviewer (explicit binding) │ - │ local/refactor-agent (language-based: python) │ - │ local/polyglot-planner (auto-discovery) │ - ╰──────────────────────────────────────────────────────────────╯ + │ local/code-reviewer (explicit binding) │ + │ local/refactor-agent (language-based: python) │ + │ local/polyglot-planner (auto-discovery) │ + ╰───────────────────────────────────────────────────────────────╯ === "Plain" @@ -9300,7 +9300,7 @@ Register a new validation. The validation is fully defined by the YAML configura ╭─ Validation Registered ────────────────────────────────╮ │ Name: local/run-tests │ - │ Description: Run unit tests with coverage │ + │ Description: Run unit tests with coverage │ │ Source: custom │ │ Mode: required │ │ Config: ./validations/run-tests.yaml │ @@ -9308,9 +9308,9 @@ Register a new validation. The validation is fully defined by the YAML configura ╰────────────────────────────────────────────────────────╯ ╭─ Capability ────────────────────────╮ - │ Read-Only: true (enforced) │ - │ Checkpointable: false (enforced) │ - │ Timeout: 600s │ + │ Read-Only: true (enforced) │ + │ Checkpointable: false (enforced) │ + │ Timeout: 600s │ ╰─────────────────────────────────────╯ ✓ OK Validation registered @@ -9400,7 +9400,7 @@ Register a new validation. The validation is fully defined by the YAML configura │ Source: custom │ │ Mode: required │ │ Timeout: 300s │ - ╰───────────────────────────────────────╯ + ╰──────────────────────────────────────╯ ✓ OK Validation registered @@ -9468,10 +9468,10 @@ Register a new validation. The validation is fully defined by the YAML configura ╭─ Validation Registered ───────────────────────────╮ │ Name: local/check-bundle-size │ - │ Description: Check bundle size (advisory) │ + │ Description: Check bundle size (advisory) │ │ Source: custom │ - │ Mode: informational │ - │ Timeout: 300s │ + │ Mode: informational │ + │ Timeout: 300s │ ╰───────────────────────────────────────────────────╯ ✓ OK Validation registered @@ -9559,11 +9559,11 @@ The command returns a system-assigned **attachment ULID** that uniquely identifi $ agents validation attach --project local/api-service local/api-repo local/run-tests ╭─ Validation Attached ──────────────────────────────────────╮ - │ Attachment ID: 01HXM5A1B2C3D4E5F6G7H8J9K0 │ - │ Validation: local/run-tests │ - │ Mode: required │ - │ Resource: local/api-repo │ - │ Scope: project local/api-service │ + │ Attachment ID: 01HXM5A1B2C3D4E5F6G7H8J9K0 │ + │ Validation: local/run-tests │ + │ Mode: required │ + │ Resource: local/api-repo │ + │ Scope: project local/api-service │ ╰────────────────────────────────────────────────────────────╯ ✓ OK Validation attached @@ -9631,13 +9631,13 @@ The command returns a system-assigned **attachment ULID** that uniquely identifi $ agents validation attach local/api-repo local/lint-check ╭─ Validation Attached ──────────────────────────────────────╮ - │ Attachment ID: 01HXM5B2C3D4E5F6G7H8J9K0L1 │ - │ Validation: local/lint-check │ - │ Mode: required │ - │ Resource: local/api-repo │ - │ Scope: direct (always active) │ - │ This validation will run for ALL plans/projects │ - │ that access this resource. │ + │ Attachment ID: 01HXM5B2C3D4E5F6G7H8J9K0L1 │ + │ Validation: local/lint-check │ + │ Mode: required │ + │ Resource: local/api-repo │ + │ Scope: direct (always active) │ + │ This validation will run for ALL plans/projects │ + │ that access this resource. │ ╰────────────────────────────────────────────────────────────╯ ✓ OK Validation attached @@ -9711,12 +9711,12 @@ Attaching with validation-specific arguments: $ agents validation attach --project local/api-service local/api-repo local/run-tests --coverage-threshold 90 ╭─ Validation Attached ──────────────────────────────────────╮ - │ Attachment ID: 01HXM5C3D4E5F6G7H8J9K0L1M2 │ - │ Validation: local/run-tests │ - │ Mode: required │ - │ Resource: local/api-repo │ - │ Scope: project local/api-service │ - │ Args: coverage_threshold=90 │ + │ Attachment ID: 01HXM5C3D4E5F6G7H8J9K0L1M2 │ + │ Validation: local/run-tests │ + │ Mode: required │ + │ Resource: local/api-repo │ + │ Scope: project local/api-service │ + │ Args: coverage_threshold=90 │ ╰────────────────────────────────────────────────────────────╯ ✓ OK Validation attached @@ -9806,10 +9806,10 @@ Detach a validation by its attachment ULID. The attachment ULID is returned by ` Detach validation local/run-tests from resource local/api-repo (scope: project local/api-service)? [y/N]: y ╭─ Validation Detached ───────────────────────────────────────╮ - │ Attachment ID: 01HXM5A1B2C3D4E5F6G7H8J9K0 │ - │ Validation: local/run-tests │ - │ Resource: local/api-repo │ - │ Scope: project local/api-service │ + │ Attachment ID: 01HXM5A1B2C3D4E5F6G7H8J9K0 │ + │ Validation: local/run-tests │ + │ Resource: local/api-repo │ + │ Scope: project local/api-service │ ╰─────────────────────────────────────────────────────────────╯ ✓ OK Validation detached @@ -10673,7 +10673,7 @@ The command returns the name and ULID of the newly created resource. Auto-discov ╭─ Resource ──────────────────────────────────────╮ │ Name: local/api-dev │ │ ID: 01HXR3C4D5E6F7G8H9J0K1L2M3 │ - │ Type: container-instance │ + │ Type: container-instance │ │ Physical/Virtual: physical │ │ State: created (not started) │ │ Created: 2026-02-09 10:25 │ @@ -10681,9 +10681,9 @@ The command returns the name and ULID of the newly created resource. Auto-discov ╭─ Mounts ──────────────────────────────────────────────────────────╮ │ Source Container Path Kind │ - │ ──────────────────────────────── ─────────────── ───────── │ - │ local/api-repo /workspace resource-ref │ - │ /home/user/.config/nvim /home/dev/… host-path │ + │ ──────────────────────────────── ─────────────── ─────────── │ + │ local/api-repo /workspace resource-ref │ + │ /home/user/.config/nvim /home/dev/… host-path │ ╰───────────────────────────────────────────────────────────────────╯ ✓ OK Container resource registered (container will start on first access) @@ -10695,11 +10695,11 @@ The command returns the name and ULID of the newly created resource. Auto-discov ╭─ Resource ──────────────────────────────────────╮ │ Name: cloud/ci-runner │ │ ID: 01HXR4D5E6F7G8H9J0K1L2M3N4 │ - │ Type: container-instance │ + │ Type: container-instance │ │ Physical/Virtual: physical │ │ State: created (not started) │ │ Clone: https://github.com/acme/api.git │ - │ Clone Target: /workspace │ + │ Clone Target: /workspace │ │ Created: 2026-02-09 10:27 │ ╰─────────────────────────────────────────────────╯ @@ -10714,17 +10714,17 @@ The command returns the name and ULID of the newly created resource. Auto-discov │ ID: 01HXR5E6F7G8H9J0K1L2M3N4O5 │ │ Type: git-checkout │ │ Physical/Virtual: physical │ - │ Path: /home/user/projects/webapp │ + │ Path: /home/user/projects/webapp │ │ Branch: main │ │ Created: 2026-02-09 10:30 │ - ╰────────────────────────────────────────────────────╯ + ╰─────────────────────────────────────────────────────╯ ╭─ Auto-discovered Children ─────────────────────────────────────────╮ - │ ID Type Status │ - │ ─────────────── ────────────────────── ───────────────── │ - │ 01HXR5E6F7G9… git created │ - │ 01HXR5E6F7GA… devcontainer-instance detected (not built) │ - │ 01HXR5E6F7GB… fs-directory created │ + │ ID Type Status │ + │ ─────────────── ────────────────────── ─────────────────── │ + │ 01HXR5E6F7G9… git created │ + │ 01HXR5E6F7GA… devcontainer-instance detected (not built) │ + │ 01HXR5E6F7GB… fs-directory created │ │ + 52 git-commit resources │ │ + 189 git-tree-entry resources │ ╰────────────────────────────────────────────────────────────────────╯ @@ -11048,12 +11048,12 @@ List registered resources with optional filters. By default, lists only user-add $ agents resource list ╭─ Resources ──────────────────────────────────────────────────────────────────────────────────────────────╮ - │ Name ID Type Phys/Virt Children Projects │ - │ ───────────────── ──────────────────────────── ─────────── ───────── ──────── ──────────────── │ - │ local/api-repo 01HXR1A1B2C3D4E5F6G7H8J9K0 git-checkout physical 395 local/api-service │ - │ local/docs 01HXR2B2C3D4E5F6G7H8J9K0L1 fs-mount physical 32 local/api-service │ - │ local/staging-db 01HXR3C3D4E5F6G7H8J9K0L1M2 database physical 12 local/api-service, │ - │ local/staging │ + │ Name ID Type Phys/Virt Children Projects │ + │ ───────────────── ──────────────────────────── ─────────── ───────── ──────── ──────────────── │ + │ local/api-repo 01HXR1A1B2C3D4E5F6G7H8J9K0 git-checkout physical 395 local/api-service │ + │ local/docs 01HXR2B2C3D4E5F6G7H8J9K0L1 fs-mount physical 32 local/api-service │ + │ local/staging-db 01HXR3C3D4E5F6G7H8J9K0L1M2 database physical 12 local/api-service, │ + │ local/staging │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Summary ───────────╮ @@ -11219,8 +11219,8 @@ Show detailed information about a registered resource including its type, capabi ╭─ Direct Children ──────────────────────────────────────────────────────╮ │ ID Type Auto Children │ │ ──────────────────────────── ──────────── ──── ──────── │ - │ 01HXR4D4E5F6G7H8J9K0L1M2N3 git yes 363 │ - │ 01HXR5E5F6G7H8J9K0L1M2N3P4 fs-directory yes 32 │ + │ 01HXR4D4E5F6G7H8J9K0L1M2N3 git yes 363 │ + │ 01HXR5E5F6G7H8J9K0L1M2N3P4 fs-directory yes 32 │ ╰────────────────────────────────────────────────────────────────────────╯ ╭─ Linked Projects ─────────────╮ @@ -11230,10 +11230,10 @@ Show detailed information about a registered resource including its type, capabi ╭─ Tool Bindings ────────────────────────────────╮ │ Tool Slot Access │ │ ──────────────────────── ───── ─────────── │ - │ (builtin) git_status repo read_only │ - │ (builtin) git_diff repo read_only │ - │ (builtin) git_log repo read_only │ - │ local/run-migrations db (not bound) │ + │ (builtin) git_status repo read_only │ + │ (builtin) git_diff repo read_only │ + │ (builtin) git_log repo read_only │ + │ local/run-migrations db (not bound) │ ╰────────────────────────────────────────────────╯ ✓ OK Resource details loaded @@ -11400,28 +11400,28 @@ Inspect a resource's contents. For file-based resources (git checkouts, filesyst $ agents resource inspect local/api-repo --tree ╭─ Resource Tree: local/api-repo ──────────────────────────────────────╮ - │ │ - │ /home/user/projects/api-service │ - │ ├── src/ │ - │ │ ├── api/ │ - │ │ │ ├── __init__.py │ - │ │ │ ├── auth/ │ + │ │ + │ /home/user/projects/api-service │ + │ ├── src/ │ + │ │ ├── api/ │ + │ │ │ ├── __init__.py │ + │ │ │ ├── auth/ │ │ │ │ │ ├── auth_middleware.py │ │ │ │ │ ├── token_service.py │ │ │ │ │ └── rbac.py │ - │ │ │ ├── routes/ │ - │ │ │ └── models/ │ - │ │ └── utils/ │ - │ ├── tests/ │ - │ ├── README.md │ + │ │ │ ├── routes/ │ + │ │ │ └── models/ │ + │ │ └── utils/ │ + │ ├── tests/ │ + │ ├── README.md │ │ └── pyproject.toml │ - │ │ - ╰─────────────────────────────────────────────────────────────────────╯ + │ │ + ╰──────────────────────────────────────────────────────────────────────╯ ╭─ Summary ──────────────╮ │ Directories: 8 │ - │ Files: 41 │ - │ Total Size: 284 KB │ + │ Files: 41 │ + │ Total Size: 284 KB │ ╰────────────────────────╯ ✓ OK Resource tree displayed @@ -11566,8 +11566,8 @@ Inspect a resource's contents. For file-based resources (git checkouts, filesyst $ agents resource inspect local/api-repo --file src/api/auth/auth_middleware.py ╭─ File: src/api/auth/auth_middleware.py ──────────────────╮ - │ Resource: local/api-repo │ - │ Size: 2.4 KB │ + │ Resource: local/api-repo │ + │ Size: 2.4 KB │ │ Language: Python │ │ Last Modified: 2026-02-10 14:32 │ ╰──────────────────────────────────────────────────────────╯ @@ -11692,7 +11692,7 @@ Display the resource DAG as a tree starting from a given resource, showing paren

     $ agents resource tree local/api-repo --depth 2
 
-    ╭─ Resource Tree: local/api-repo ──────────────────────────────────────╮
+    ╭─ Resource Tree: local/api-repo ─────────────────────────────────────╮
     │                                                                     │
     │ git-checkout 01HXR1A1..J9K0 (physical)                              │
     │ ├── git 01HXR4D4..M2N3 (physical)                                   │
@@ -12961,12 +12961,12 @@ Start or resume execution for a plan.
     │ Risk: low                              │
     ╰────────────────────────────────────────╯
 
-    ╭─ Progress ────────╮
+    ╭─ Progress ─────────╮
     │  Collect context │
-    │  Run tools       │
-    │  Build changeset │
-    │  Validate        │
-    ╰───────────────────╯
+    │  Run tools        │
+    │  Build changeset  │
+    │  Validate         │
+    ╰────────────────────╯
 
     ✓ OK Execution started
     
@@ -13590,7 +13590,7 @@ Show detailed status for a plan. ╭─ Progress ───────╮ │ Strategize │ - │ Execute │ + │ Execute │ │ Apply (queued) │ ╰──────────────────╯ @@ -13914,7 +13914,7 @@ Status of a plan in the strategize phase: ╰──────────────────────────────────╯ ╭─ Progress ───────────────╮ - │ Strategize (running) │ + │ Strategize (running) │ │ Execute (waiting) │ │ Apply (waiting) │ ╰──────────────────────────╯ @@ -14357,10 +14357,10 @@ Render the decision tree for a plan. ╰────────────────────────────╯ ╭─ Child Plans ──────────────────────────────────────╮ - │ ID Phase State │ - │ ────────── ─────── ───────── │ - │ 01HXM9F1A execute processing │ - │ 01HXM9F2B execute queued │ + │ ID Phase State │ + │ ────────── ─────── ───────── │ + │ 01HXM9F1A execute processing │ + │ 01HXM9F2B execute queued │ ╰────────────────────────────────────────────────────╯ ╭─ Decision IDs (for correction) ──────────────────╮ @@ -15982,7 +15982,7 @@ Provide additional guidance to a plan, typically when it is errored or awaiting │ tests/test_session.py removed │ │ tests/test_tokens.py removed │ │ src/auth/fixtures.py restored │ - │ src/auth/__init__.py restored │ + │ src/auth/__init__.py restored │ ╰─────────────────────────────────────╯ ╭─ Impact ──────────────────────────────╮ @@ -18009,7 +18009,7 @@ List invariants at a given scope. Use `--effective` with `--plan` to show the fi │ Conflicts Resolved: 1 │ │ Global "Use shared DB pool" overridden by plan "All database queries must use │ - │ parameterized statements" │ + │ parameterized statements" │ ✓ OK 3 effective invariants (1 global, 1 project, 1 plan; 1 conflict resolved) @@ -26729,7 +26729,7 @@ Project Details Created: 2026-02-08 12:46 Linked Resources - Resource Type Sandbox Read-Only + Resource Type Sandbox Read-Only ---------------- -------------- -------------------- --------- local/api-repo git-checkout git_worktree no local/staging-db local/database transaction_rollback yes @@ -26885,11 +26885,11 @@ Summary │ local/staging-db local/database transaction_rollback yes │ ╰─────────────────────────────────────────────────────────────────────────╯ -╭─ Validations (3) ────────────────────────────────────────────────────╮ -│ local/run-tests pytest --cov=src --cov-fail-under=80 required │ -│ local/lint-check ruff check . required │ -│ local/check-bundle-size node scripts/check-bundle-size.js informational │ -╰──────────────────────────────────────────────────────────────────────╯ +╭─ Validations (3) ───────────────────────────────────────────────────────────────╮ +│ local/run-tests pytest --cov=src --cov-fail-under=80 required │ +│ local/lint-check ruff check . required │ +│ local/check-bundle-size node scripts/check-bundle-size.js informational │ +╰─────────────────────────────────────────────────────────────────────────────────╯ ╭─ Context ───────────────────╮ │ Include: repo │ @@ -26938,12 +26938,12 @@ Unlike `rich` mode which would show animated spinners and a live progress bar, t │ Risk: low │ ╰────────────────────────────────────────╯ -╭─ Progress ────────╮ -│ Collect context │ -│ Run tools │ +╭─ Progress ─────────╮ +│ Collect context │ +│ Run tools │ │ Build changeset │ -│ Validate │ -╰───────────────────╯ +│ Validate │ +╰────────────────────╯ ✓ OK Execution started @@ -27722,11 +27722,11 @@ Validations (3) ╰─────────────────────────────────────────────────────────────────────────╯ ╭─ Validations (3) ──────────────────────────────────────────────────────────────╮ -│ Name Command Mode │ -│ ─────────────────────── ───────────────────────────────────── ─────────── │ -│ local/run-tests pytest --cov=src --cov-fail-under=80 required │ -│ local/lint-check ruff check . required │ -│ local/check-bundle-size node scripts/check-bundle-size.js informational │ +│ Name Command Mode │ +│ ─────────────────────── ───────────────────────────────────── ─────────── │ +│ local/run-tests pytest --cov=src --cov-fail-under=80 required │ +│ local/lint-check ruff check . required │ +│ local/check-bundle-size node scripts/check-bundle-size.js informational │ ╰────────────────────────────────────────────────────────────────────────────────╯ ✓ OK Project loaded @@ -28969,7 +28969,7 @@ When the sidebar is visible (shift+tab from hidden), it docks to the right at 32 ├─────────────────────────────────────────────────────────────┬────────────────────────────────┤ │ │ ▼ PLANS │ │ You 14:01 │ ┌────────────────────────────┐ │ -│ Can you review the auth module in the │ │ fix-auth-bug │ │ +│ Can you review the auth module in the │ │ fix-auth-bug │ │ │ API service? │ │ Phase: Execute ●●● │ │ │ @project:api-service:src/auth/handler.py │ │ Profile: trusted │ │ │ │ │ Actor: claude-4-sonnet │ │ @@ -28989,10 +28989,10 @@ When the sidebar is visible (shift+tab from hidden), it docks to the right at 32 │ │ │ Profile: auto │ │ │ 🔧 local/file-read │ └────────────────────────────┘ │ │ ┌─ src/auth/handler.py ─────────────┐ │ │ -│ │ 45 │ def login(self, req): │ │ ▼ PROJECTS │ -│ │ 46 │ creds = extract(req) │ │ ┌────────────────────────────┐ │ -│ │ 47 │ return auth(creds) │ │ │ ◆ cleveragents [2p] │ │ -│ └──────────────────────────────────┘ │ │ ◆ api-service [1p] │ │ +│ │ 45 │ def login(self, req): │ │ ▼ PROJECTS │ +│ │ 46 │ creds = extract(req) │ │ ┌────────────────────────────┐ │ +│ │ 47 │ return auth(creds) │ │ │ ◆ cleveragents [2p] │ │ +│ └───────────────────────────────────┘ │ │ ◆ api-service [1p] │ │ │ │ │ frontend-app [0p] │ │ │─────────────────────────────────────────────────────────────│ │ infra-terraform [0p] │ │ │ Agent connected │ └────────────────────────────┘ │ @@ -29116,8 +29116,8 @@ The PersonaBar always shows the current state: │ ▌@▐ refs ▌/▐ commands ▌!▐ shell │ └──────────────────────────────────────────────────────────────────────┘ feature-devclaude-4-sonnetthink: high2 projects │ $0.12 - ─────────── ─ ─────────────── ─ ────────── ─ ────────── ─ ──────────── - persona actor preset scope cost + ─────────── ─ ─────────────── ─ ─────────── ─ ──────────────── ─ ───── + persona actor preset scope cost | PersonaBar Segment | Style | Updates When | |--------------------|-------|--------------| @@ -29490,11 +29490,11 @@ The PersonaEditorModal is used for creating and editing personas:
┌─────────────────────────────────────── Create Persona ───────────────────────────────────────┐
 │                                                                                              │
 │ Name:        ┌──────────────────────────────────────┐                                        │
-│              │ feature-dev                           │                                       │
+│              │ feature-dev                          │                                        │
 │              └──────────────────────────────────────┘                                        │
 │                                                                                              │
 │ Description: ┌────────────────────────────────────────────────────────┐                      │
-│              │ Feature development with Claude on main projects      │                       │
+│              │ Feature development with Claude on main projects       │                      │
 │              └────────────────────────────────────────────────────────┘                      │
 │                                                                                              │
 │ Actor:       ┌──────────────────────────────────────────┐                                    │
@@ -29520,11 +29520,11 @@ The PersonaEditorModal is used for creating and editing personas:
 │                                                                                              │
 │ ── Argument Presets (ctrl+tab cycling) ─────────────────────────────────────                 │
 │ ┌────────────────────────────────────────────────────────────────────────────────────┐       │
-│ │  1. default      │ (base arguments)                                            │           │
+│ │  1. default      │ (base arguments)                                                │       │
 │ │  2. think: high  │ thinking_effort=high                                            │       │
-│ │  3. think: max   │ thinking_effort=max, temperature=0.3                             │      │
-│ │  4. quick        │ thinking_effort=low, max_tokens=4096                             │      │
-│ │  [+] Add preset                                                                   │        │
+│ │  3. think: max   │ thinking_effort=max, temperature=0.3                            │       │
+│ │  4. quick        │ thinking_effort=low, max_tokens=4096                            │       │
+│ │  [+] Add preset                                                                    │       │
 │ └────────────────────────────────────────────────────────────────────────────────────┘       │
 │                                                                                              │
 │ Cycle Order: ┌──────┐  (0 = not in tab cycle)                                                │
@@ -29762,9 +29762,9 @@ Tool calls progress through pending → completed/failed states. The expand beha
 │  Completed (expanded):                                                 │
 │   🔧 local/code-analysis                                             │
 │   ┌─ src/auth/handler.py ────────────────────────────────────────────┐ │
-│   │  45 │ def login(self, req):                                    │   │
-│   │  46 │     creds = extract(req)                                 │   │
-│   │  47 │     return auth(creds)                                   │   │
+│   │  45 │ def login(self, req):                                      │ │
+│   │  46 │     creds = extract(req)                                   │ │
+│   │  47 │     return auth(creds)                                     │ │
 │   └──────────────────────────────────────────────────────────────────┘ │
 │                                                                        │
 │  Failed:                                                               │
@@ -36300,9 +36300,9 @@ This section presents complete, end-to-end workflow examples showing how CleverA
 ╰────────────────────────────────────────────╯
 
 ╭─ Linked Resources ───────────────────────────────────────╮
-│ Name               Type          Read-Only               │
+│ Name               Type            Read-Only             │
 │ ─────────────────  ──────────────  ─────────             │
-│ local/api-repo     git-checkout    no                   │
+│ local/api-repo     git-checkout    no                    │
 ╰──────────────────────────────────────────────────────────╯
 
 ╭─ Defaults ──────────────────────────────╮
@@ -36777,11 +36777,11 @@ The sandbox changes are merged into the main working tree. The bug is fixed.
 
 ╭─ Validation Registered ──────────────────────────────────────╮
 │ Name: local/auth-coverage                                    │
-│ Command: pytest --cov=src/auth --cov-fail-under=80            │
-│         tests/test_auth/                                      │
-│ Description: Coverage must be at least 80%                    │
-│ Mode: required                                                │
-│ Timeout: 600s                                                 │
+│ Command: pytest --cov=src/auth --cov-fail-under=80           │
+│         tests/test_auth/                                     │
+│ Description: Coverage must be at least 80%                   │
+│ Mode: required                                               │
+│ Timeout: 600s                                                │
 ╰──────────────────────────────────────────────────────────────╯
 
 ✓ OK Validation registered
@@ -36837,7 +36837,7 @@ Create `actions/generate-tests.yaml`:
 ╭─ Action Created ───────────────────────────────────╮
 │ Name: local/generate-tests                         │
 │ ID: 01HXR2B1C2D3E4F5G6H7I8J9K0                     │
-│ State: available                                    │
+│ State: available                                   │
 │ Strategy Actor: anthropic/claude-3.5-sonnet        │
 │ Execution Actor: anthropic/claude-3.5-sonnet       │
 │ Reusable: yes                                      │
@@ -37445,7 +37445,7 @@ Because the `cautious` profile uses intermediate confidence thresholds, the syst
 
 ╭─ Progress ───────╮
 │  Strategize     │
-│  Execute        │
+│  Execute       │
 │  Apply (queued) │
 ╰──────────────────╯
 
@@ -37694,7 +37694,7 @@ During execution, you notice the strategy chose to inline the ORM models in the
 $ agents resource add git-checkout local/common-lib-repo --path /repos/common-lib --branch main
 
 ╭─ Resource ──────────────────────────────────────╮
-│ Name: local/common-lib-repo                    │
+│ Name: local/common-lib-repo                     │
 │ ID: 01HXR4A1B2C3D4E5F6G7H8J9K0                  │
 │ Type: git-checkout                              │
 │ Physical/Virtual: physical                      │
@@ -37749,9 +37749,9 @@ During execution, you notice the strategy chose to inline the ORM models in the
 ╰───────────────────────────────────────────╯
 
 ╭─ Linked Resources ───────────────────────────────────────╮
-│ Resource               Type          Read-Only            │
+│ Resource               Type            Read-Only         │
 │ ─────────────────────  ──────────────  ─────────         │
-│ local/common-lib-repo  git-checkout    no                 │
+│ local/common-lib-repo  git-checkout    no                │
 ╰──────────────────────────────────────────────────────────╯
 
 ╭─ Defaults ──────────────────────────────╮
@@ -37783,7 +37783,7 @@ During execution, you notice the strategy chose to inline the ORM models in the
 $ agents validation add --config validations/pytest-mypy.yaml --required local/pytest-mypy
 
 ╭─ Validation Registered ─────────────────────────────╮
-│ Name: local/pytest-mypy                              │
+│ Name: local/pytest-mypy                             │
 │ Command: pytest tests/ && mypy src/                 │
 │ Mode: required                                      │
 │ Timeout: 300s                                       │
@@ -38345,7 +38345,7 @@ Register the custom resource type, then create a resource instance and link it t
     --schema public
 
 ╭─ Resource ───────────────────────────────────────╮
-│ Name: local/prod-users-db                       │
+│ Name: local/prod-users-db                        │
 │ ID: 01HXR5D3E4F5G6H7J8K9L0M1N2                   │
 │ Type: local/postgres-db                          │
 │ Physical/Virtual: physical                       │
@@ -38669,7 +38669,7 @@ Each phase creates checkpoints. If the backfill fails at batch 850 of 1,000, the
 
 ╭─ Progress ─────────────────╮
 │  Strategize               │
-│  Execute (phase 3 of 5)   │
+│  Execute (phase 3 of 5)  │
 │  Apply (queued)           │
 ╰────────────────────────────╯
 
@@ -38678,7 +38678,7 @@ Each phase creates checkpoints. If the backfill fails at batch 850 of 1,000, the
 │ ─────  ───────────────────────────────────  ──────────────────────       │
 │ 1      Generate Alembic migration              ✓ complete                │
 │ 2      Generate rollback migration             ✓ complete                │
-│ 3      Backfill from audit_log                 ⏳ batch 620/1,000         │
+│ 3      Backfill from audit_log                 ⏳ batch 620/1,000        │
 │ 4      Update ORM model and application code   ○ waiting                 │
 │ 5      Run tests with new schema               ○ waiting                 │
 ╰──────────────────────────────────────────────────────────────────────────╯
@@ -39549,7 +39549,7 @@ Create `skills/terraform-ops.yaml`:
     --workspace production
 
 ╭─ Resource ──────────────────────────────────────────────────────────────────╮
-│ Name: local/prod-tfstate                                                   │
+│ Name: local/prod-tfstate                                                    │
 │ ID: 01HXR8B2C3D4E5F6G7H8J9K0L1                                              │
 │ Type: local/terraform-state                                                 │
 │ Physical/Virtual: physical                                                  │
@@ -39625,7 +39625,7 @@ Create `skills/terraform-ops.yaml`:
 $ agents validation add --config validations/tf-plan.yaml --informational local/tf-plan
 
 ╭─ Validation Registered ─────────────────────────────────────────────────────────╮
-│ Name: local/tf-plan                                                              │
+│ Name: local/tf-plan                                                             │
 │ Command: cd environments/prod && terraform plan -detailed-exitcode              │
 │ Mode: informational                                                             │
 │ Timeout: 300s                                                                   │
@@ -39944,7 +39944,7 @@ The strategy actor queries cloud metrics via the `cloud_metrics` tool, analyzes
 │ - agents action create --config ./actions/refresh-locks.yaml             │
 ╰──────────────────────────────────────────────────────────────────────────╯
 
-╭─ Result ────────────────────────────╮
+╭─ Result ──────────────────────────────╮
 │ Action: local/refresh-locks           │
 │ Steps: 5                              │
 │ Trigger: manual                       │
@@ -40134,7 +40134,7 @@ done
     --path /repos/monorepo/packages/auth --branch main
 
 ╭─ Resource ──────────────────────────────────────────╮
-│ Name: local/pkg-auth-repo                          │
+│ Name: local/pkg-auth-repo                           │
 │ ID: 01HXR7B1A2B3C4D5E6F7G8H9J0                      │
 │ Type: git-checkout                                  │
 │ Physical/Virtual: physical                          │
@@ -40192,7 +40192,7 @@ done
 $ agents validation add --config validations/pkg-auth.yaml --required local/pkg-auth-test
 
 ╭─ Validation Registered ─────────────────────────────────────────────────╮
-│ Name: local/pkg-auth-test                                                │
+│ Name: local/pkg-auth-test                                               │
 │ Command: cd /repos/monorepo/packages/auth && pytest tests/              │
 │ Mode: required                                                          │
 │ Timeout: 300s                                                           │
@@ -40785,7 +40785,7 @@ The graph actor executes `review_graph` with parallel fan-out. The `dispatch` no
 $ agents validation add --config validations/api-tests.yaml --required local/api-tests
 
 ╭─ Validation Registered ─────────────────────────────╮
-│ Name: local/api-tests                                │
+│ Name: local/api-tests                               │
 │ Command: pytest tests/ && mypy src/                 │
 │ Mode: required                                      │
 │ Timeout: 300s                                       │
@@ -42400,17 +42400,17 @@ On a different developer's machine:
     │ Name: local/webapp                                  │
     │ ID: 01J0A1B2C3D4E5F6G7H8J9K0L1                      │
     │ Type: git-checkout                                  │
-    │ Path: /home/user/projects/webapp                   │
+    │ Path: /home/user/projects/webapp                    │
     │ Branch: main                                        │
-    ╰────────────────────────────────────────────────────╯
+    ╰─────────────────────────────────────────────────────╯
 
     ╭─ Auto-discovered Children ─────────────────────────────────────────╮
-    │ ID               Type                    Status                  │
-    │ ───────────────  ──────────────────────  ─────────────────       │
-    │ 01J0A1B2C3D5…   git                     created                  │
-    │ 01J0A1B2C3D6…   devcontainer-instance   detected (not built)    │
-    │ 01J0A1B2C3D7…   fs-directory            created                  │
-    │   + 38 git-commit, 205 git-tree-entry, 12 fs-file              │
+    │ ID               Type                    Status                    │
+    │ ───────────────  ──────────────────────  ─────────────────         │
+    │ 01J0A1B2C3D5…   git                     created                    │
+    │ 01J0A1B2C3D6…   devcontainer-instance   detected (not built)       │
+    │ 01J0A1B2C3D7…   fs-directory            created                    │
+    │   + 38 git-commit, 205 git-tree-entry, 12 fs-file                  │
     ╰────────────────────────────────────────────────────────────────────╯
 
     ⚠ Devcontainer detected at .devcontainer/devcontainer.json
@@ -42476,11 +42476,11 @@ On a different developer's machine:
       --arg feature=dark-mode --automation-profile supervised
 
     ╭─ Plan Created ──────────────────────────────────────╮
-    │ Plan ID: 01J0B2C3D4E5F6G7H8J9K0L1M2            │
-    │ Phase: strategize                                 │
-    │ Action: local/add-dark-mode                       │
-    │ Project: local/webapp-project                     │
-    │ Automation: supervised                             │
+    │ Plan ID: 01J0B2C3D4E5F6G7H8J9K0L1M2                 │
+    │ Phase: strategize                                   │
+    │ Action: local/add-dark-mode                         │
+    │ Project: local/webapp-project                       │
+    │ Automation: supervised                              │
     ╰─────────────────────────────────────────────────────╯
 
     ✓ OK Plan created — strategize phase starting
@@ -42516,10 +42516,10 @@ On a different developer's machine:
     ✓ Devcontainer ready (01J0A1B2C3D6…) in 42s
 
     ╭─ Execution Environment ───────────────────────────╮
-    │ Resolved via: nearest-ancestor devcontainer         │
-    │ Resource: 01J0A1B2C3D6… (devcontainer-instance)    │
-    │ Workspace: /workspaces/webapp                      │
-    │ Precedence: level 3 of 6                           │
+    │ Resolved via: nearest-ancestor devcontainer       │
+    │ Resource: 01J0A1B2C3D6… (devcontainer-instance)   │
+    │ Workspace: /workspaces/webapp                     │
+    │ Precedence: level 3 of 6                          │
     ╰───────────────────────────────────────────────────╯
 
     ▸ Decision 1/3: Create src/theme/dark-mode.ts
@@ -42537,8 +42537,8 @@ On a different developer's machine:
 
     ╭─ Execution Complete ──────────────────╮
     │ Decisions: 3/3 succeeded              │
-    │ Checkpoints: 3                         │
-    │ Environment: devcontainer              │
+    │ Checkpoints: 3                        │
+    │ Environment: devcontainer             │
     │ Duration: 1m 12s (incl. 42s build)    │
     ╰───────────────────────────────────────╯
 
@@ -42596,7 +42596,7 @@ On a different developer's machine:
     │   + src/theme/dark-mode.ts (new)                 │
     │   ~ src/App.tsx (modified)                       │
     │ Target: /home/user/projects/webapp (host)        │
-    │ Via: bind mount sync from container workspace     │
+    │ Via: bind mount sync from container workspace    │
     ╰──────────────────────────────────────────────────╯
 
     ✓ OK Changes applied to host filesystem
@@ -42646,15 +42646,15 @@ On a different developer's machine:
     ╭─ Resource ──────────────────────────────────────╮
     │ Name: local/api-container                       │
     │ ID: 01J0C3D4E5F6G7H8J9K0L1M2N3                  │
-    │ Type: container-instance                       │
+    │ Type: container-instance                        │
     │ State: created (not started)                    │
     ╰─────────────────────────────────────────────────╯
 
     ╭─ Mounts ──────────────────────────────────────────────────────────╮
-    │ Source                    Container Path       Kind   Mode  │
-    │ ────────────────────────  ──────────────────   ──────  ────  │
-    │ local/api-repo            /workspace           res-ref rw    │
-    │ /home/user/.ssh           /home/dev/.ssh       host    ro    │
+    │ Source                    Container Path       Kind    Mode       │
+    │ ────────────────────────  ──────────────────   ──────  ────       │
+    │ local/api-repo            /workspace           res-ref rw         │
+    │ /home/user/.ssh           /home/dev/.ssh       host    ro         │
     ╰───────────────────────────────────────────────────────────────────╯
 
     ✓ OK Container resource registered
@@ -42705,10 +42705,10 @@ On a different developer's machine:
       local/api-project
 
     ╭─ Context Policy Updated ──────────────────────────╮
-    │ Execution Environment: local/api-container         │
-    │ Priority: override (precedence level 2)            │
-    │ Note: All tool invocations will route to this       │
-    │       container, bypassing devcontainer detection  │
+    │ Execution Environment: local/api-container        │
+    │ Priority: override (precedence level 2)           │
+    │ Note: All tool invocations will route to this     │
+    │       container, bypassing devcontainer detection │
     ╰───────────────────────────────────────────────────╯
 
     ✓ OK Context policy updated
@@ -42755,10 +42755,10 @@ On a different developer's machine:
     ✓ Container ready in 3s
 
     ╭─ Execution Environment ───────────────────────────╮
-    │ Resolved via: project override                     │
-    │ Resource: local/api-container                      │
-    │ Workspace: /workspace                              │
-    │ Precedence: level 2 of 6                           │
+    │ Resolved via: project override                    │
+    │ Resource: local/api-container                     │
+    │ Workspace: /workspace                             │
+    │ Precedence: level 2 of 6                          │
     ╰───────────────────────────────────────────────────╯
 
     ▸ Decision 1/2: Fix token validation in src/auth/jwt.ts
@@ -42830,7 +42830,7 @@ On a different developer's machine:
     │ Type: container-instance                            │
     │ State: created (not started)                        │
     │ Clone: https://github.com/acme/billing-api.git      │
-    │ Clone Target: /workspace                             │
+    │ Clone Target: /workspace                            │
     ╰─────────────────────────────────────────────────────╯
 
     ✓ OK Container resource registered (repo will be cloned on first start)
@@ -42894,13 +42894,13 @@ On a different developer's machine:
     ✓ Clone complete (1.2 GB, 47s)
     ✓ Container ready in 52s
 
-    ╭─ Execution Environment ───────────────────────────╮
-    │ Resolved via: plan fallback                        │
-    │ Resource: cloud/build-env                          │
-    │ Workspace: /workspace                              │
-    │ Precedence: level 4 of 6                           │
+    ╭─ Execution Environment ─────────────────────────────╮
+    │ Resolved via: plan fallback                         │
+    │ Resource: cloud/build-env                           │
+    │ Workspace: /workspace                               │
+    │ Precedence: level 4 of 6                            │
     │ Note: No devcontainer detected; using plan fallback │
-    ╰───────────────────────────────────────────────────╯
+    ╰─────────────────────────────────────────────────────╯
 
     ▸ Decision 1/4: Add cursor-based pagination to /workspace/src/api/invoices.ts
       → edit_file() in container
@@ -42975,11 +42975,11 @@ On a different developer's machine:
 
     ╭─ Apply ──────────────────────────────────────────╮
     │ Files modified: 3                                │
-    │   ~ src/api/invoices.ts (modified)              │
-    │   + src/types/pagination.ts (new)               │
-    │   ~ tests/api/invoices.test.ts (modified)       │
+    │   ~ src/api/invoices.ts (modified)               │
+    │   + src/types/pagination.ts (new)                │
+    │   ~ tests/api/invoices.test.ts (modified)        │
     │ Target: container /workspace                     │
-    │ Apply mode: commit + push to origin/main          │
+    │ Apply mode: commit + push to origin/main         │
     ╰──────────────────────────────────────────────────╯
 
     ✓ OK Changes applied (committed as abc1234, pushed to origin/main)