- 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
36 lines
1.3 KiB
Rust
36 lines
1.3 KiB
Rust
//! ZCLAW Runtime
|
|
//!
|
|
//! LLM drivers, tool system, and agent loop implementation.
|
|
|
|
/// Default User-Agent header sent with all outgoing HTTP requests.
|
|
/// Coding Plan providers (Kimi, Bailian/DashScope, Zhipu) validate the User-Agent against a
|
|
/// whitelist of known Coding Agents (e.g. claude-code, kimi-cli, roo-code, kilo-code).
|
|
/// Must use the exact lowercase format to pass validation.
|
|
pub const USER_AGENT: &str = "claude-code/0.1.0";
|
|
|
|
pub mod driver;
|
|
pub mod tool;
|
|
pub mod loop_runner;
|
|
pub mod loop_guard;
|
|
pub mod stream;
|
|
pub mod growth;
|
|
pub mod compaction;
|
|
pub mod middleware;
|
|
pub mod prompt;
|
|
|
|
// Re-export main types
|
|
pub use driver::{
|
|
LlmDriver, CompletionRequest, CompletionResponse, ContentBlock, StopReason,
|
|
ToolDefinition, DriverConfig, AnthropicDriver, OpenAiDriver, GeminiDriver, LocalDriver,
|
|
};
|
|
pub use tool::{Tool, ToolRegistry, ToolContext};
|
|
pub use loop_runner::{AgentLoop, AgentLoopResult, LoopEvent};
|
|
pub use loop_guard::{LoopGuard, LoopGuardConfig, LoopGuardResult};
|
|
pub use stream::{StreamEvent, StreamSender};
|
|
pub use growth::GrowthIntegration;
|
|
pub use zclaw_growth::VikingAdapter;
|
|
pub use zclaw_growth::EmbeddingClient;
|
|
pub use zclaw_growth::LlmDriverForExtraction;
|
|
pub use compaction::{CompactionConfig, CompactionOutcome};
|
|
pub use prompt::{PromptBuilder, PromptContext, PromptSection};
|