Commit graph

13 commits

Author SHA1 Message Date
Mario Zechner
b6fda579f4 feat(env): listFiles for remote and local environments, nodePlatform
RemoteExecutionEnv.listFiles resolves the path and lists through the
daemon; a daemon without the listFiles feature yields not_supported.
LocalExecutionEnv is NodeExecutionEnv plus listFiles through a daemon on
the same machine, so local and SSH sessions list with the same code.
nodePlatform maps hello's Rust names to Node's (windows -> win32,
macos -> darwin, x86_64 -> x64, aarch64 -> arm64).
2026-10-12 15:22:14 +00:00
Armin Ronacher
74613de659 feat(env): report a terminal's foreground job with ptyForeground
The process group in front of the pty when it is not the program's own (a job its shell runs), with the leader's name on macOS and Linux. Exposed as RemoteTerminal.foreground().
2026-10-11 16:35:08 +00:00
Armin Ronacher
367b2bcf59 feat(env): run programs in pseudo-terminals for interactive terminals
The daemon gets pty, ptyWrite and ptyResize: raw terminal output as events, input in arrival order, SIGWINCH on resize, and the process group killed on cancel or a lost connection. openTerminal() is the client, localDaemon() the daemon for this machine. Unix only; Windows answers ENOTSUP.
2026-10-11 16:35:08 +00:00
Mario Zechner
031b24aa64 feat(env): lazy SSH connections 2026-10-05 20:39:50 +02:00
Mario Zechner
b7dfc049e9 fix(env): upload to Windows as base64 lines through PowerShell's input 2026-10-05 17:32:22 +02:00
Mario Zechner
9a193ff7e2 fix(env): upload to Windows without relying on the end of stdin 2026-10-05 17:32:22 +02:00
Mario Zechner
6fa21f2a37 fix(env): time out stuck ssh calls and daemon starts 2026-10-05 17:32:22 +02:00
Mario Zechner
4bf5a6bc5c fix(env): detect Windows when its shell garbles the POSIX probe 2026-10-05 17:32:22 +02:00
Mario Zechner
ed94330a20 feat(env): hardened SSH bootstrap and release daemon tests 2026-10-05 17:32:22 +02:00
Mario Zechner
46d0ff9365 fix(env): daemon robustness, output windows, native watching and Node read semantics 2026-10-05 17:32:22 +02:00
Mario Zechner
cd60a5b990 fix(durable): watcher coverage, growing reads, output BOM and progress defaults 2026-10-05 17:32:22 +02:00
Mario Zechner
b78e6a9085 feat(env): SSH bootstrap and daemons in the npm package
- connectSsh detects the remote system, deploys the packaged daemon
  verified by SHA-256 before it runs, and connects over ssh with strict
  host keys under a fixed alias; scanHostKey and acceptHostKey
- Windows detection and deployment through PowerShell
- release builds the daemon for every supported remote system and
  ships them in @earendil-works/pi-env's bin/
- end-to-end tests against a disposable sshd
2026-10-05 13:06:08 +02:00
Mario Zechner
ba03e03f2d feat(env): add @earendil-works/pi-env, remote execution environments over SSH
- RemoteExecutionEnv: a Durable ExecutionEnv on another machine whose
  results match NodeExecutionEnv there; Connection to the pi-env daemon
- packages/env/daemon: the Rust daemon for Linux, macOS, Android and
  Windows, following Node and libuv semantics
- env.yml runs Durable's env tests, the daemon's checks and pi-env's
  conformance and differential tests on Linux, macOS and Windows
2026-10-05 12:50:48 +02:00