docs: scrub gemini_cli references from 12 docs (provider count 8->7)

Cleaned: docs/guide_ai_client.md, docs/guide_architecture.md,
docs/guide_models.md, docs/guide_simulations.md,
docs/guide_context_aggregation.md, docs/guide_tools.md, docs/Readme.md,
conductor/tech-stack.md, conductor/product.md,
conductor/product-guidelines.md, conductor/workflow.md,
conductor/code_styleguides/error_handling.md.

Provider list citations updated to 7 (gemini, anthropic, deepseek,
minimax, qwen, grok, llama). guide_meta_boundary.md intentionally
retained (its gemini_cli references are the meta-tooling
GEMINI_CLI_HOOK_CONTEXT env var, NOT the provider; per spec GAP-A12).
This commit is contained in:
ed
2026-07-05 20:16:53 -04:00
parent be93c262e0
commit bd1d966c12
12 changed files with 1242 additions and 1242 deletions
+129 -129
View File
@@ -14,7 +14,7 @@ This documentation suite provides comprehensive technical reference for the Manu
| Guide | Contents |
|---|---|
| [Architecture](guide_architecture.md) | Thread domains (GUI Main, Asyncio Worker, HookServer, Ad-hoc), cross-thread data structures (AsyncEventQueue, Guarded Lists, Condition-Variable Dialogs), event system (EventEmitter, SyncEventQueue, UserRequestEvent), application lifetime (boot sequence, shutdown sequence), task pipeline (producer-consumer synchronization), Execution Clutch (HITL mechanism with ConfirmDialog, MMAApprovalDialog, MMASpawnApprovalDialog), AI client multi-provider architecture (Gemini SDK, Anthropic, DeepSeek, Gemini CLI, MiniMax), Anthropic/Gemini caching strategies (4-breakpoint system, server-side TTL), context refresh mechanism (mtime-based file re-reading, diff injection), comms logging (JSON-L format), state machines (ai_status, HITL dialog state) |
| [Architecture](guide_architecture.md) | Thread domains (GUI Main, Asyncio Worker, HookServer, Ad-hoc), cross-thread data structures (AsyncEventQueue, Guarded Lists, Condition-Variable Dialogs), event system (EventEmitter, SyncEventQueue, UserRequestEvent), application lifetime (boot sequence, shutdown sequence), task pipeline (producer-consumer synchronization), Execution Clutch (HITL mechanism with ConfirmDialog, MMAApprovalDialog, MMASpawnApprovalDialog), AI client multi-provider architecture (Gemini SDK, Anthropic, DeepSeek, MiniMax), Anthropic/Gemini caching strategies (4-breakpoint system, server-side TTL), context refresh mechanism (mtime-based file re-reading, diff injection), comms logging (JSON-L format), state machines (ai_status, HITL dialog state) |
| [Meta-Boundary](guide_meta_boundary.md) | Explicit distinction between the Application's domain (Strict HITL — `gui_2.py`, `ai_client.py`, `multi_agent_conductor.py`, `dag_engine.py`) and the **Meta-Tooling** domain (the OpenCode Task tool with `.opencode/agents/*` tier prompts, `.gemini/`, `.claude/`, plus the legacy `scripts/mma_exec.py` / `scripts/claude_mma_exec.py` / `scripts/tool_call.py` / `scripts/mcp_server.py` for backward compatibility), preventing feature bleed and safety bypasses via shared bridges like `mcp_client.py`. Documents the Inter-Domain Bridges (`cli_tool_bridge.py`, `claude_tool_bridge.py`) and the `GEMINI_CLI_HOOK_CONTEXT` environment variable. **Note (2026-06-27):** the legacy `mma_exec.py` / `claude_mma_exec.py` are DEPRECATED for meta-tooling sub-agent delegation; the OpenCode Task tool is the canonical mechanism. |
| [Tools & IPC](guide_tools.md) | MCP Bridge 3-layer security model (Allowlist Construction, Path Validation, Resolution Gate), all 45 MCP tool signatures (plus `run_powershell` from `src/shell_runner.py`, for a canonical 46 in `models.AGENT_TOOL_NAMES`) with parameters and behavior (File I/O, AST-Based, Analysis, Network, Runtime, Beads), Hook API GET/POST endpoints with request/response formats, ApiHookClient method reference (Connection Methods, State Query Methods, GUI Manipulation Methods, Polling Methods, HITL Method), `/api/ask` synchronous HITL protocol (blocking request-response over HTTP), session logging (comms.log, toolcalls.log, apihooks.log, clicalls.log, scripts/generated/*.ps1), shell runner (mcp_env.toml configuration, run_powershell function with 60s timeout, qa_callback and patch_callback integration for Tier 4 QA + auto-patch) |
| [MMA Orchestration](guide_mma.md) | Ticket/Track/WorkerContext data structures (from `models.py`), DAG engine (TrackDAG class with cycle detection, topological sort, cascade_blocks; ExecutionEngine class with tick-based state machine), ConductorEngine execution loop (run method, _push_state for state broadcast, parse_json_tickets for ingestion), Tier 2 ticket generation (generate_tickets, topological_sort), Tier 3 worker lifecycle (run_worker_lifecycle with Context Amnesia, AST skeleton injection, HITL clutch integration via confirm_spawn and confirm_execution), Tier 4 QA integration (run_tier4_analysis, run_tier4_patch_callback), token firewalling (tier_usage tracking, model escalation), track state persistence (TrackState, save_track_state, load_track_state, get_all_tracks) |
@@ -31,12 +31,12 @@ This documentation suite provides comprehensive technical reference for the Manu
| [Testing](guide_testing.md) | 322 test files, 5 test categories (unit, integration, live_gui, perf, simulation), 7 conftest fixtures (`isolate_workspace`, `reset_paths`, `reset_ai_client`, `vlogger`, `kill_process_tree`, `mock_app`, `live_gui` session-scoped), Hook API testing pattern, Puppeteer pattern for MMA simulation, mock provider strategy, opt-in clean install test, opt-in docker test, coverage targets, anti-patterns (no arbitrary core mocking, artifact isolation to `tests/artifacts/`), early-render C-level crash pattern (`_ini_capture_ready` defer-not-catch for `imgui.save_ini_settings_to_memory`), live_gui authoring contract (wait-for-ready pattern over `time.sleep`, narrow test paths over kitchen-sink `render_main_interface` mocks), test-ordering sensitivity (session-scoped fixture) |
| [Themes](guide_themes.md) | TOML-based theming system: file layout (`themes/<name>.toml` global + `project_themes.toml` per-project), schema (`syntax_palette` + `[colors]` table with `imgui.Col_` snake_case keys), 4-syntax-palette upstream limit (`imgui-bundle` ships `dark`/`light`/`mariana`/`retro_blue` only), built-in vs TOML palette dispatch, `load_themes_from_disk` / `get_syntax_palette_for_theme` / `apply_syntax_palette` public API, hot-reload behavior, color-callable convention (`C_LBL()` / `C_VAL()` for theme-aware helpers) |
| [GUI Main](guide_gui_2.md) | `src/gui_2.py` reference: App class lifecycle, ~90 module-level render functions (UI Delegation Pattern), immgui immediate-mode rendering, Multi-Viewport docks, panel registry, command palette integration, ImGuiScope context managers, hot reload support, key bindings (Ctrl+Shift+P, Ctrl+Alt+R, Ctrl+Z/Y), `_capture_workspace_profile` defer-not-catch pattern (line 813-841, `_ini_capture_ready` flag for `imgui.save_ini_settings_to_memory`), theme color-callable pattern (e.g. `DIR_COLORS`/`KIND_COLORS` dicts store `C_VAL` not `C_VAL()` and are called at use site), `__getattr__` ui_ attrs hasattr-guard (bcdc26d0 silent-None fix), `_LazyModule` / `_FiledialogStub` lazy import proxies, `startup_profiler` + `render_warmup_status_indicator` integration, native `_detect_refresh_rate_win32` (ctypes.EnumDisplaySettingsW) |
| [AI Client](guide_ai_client.md) | `src/ai_client.py` reference: multi-provider LLM singleton (8 providers: gemini, anthropic, gemini_cli, deepseek, minimax, qwen, grok, llama), async dispatch with `asyncio.gather`, threading.local for source tier tagging, context caching (Anthropic ephemeral + Gemini explicit), system prompt assembly, error interception for Tier 4 QA, inlined `VendorCapabilities` registry (moved from the deleted `src/vendor_capabilities.py`), `Result[str]`-returning `send()` public API |
| [AI Client](guide_ai_client.md) | `src/ai_client.py` reference: multi-provider LLM singleton (7 providers: gemini, anthropic, deepseek, minimax, qwen, grok, llama), async dispatch with `asyncio.gather`, threading.local for source tier tagging, context caching (Anthropic ephemeral + Gemini explicit), system prompt assembly, error interception for Tier 4 QA, inlined `VendorCapabilities` registry (moved from the deleted `src/vendor_capabilities.py`), `Result[str]`-returning `send()` public API |
| [API Hooks](guide_api_hooks.md) | `src/api_hooks.py` + `src/api_hook_client.py` reference: HookServer on `127.0.0.1:8999`, ApiHookClient Python wrapper, 8+ endpoints (`/status`, `/api/gui`, `/api/ask`, `/api/gui/mma_status`, `/api/performance`, `/api/comms`, `/api/diagnostics`), Remote Confirmation Protocol via `/api/ask` (synchronous blocking HITL), `custom_callback` action for invoking any registered App method |
| [MCP Client](guide_mcp_client.md) | `src/mcp_client.py` reference: 45 native tools (File I/O, Python AST, C/C++ AST, Analysis, Network, Runtime, Beads), 3-layer security model (Allowlist Construction, Path Validation, Resolution Gate), `dispatch()`/`async_dispatch()` entry points, ExternalMCPManager for external MCP servers (Stdio + SSE), JSON-RPC 2.0 engine, public API, configuration |
| [App Controller](guide_app_controller.md) | `src/app_controller.py` reference: headless orchestrator owning AppState and all subsystem managers (PresetManager, PersonaManager, ContextPresetManager, ToolPresetManager, ToolBiasEngine, RAGEngine, HistoryManager, WorkspaceManager, HookServer, HotReloader, PathManager), `_predefined_callbacks` and `_gettable_fields` registries for Hook API, SyncEventQueue bridge, preset/persona/context coordination, headless mode |
| [MMA Engine](guide_multi_agent_conductor.md) | `src/multi_agent_conductor.py` + `src/dag_engine.py` reference: TrackDAG with cycle detection (iterative DFS) and topological sort (Kahn's variant), ExecutionEngine with Auto-Queue / Step Mode state machine, MultiAgentConductor with WorkerPool (configurable concurrency, default 4), the WorkerPool's internal `run_worker_lifecycle` subprocess template (NOT the meta-tooling `mma_exec.py` — that's deprecated; see `guide_meta_boundary.md`), parse_plan_md utility (now in `src/mma.py`), Beads mode delegation |
| [Data Models](guide_models.md) | `src/models.py` is now a ~1.5KB legacy re-export shim (`Metadata = TrackMetadata` alias + `PROVIDERS` lazy `__getattr__`). Data models moved to per-system files per `module_taxonomy_refactor_20260627`: `src/mma.py` (TrackMetadata, Ticket, Track, WorkerContext), `src/project_files.py` (FileItem), `src/type_aliases.py` (typed boundary + per-aggregate dataclasses: Metadata, CommsLogEntry, HistoryMessage, ToolDefinition, SessionInsights, DiscussionSettings, CustomSlice, MMAUsageStats, ProviderPayload, UIPanelConfig, PathInfo, FileItemsDiff, JsonPrimitive/JsonValue), `src/mcp_tool_specs.py` (typed ToolSpec registry, 45 tools), `src/result_types.py` (Result[T], ErrorInfo, ErrorKind). `VendorCapabilities` lives in `src/ai_client.py` `#region: Vendor Capabilities`. `PROVIDERS` constant in `src/ai_client.py` (8 providers: gemini, anthropic, gemini_cli, deepseek, minimax, qwen, grok, llama). |
| [Data Models](guide_models.md) | `src/models.py` is now a ~1.5KB legacy re-export shim (`Metadata = TrackMetadata` alias + `PROVIDERS` lazy `__getattr__`). Data models moved to per-system files per `module_taxonomy_refactor_20260627`: `src/mma.py` (TrackMetadata, Ticket, Track, WorkerContext), `src/project_files.py` (FileItem), `src/type_aliases.py` (typed boundary + per-aggregate dataclasses: Metadata, CommsLogEntry, HistoryMessage, ToolDefinition, SessionInsights, DiscussionSettings, CustomSlice, MMAUsageStats, ProviderPayload, UIPanelConfig, PathInfo, FileItemsDiff, JsonPrimitive/JsonValue), `src/mcp_tool_specs.py` (typed ToolSpec registry, 45 tools), `src/result_types.py` (Result[T], ErrorInfo, ErrorKind). `VendorCapabilities` lives in `src/ai_client.py` `#region: Vendor Capabilities`. `PROVIDERS` constant in `src/ai_client.py` (7 providers: gemini, anthropic, deepseek, minimax, qwen, grok, llama). |
| [Discussions](guide_discussions.md) | The Discussion system: 23-operation matrix A1-A7 (per-entry) + B1-B11 (discussion-level) + C1-C5 (undo/redo), Take naming convention (`<base>_take_<n>`), branching at any entry (`project_manager.branch_discussion`), promotion to top-level (`project_manager.promote_take`), user-managed role list (`app.disc_roles`), per-role filter linked to MMA persona focus, `_disc_entries_lock` thread-safety contract, Hook API session endpoints |
| [State Lifecycle](guide_state_lifecycle.md) | Undo/redo via `HistoryManager` + `UISnapshot` (13 captured fields, 100-snapshot capacity, debounced change detection at render frame), reset flow (`_handle_reset_session` — clears 30+ fields, replaces project, preserves `active_project_path` per the 2026-06-08 regression fix), `App.__getattr__`/`__setattr__` state delegation to Controller, 8-thread io_pool with 11 lock-protected regions (per `IO_POOL_MAX_WORKERS = 8` in `src/io_pool.py:20`; bumped 4→8 in 4a338486 on 2026-06-06), hot-reload integration |
| [Context Aggregation](guide_context_aggregation.md) | The `aggregate.py` (518-line) pipeline: 3 aggregation strategies (`auto`/`summarize`/`full`), 7 per-file view modes (`full`/`summary`/`skeleton`/`outline`/`masked`/`custom`/`none`), full `FileItem` schema (9 fields + `__post_init__` normalizer), `ContextPreset` schema and `ContextPresetManager`, Tier 3 worker variant (`build_tier3_context` with FuzzyAnchor re-resolution and focus-file handling), `force_full`/`auto_aggregate` short-circuits, output file numbering, cache strategy (static prefix + dynamic history) |
@@ -85,8 +85,8 @@ Controls what context is compiled and sent to the AI.
- **Base Dir**: Root directory for path resolution and MCP tool constraints.
- **Paths**: Explicit files or wildcard globs (`src/**/*.py`).
- **File Flags**:
- **Auto-Aggregate**: Include in context compilation.
- **Force Full**: Bypass summary-only mode for this file.
- **Auto-Aggregate**: Include in context compilation.
- **Force Full**: Bypass summary-only mode for this file.
- **Cache Indicator**: Green dot (●) indicates file is in provider's context cache.
### Discussion Hub
@@ -101,7 +101,7 @@ Manages conversational branches to prevent context poisoning across tasks.
### AI Settings Panel
- **Provider**: Switch between API backends (Gemini, Anthropic, DeepSeek, Gemini CLI, MiniMax).
- **Provider**: Switch between API backends (Gemini, Anthropic, DeepSeek, MiniMax).
- **Model**: Select from available models for the current provider.
- **Fetch Models**: Queries the active provider for the latest model list.
- **Temperature / Max Tokens**: Generation parameters.
@@ -324,127 +324,127 @@ EXPANDED = "${HOME}/subdir"
```
manual_slop/
├── conductor/ # Conductor system
├── tracks/ # Track directories
└── <track_id>/ # Per-track files
├── spec.md
├── plan.md
├── metadata.json
└── state.toml
├── archive/ # Completed tracks
├── product.md # Product definition
├── product-guidelines.md
├── tech-stack.md
├── workflow.md
├── index.md
└── edit_workflow.md
├── docs/ # Deep-dive documentation (27 guides + specs/plans)
├── guide_ai_client.md # Multi-provider LLM client
├── guide_api_hooks.md # HookServer + ApiHookClient
├── guide_app_controller.md # Headless AppController
├── guide_architecture.md # Threading, event system, state machines
├── guide_beads.md # Beads/Dolt issue tracking
├── guide_command_palette.md # Command palette + 33 registered commands
├── guide_context_aggregation.md # aggregate.py pipeline (strategies + view modes)
├── guide_context_curation.md # Granular AST control + Fuzzy Anchor slices
├── guide_discussions.md # Discussion system + A1-A7 matrix
├── guide_docker_deployment.md # Docker + Gitea registry deployment
├── guide_gui_2.md # Main ImGui interface (App class, render functions)
├── guide_hot_reload.md # State-preserving module reloading
├── guide_mcp_client.md # 45 MCP tools + 3-layer security
├── guide_meta_boundary.md # Application vs Meta-Tooling split
├── guide_mma.md # 4-Tier MMA concepts
├── guide_models.md # Data model registry
├── guide_multi_agent_conductor.md # ConductorEngine + TrackDAG + WorkerPool
├── guide_nerv_theme.md # NERV Tactical Console theme
├── guide_personas.md # Unified agent profile system
├── guide_rag.md # RAG subsystem (ChromaDB + embeddings)
├── guide_shaders_and_window.md # Shader injection + custom window frame
├── guide_simulations.md # Test framework + Puppeteer pattern
├── guide_state_lifecycle.md # Undo/redo + state delegation
├── guide_testing.md # 322 test files + 7 conftest fixtures
├── guide_themes.md # Multi-theme TOML system
├── guide_tools.md # MCP tools + shell runner
├── guide_workspace_profiles.md # Workspace profile save/load
├── Readme.md
├── MMA_Support/ # Legacy MMA reference (deprecated)
├── reports/ # Phase 5 reports
└── superpowers/ # Specs and plans for design work
├── src/ # Core implementation (53 modules)
├── gui_2.py # Primary ImGui interface
├── app_controller.py # Headless controller
├── ai_client.py # Multi-provider LLM (Gemini, Anthropic, DeepSeek, MiniMax)
├── mcp_client.py # 45 MCP tools + 1 shell runner (canonical 46) with 3-layer security
├── api_hooks.py # HookServer REST API on :8999
├── api_hook_client.py # Python client for the Hook API
├── multi_agent_conductor.py # ConductorEngine
├── dag_engine.py # TrackDAG + ExecutionEngine
├── models.py # Ticket, Track, WorkerContext, etc.
├── events.py # EventEmitter, SyncEventQueue
├── project_manager.py # TOML persistence, discussion management
├── session_logger.py # JSON-L + markdown audit trails
├── rag_engine.py # RAG (ChromaDB + embedding providers)
├── beads_client.py # Beads/Dolt issue tracking client
├── hot_reloader.py # State-preserving module reloader
├── personas.py # Unified agent profile manager
├── presets.py # System prompt preset manager
├── context_presets.py # Context composition preset manager
├── tool_presets.py # Tool preset manager
├── tool_bias.py # Tool bias engine
├── command_palette.py # Command palette + fuzzy matcher
├── commands.py # 33 registered commands
├── workspace_manager.py # Workspace profile save/load
├── theme_2.py # Theme system (palette/font/etc.)
├── theme_nerv.py # NERV Tactical Console theme
├── theme_nerv_fx.py # NERV FX (scanlines, flicker, alert)
├── shell_runner.py # PowerShell execution with 60s timeout + qa_callback + patch_callback
├── file_cache.py # ASTParser (tree-sitter)
├── summarize.py # Heuristic file summaries
├── outline_tool.py # Hierarchical code outline
├── fuzzy_anchor.py # Fuzzy anchor slice algorithm
├── history.py # Undo/redo HistoryManager
├── imgui_scopes.py # ImGui context managers
├── performance_monitor.py # FPS/CPU tracking
├── log_registry.py # Session metadata
├── log_pruner.py # Automated log cleanup
├── paths.py # Centralized path resolution
├── cost_tracker.py # Token cost estimation
├── gemini_cli_adapter.py # CLI subprocess adapter
├── mma_prompts.py # Tier-specific system prompts
├── summary_cache.py # SHA256-keyed summary LRU cache
├── markdown_helper.py # Markdown rendering helpers
├── patch_modal.py # Patch approval modal
├── diff_viewer.py # Diff rendering
├── external_editor.py # External editor integration
├── orchestrator_pm.py # Orchestrator project manager
├── conductor_tech_lead.py # Tier 2 ticket generation
├── synthesis_formatter.py # Multi-take synthesis
├── thinking_parser.py # AI thinking-trace extraction
└── __init__.py
├── simulation/ # Test simulations
├── sim_base.py # BaseSimulation class
├── workflow_sim.py # WorkflowSimulator
├── user_agent.py # UserSimAgent
├── sim_context.py # ContextSimulation
├── sim_execution.py # ExecutionSimulation
├── sim_ai_settings.py # AISettingsSimulation
└── sim_tools.py # ToolsSimulation
├── tests/ # Test suite (251 files)
├── conftest.py # Fixtures (live_gui, isolate_workspace, etc.)
├── mock_gemini_cli.py # Mock provider for integration tests
├── test_*.py # Unit tests
├── *_sim.py # Integration tests using live_gui
├── test_clean_install.py # Opt-in: clones repo and verifies hooks
├── test_docker_build.py # Opt-in: builds Docker image
├── artifacts/ # Git-ignored; test outputs
└── logs/ # Git-ignored; live_gui log files
├── scripts/ # Utility scripts
├── generated/ # AI-generated scripts
├── check_test_toml_paths.py # Audit script (CI gate)
├── docker_build.sh
└── docker_run.sh
├── sloppy.py # Main entry point
├── config.toml # Global configuration
├── manual_slop.toml # Active project config (current)
└── credentials.toml # API keys (gitignored)
├── conductor/ # Conductor system
│ ├── tracks/ # Track directories
└── <track_id>/ # Per-track files
├── spec.md
├── plan.md
├── metadata.json
└── state.toml
│ ├── archive/ # Completed tracks
│ ├── product.md # Product definition
│ ├── product-guidelines.md
│ ├── tech-stack.md
│ ├── workflow.md
│ ├── index.md
│ └── edit_workflow.md
├── docs/ # Deep-dive documentation (27 guides + specs/plans)
│ ├── guide_ai_client.md # Multi-provider LLM client
│ ├── guide_api_hooks.md # HookServer + ApiHookClient
│ ├── guide_app_controller.md # Headless AppController
│ ├── guide_architecture.md # Threading, event system, state machines
│ ├── guide_beads.md # Beads/Dolt issue tracking
│ ├── guide_command_palette.md # Command palette + 33 registered commands
│ ├── guide_context_aggregation.md # aggregate.py pipeline (strategies + view modes)
│ ├── guide_context_curation.md # Granular AST control + Fuzzy Anchor slices
│ ├── guide_discussions.md # Discussion system + A1-A7 matrix
│ ├── guide_docker_deployment.md # Docker + Gitea registry deployment
│ ├── guide_gui_2.md # Main ImGui interface (App class, render functions)
│ ├── guide_hot_reload.md # State-preserving module reloading
│ ├── guide_mcp_client.md # 45 MCP tools + 3-layer security
│ ├── guide_meta_boundary.md # Application vs Meta-Tooling split
│ ├── guide_mma.md # 4-Tier MMA concepts
│ ├── guide_models.md # Data model registry
│ ├── guide_multi_agent_conductor.md # ConductorEngine + TrackDAG + WorkerPool
│ ├── guide_nerv_theme.md # NERV Tactical Console theme
│ ├── guide_personas.md # Unified agent profile system
│ ├── guide_rag.md # RAG subsystem (ChromaDB + embeddings)
│ ├── guide_shaders_and_window.md # Shader injection + custom window frame
│ ├── guide_simulations.md # Test framework + Puppeteer pattern
│ ├── guide_state_lifecycle.md # Undo/redo + state delegation
│ ├── guide_testing.md # 322 test files + 7 conftest fixtures
│ ├── guide_themes.md # Multi-theme TOML system
│ ├── guide_tools.md # MCP tools + shell runner
│ ├── guide_workspace_profiles.md # Workspace profile save/load
│ ├── Readme.md
│ ├── MMA_Support/ # Legacy MMA reference (deprecated)
│ ├── reports/ # Phase 5 reports
│ └── superpowers/ # Specs and plans for design work
├── src/ # Core implementation (53 modules)
│ ├── gui_2.py # Primary ImGui interface
│ ├── app_controller.py # Headless controller
│ ├── ai_client.py # Multi-provider LLM (Gemini, Anthropic, DeepSeek, MiniMax)
│ ├── mcp_client.py # 45 MCP tools + 1 shell runner (canonical 46) with 3-layer security
│ ├── api_hooks.py # HookServer REST API on :8999
│ ├── api_hook_client.py # Python client for the Hook API
│ ├── multi_agent_conductor.py # ConductorEngine
│ ├── dag_engine.py # TrackDAG + ExecutionEngine
│ ├── models.py # Ticket, Track, WorkerContext, etc.
│ ├── events.py # EventEmitter, SyncEventQueue
│ ├── project_manager.py # TOML persistence, discussion management
│ ├── session_logger.py # JSON-L + markdown audit trails
│ ├── rag_engine.py # RAG (ChromaDB + embedding providers)
│ ├── beads_client.py # Beads/Dolt issue tracking client
│ ├── hot_reloader.py # State-preserving module reloader
│ ├── personas.py # Unified agent profile manager
│ ├── presets.py # System prompt preset manager
│ ├── context_presets.py # Context composition preset manager
│ ├── tool_presets.py # Tool preset manager
│ ├── tool_bias.py # Tool bias engine
│ ├── command_palette.py # Command palette + fuzzy matcher
│ ├── commands.py # 33 registered commands
│ ├── workspace_manager.py # Workspace profile save/load
│ ├── theme_2.py # Theme system (palette/font/etc.)
│ ├── theme_nerv.py # NERV Tactical Console theme
│ ├── theme_nerv_fx.py # NERV FX (scanlines, flicker, alert)
│ ├── shell_runner.py # PowerShell execution with 60s timeout + qa_callback + patch_callback
│ ├── file_cache.py # ASTParser (tree-sitter)
│ ├── summarize.py # Heuristic file summaries
│ ├── outline_tool.py # Hierarchical code outline
│ ├── fuzzy_anchor.py # Fuzzy anchor slice algorithm
│ ├── history.py # Undo/redo HistoryManager
│ ├── imgui_scopes.py # ImGui context managers
│ ├── performance_monitor.py # FPS/CPU tracking
│ ├── log_registry.py # Session metadata
│ ├── log_pruner.py # Automated log cleanup
│ ├── paths.py # Centralized path resolution
│ ├── cost_tracker.py # Token cost estimation
│ ├── gemini_cli_adapter.py # CLI subprocess adapter
│ ├── mma_prompts.py # Tier-specific system prompts
│ ├── summary_cache.py # SHA256-keyed summary LRU cache
│ ├── markdown_helper.py # Markdown rendering helpers
│ ├── patch_modal.py # Patch approval modal
│ ├── diff_viewer.py # Diff rendering
│ ├── external_editor.py # External editor integration
│ ├── orchestrator_pm.py # Orchestrator project manager
│ ├── conductor_tech_lead.py # Tier 2 ticket generation
│ ├── synthesis_formatter.py # Multi-take synthesis
│ ├── thinking_parser.py # AI thinking-trace extraction
│ └── __init__.py
├── simulation/ # Test simulations
│ ├── sim_base.py # BaseSimulation class
│ ├── workflow_sim.py # WorkflowSimulator
│ ├── user_agent.py # UserSimAgent
│ ├── sim_context.py # ContextSimulation
│ ├── sim_execution.py # ExecutionSimulation
│ ├── sim_ai_settings.py # AISettingsSimulation
│ └── sim_tools.py # ToolsSimulation
├── tests/ # Test suite (251 files)
│ ├── conftest.py # Fixtures (live_gui, isolate_workspace, etc.)
│ ├── mock_gemini_cli.py # Mock provider for integration tests
│ ├── test_*.py # Unit tests
│ ├── *_sim.py # Integration tests using live_gui
│ ├── test_clean_install.py # Opt-in: clones repo and verifies hooks
│ ├── test_docker_build.py # Opt-in: builds Docker image
│ ├── artifacts/ # Git-ignored; test outputs
│ └── logs/ # Git-ignored; live_gui log files
├── scripts/ # Utility scripts
│ ├── generated/ # AI-generated scripts
│ ├── check_test_toml_paths.py # Audit script (CI gate)
│ ├── docker_build.sh
│ └── docker_run.sh
├── sloppy.py # Main entry point
├── config.toml # Global configuration
├── manual_slop.toml # Active project config (current)
└── credentials.toml # API keys (gitignored)
```