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 session id used 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 SIGINT to 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 data to the remote standard input.
override

Operators

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