Add chat-friendly shell read rendering
Make workspace shell reads usable as direct chat-model input without changing the PTY or cursor model. This adds optional plain rendering and idle-window batching across CLI, SDK, and MCP while keeping raw reads backward-compatible. Implement the rendering and wait-for-idle logic in the manager layer so the existing guest/backend shell transport stays unchanged. The new helper strips ANSI and other terminal control noise, handles carriage-return overwrite and backspace, and preserves raw cursor semantics even when plain output is requested. Refresh the stable shell docs/examples to recommend --plain --wait-for-idle-ms 300, mark the 3.5.0 roadmap milestone done, and bump the package/catalog version to 3.5.0. Validation: uv lock; UV_CACHE_DIR=.uv-cache make check; UV_CACHE_DIR=.uv-cache make dist-check; real guest-backed Firecracker smoke covering shell open/write/read with ANSI plus delayed output.
This commit is contained in:
parent
eecfd7a7d7
commit
21a88312b6
22 changed files with 539 additions and 45 deletions
|
|
@ -330,12 +330,16 @@ class Pyro:
|
|||
*,
|
||||
cursor: int = 0,
|
||||
max_chars: int = 65536,
|
||||
plain: bool = False,
|
||||
wait_for_idle_ms: int | None = None,
|
||||
) -> dict[str, Any]:
|
||||
return self._manager.read_shell(
|
||||
workspace_id,
|
||||
shell_id,
|
||||
cursor=cursor,
|
||||
max_chars=max_chars,
|
||||
plain=plain,
|
||||
wait_for_idle_ms=wait_for_idle_ms,
|
||||
)
|
||||
|
||||
def write_shell(
|
||||
|
|
@ -902,6 +906,8 @@ class Pyro:
|
|||
shell_id: str,
|
||||
cursor: int = 0,
|
||||
max_chars: int = 65536,
|
||||
plain: bool = False,
|
||||
wait_for_idle_ms: int | None = None,
|
||||
) -> dict[str, Any]:
|
||||
"""Read merged PTY output from a workspace shell."""
|
||||
return self.read_shell(
|
||||
|
|
@ -909,6 +915,8 @@ class Pyro:
|
|||
shell_id,
|
||||
cursor=cursor,
|
||||
max_chars=max_chars,
|
||||
plain=plain,
|
||||
wait_for_idle_ms=wait_for_idle_ms,
|
||||
)
|
||||
|
||||
if _enabled("shell_write"):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue