Commit graph

35 commits

Author SHA1 Message Date
Alessandro
6d29268cbd refactor: align skills and tool guidance
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Rename high-impact skills to task-oriented names and move plugin-owned skills into their owning plugin folders.\n\nAlign renamed skill frontmatter with the official SKILL.md standard by keeping trigger language in name/description metadata, replacing the old create-skill wizard with build-skill, and updating browser, A0 connector, computer-use, CLI setup, and scheduler skill references.\n\nTighten the recurring cross-provider guidance gaps surfaced by the evidence sweeps: memory requests now avoid promptinclude-file routing, scheduler prompts distinguish cron schedules from planned ISO dates, document questions prefer document_query, skills_tool search/read_file usage is clearer, normal notifications set info/priority 10, and local/host text editors preserve patch intent.\n\nUpdate regression tests for the renamed skills, plugin ownership, prompt budget reality, and standard frontmatter shape.
2026-05-10 07:13:14 +02:00
Alessandro
818bda0385 Document first-run onboarding flow
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Add a screenshot-led guide for the guided onboarding wizard using Agent Zero API as the example setup. Link the guide from the docs hub, quickstart, and installation setup flow, and include optimized screenshots for choosing Cloud, selecting a provider, choosing models, and reaching the ready state.
2026-05-09 08:05:09 +02:00
Alessandro
58b161e5d3 docs: make Agent Zero guides more human
Refresh README, quickstart, and the docs index around Browser, Desktop, A0 CLI, projects, memory, skills, profiles, and model presets.

Add optimized scoped screenshots for Web UI, Browser, Desktop, and CLI workflows.

Trim architecture-heavy developer pages toward DeepWiki handoffs so local docs stay focused on practical user guidance.
2026-05-09 00:02:11 +02:00
Alessandro
d47207dfd7 Refine host browser routing and settings copy
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Store and surface host-browser preparation and CDP endpoint metadata from A0 CLI.

Let Browser runtime prepare candidate CLIs before the first action, and keep host-required errors more actionable.

Simplify Host Browser settings language and document the Chrome remote-debugging consent flow.
2026-05-08 06:37:32 +02:00
Alessandro
4b3e2eb327 Route Browser through A0 host connector
Integrate host-browser routing into the existing Browser tool. Store connector host-browser metadata, add pending browser op resolution, select connector runtimes from Browser settings, enforce host-content privacy policy, support automatic host preparation, and document the A0 CLI host-browser flow.
2026-05-08 04:22:18 +02:00
Alessandro
1af5344f3c Clean uv cache during self-update
Run a best-effort uv cache clean when the durable self-update manager consumes an update request. Cover uv-present, uv-missing, and cleanup-failure paths with focused tests, and document the new self-update step.
2026-05-08 00:56:24 +02:00
Alessandro
8b921a8ded Move Browser Playwright cache to tmp
Use /a0/tmp/playwright as the Browser plugin Chromium cache and Docker install target while preserving full Chromium installs.

Add startup migration cleanup for retired usr Playwright caches, update Browser status/runtime references and docs, and cover migration behavior with focused regressions.
2026-05-07 18:43:24 +02:00
Alessandro
d637f3c2b6 Add refactor guardrails and runtime docs
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
Cover the modal/surface boundary, Desktop ownership, Office document-only behavior, explicit Desktop opens, plugin-owned runtime paths, renamed skills, connector ownership rules, Browser context handoff, and Playwright cache stability. Update operator docs to match the retained Docker Playwright install path.
2026-05-07 00:15:50 +02:00
Alessandro
2d11287f2e Revert "Raise Docker image nofile soft limit on startup"
This reverts commit 7bd70fa8b7.
2026-05-02 21:28:04 +02:00
Alessandro
7bd70fa8b7 Raise Docker image nofile soft limit on startup
Configure the Docker image initializer to raise the container soft nofile limit to a safer default when Docker's hard limit allows it.

Document the new-image behavior and optional A0_NOFILE_LIMIT override without requiring users to add Docker ulimit flags.
2026-05-02 20:37:47 +02:00
Alessandro
1c11688855 Update a0-cli-connector.md 2026-04-28 14:20:26 +02:00
Alessandro
56a42b97d7 Make agent profiles context scoped
Persist the active agent profile with each chat context and add a context-scoped endpoint for switching profiles without mutating global settings. Update the WebUI selector and docs to treat settings as the default for new chats, and expose the switch through the A0 connector plugin.
2026-04-26 22:27:35 +02:00
Alessandro
983d431a5e browser: replace browser-use agent with native browser
Introduce the new built-in Browser plugin for Agent Zero, replacing the legacy
browser-use-based browser agent with a direct Playwright-powered browser tool,
live WebUI viewer, browser session controls, status APIs, configuration, and
extension-management support.

