- Split zclaw-kernel/kernel.rs (1486 lines) into 9 domain modules - Split zclaw-kernel/generation.rs (1080 lines) into 3 modules - Add DeerFlow-inspired middleware: DanglingTool, SubagentLimit, ToolError, ToolOutputGuard - Add PromptBuilder for structured system prompt assembly - Add FactStore (zclaw-memory) for persistent fact extraction - Add task builtin tool for agent task management - Driver improvements: Anthropic/OpenAI extended thinking, Gemini safety settings - Replace let _ = with proper log::warn! across SaaS handlers - Remove unused dependency (url) from zclaw-hands
53 lines
1.5 KiB
Rust
53 lines
1.5 KiB
Rust
//! Trigger CRUD operations
|
|
|
|
use zclaw_types::Result;
|
|
|
|
use super::Kernel;
|
|
|
|
impl Kernel {
|
|
// ============================================================
|
|
// 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
|
|
}
|
|
}
|