MCPcopy Create free account
hub / github.com/AI45Lab/Code / complete_external_task

Method complete_external_task

core/src/session_lane_queue.rs:384–404  ·  view source on GitHub ↗
(&self, task_id: &str, result: ExternalTaskResult)

Source from the content-addressed store, hash-verified

382 }
383
384 pub async fn complete_external_task(&self, task_id: &str, result: ExternalTaskResult) -> bool {
385 let pending = { self.external_tasks.write().await.remove(task_id) };
386 if let Some(pending) = pending {
387 let _ = self.event_tx.send(AgentEvent::ExternalTaskCompleted {
388 task_id: task_id.to_string(),
389 session_id: self.session_id.clone(),
390 success: result.success,
391 });
392 let final_result = if result.success {
393 Ok(result.result)
394 } else {
395 Err(anyhow::anyhow!(result
396 .error
397 .unwrap_or_else(|| "External task failed".to_string())))
398 };
399 let _ = pending.result_tx.send(final_result);
400 true
401 } else {
402 false
403 }
404 }
405
406 pub async fn stats(&self) -> crate::queue::SessionQueueStats {
407 let lane_stats = self.manager.stats().await.ok();

Callers

nothing calls this directly

Calls 4

removeMethod · 0.80
writeMethod · 0.80
sendMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected