-
Notifications
You must be signed in to change notification settings - Fork 0
task: add stdio transport binding #15
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Type: Task
Summary
Add a stdio transport binding for subprocess-hosted agents using stdin/stdout, alongside the current JSON-RPC over HTTP, REST / HTTP+JSON, gRPC, and SSE streaming support.
Why
The existing bindings are network-oriented. A stdio transport would make local subprocess execution a first-class option for tool-style integrations, local development, and process-scoped agent hosting while still reusing the core transport abstraction and shared protocol types.
Scope / plan
- Add a stdio protocol identifier and interface contract for subprocess-backed agents
- Implement a client transport that spawns and manages a subprocess over stdin/stdout
- Define request framing, startup handshake, streaming behavior, shutdown, and cancellation semantics
- Define how ServiceParams are carried without HTTP or gRPC metadata
- Define A2AError mapping for process exits, broken pipes, invalid frames, and timeouts
- Add integration tests and supporting docs for the stdio contract and lifecycle behavior
Acceptance criteria
- A client can launch a subprocess-backed agent and complete unary and streaming operations over stdio
- Lifecycle handling is deterministic for startup failure, clean exit, cancellation, and broken-pipe cases
- ServiceParams propagation and A2AError mapping are specified and covered by tests
- Docs describe the stdio contract clearly enough for another implementation to interoperate
Parent feature: #12
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request