zagens_core/engine/hosts/shell.rs
1//! [`ShellHost`] — engine boundary marker for the shell tool subsystem.
2//!
3//! **Intentionally empty in M3.** The live `Engine`
4//! (`crates/tui/src/core/engine/*`) never invokes any method on the
5//! `shell_manager` field — it only clones the `SharedShellManager` into
6//! `ToolContext` via `build_tool_context`. The single call site is
7//! `crates/tui/src/core/engine/tool_context.rs:30`.
8//!
9//! Introducing the trait now (per spike §2.2 target layout) lets M7
10//! swap `shell_manager: SharedShellManager` to `Box<dyn ShellHost>`
11//! without simultaneously inventing the trait surface. M5/M7 may later
12//! extend with command acquisition / progress registration once the
13//! `RuntimeToolServices` consolidation lands.
14
15/// Engine-side shell host marker.
16///
17/// Implemented by `crates/tui/src/tools/shell.rs`'s `ShellManager` (an
18/// empty `impl ShellHost for ShellManager` block). Existing call sites
19/// that need to actually invoke shell methods continue to go through
20/// the concrete `SharedShellManager` (e.g. via `ToolContext`).
21pub trait ShellHost: Send + Sync {}