Unify Zara task/agent terminal runtime with TUI #273

Closed
nsaspy wants to merge 27 commits from feat/unified-agent-tui into master
Owner

What this changes

  • makes bare zara the interactive terminal UI
  • makes zara <task> and zara --agent <task> use the exact same SubmitTurn path
  • turns zara-agent and zara-console into compatibility aliases instead of separate assistant implementations
  • adds a dependency-free curses TUI with chat + runtime activity panes
  • exposes cancel/status/tool approvals through typed runtime commands
  • keeps terminal code behind ZaraClient (InProcessZaraClient or ZmqZaraClient)
  • preserves the same config and plugin search paths when constructing the in-process runtime/backend
  • ensures the canonical LangGraph runtime attaches Prolog before turns when query_prolog is enabled, fixing the previous prompt/tool mismatch
  • keeps memory, MCP, tools, service plugins, approvals, and Prolog behind one runtime boundary
  • adds regression coverage plus wiki/terminal.org and README architecture/usage docs

Architecture

zara / zara-agent / zara-console -> terminal -> ZaraClient -> RuntimeHost -> AgentRuntimeBackend -> AgentManager -> memory / Prolog / MCP / tools / plugins

No terminal surface constructs AgentManager, PrologEngine, MCP managers, or plugin objects directly.

Verification

Tests were written before the behavior changes. I could not run the repository's local Nix gate from this execution environment because direct repository checkout/network access is unavailable here. Exact-head GitHub Actions CI is the merge gate for this branch; do not treat the PR as verified until that head is green.

## What this changes - makes bare `zara` the interactive terminal UI - makes `zara <task>` and `zara --agent <task>` use the exact same `SubmitTurn` path - turns `zara-agent` and `zara-console` into compatibility aliases instead of separate assistant implementations - adds a dependency-free curses TUI with chat + runtime activity panes - exposes cancel/status/tool approvals through typed runtime commands - keeps terminal code behind `ZaraClient` (`InProcessZaraClient` or `ZmqZaraClient`) - preserves the same config and plugin search paths when constructing the in-process runtime/backend - ensures the canonical LangGraph runtime attaches Prolog before turns when `query_prolog` is enabled, fixing the previous prompt/tool mismatch - keeps memory, MCP, tools, service plugins, approvals, and Prolog behind one runtime boundary - adds regression coverage plus `wiki/terminal.org` and README architecture/usage docs ## Architecture `zara / zara-agent / zara-console -> terminal -> ZaraClient -> RuntimeHost -> AgentRuntimeBackend -> AgentManager -> memory / Prolog / MCP / tools / plugins` No terminal surface constructs `AgentManager`, `PrologEngine`, MCP managers, or plugin objects directly. ## Verification Tests were written before the behavior changes. I could not run the repository's local Nix gate from this execution environment because direct repository checkout/network access is unavailable here. Exact-head GitHub Actions CI is the merge gate for this branch; do not treat the PR as verified until that head is green.
refactor: keep Prolog registry diff focused
Some checks failed
CI / test (pull_request) Failing after 18s
CI / android skeleton gate (pull_request) Failing after 10s
CI / shared mic / Arch Linux (pull_request) Failing after 8m33s
CI / shared mic / Ubuntu 24.04 (pull_request) Failing after 8m19s
05f5b2d834
Author
Owner

Closing as obsolete PR implementation, not rejecting the terminal/runtime goal. This branch is non-mergeable and diverged across the daemon/runtime, hooks/advice, long-horizon task, principal, and backend-registry work that has since landed. Do not revive or merge this head. If unified terminal/TUI work is resumed, recover the desired UX against current master and the canonical ZaraClient -> RuntimeHost -> RuntimeBackend contracts with fresh RAGE/TDD evidence.

Closing as obsolete PR implementation, not rejecting the terminal/runtime goal. This branch is non-mergeable and diverged across the daemon/runtime, hooks/advice, long-horizon task, principal, and backend-registry work that has since landed. Do not revive or merge this head. If unified terminal/TUI work is resumed, recover the desired UX against current `master` and the canonical `ZaraClient -> RuntimeHost -> RuntimeBackend` contracts with fresh RAGE/TDD evidence.
nsaspy closed this pull request 2026-09-08 02:21:03 +00:00
Some checks failed
CI / test (pull_request) Failing after 18s
CI / android skeleton gate (pull_request) Failing after 10s
CI / shared mic / Arch Linux (pull_request) Failing after 8m33s
CI / shared mic / Ubuntu 24.04 (pull_request) Failing after 8m19s

Pull request closed

Sign in to join this conversation.
No description provided.