Add browser-specific modal behavior so the browser can run as a floating,
resizable, no-backdrop window, including modal focus, toggle, and idempotent
open helpers for richer WebUI surfaces.

Remove the old `_browser_agent` core plugin and the `browser-use` dependency,
then clean up stale browser-model wiring and references across agent code,
model configuration docs, setup guides, troubleshooting docs, skills, and
Agent Zero knowledge.

Update regression and WebUI extension-surface coverage for the new browser
architecture and modal behavior.

The legacy browser-use implementation has been extracted from core so it can
continue separately as a community plugin published through the A0 Plugin Index for any user or professional that were relying on it for workflow.
2026-04-24 15:43:52 +02:00
Alessandro
b4687015e2 docs: update documentation about agent profiles creation flow
The new guide explains:

- where profiles live
- what belongs in agent.yaml
- how prompt overrides work
- which root /prompts files are useful levers
- how profile-specific Main/Utility models are actually configured via _model_config/config.json
- why that config must be complete, not partial
2026-04-22 14:26:10 +02:00
Alessandro
fe2310aa90 Add project-scoped LLM presets
Add LLM preset selection to project create/edit flows, backed by _model_config scoped project config. Support global, project, and combined preset APIs with explicit metadata while preserving plain YAML preset files. Copy selected preset chat/utility settings into project-scoped config, keep embedding settings from the effective config, and document/test the new project model config paths.
2026-04-21 18:18:59 +02:00
Alessandro
85654c6cc7 Merge branch 'main' into ready 2026-04-11 18:52:33 +02:00
Alessandro
954eca3563 add a0-setup-cli Skill and restore lexical trigger matching
Add a builtin `a0-setup-cli` skill for guiding host-side A0 connector setup,
and restore the lightweight trigger-word based skill matching flow, which many users asked for.

- add builtin `skills/a0-setup-cli/` with installer-first host setup guidance,
  container guardrails, fallback install paths, and example responses
- fix `helpers.skills_cli` so builtin skills under `/skills` are discoverable,
  searchable, and validatable
- restore trigger-pattern scoring in runtime `search_skills()`
- re-enable `skills_tool:search` in the current tool flow
- add lightweight lexical relevant-skill recall for the current user message
  without reintroducing memory/vector-db skill recall
- update skill prompts to steer the agent toward search/load when requests
  match skill trigger phrases
