Define the code-mode host gRPC protocol (#37510)

## What changed

- Add the `codex.code_mode.v1` protobuf API for managing code-mode sessions, executions, waits, tool callbacks, notifications, and content results.
- Generate and export the Rust client/server bindings with `tonic` under Cargo.
- Add Bazel protobuf targets and a `prost` toolchain that uses the workspace's Rust runtime versions.

GitOrigin-RevId: 51d9d044e01dab2f4d25ab79aa7a52585485eee3
This commit is contained in:
Channing Conger
2026-08-07 23:27:39 +00:00
committed by copyberry
parent 4ca25a2c4e
commit 8073dbb20b
10 changed files with 432 additions and 0 deletions
+12
View File
@@ -14,10 +14,22 @@ workspace = true
[dependencies]
codex-protocol = { workspace = true }
prost = "0.14.3"
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["io-util", "sync"] }
tokio-util = { workspace = true, features = ["rt"] }
tonic = { workspace = true }
tonic-prost = { workspace = true }
[build-dependencies]
glob = { workspace = true }
protoc-bin-vendored = "3.2.0"
tonic-prost-build = { version = "=0.14.3", default-features = false, features = ["transport"] }
# Cargo-shear cannot inspect the prost and tonic-prost references in generated gRPC bindings.
[package.metadata.cargo-shear]
ignored = ["prost", "tonic-prost"]
[dev-dependencies]
pretty_assertions = { workspace = true }