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─
$ 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
$ agents lsp list
- ╭─ LSP Registry (3 servers) ───────────────────────────────────────────────────────╮
- │ Name │ Languages │ Command │ Bound │
- │────────────────────────│──────────────────────│────────────────────────────│───────│
+ ╭─ LSP Registry (3 servers) ───────────────────────────────────────────────────────────╮
+ │ Name │ Languages │ Command │ Bound │
+ │─────────────────────────│──────────────────────│─────────────────────────────│───────│
│ local/pyright │ python │ pyright-langserver --stdio │ 3 │
│ local/ts-server │ typescript, jsx, tsx │ typescript-language-server │ 2 │
│ local/gopls │ go │ gopls serve │ 1 │
- ╰──────────────────────────────────────────────────────────────────────────────────╯
+ ╰──────────────────────────────────────────────────────────────────────────────────────╯
$ 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
┌─────────────────────────────────────── 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)