The engine to host, the attach token, the bind address, and the scrollback size.
Waits aside: the running command steps out of the lane while it waits on something that is not the session's work (a task's next line), so other lines run meanwhile, and takes its turn again before going on. Its surface's STOP still reaches it.
What it waits on.
What that resolved with.
Whether a foreground command is executing right now.
Tells every attached surface the daemon is going away, and why; resolves once each message has left (or a short wait has passed), so the process can exit after it rather than before.
Why: a door restart, an administrator's end, or a plain stop.
The longest it waits for the sends to leave.
Whether the running command was typed in a browser's terminal.
True for a terminal's chell.
Asks the surface running the current command to place a file where its
operator can reach it. The host installs a fileDeliver on its engine-side
surface that calls this, so download writes to the operator's machine and
never to the daemon host's disk.
Only the request crosses here. The surface fetches the bytes itself from
/vfs, which is the same token-gated route a browser already uses to
render a file natively.
What to deliver and where the operator asked for it.
Where the file landed and how large it was.
Opens content in the editor of the surface running the current command
and returns the edited result. The host installs a localEdit on its
engine-side surface that calls this, so edit opens the operator's own
editor and never one on the daemon host.
The content to edit.
An optional filename extension for syntax mode.
Optionalpath: string
The file being edited, for an editor that stays open and saves back to it (a browser's editor pane).
The edited content and whether it changed, or that an editor which stays open took it.
Sends a typed event from the executing command to its origin surface. Like output, an event is live only: when no command is active or the origin surface is gone, it is dropped.
What the data is (games.trek.state).
The event, shaped by its kind.
True when the event was sent to a surface.
Takes a hold for work no line of a surface runs (a joblet): it waits in the same lane as every line, and runs beside the lines it shares nothing with (#1273).
What the work changes, or 'all'.
Gives the hold back; a second call does nothing.
Streams an opaque live output chunk from the executing command to its origin surface. Output is live telemetry, distinct from final envelopes; when no command is active or the origin surface is gone, it is dropped.
The output channel that produced the chunk.
The text chunk to forward.
True when the chunk was sent to a surface.
Runs a pipeline segment on the surface running the current command,
returning its output. The host installs a pipeSegment on its engine-side
surface that calls this, so a pipeline's segments run on the client and
never on the daemon host. Data crosses the wire base64-encoded.
The segment command line.
The bytes to feed the segment.
The segment's output bytes.
Streams structured progress from the executing command to its origin surface. Progress is live-only; when no command is active or the surface is gone, the event is dropped.
The structured progress facts.
True when the event was sent to a surface.
Raises a prompt on the surface running the current command, returning its answer. The host installs an engine-side input broker that calls this; the engine therefore prompts through the wire without knowing the transport.
The surface's answer.
Runs a host-shell command on the surface running the current command. The daemon never spawns the process itself.
The shell command without the leading !.
The surface process exit code.
Records whether the daemon's own code still matches its disk, and tells every attached surface when that changes.
True when the code on disk is not the code this process runs.
Starts listening.
The daemon owns an explicit HTTP server: WebSocket upgrades carry the session contract, and plain requests serve the configured web root (404 when none is configured), so one loopback port carries both the wire and the web surface that speaks it.
The bound port (useful when an ephemeral port was requested).
Stops listening and closes all connections.
A promise resolving when the server has closed.
The number of currently attached surfaces (console-face telemetry).
The surfaces attached now, each named a terminal or a browser, the one
running the current command marked: what who answers.
The surfaces, in attach order.
Offers terminals: a surface's console as a chell under a pty (terminals.ts). Set once the daemon knows its own address.
The terminals, or null to offer none.
A WebSocket daemon hosting one engine for attached surfaces, with a session bus broadcasting activity across them.