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