-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
a2aA2A protocol integrationA2A protocol integrationfeatureNew functionalityNew functionalitypriority/highHigh priorityHigh prioritysize/MtuiTUI dashboardTUI dashboard
Description
Parent
Part of #581. Depends on streaming TaskProcessor and --daemon issues.
Summary
Add --connect <url> CLI flag that starts TUI in remote mode: connects to a running daemon's A2A endpoint, sends user messages, renders streaming SSE responses token-by-token.
Scope
Files: src/main.rs, crates/zeph-tui/src/lib.rs (minor)
CLI flag
#[cfg(all(feature = "tui", feature = "a2a"))]
#[arg(long, value_name = "URL")]
connect: Option<String>,run_tui_remote(url, auth_token) function
- Create
A2aClientwithssrf_protection=false,require_tls=false(localhost) - Generate
context_id = Uuid::new_v4()for session continuity - Build TUI
Appwith standard mpsc channels - SSE pump task: for each user input from
user_rx:- Build
SendMessageParamswithmessage.context_id - Call
client.stream_message()→TaskEventStream - Map SSE events to
AgentEvent:ArtifactUpdate(text, !is_final)→AgentEvent::ChunkStatusUpdate(Working)→AgentEvent::TypingStatusUpdate(Completed)→AgentEvent::FlushStatusUpdate(Failed)→AgentEvent::FullMessage("Error: ...")
- Build
- No changes to
Apprendering — it already handlesAgentEvent
Acceptance Criteria
-
cargo run --features tui,a2a -- --connect http://localhost:8080connects to daemon - User input sent as A2A messages, responses streamed token-by-token
- Multi-turn conversation works (context persists via
context_id) - Connection error shown gracefully in TUI
- Ctrl-C exits TUI cleanly
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
a2aA2A protocol integrationA2A protocol integrationfeatureNew functionalityNew functionalitypriority/highHigh priorityHigh prioritysize/MtuiTUI dashboardTUI dashboard