Expand description
The terminal family: the seatβs own terminal, driven by bytes and keys.
The agent drives it like a human. There is no agent mode, no
automation flag and no wrapper around the shell: text is typed as bytes,
Enter is its own key, Ctrl-C is 0x03, and the shell sees an ordinary
xterm-256color terminal. Nothing the terminal adds says an agent is
behind the keys.
The family is any-caller and it is always on. The terminal is one per seat on the machine, not a scope like reviews or crons, so every session may drive its own. No approval gate: Bash through the CLI already reaches the shell here. The one thing gated is the personβs input, through a hand-off or their own take-control of the raised surface.
Re-exportsΒ§
use std::sync::Arc;πuse forge_primitives::SessionSlot;πuse forge_primitives::browser::HandOffEnding;πuse forge_sdk::mcp::server::McpServerBuilder;πuse forge_sdk::mcp::tool::Tool;πuse forge_sdk::mcp::tool::ToolInput;πuse forge_sdk::mcp::tool::ToolOutput;πuse forge_sdk::mcp::tool::ToolOutputBlock;πuse forge_terminal::Key;πuse serde_json::Value;πuse crate::mcp::terminal::facade::OpenRequest;πuse crate::mcp::terminal::facade::TerminalFacade;πuse crate::mcp::terminal::facade::WaitUntil;π
ModulesΒ§
- facade
- The narrow surface the terminal tools call: the seatβs terminal, driven by bytes and keys and read as text.
StructsΒ§
- Registered π
- One registered tool, plus the caller it acts for.
EnumsΒ§
- Terminal
Tool π - One tool of the family.
ConstantsΒ§
- DEFAULT_
MAX_ πBYTES - DEFAULT_
MAX_ πLINES - The most lines and bytes one read returns unless the caller asks for less.
- DEFAULT_
TIMEOUT_ πMS - The longest a wait or a run may hold before it answers unmatched.
FunctionsΒ§
- add_
tools π - Attach the terminal tools to an existing builder.
- optional_
string π - optional_
u16 π - optional_
u64 π - optional_
usize π - parse_
keys π - parse_
until π - required_
u16 π