- Add ExecuteSkillTool for LLM to call skills during conversation
- Implement SkillExecutor trait in Kernel for skill execution
- Update AgentLoop to support tool execution with skill_executor
- Add default skills_dir configuration in KernelConfig
- Connect frontend skillMarketStore to backend skill_list command
- Update technical documentation with Skill system architecture
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Security Configuration:
- config/security.toml with shell_exec, file_read, file_write, web_fetch, browser, and mcp settings
- Command whitelist/blacklist for shell execution
- Path restrictions for file operations
- SSRF protection for web fetch
Tool Security Implementation:
- ShellSecurityConfig with whitelist/blacklist validation
- ShellExecTool with actual command execution
- Timeout and output size limits
- Security checks before command execution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add BrowserHand implementation with:
- BrowserAction enum for all automation actions
- Navigate, Click, Type, Scrape, Screenshot, FillForm
- Wait, Execute (JavaScript), GetSource, GetUrl, GetTitle
- Scroll, Back, Forward, Refresh, Hover, PressKey, Upload
- Hand trait implementation with config and execute
- Integration with existing Tauri browser commands
Browser Hand enables agents to interact with web pages
for navigation, form filling, scraping, and automation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Implement run_streaming() method with async channel
- Stream chunks from LLM driver and emit LoopEvent
- Save assistant message to memory on completion
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add StreamChunk and StreamEvent types for Tauri event emission
- Add stream() method to LlmDriver trait with async-stream
- Implement Anthropic streaming with SSE parsing
- Implement OpenAI streaming with SSE parsing
- Add placeholder stream() for Gemini and Local drivers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove temporary console.log and eprintln! statements added during
troubleshooting the model configuration issue.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>