release(v0.2.0): streaming, MCP protocol, Browser Hand, security enhancements
## Major Features ### Streaming Response System - Implement LlmDriver trait with `stream()` method returning async Stream - Add SSE parsing for Anthropic and OpenAI API streaming - Integrate Tauri event system for frontend streaming (`stream:chunk` events) - Add StreamChunk types: Delta, ToolStart, ToolEnd, Complete, Error ### MCP Protocol Implementation - Add MCP JSON-RPC 2.0 types (mcp_types.rs) - Implement stdio-based MCP transport (mcp_transport.rs) - Support tool discovery, execution, and resource operations ### Browser Hand Implementation - Complete browser automation with Playwright-style actions - Support Navigate, Click, Type, Scrape, Screenshot, Wait actions - Add educational Hands: Whiteboard, Slideshow, Speech, Quiz ### Security Enhancements - Implement command whitelist/blacklist for shell_exec tool - Add SSRF protection with private IP blocking - Create security.toml configuration file ## Test Improvements - Fix test import paths (security-utils, setup) - Fix vi.mock hoisting issues with vi.hoisted() - Update test expectations for validateUrl and sanitizeFilename - Add getUnsupportedLocalGatewayStatus mock ## Documentation Updates - Update architecture documentation - Improve configuration reference - Add quick-start guide updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -108,6 +108,32 @@ pub enum Event {
|
||||
source: String,
|
||||
message: String,
|
||||
},
|
||||
|
||||
/// A2A message sent
|
||||
A2aMessageSent {
|
||||
from: AgentId,
|
||||
to: String, // Recipient string representation
|
||||
message_type: String,
|
||||
},
|
||||
|
||||
/// A2A message received
|
||||
A2aMessageReceived {
|
||||
from: AgentId,
|
||||
to: String,
|
||||
message_type: String,
|
||||
},
|
||||
|
||||
/// A2A agent discovered
|
||||
A2aAgentDiscovered {
|
||||
agent_id: AgentId,
|
||||
capabilities: Vec<String>,
|
||||
},
|
||||
|
||||
/// A2A capability advertised
|
||||
A2aCapabilityAdvertised {
|
||||
agent_id: AgentId,
|
||||
capability: String,
|
||||
},
|
||||
}
|
||||
|
||||
impl Event {
|
||||
@@ -131,6 +157,10 @@ impl Event {
|
||||
Event::HandTriggered { .. } => "hand_triggered",
|
||||
Event::HealthCheckFailed { .. } => "health_check_failed",
|
||||
Event::Error { .. } => "error",
|
||||
Event::A2aMessageSent { .. } => "a2a_message_sent",
|
||||
Event::A2aMessageReceived { .. } => "a2a_message_received",
|
||||
Event::A2aAgentDiscovered { .. } => "a2a_agent_discovered",
|
||||
Event::A2aCapabilityAdvertised { .. } => "a2a_capability_advertised",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user