1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Engine host newtype for shared shell manager access.
use PathBuf;
use ;
use ShellManager;
/// Thread-safe wrapper for `ShellManager`
pub type SharedShellManager = ;
/// Engine boundary newtype wrapping the shared shell manager.
///
/// Introduced by M3 (Engine-struct strangler step). Mirrors
/// [`TuiSandboxHost`](crate::sandbox::TuiSandboxHost): the live
/// `Engine` never calls a method on the shell manager directly — it
/// only clones the `SharedShellManager` into `ToolContext`. Going
/// through this newtype lets M7 swap `Engine::shell_manager` from
/// `SharedShellManager` to `Box<dyn ShellHost>` without inventing
/// new trait surface.
///
/// `ShellManager` itself is `Send` but not `Sync` (it holds
/// `Box<dyn Write + Send>` and `Box<dyn portable_pty::Child + Send>`
/// fields, neither of which is `Sync`). The `SharedShellManager =
/// Arc<Mutex<ShellManager>>` alias *is* `Send + Sync` so this
/// wrapper satisfies the host trait bounds.
;
/// Create a new shared shell manager with default sandbox policy.