diff options
| author | main <main@swarm.moe> | 2026-03-23 16:28:52 -0400 |
|---|---|---|
| committer | main <main@swarm.moe> | 2026-03-23 16:28:52 -0400 |
| commit | c3ad44cf3ec3bcd080f62c19d915ac1749576302 (patch) | |
| tree | a3da7810f794182f4740e0da270e9c40f3fdad2b /crates/phone-opus/src/mcp/host | |
| parent | 5cf9432092da40a2653c3d156ca5a4746e853827 (diff) | |
| download | phone_opus-c3ad44cf3ec3bcd080f62c19d915ac1749576302.zip | |
Add optional background consult jobs
Diffstat (limited to 'crates/phone-opus/src/mcp/host')
| -rw-r--r-- | crates/phone-opus/src/mcp/host/runtime.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/phone-opus/src/mcp/host/runtime.rs b/crates/phone-opus/src/mcp/host/runtime.rs index 5922766..1d18453 100644 --- a/crates/phone-opus/src/mcp/host/runtime.rs +++ b/crates/phone-opus/src/mcp/host/runtime.rs @@ -25,6 +25,7 @@ use crate::mcp::protocol::{ FORCE_ROLLOUT_ENV, HOST_STATE_ENV, HostRequestId, HostStateSeed, PROTOCOL_VERSION, SERVER_NAME, WORKER_CRASH_ONCE_ENV, WorkerOperation, WorkerSpawnConfig, }; +use crate::mcp::service::{consult_job_tool_output, consult_jobs_tool_output}; use crate::mcp::telemetry::ServerTelemetry; pub(crate) fn run_host() -> Result<(), Box<dyn std::error::Error>> { @@ -360,9 +361,23 @@ impl HostRuntime { fn handle_host_tool(&mut self, name: &str, arguments: Value) -> Result<Value, FaultRecord> { let operation = format!("tools/call:{name}"); let generation = self.worker.generation(); - let (presentation, _arguments) = + let (presentation, arguments) = split_presentation(arguments, &operation, generation, FaultStage::Host)?; match name { + "consult_job" => tool_success( + consult_job_tool_output(arguments, generation, FaultStage::Host, &operation)?, + presentation, + generation, + FaultStage::Host, + &operation, + ), + "consult_jobs" => tool_success( + consult_jobs_tool_output(arguments, generation, FaultStage::Host, &operation)?, + presentation, + generation, + FaultStage::Host, + &operation, + ), "health_snapshot" => { let rollout = if self.binary.rollout_pending().map_err(|error| { FaultRecord::rollout(generation, &operation, error.to_string()) |