Register named exec environments for app-server threads

Add execEnvironment register/list requests, thread start selection, and thread metadata plumbing so app-server threads can bind to a named exec-server environment.

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
starr-openai
2026-04-13 19:33:56 -07:00
parent 0c8f3173e4
commit 1cc9eb24ce
10 changed files with 422 additions and 15 deletions

View File

@@ -24,6 +24,8 @@ use codex_app_server_protocol::ConfigBatchWriteParams;
use codex_app_server_protocol::ConfigReadParams;
use codex_app_server_protocol::ConfigValueWriteParams;
use codex_app_server_protocol::ExperimentalFeatureListParams;
use codex_app_server_protocol::ExecServerEnvironmentListParams;
use codex_app_server_protocol::ExecServerEnvironmentRegisterParams;
use codex_app_server_protocol::FeedbackUploadParams;
use codex_app_server_protocol::FsCopyParams;
use codex_app_server_protocol::FsCreateDirectoryParams;
@@ -336,6 +338,24 @@ impl McpProcess {
self.send_request("thread/start", params).await
}
/// Send an `execEnvironment/register` JSON-RPC request.
pub async fn send_exec_environment_register_request(
&mut self,
params: ExecServerEnvironmentRegisterParams,
) -> anyhow::Result<i64> {
let params = Some(serde_json::to_value(params)?);
self.send_request("execEnvironment/register", params).await
}
/// Send an `execEnvironment/list` JSON-RPC request.
pub async fn send_exec_environment_list_request(
&mut self,
params: ExecServerEnvironmentListParams,
) -> anyhow::Result<i64> {
let params = Some(serde_json::to_value(params)?);
self.send_request("execEnvironment/list", params).await
}
/// Send a `thread/resume` JSON-RPC request.
pub async fn send_thread_resume_request(
&mut self,