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:
iven
2026-03-24 03:24:24 +08:00
parent e49ba4460b
commit 3ff08faa56
78 changed files with 29575 additions and 1682 deletions

View File

@@ -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",
}
}
}