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:
@@ -60,6 +60,15 @@ pub struct CompletionRequest {
|
||||
pub stop: Vec<String>,
|
||||
/// Enable streaming
|
||||
pub stream: bool,
|
||||
/// Enable extended thinking/reasoning
|
||||
#[serde(default)]
|
||||
pub thinking_enabled: bool,
|
||||
/// Reasoning effort level (for providers that support it)
|
||||
#[serde(default)]
|
||||
pub reasoning_effort: Option<String>,
|
||||
/// Enable plan mode
|
||||
#[serde(default)]
|
||||
pub plan_mode: bool,
|
||||
}
|
||||
|
||||
impl Default for CompletionRequest {
|
||||
@@ -73,27 +82,16 @@ impl Default for CompletionRequest {
|
||||
temperature: Some(0.7),
|
||||
stop: Vec::new(),
|
||||
stream: false,
|
||||
thinking_enabled: false,
|
||||
reasoning_effort: None,
|
||||
plan_mode: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Tool definition for LLM
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ToolDefinition {
|
||||
pub name: String,
|
||||
pub description: String,
|
||||
pub input_schema: serde_json::Value,
|
||||
}
|
||||
|
||||
impl ToolDefinition {
|
||||
pub fn new(name: impl Into<String>, description: impl Into<String>, schema: serde_json::Value) -> Self {
|
||||
Self {
|
||||
name: name.into(),
|
||||
description: description.into(),
|
||||
input_schema: schema,
|
||||
}
|
||||
}
|
||||
}
|
||||
/// Tool definition for LLM function calling.
|
||||
/// Re-exported from `zclaw_types::tool::ToolDefinition` (canonical definition).
|
||||
pub use zclaw_types::tool::ToolDefinition;
|
||||
|
||||
/// Completion response
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -110,7 +108,8 @@ pub struct CompletionResponse {
|
||||
pub stop_reason: StopReason,
|
||||
}
|
||||
|
||||
/// Content block in response
|
||||
/// LLM driver response content block (subset of canonical zclaw_types::ContentBlock).
|
||||
/// Used internally by Anthropic/OpenAI/Gemini/Local drivers for API response parsing.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(tag = "type", rename_all = "snake_case")]
|
||||
pub enum ContentBlock {
|
||||
|
||||
Reference in New Issue
Block a user