@usine/executor/ssh
Interfaces
Section titled “Interfaces”SshExecutorOptions
Section titled “SshExecutorOptions”The machines and SSH settings for the configured SSH Workers.
Properties
Section titled “Properties”harnessReadiness?
Section titled “harnessReadiness?”
readonlyoptionalharnessReadiness?: (machine) =>HarnessProbe
Probes one rostered brain’s binary and login on a Worker’s machine; defaults to the @usine/agents/preflight checks over SSH, which start no prompt. Behind a Gateway, the Gateway’s checks for the brain still apply.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
machine |
SshMachine |
Returns
Section titled “Returns”interruptGrace?
Section titled “interruptGrace?”
readonlyoptionalinterruptGrace?:Input
Grace for the parent task’s cancellation, then for the Attempt to settle; each wait is bounded separately. Defaults to 10 seconds.
readonlyoptionalssh?:object
Local SSH executable and the options placed before each Worker’s port and identity file; defaults to ssh in batch mode with keepalives.
readonlyargs: readonlystring[]
command
Section titled “command”
readonlycommand:string
workers
Section titled “workers”
readonlyworkers: readonlySshWorkerAddress[]
Every SSH Worker this executor runs Attempts on, each with its own machine.
SshMachine
Section titled “SshMachine”An SSH Worker’s machine with the child host that every command and child on it runs through.
Extends
Section titled “Extends”RemoteMachine
Properties
Section titled “Properties”address
Section titled “address”
readonlyaddress:SshWorkerAddress
The Worker’s address in usine.yaml, for preflight to check its root.
gateway
Section titled “gateway”
readonlygateway:Option<MachineGateway>
The Gateway in front of the machine, when the Worker has one.
readonlyshell:RemoteShell
The SSH client and destination that every command and child on the machine runs through.
Inherited from
Section titled “Inherited from”RemoteMachine.shell
workerDirectory
Section titled “workerDirectory”
readonlyworkerDirectory:string
The Worker’s directory on the machine: cached clones under repos, checkouts under attempts.
Inherited from
Section titled “Inherited from”RemoteMachine.workerDirectory
SshWorkerAddress
Section titled “SshWorkerAddress”How the orchestrator connects to one SSH Worker’s machine, and where the Worker keeps its state there.
Properties
Section titled “Properties”destination
Section titled “destination”
readonlydestination:string&Brand<"SshDestination">
What the local ssh client connects to: user@host, or a Host alias from the SSH configuration.
gateway
Section titled “gateway”
readonlygateway:Option<SshWorkerGateway>
The Gateway in front of the machine; without one, each Attempt’s token is written on the machine (ADR 0026).
identityFile
Section titled “identityFile”
readonlyidentityFile:Option<string&Brand<"SshIdentityFile">>
The private key the client authenticates with; the SSH agent and configuration decide when absent.
readonlyname:string&Brand<"WorkerName">
readonlyport:Option<number&Brand<"SshPort">>
The SSH server’s port; the SSH configuration decides when absent.
readonlyroot:string&Brand<"WorkerRoot">
The directory under which the Worker keeps workers/<name> on the machine.
SshWorkerGateway
Section titled “SshWorkerGateway”The Gateway in front of an SSH Worker’s machine on a private network (ADR 0027): the executor attaches each Attempt’s token to it, and the Attempt’s children reach GitHub and the listed LLM providers through it.
Properties
Section titled “Properties”adminToken
Section titled “adminToken”
readonlyadminToken:Redacted<string>
The admin API’s bearer token.
adminUrl
Section titled “adminUrl”
readonlyadminUrl:URL
The Gateway’s admin API as this process reaches it, usually a local forward through the SSH connection to the Gateway.
domain
Section titled “domain”
readonlydomain:string&Brand<"GatewayDomain">
The Gateway’s private DNS domain: GitHub at git.<domain>, LLM providers at llm.<domain>, the forward proxy at <domain>:3128.
llmProviders
Section titled “llmProviders”
readonlyllmProviders: readonly"anthropic"[]
The LLM providers whose credential the Gateway holds. A harness whose provider is not listed uses its login on the machine and reaches the provider through the forward proxy.
Variables
Section titled “Variables”
constlayer: (options) =>Layer.Layer<Executor,never,AttemptRuntime|CredentialProvider|ChildProcessSpawner.ChildProcessSpawner|HttpClient.HttpClient>
Runs Attempts on Linux machines the orchestrator connects to over SSH: each
Attempt’s Pi parent is a durable task in this process (AttemptRuntime),
and its children run on the Worker’s machine, one SSH command each. A
Worker without a Gateway gets the Attempt’s single-repository GitHub token
written beside its checkout (ADR 0026); a Worker behind a Gateway gets no
token, only a caller token for the attachment the executor makes on the
Gateway’s admin API through HttpClient (ADR 0027). An orchestrator
restart reattaches a live Attempt to its checkout. Requires Node; worker
contracts are platform-free.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
SshExecutorOptions |
Returns
Section titled “Returns”Layer.Layer<Executor, never, AttemptRuntime | CredentialProvider | ChildProcessSpawner.ChildProcessSpawner | HttpClient.HttpClient>