diff --git a/README.md b/README.md index ce639fa..c9b093a 100644 --- a/README.md +++ b/README.md @@ -519,6 +519,33 @@ hooks: - notify ``` +## Browser Automation Tools + +Flynn ships six browser tools: + +- `browser.navigate` +- `browser.screenshot` +- `browser.click` +- `browser.type` +- `browser.content` +- `browser.eval` + +These tools are backed by a Puppeteer/CDP browser manager and are only registered when `browser.enabled: true`. +They can still be filtered out by tool policy (`tools.profile`, `tools.allow`, `tools.deny`). + +```yaml +browser: + enabled: true + headless: true + max_pages: 5 + default_timeout: 30000 + # executable_path: /usr/bin/google-chrome + # ws_endpoint: ws://127.0.0.1:9222/devtools/browser/ + +tools: + profile: coding # or full +``` + ## Cron Scheduling Schedule automated messages on cron schedules. Each job fires an inbound message through the agent pipeline and routes the response to a configured output channel. diff --git a/config/default.yaml b/config/default.yaml index 9476a0d..e331bc0 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -193,6 +193,20 @@ models: # default_namespace: default # allowed_namespaces: [] # Empty = allow any namespace; set to restrict access. +# Optional: Browser automation tools (browser.navigate/screenshot/click/type/content/eval) +# Requires a local Chrome/Chromium install or a remote CDP endpoint. +# browser: +# enabled: true +# # executable_path: /usr/bin/google-chrome +# # ws_endpoint: ws://127.0.0.1:9222/devtools/browser/ +# headless: true +# max_pages: 5 +# default_timeout: 30000 +# +# Tool policy reminder: +# - `tools.profile: coding` or `tools.profile: full` must allow browser.* tools. +# - `tools.deny` patterns can still block browser.* even when browser.enabled is true. + hooks: confirm: - shell.* diff --git a/docs/api/TOOLS.md b/docs/api/TOOLS.md index fdb0241..2856443 100644 --- a/docs/api/TOOLS.md +++ b/docs/api/TOOLS.md @@ -25,7 +25,7 @@ Tools are executable capabilities that the AI agent can call to perform actions - **File System**: `file.read`, `file.write`, `file.edit`, `file.list` - **Shell/Process**: `shell.exec`, `process.start`, `process.kill` - **Web**: `web.fetch`, `web.search` -- **Browser**: `browser.navigate`, `browser.screenshot` +- **Browser**: `browser.navigate`, `browser.screenshot`, `browser.click`, `browser.type`, `browser.content`, `browser.eval` - **Memory**: `memory.read`, `memory.write`, `memory.search` - **MinIO**: `minio.share`, `minio.ingest`, `minio.sync` - **Kubernetes**: `k8s.pods`, `k8s.deployments`, `k8s.logs` diff --git a/docs/plans/state.json b/docs/plans/state.json index cf341dd..ed64ba5 100644 --- a/docs/plans/state.json +++ b/docs/plans/state.json @@ -3,6 +3,21 @@ "updated_at": "2026-02-17", "description": "Tracks the status of all Flynn plans and implementation phases", "plans": { + "browser-tools-activation-clarity": { + "status": "completed", + "date": "2026-02-17", + "updated": "2026-02-17", + "summary": "Clarified browser automation availability and activation path: documented the full six browser tools (`browser.navigate`, `browser.screenshot`, `browser.click`, `browser.type`, `browser.content`, `browser.eval`), added default config guidance for enabling browser support, added startup diagnostics when browser tools are disabled or blocked by tool policy, and added config schema coverage for browser defaults/overrides.", + "files_modified": [ + "src/daemon/tools.ts", + "src/config/schema.test.ts", + "config/default.yaml", + "README.md", + "docs/api/TOOLS.md", + "docs/plans/state.json" + ], + "test_status": "pnpm test:run src/config/schema.test.ts + pnpm typecheck passing" + }, "automation-daily-briefing-and-cron-backup-scheduling": { "status": "completed", "date": "2026-02-16", @@ -3548,7 +3563,7 @@ } }, "overall_progress": { - "total_test_count": 1874, + "total_test_count": 1876, "all_tests_passing": true, "p0_completion": "3/3 (100%)", "p1_completion": "4/4 (100%)",