feat(app-server) install runtime

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Dylan Hurd
2026-05-11 13:36:06 -07:00
parent 5fe33443b0
commit a77dc85abc
26 changed files with 2101 additions and 9 deletions

View File

@@ -163,6 +163,7 @@ pub(crate) struct MessageProcessor {
command_exec_processor: CommandExecRequestProcessor,
process_exec_processor: ProcessExecRequestProcessor,
config_processor: ConfigRequestProcessor,
environment_manager: Arc<EnvironmentManager>,
environment_processor: EnvironmentRequestProcessor,
external_agent_config_processor: ExternalAgentConfigRequestProcessor,
feedback_processor: FeedbackRequestProcessor,
@@ -476,6 +477,7 @@ impl MessageProcessor {
command_exec_processor,
process_exec_processor,
config_processor,
environment_manager: thread_manager.environment_manager(),
environment_processor,
external_agent_config_processor,
feedback_processor,
@@ -941,6 +943,26 @@ impl MessageProcessor {
.model_provider_capabilities_read()
.await
.map(|response| Some(response.into())),
ClientRequest::RuntimeInstall { params, .. } => {
let mut params = params;
let environment = if let Some(environment_id) = params.environment_id.take() {
self.environment_manager
.get_environment(&environment_id)
.ok_or_else(|| {
invalid_request(format!(
"unknown runtime install environment id `{environment_id}`"
))
})?
} else {
self.environment_manager
.default_environment()
.unwrap_or_else(|| self.environment_manager.local_environment())
};
environment
.install_runtime(params)
.await
.map(|response| Some(response.into()))
}
ClientRequest::ThreadStart { params, .. } => {
self.thread_processor
.thread_start(