Eai. PTY
(eai v1.0.4)
Copy Markdown
Public API for PTY session management.
All calls route through Eai.Hub.run/3 before reaching the underlying
PTY.Session GenServer, enabling pre/post hooks on every PTY operation.
Sessions are created lazily on first exec_async/3 call.
Use Eai.PTY.Supervisor.stop_session/1 to explicitly terminate a session.
Graph
<<{Eai.Hub, required_by, Eai.PTY}. <<{Eai.PTY.Registry, required_by, Eai.PTY}. <<{Eai.PTY.Supervisor, required_by, Eai.PTY}. <<{Eai.PTY.Session, required_by, Eai.PTY}. <<{Eai.PTY, required_by, execute_script_exs}. <<{Eai.PTY, required_by, write_to_session_exs}. <<{Eai.PTY, required_by, reset_session_exs}. <<{Eai.PTY, required_by, list_pty_sessions_exs}. <<{Eai.PTY, required_by, force_complete_task_exs}. <<{Eai.PTY, required_by, get_task_result_exs}.
Replaces
Eai.Sandbox.PTYPool (deleted). Call sites update:
PTYPool.exec_async(id, cmd) → Eai.PTY.exec_async(id, cmd)
PTYPool.force_reset(id) → Eai.PTY.force_reset(id)
PTYPool.write_raw(id, input) → Eai.PTY.write_raw(id, input)
PTYPool.interrupt_task(id) → Eai.PTY.interrupt_task(id)
PTYPool.clear_task(id, task_id) → Eai.PTY.clear_task(id, task_id)
PTYPool.list_sessions() → Eai.PTY.list_sessions()
Summary
Functions
Clear completed task state from a session.
Execute a command asynchronously in a PTY session.
Force-reset a PTY session — kills the PTY and respawns it.
Inject Ctrl+C + right sentinel into the active task.
Return info map for all active PTY sessions.
Send raw input (Ctrl+C, passwords, etc.) to a PTY session.
Functions
Clear completed task state from a session.
@spec exec_async(String.t(), String.t(), String.t() | nil) :: {:ok, String.t()} | {:error, term()} | {:block, String.t()}
Execute a command asynchronously in a PTY session.
Creates the session if it does not exist yet. Returns {:ok, task_id}
immediately; poll results via Eai.ResultCollector.get/1.
Force-reset a PTY session — kills the PTY and respawns it.
Inject Ctrl+C + right sentinel into the active task.
Return info map for all active PTY sessions.
Send raw input (Ctrl+C, passwords, etc.) to a PTY session.