WebShellHost class

The browser host for an InteractiveShellController: it drives the shared LineEditor over an xterm.js TerminalView, exactly as the CLI's connect loop drives it over a real TTY.

OmnyShell's remote shell is a pipe (no echo, no prompt); the controller owns the protocol loop (marker priming, command wrapping, completion, passthrough) while the editor owns the terminal specifics — echoing input, editing the line, history, completion, and the prompt formatted from ShellPromptState. Reusing the package's LineEditor means the browser behaves identically to the CLI (including mid-line editing) instead of re-implementing it.

Implements TerminalKeys so the on-screen accessory bar feeds the same input pipeline.

Implemented types

Constructors

WebShellHost({required TerminalView term, required ShellSessionPort session, required String principal, required String nodeId, DateTime? startedAt, LocalCommandRegistry? commands, ClientRuntime? client, Future<List<String>> onComplete(String word, bool isCommand, String? cwd)?, NodeDescriptor? nodeInfo()?, Principal? principalInfo, RemoteSession? remoteSession, CommandHistory? history, bool resumedInAltScreen = false, void onSessionExit()?, void onSessionDetached()?})
Creates the host over term and session, wires the LineEditor + InteractiveShellController, and starts them.

Properties

ctrlArmed bool
Whether the sticky Ctrl modifier is armed.
no setteroverride
ended bool
Whether the session has ended.
no setter
hashCode int
The hash code for this object.
no setterinherited
onCtrlChange ↔ void Function(bool armed)?
getter/setter pairoverride-setter
resizeEvents Stream<void>
Fires when the terminal is resized — consumed by a full-screen command (the :ide driver) so it can reflow.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

armCtrl() → void
Toggles the sticky Ctrl modifier.
override
close() Future<void>
Terminates the session.
detach() Future<void>
Detaches the session (keeps it alive on the node).
dispose() Future<void>
Stops driving the session without detaching/closing it (on unmount).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
sendKey(List<int> bytes) → void
Injects bytes as if the user typed them.
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited