refactor(crates): kernel/generation module split + DeerFlow optimizations + middleware + dead code cleanup
- 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
This commit is contained in:
@@ -134,18 +134,18 @@ impl Default for InMemoryStorage {
|
||||
#[async_trait]
|
||||
impl VikingStorage for InMemoryStorage {
|
||||
async fn store(&self, entry: &MemoryEntry) -> Result<()> {
|
||||
let mut memories = self.memories.write().unwrap();
|
||||
let mut memories = self.memories.write().expect("InMemoryStorage lock poisoned");
|
||||
memories.insert(entry.uri.clone(), entry.clone());
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn get(&self, uri: &str) -> Result<Option<MemoryEntry>> {
|
||||
let memories = self.memories.read().unwrap();
|
||||
let memories = self.memories.read().expect("InMemoryStorage lock poisoned");
|
||||
Ok(memories.get(uri).cloned())
|
||||
}
|
||||
|
||||
async fn find(&self, query: &str, options: FindOptions) -> Result<Vec<MemoryEntry>> {
|
||||
let memories = self.memories.read().unwrap();
|
||||
let memories = self.memories.read().expect("InMemoryStorage lock poisoned");
|
||||
|
||||
let mut results: Vec<MemoryEntry> = memories
|
||||
.values()
|
||||
@@ -187,7 +187,7 @@ impl VikingStorage for InMemoryStorage {
|
||||
}
|
||||
|
||||
async fn find_by_prefix(&self, prefix: &str) -> Result<Vec<MemoryEntry>> {
|
||||
let memories = self.memories.read().unwrap();
|
||||
let memories = self.memories.read().expect("InMemoryStorage lock poisoned");
|
||||
|
||||
let results: Vec<MemoryEntry> = memories
|
||||
.values()
|
||||
@@ -199,19 +199,19 @@ impl VikingStorage for InMemoryStorage {
|
||||
}
|
||||
|
||||
async fn delete(&self, uri: &str) -> Result<()> {
|
||||
let mut memories = self.memories.write().unwrap();
|
||||
let mut memories = self.memories.write().expect("InMemoryStorage lock poisoned");
|
||||
memories.remove(uri);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn store_metadata_json(&self, key: &str, json: &str) -> Result<()> {
|
||||
let mut metadata = self.metadata.write().unwrap();
|
||||
let mut metadata = self.metadata.write().expect("InMemoryStorage lock poisoned");
|
||||
metadata.insert(key.to_string(), json.to_string());
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn get_metadata_json(&self, key: &str) -> Result<Option<String>> {
|
||||
let metadata = self.metadata.read().unwrap();
|
||||
let metadata = self.metadata.read().expect("InMemoryStorage lock poisoned");
|
||||
Ok(metadata.get(key).cloned())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user