LocalShellSession class
Adapts a node-side ShellSession to the transport-free ShellSessionPort the interactive terminal UI drives.
This is the seam that lets omnyshell local run the interactive shell
entirely on this machine: the same InteractiveShellController/LineEditor
stack that normally talks to a RemoteSession over the wire is pointed at a
shell started by a local ShellBackend instead. No Hub, Node, protocol or
TLS is involved.
Most of the surface passes straight through. The transport-only operations
have no meaning locally: grantWindow (send-window flow control) is a no-op,
and detach is unsupported (there is no node to keep the shell alive), so
wasDetached is always false.
- Implemented types
Constructors
- LocalShellSession(ShellSession _shell, {SessionId? id})
-
Wraps
shell, minting a stable local sessionidused only as the cwd-marker nonce by the controller.
Properties
-
exitCode
→ Future<
int> -
Completes with the remote process exit code.
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → SessionId?
-
The session id, if known (used as the marker nonce so a resumed session
derives the same completion token).
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- shellFamily → ShellFamily
-
The remote shell's command-language family (selects the prompt dialect).
no setteroverride
-
stderr
→ Stream<
Uint8List> -
Remote standard-error bytes, streamed live.
no setteroverride
-
stdout
→ Stream<
Uint8List> -
Remote standard-output bytes, streamed live (carries the cwd markers).
no setteroverride
- wasDetached → bool
-
Whether the session was detached rather than closed/exited.
no setteroverride
Methods
-
close(
) → Future< void> -
Closes the session, asking the node to terminate the process.
override
-
closeStdin(
) → Future< void> - Half-closes the shell's standard input (Ctrl-D), letting it exit with its own status instead of being killed. Not part of ShellSessionPort; the local host holds the concrete type and calls this from the editor's EOF handler.
-
detach(
) → Future< void> -
Unsupported locally — there is no node to keep the shell alive, so a detach
request is ignored (the caller falls back to closing the session).
override
-
grantWindow(
int credit) → void -
No-op locally: send-window flow control only matters over a network
transport.
override
-
interrupt(
) → void -
Sends
SIGINTto the remote process (Ctrl-C).override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
resize(
{required int cols, required int rows}) → void -
Resizes the remote terminal.
override
-
toString(
) → String -
A string representation of this object.
inherited
-
writeStdin(
List< int> data) → void -
Writes
datato the remote standard input.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited