feat: agor-pty crate — standalone PTY multiplexer daemon (Phase 1 WIP)
New crate at agor-pty/ (standalone, not in workspace — portable to Tauri/Electrobun): - Rust daemon (agor-ptyd) with Unix socket IPC, JSON-framed protocol - PTY session lifecycle: create, resize, write, close, output fanout - 256-bit token auth, multi-client support, session persistence - TypeScript IPC client at clients/ts/pty-client.ts (Bun + Node.js) - Protocol: 9 client messages, 7 daemon messages - Based on tribunal ruling (78% confidence, 4 rounds, 55 objections) WIP: Rust implementation in progress (protocol.rs + auth.rs done)
This commit is contained in:
parent
e8132b7dc6
commit
4b5583430d
6 changed files with 861 additions and 0 deletions
31
agor-pty/Cargo.toml
Normal file
31
agor-pty/Cargo.toml
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
[package]
|
||||
name = "agor-pty"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Standalone PTY multiplexer daemon — manages terminal sessions via Unix socket IPC"
|
||||
license = "MIT"
|
||||
|
||||
# Binary: the daemon process
|
||||
[[bin]]
|
||||
name = "agor-ptyd"
|
||||
path = "src/main.rs"
|
||||
|
||||
# Library: shared types for IPC clients (Tauri, Electrobun, tests)
|
||||
[lib]
|
||||
name = "agor_pty"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
portable-pty = "0.8"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
uuid = { version = "1", features = ["v4"] }
|
||||
log = "0.4"
|
||||
env_logger = "0.11"
|
||||
nix = { version = "0.29", features = ["process", "signal", "ioctl", "term"] }
|
||||
rand = "0.8"
|
||||
hex = "0.4"
|
||||
|
||||
[dev-dependencies]
|
||||
tokio-test = "0.4"
|
||||
Loading…
Add table
Add a link
Reference in a new issue