23 lines
954 B
Rust
23 lines
954 B
Rust
//! Agent task service — unified task/sub-agent execution framework.
|
|
//!
|
|
//! A task (`agent_task` record) can be:
|
|
//! - A **root task**: initiated by a user or system event.
|
|
//! The parent/Supervisor agent spawns sub-tasks and coordinates their results.
|
|
//! - A **sub-task**: a unit of work executed by a sub-agent.
|
|
//!
|
|
//! Execution flow:
|
|
//! 1. Create task record (status = pending)
|
|
//! 2. Notify listeners (WebSocket: task_started)
|
|
//! 3. Spawn execution (tokio::spawn or via room queue)
|
|
//! 4. Update progress (status = running, progress = "step 2/5: ...")
|
|
//! 5. On completion: update output + status = done / error + status = failed
|
|
//! 6. Notify listeners (WebSocket: task_done)
|
|
//! 7. If root task: notify parent/Supervisor to aggregate results
|
|
//!
|
|
//! This module is intentionally kept simple and synchronous with the DB.
|
|
//! Long-running execution is delegated to the caller (tokio::spawn).
|
|
|
|
pub mod service;
|
|
|
|
pub use service::TaskService;
|