1.7 KiB
1.7 KiB
Project Readme Hints
Overview
@push.rocks/smartagent is a dual-agent agentic framework built on top of @push.rocks/smartai. It implements a Driver/Guardian architecture where the Driver proposes tool calls and the Guardian evaluates them against security policies.
Architecture
- DualAgentOrchestrator: Main entry point, coordinates Driver and Guardian agents
- DriverAgent: Reasons about tasks, plans steps, proposes tool calls
- GuardianAgent: Evaluates tool calls against configured policies
- BaseToolWrapper: Base class for creating custom tools
- plugins.ts: Imports and re-exports smartai and other dependencies
Standard Tools
- FilesystemTool - File operations with scoping and exclusion patterns
- HttpTool - HTTP requests
- ShellTool - Secure shell commands (no injection possible)
- BrowserTool - Web page interaction via Puppeteer
- DenoTool - Sandboxed TypeScript/JavaScript execution
- JsonValidatorTool - JSON validation and formatting
Key Features
- Token streaming support (
onTokencallback) - Vision support (pass images as base64)
- Progress events (
onProgresscallback) - Scoped filesystem with exclusion patterns
- Result truncation with configurable limits
- History windowing to manage token usage
Key Dependencies
@push.rocks/smartai: Multi-provider AI interface@push.rocks/smartfs: Filesystem operations@push.rocks/smartshell: Shell command execution@push.rocks/smartbrowser: Browser automation@push.rocks/smartdeno: Deno code execution@push.rocks/smartrequest: HTTP requestsminimatch: Glob pattern matching for exclusions
Test Structure
- Tests use
@git.zone/tstest/tapbundle - Tests must end with
export default tap.start();