2026-04-11 18:03:05 +02:00
sena-labs
834cbe6f54 docs: add contributor sharing and fork safety guidance 2026-04-11 13:20:50 +02:00
Alessandro
bfe4119d72 quick update flow and migration guidance 2026-03-31 21:53:47 +02:00
Alessandro
97591b6908 docs: align install and update flow 2026-03-31 16:36:27 +02:00
frdel
261c4d6138 Add CLI trigger script for self-update with major version validation and backup configuration
- Add trigger_self_update.sh to executable permissions in Dockerfile
- Add trigger-update command mode to self_update_manager.py with argparse CLI
- Add queue_update_request helper to write trigger file with normalized parameters
- Add parse_selector_version, is_valid_selector_tag, is_supported_selector_tag helpers
- Add get_latest_same_major_tag to resolve "latest" within current major version line
- Add ensure
2026-03-26 12:32:37 +01:00
frdel
192d6e2cae Add latest selector option to self-update with branch head resolution for testing/development and newest tag resolution for main
- Add LATEST_SELECTOR_TAG constant and is_latest_selector_tag helper to identify "latest" selection
- Add split_describe_version helper to parse git describe output into tag and commit count
- Replace fetch_release_refs with resolve_requested_target that handles both specific tags and "latest" resolution
- For main branch, resolve "latest" to newest reachable release tag
- For testing/development branches
2026-03-26 10:44:12 +01:00
frdel
247c8d845f Change default self-update backup directory from /a0/tmp to /root and add lazy aiogram dependency loading for Telegram plugin
- Update default backup path from /a0/tmp/self-update-backups to /root/update-backups in self_update_manager.py, helpers/self_update.py, and documentation
- Move aiogram from global requirements.txt to plugin-local requirements for _telegram_integration
- Add ensure_dependencies() helper that installs aiogram on-demand via uv pip install
- Add has_aiogram() check to avoid
2026-03-26 10:20:35 +01:00
frdel
27829350ae Add ready branch to Docker workflow and refactor self-update to use preloaded version selector
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
- Add ready branch to Docker publish workflow alongside testing and main
- Replace tag search/autocomplete UI with standard select element preloaded with current major version tags
- Add get_selector_tag_options helper that filters tags to current major line and returns list of higher major versions available
- Show attention banner with Docker update guide link when newer major versions exist on selected
2026-03-26 08:45:23 +01:00
frdel
b391d98460 Merge branch 'main' into development 2026-03-24 21:50:54 +01:00
frdel
ded0f480c8 Simplify version tag format from vX.Y.Z to vX.Y, enforce v1.0 minimum
- Change version tag format from `v{epoch}.{major}.{minor}.{rest}` to `v{major}.{minor}`
- Raise minimum selector version from v0.9.9 to v1.0
- Update tag parsing to require exactly two version segments
- Add numeric sorting for version tags (e.g., v1.10 > v1.9)
- Update major version compatibility check to compare first number only
- Improve validation messages: "vX.Y.Z" → "vX.Y", add "v1.0 or newer" requirement
- Clear default
2026-03-24 20:59:20 +01:00
frdel
75b8085b65 Add unzip to Docker base packages, refactor API key handling, improve self-update system
- Add unzip package to Docker base installation
- Remove deprecated missing API key banner extension
- Refactor API key management: clear drafts on init, track dirty state, allow empty string saves
- Add version filtering to self-update: enforce minimum v0.9.9, validate tag format
- Improve self-update UI: convert howto to Bootstrap collapse, fix branch selector reactivity, group tag suggestions
- Fix settings
2026-03-24 17:17:19 +01:00
Alessandro
db15bdb3bf refactor: extract browser agent into built-in plugin
Move the Browser Agent/browser-use stack into a tracked built-in
`_browser_agent` plugin while preserving the current model/config flow.

Changes:
- add built-in `_browser_agent` plugin with tool, helpers, prompts, assets,
  status API, and WebUI message/status surfaces
- move browser-use wrapper and monkeypatch ownership out of `models.py`
  into plugin helper code
- keep browser model resolution on the `_model_config` path and continue
  using the effective Main Model / chat model config
- remove stale Browser HTTP Headers UI and outdated browser-model wording
- make Playwright runtime resolution bootstrap-only and stop installing
  browser binaries on demand
- switch browser log rendering to plugin-owned WebUI extension handling
  with core fallback compatibility for old logs
- delete obsolete core browser tool/helpers/prompts/assets after plugin
  resolution is in place
- update docs to reflect built-in plugin ownership and Main Model browser
  behavior

feat(browser-agent): improve lifecycle reliability, LLM compatibility, and local-dev bootstrap

- **Lifecycle Reliability**: Implemented stale Chromium lock file cleanup and one-shot ephemeral profile fallback to prevent CDP connection hangs and profile-locked crashes.
- **LLM Compatibility**: Added OpenRouter/Gemini shims including schema compaction, system instruction injection, and JSON output normalization for `browser-use` validation.
- **Cache Alignment**: Reverted Playwright browser cache to `tmp/playwright` for parity with core behavior and updated Docker scripts and documentation accordingly.
- **Local-Dev Bootstrap**: Added a plugin `install()` hook to automate Python dependency setup and transitioned bootstrap feedback to UI notifications.
- **Plugin Config**: Set `always_enabled: false` to allow users to opt-out or bring their own browser providers.
- **Testing**: Expanded test suite to cover lifecycle edge cases, LLM normalization, and bootstrap logic.

rework clean up browser agent sessions on reset/removal

Force browser-agent teardown to use BrowserSession.kill() so keep_alive sessions do not leave Chromium running and keep the profile locked. Add centralized browser state cleanup for reset/context removal and regression tests to cover the new teardown path and prevent SingletonLock fallbacks from stale sessions.

add browser agent thumbnail

restore local dev for Playwright in browser agent via hook

