refactor: 清理未使用代码并添加未来功能标记
Some checks failed
CI / Rust Check (push) Has been cancelled
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Rust Check (push) Has been cancelled
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
style: 统一代码格式和注释风格 docs: 更新多个功能文档的完整度和状态 feat(runtime): 添加路径验证工具支持 fix(pipeline): 改进条件判断和变量解析逻辑 test(types): 为ID类型添加全面测试用例 chore: 更新依赖项和Cargo.lock文件 perf(mcp): 优化MCP协议传输和错误处理
This commit is contained in:
@@ -56,6 +56,7 @@ pub struct Kernel {
|
||||
skills: Arc<SkillRegistry>,
|
||||
skill_executor: Arc<KernelSkillExecutor>,
|
||||
hands: Arc<HandRegistry>,
|
||||
trigger_manager: crate::trigger_manager::TriggerManager,
|
||||
}
|
||||
|
||||
impl Kernel {
|
||||
@@ -97,6 +98,9 @@ impl Kernel {
|
||||
// Create skill executor
|
||||
let skill_executor = Arc::new(KernelSkillExecutor::new(skills.clone()));
|
||||
|
||||
// Initialize trigger manager
|
||||
let trigger_manager = crate::trigger_manager::TriggerManager::new(hands.clone());
|
||||
|
||||
// Restore persisted agents
|
||||
let persisted = memory.list_agents().await?;
|
||||
for agent in persisted {
|
||||
@@ -113,6 +117,7 @@ impl Kernel {
|
||||
skills,
|
||||
skill_executor,
|
||||
hands,
|
||||
trigger_manager,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -420,6 +425,82 @@ impl Kernel {
|
||||
let context = HandContext::default();
|
||||
self.hands.execute(hand_id, &context, input).await
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Trigger Management
|
||||
// ============================================================
|
||||
|
||||
/// List all triggers
|
||||
pub async fn list_triggers(&self) -> Vec<crate::trigger_manager::TriggerEntry> {
|
||||
self.trigger_manager.list_triggers().await
|
||||
}
|
||||
|
||||
/// Get a specific trigger
|
||||
pub async fn get_trigger(&self, id: &str) -> Option<crate::trigger_manager::TriggerEntry> {
|
||||
self.trigger_manager.get_trigger(id).await
|
||||
}
|
||||
|
||||
/// Create a new trigger
|
||||
pub async fn create_trigger(
|
||||
&self,
|
||||
config: zclaw_hands::TriggerConfig,
|
||||
) -> Result<crate::trigger_manager::TriggerEntry> {
|
||||
self.trigger_manager.create_trigger(config).await
|
||||
}
|
||||
|
||||
/// Update a trigger
|
||||
pub async fn update_trigger(
|
||||
&self,
|
||||
id: &str,
|
||||
updates: crate::trigger_manager::TriggerUpdateRequest,
|
||||
) -> Result<crate::trigger_manager::TriggerEntry> {
|
||||
self.trigger_manager.update_trigger(id, updates).await
|
||||
}
|
||||
|
||||
/// Delete a trigger
|
||||
pub async fn delete_trigger(&self, id: &str) -> Result<()> {
|
||||
self.trigger_manager.delete_trigger(id).await
|
||||
}
|
||||
|
||||
/// Execute a trigger
|
||||
pub async fn execute_trigger(
|
||||
&self,
|
||||
id: &str,
|
||||
input: serde_json::Value,
|
||||
) -> Result<zclaw_hands::TriggerResult> {
|
||||
self.trigger_manager.execute_trigger(id, input).await
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Approval Management (Stub Implementation)
|
||||
// ============================================================
|
||||
|
||||
/// List pending approvals
|
||||
pub async fn list_approvals(&self) -> Vec<ApprovalEntry> {
|
||||
// Stub: Return empty list
|
||||
Vec::new()
|
||||
}
|
||||
|
||||
/// Respond to an approval
|
||||
pub async fn respond_to_approval(
|
||||
&self,
|
||||
_id: &str,
|
||||
_approved: bool,
|
||||
_reason: Option<String>,
|
||||
) -> Result<()> {
|
||||
// Stub: Return error
|
||||
Err(zclaw_types::ZclawError::NotFound(format!("Approval not found")))
|
||||
}
|
||||
}
|
||||
|
||||
/// Approval entry for pending approvals
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ApprovalEntry {
|
||||
pub id: String,
|
||||
pub hand_id: String,
|
||||
pub status: String,
|
||||
pub created_at: chrono::DateTime<chrono::Utc>,
|
||||
pub input: serde_json::Value,
|
||||
}
|
||||
|
||||
/// Response from sending a message
|
||||
|
||||
Reference in New Issue
Block a user