Manage a full-duplex conversation channel with another easbot agent endpoint.
Use this as the single tool for connect, list, capabilities, send, status, config, interrupt, and close.

Inputs (kept minimal):
- operation: connect | list | capabilities | send | status | config | interrupt | close
- baseUrl: target easbot service base URL (required by connect)
- connectionId: local managed connection id (required after connect)
- prompt: message to send (required by send)

Behavior:
- Local operations (no remote RPC):
  - config: inspect local agent config and managed connections
  - list: list local managed connections
  - status: inspect local managed connection state
  - close: release local connection state and cleanup interaction resources
- Remote operations (requires target agent service):
  - connect: create/reuse remote session and bind to local connectionId
  - capabilities: query remote agent capabilities (ACP initialize)
  - send: push one message to remote session (async; no waiting)
    - before sending, you must have an active connectionId (connect first). The tool will automatically ensure an event subscription and stream remote responses back into the local SessionPrompt (no extra action from the LLM is required).
  - interrupt: cancel the remote session and cleanup local interaction state
    - use this when you need to abort an ongoing interaction
    - sends an interrupt signal to the remote server which will cancel the session
- Local mapping persists in .easbot/client-connections.json
- All message receiving is done via event streaming (WebSocket/SSE/STDIO)

Round Control:
- Each connection has a maximum of 10 interaction rounds by default
- One round = one question (send) + one answer (received response)
- When round limit is reached, the subscription is automatically cancelled
- Use `close` operation to manually cleanup when interaction is complete

Interrupt Signal:
- The tool automatically listens for abort signals from the local agent
- When the local agent is interrupted (e.g., user cancels), the tool will:
  1. Send an interrupt signal to the remote server
  2. Cancel the local subscription
  3. Cleanup the interaction state
- You can also manually trigger interrupt using the `interrupt` operation

Returns:
- connectionId and remote sessionId
- capabilities: protocolVersion, agentCapabilities, authMethods
- subscription readiness for event-based message receiving
  - the tool does not expose a subscribe operation; it establishes subscription automatically on first send to forward remote responses into the local conversation
- round info: completedRounds, pendingRound, maxRounds, remaining rounds

Notes:
- Sending without a prior connect (no usable connectionId) will fail with an explicit error instructing the agent to connect first.
- The tool appends a minimal async hint to the prompt to clarify non-blocking behavior.
- IMPORTANT: Always call `close` when you are done with the interaction to cleanup resources (subscription, connection state). This prevents resource leaks.
- Use `interrupt` if you need to abort an ongoing interaction before completion.
