Remove stdio transport from exec server (#15119)

Summary
- delete the deprecated stdio transport plumbing from the exec server
stack
- add a basic `exec_server()` harness plus test utilities to start a
server, send requests, and await events
- refresh exec-server dependencies, configs, and documentation to
reflect the new flow

Testing
- Not run (not requested)

---------

Co-authored-by: starr-openai <starr@openai.com>
Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
pakrym-oai
2026-03-18 18:00:35 -07:00
committed by GitHub
parent 4fd2774614
commit 903660edba
17 changed files with 418 additions and 562 deletions

View File

@@ -24,12 +24,10 @@ the wire.
The standalone binary supports:
- `ws://IP:PORT` (default)
- `stdio://`
Wire framing:
- websocket: one JSON-RPC message per websocket text frame
- stdio: one newline-delimited JSON-RPC message per line on stdin/stdout
## Lifecycle
@@ -43,8 +41,8 @@ Each connection follows this sequence:
If the server receives any notification other than `initialized`, it replies
with an error using request id `-1`.
If the stdio connection closes, the server terminates any remaining managed
processes before exiting.
If the websocket connection closes, the server terminates any remaining managed
processes for that client connection.
## API
@@ -239,13 +237,13 @@ Typical error cases:
The crate exports:
- `ExecServerClient`
- `ExecServerLaunchCommand`
- `ExecServerProcess`
- `ExecServerError`
- protocol structs such as `ExecParams`, `ExecResponse`,
`WriteParams`, `TerminateParams`, `ExecOutputDeltaNotification`, and
`ExecExitedNotification`
- `run_main()` for embedding the stdio server in a binary
- `ExecServerClientConnectOptions`
- `RemoteExecServerConnectArgs`
- protocol structs `InitializeParams` and `InitializeResponse`
- `DEFAULT_LISTEN_URL` and `ExecServerListenUrlParseError`
- `run_main_with_listen_url()`
- `run_main()` for embedding the websocket server in a binary
## Example session