mirror of
https://github.com/openai/codex.git
synced 2026-05-14 08:12:36 +00:00
## Summary Support registry-backed remote executors end to end so downstream services can resolve an executor id into an exec-server URL and make that environment available to Codex without relying on the legacy cloud environments flow. ## What changed - switch remote executor registration to the executor registry bootstrap contract - allow named remote environments to be inserted into `EnvironmentManager` at runtime - add the experimental app-server RPC `environment/add` so initialized experimental clients can register those remote environments for later `thread/start` and `turn/start` selection ## Validation Ran focused validation locally: - `cargo test -p codex-exec-server environment_manager_` - `cargo test -p codex-exec-server register_executor_posts_with_bearer_token_header` - `cargo test -p codex-app-server-protocol`
25 lines
707 B
Rust
25 lines
707 B
Rust
use super::*;
|
|
|
|
#[derive(Clone)]
|
|
pub(crate) struct EnvironmentRequestProcessor {
|
|
environment_manager: Arc<EnvironmentManager>,
|
|
}
|
|
|
|
impl EnvironmentRequestProcessor {
|
|
pub(crate) fn new(environment_manager: Arc<EnvironmentManager>) -> Self {
|
|
Self {
|
|
environment_manager,
|
|
}
|
|
}
|
|
|
|
pub(crate) async fn environment_add(
|
|
&self,
|
|
params: EnvironmentAddParams,
|
|
) -> Result<Option<ClientResponsePayload>, JSONRPCErrorError> {
|
|
self.environment_manager
|
|
.upsert_environment(params.environment_id, params.exec_server_url)
|
|
.map_err(|err| invalid_request(err.to_string()))?;
|
|
Ok(Some(EnvironmentAddResponse {}.into()))
|
|
}
|
|
}
|