- Introduced a new hook to bootstrap Playwright for local development, ensuring the Chromium headless shell is installed when in development mode.
- Updated the Playwright helper to call the new hook if the binary is not found during the binary check.
- Added tests to verify the correct installation and behavior of the Playwright binary in local development scenarios.

proper install notifications for Playwright in local dev

- Added notification management for Playwright bootstrap process, including info, success, and error notifications.
- Enhanced the `bootstrap_local_dev_playwright` function to notify users about the installation status of the Playwright runtime.
- Updated tests to verify the correct notifications are sent during the Playwright installation process.

rework browser state cleanup extensions for agent context removal and reset

- Added `CleanupBrowserStateOnRemove` and `CleanupBrowserStateOnReset` extensions to handle browser state cleanup when an agent context is removed or reset.
- Updated `cleanup_browser_agent_state` function to utilize new protocols for better type safety and clarity.
- Enhanced the `State` class to ensure proper cleanup of browser sessions and user data directories.
- Introduced tests to validate the cleanup functionality and ensure browser sessions are correctly managed during agent lifecycle events.

enhance Playwright cache handling

- Updated Playwright helper to include support for a new cache directory at `.cache/ms-playwright`, aligning with standard cache locations.
- Modified the `get_playwright_search_dirs` function to incorporate the new cache path.
- Added a new test to verify the retrieval of the Playwright binary from the repository's `.cache/ms-playwright` directory, ensuring proper functionality across different cache locations.
- Updated existing tests to reflect changes in cache path handling.

update docs and README.md

restore local dev bootstrap and async-safe teardown

Keep Browser Agent bootstrap local in development, matching pre-extraction behavior, by removing the RFC filesystem hop from Playwright cache setup. Restore on-demand local-dev bootstrap through plugin hooks before browser-use import, so missing browser packages and runtime can be installed on first use.

Rework browser session teardown to be async-safe during reset and cleanup, avoiding nested event loop shutdown failures while still terminating the browser worker cleanly. Also remove redundant browser-use patch application and add regression tests covering local bootstrap, reset-time async shutdown, and lifecycle cleanup.

playwright bootstrap via plugin hooks

[Fixed][P1] The hook-based restore was architecturally in the right place, but it was too late to recover a missing local browser_use / playwright install. The browser tool imports browser_use at module load time, and tool loading silently skips modules that fail to import, so the plugin install() hook could never rescue the first browser invocation if those packages were absent. I fixed that by calling the plugin install hook before importing browser_use in local development: browser_use.py, browser_use.py, agent.py, test_browser_agent_playwright_bootstrap.py.

[Fixed][P3] The Browser Agent UI and runtime error text still claimed on-demand install did not exist, which contradicted the intended local-dev bootstrap path. I corrected both messages so they now describe the real behavior: main.html, playwright.py.

rm tests

restore old browser use logic files

restore old browser working behaviour

browser: migrate cleanup hooks to new extensible paths

Update Browser Agent cleanup extensions to the new deep @extensible path layout introduced in 7e1d9ad2a4, so AgentContext reset/remove hooks fire again after the framework migration.

`This restores browser state cleanup when chats are reset or deleted, preventing keep-alive browser sessions from surviving context removal and leaving chats stuck until restart. The change also keeps the recent browser regressions covered with focused tests for Anthropic/OpenRouter action normalization, keep-alive session teardown via kill(), and extension discovery under the new _functions/... path structure.`

Update messages.js

update docs
2026-03-23 15:21:57 +01:00
Alessandro
2dc6bd54f2 plugins: rename marketplace to plugin hub 2026-03-16 17:54:54 +01:00
Alessandro
7b1f3fbbac rename init to execute.py; update docs + create plugin skill 2026-03-16 04:04:37 +01:00
Alessandro
c2b43b04a9 projects typos and fixes 2026-02-10 21:06:23 +01:00
Alessandro
77ee200575 fix broken links 2026-02-10 18:18:23 +01:00
Alessandro
a76cd524fe optimize media; README.md; change structure
update mcp guides; better structure
cleanup media
update README.md and docs index
fix links in setup guide
update TOCs and usage
2026-02-10 17:38:02 +01:00
Alessandro
12e6ef4b33 update /tmp refs to /usr 2026-02-10 17:38:02 +01:00
Alessandro
8adf165404 docs stack update part i 2026-02-10 17:38:02 +01:00