use std::sync::Arc;
use async_trait::async_trait;
pub use starweaver_context::{
AgentCheckpoint, AgentExecutionDecision, AgentExecutor, AgentExecutorError, AgentResumeCursor,
AgentResumeEvidence,
};
pub use starweaver_core::AgentExecutionNode;
pub type DynAgentExecutor = Arc<dyn AgentExecutor>;
#[derive(Clone, Debug, Default)]
pub struct DirectAgentExecutor;
#[async_trait]
impl AgentExecutor for DirectAgentExecutor {
async fn checkpoint(
&self,
_checkpoint: AgentCheckpoint,
) -> Result<AgentExecutionDecision, AgentExecutorError> {
Ok(AgentExecutionDecision::Continue)
}
}