Commit graph

2545 commits

Author SHA1 Message Date
Alessandro
5ff106a2d4 Raise unusable response limit to five
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Set the default consecutive unusable response threshold to five and align the Agent Settings copy, helper DOX, and regression assertion.
2026-08-01 16:52:48 +02:00
Alessandro
d5ac5407a8 Update launcher README links to v1.5
Point the root README's A0 Launcher downloads and release note link at the published v1.5 assets without moving the Agent Zero release tag.
2026-08-01 16:49:09 +02:00
Alessandro
52421df9ec fix(webui): keep replayed warnings in process groups
Prefer cached process render metadata over mutable DOM-tail state when re-rendering warnings. Add focused regression coverage and document the replay contract.
2026-08-01 14:21:42 +02:00
Alessandro
2925baca8a Add file browser drag and drop
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
Move files and folders into directories or the parent path from the shared Files surface, with guarded multi-item backend moves and clear drop feedback.

Keep drag gestures independent from row selection, preserve unrelated selections after moves, and add focused regression coverage.
2026-08-01 12:50:31 +02:00
Alessandro
771d670ac1 fix(commands): show slash picker only for prefixes
Keep postfix slash commands resolvable when messages are sent, but stop opening the composer menu for trailing slash tokens such as filesystem paths.\n\nAdd regression coverage and document the picker behavior.
2026-08-01 12:09:48 +02:00
Alessandro
0c663403a3 Default chat-only providers to Chat Completions
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
Route Nebius, Z.AI, Z.AI Coding, and Gemini API OAuth directly through Chat Completions.

Avoid unsupported /responses probes and keep provider defaults aligned with documented upstream capabilities.
2026-07-31 18:17:31 +02:00
Alessandro
ff596e2a84 Require native Responses tool calls
Default Responses turns with Agent Zero function tools to a required, single native call while preserving explicit caller overrides.

Keep parallel work inside Agent Zero's parallel tool so complete tool roots reach the parser deterministically.
2026-07-31 16:35:53 +02:00
Alessandro
1d88a82b55 Fix native Responses tool metadata
Expose grouped memory tools and conditional vision support while applying prompt render variables before deriving native metadata.

Stop guessing complex schemas from prose and keep native descriptions to compact discovery text, reducing the duplicated Responses tool payload.
2026-07-31 16:35:53 +02:00
Alessandro
4b906561cd Remove obsolete preset API key warning
Stop scanning every global model preset for missing credentials when building Welcome banners. Keep readiness scoped to the effective model configuration so first-send setup remains in the deferred chat gate.

Add regression coverage for unused OpenRouter presets and document the boundary.
2026-07-31 16:35:53 +02:00
frdel
93d1131ce1 Unify WebUI icons and fix message collapsing
Introduce the x-icon custom element and migrate first-party WebUI and bundled plugin markup while retaining legacy Material icon compatibility. Defer icon-font readiness until the splash-installed document is parsed so Firefox does not leave icons transparent. Centralize chat message collapse handling, avoid false Show More controls on short user messages, and align grouped-message pagination styling. Update DOX and add regression coverage for the icon and collapse behavior.
2026-07-31 13:32:41 +00:00
frdel
bebe6826cf Improve WebUI bundling, manifest and stop command
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Introduce a WebUI extension manifest and rewrite the asset bundler/server to support caller-supplied entry sets, extension-injected entries, and negotiated gzip. Key changes: add get_webui_extension_manifest() to helpers/extension, refactor Stop logic into stop_context() and reuse it from the connector `/stop` command, and add a new `/rename` slash command for chat naming. ui_bundler now accepts entry_urls, includes enabled extension entry files, raises the embedded text file size limit to 512 KiB, computes per-entry-set cache keys, and returns a bundle version based on the bundle signature. ui_server applies Starlette GZip middleware, adds routes (/, /index.html, /ui/index, /safe), serves splash/safe documents, injects the serialized webui_extension_manifest into the rendered index, and streamlines the /ui/asset-bundle endpoint with ETag and gzip handling. Also add multiple WebUI assets and fonts, new/updated plugin command YAML and Python command handlers, and corresponding tests covering bundling, commands, chat naming, and WebUI behaviors. Documentation (.dox.md) updated to reflect the new runtime contracts and guidance.
2026-07-29 19:49:07 +02:00
frdel
a01f765c40 Merge remote-tracking branch 'origin/ready' into ready 2026-07-29 06:19:44 +00:00
frdel
b6be345a56 Chat rendering/pagination, Add chat-naming and pin-to-top plugins
Refactor of messages.js to support lazy rendering.
Move chat rename functionality out of core and into a new _chat_naming plugin, and add a built-in _pin_to_top plugin for sidebar pinning. The chat-naming plugin includes API handlers, prompts, helper logic for selecting user messages and budgeted Utility Model calls, a python monologue_start extension, web UI (modal, store, config, sidebar action), and comprehensive tests. Removed the old core renaming extension and deprecated prompts/tests. Also added pin-to-top plugin files (API, helpers, webui store, tests/docs) and updated various AGENTS.md docs to reflect the new plugins and lifecycle clarifications. Minor UI/js tweak: reorder speak/copy buttons in browser tool handler and add a new webui message-window.js along with related webui/store/component updates and test adjustments.
2026-07-29 08:17:50 +02:00
Alessandro
84da8420d2 Refine A0 CLI setup 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
Keep setup conversations brief and progressive so agents ask only for the next required detail.

Require the user’s exact Agent Zero URL instead of suggesting a common or default port.
2026-07-28 16:46:38 +02:00
Alessandro
4884e26a15 Add Codex response defaults to OAuth settings
Expose reasoning effort, reasoning summary, and answer verbosity in the Codex OAuth provider card, defaulting effort to high.\n\nNormalize provider settings and apply them to Responses requests without overriding explicit request values.
2026-07-28 16:46:38 +02:00
Alessandro
4b0feac1f4 Fix malformed native Responses tool output
Keep Agent Zero wrapper examples out of native function descriptions and expose the response text schema.\n\nRoute concatenated tool envelopes through repair before the plain response hook can render them as final text.
2026-07-28 16:46:38 +02:00
Alessandro
63a52b3a4a Expose slash commands through skills
Delegate scoped command discovery to the Commands plugin and let skills_tool list or read effective slash-command definitions without invoking them.
2026-07-28 16:46:38 +02:00
frdel
c3b6caddd2 login page style update
remove text and enlarge logo
2026-07-28 14:18:57 +00:00
frdel
0329003b65 Add UI asset bundler, service worker, tests
Introduce a UI asset bundler and delivery flow: adds helpers/ui_bundler.py to discover same-origin HTML/CSS/JS (<=40KiB), build a versioned JSON bundle, and serialize it for an authenticated /ui/asset-bundle endpoint (handlers added in helpers/ui_server.py with gzip and ETag support). Add webui/sw.js service-worker to accept a preload bundle, populate a per-version cache, serve bundled text entries immediately, and perform runtime caching/cleanup for eligible assets. Update webui/index.html to fetch the bundle asynchronously, send it to the worker, register the worker by bundle version, inline a non-blocking startup splash, and convert stylesheets to non-blocking preload loads. Expose extension readiness from webui/js/extensions.js (webui-extensions-loaded) so startup waits for Alpine and HTML extension loading. Add tests covering bundler behavior, service-worker expectations, and startup ordering.
2026-07-28 16:10:48 +02:00
frdel
2ec52e1968 Add /stop API and stop-button UI/behavior
Introduce a /stop API handler (api/stop.py) and its DOX to cancel an AgentContext run without deleting the context; it clears pause state, progress and logs an info step. Add tests for stopping behavior, chat working animation, and sidebar timestamp/spacing (tests/*). Update helpers/git._format_git_timestamp to emit UTC timestamps without a timezone suffix and add a test for it. Implement stop-related UI/UX: input-store.js gains a stop state, activateSendButton(), and stopAgent() to call /stop; chat-bar-input.html updates the send button markup, aria-label and stop styles. Update sidebar/chat list CSS to add the working-bubble animation, adjust chat row layout and action-button visibility, and left-sidebar/bottom styling (nowrap timestamp). Modify messages.js to hide kvps.finished from display and complete the active process group when finished. Minor welcome-composer and documentation updates to reflect these behaviors.
2026-07-28 09:26:06 +02:00
Alessandro
87e1e591e1 Group browser proxy settings in accordion
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Place the internal Browser proxy fields in a native disclosure and keep its styling borderless. Refresh the guide screenshot and cover the config markup.
2026-07-27 14:57:58 +02:00
Alessandro
eae1b67c09 Add proxy support to internal Browser
Add project-scoped HTTP and SOCKS proxy settings for the internal Docker browser, including bypass and optional authentication. Pass them through Playwright's native proxy option, restart active Browser runtimes when they change, and update regression coverage and user documentation.
2026-07-27 12:19:11 +02:00
Alessandro
ed7b080001 Fix Codex OAuth reasoning effort forwarding
Normalize the legacy reasoning_effort field at the Codex Responses proxy boundary so it cannot reach the upstream endpoint in an unsupported shape.

Preserve an explicit native reasoning object and cover alias conversion and precedence with regression tests.
2026-07-27 12:08:01 +02:00
Alessandro
a76b0b5b7d Block final responses from parallel calls
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Keep response tool calls at the top level so they can end the parent message loop instead of forcing an unnecessary follow-up turn.\n\nDocument the parallel constraint and cover both runtime rejection and prompt guidance.
2026-07-26 00:58:19 +02:00
Alessandro
4cea5d7197 Harden remote Linux computer use targeting
Require verified window focus before target-bound typing and report remote computer-use receipts from observed evidence.\n\nGuide agents through scoped snapshots and focus verification while refusing window presses and identical failed-action retries.
2026-07-26 00:24:05 +02:00
Alessandro
ac5a35e561 Add Cerebras model provider
Configure Cerebras as a native LiteLLM provider using Chat Completions and its live model catalog.

Expose Cerebras in onboarding with API-key guidance, a production default model, and a bundled logo, with focused provider and UI coverage.
2026-07-25 23:15:27 +02:00
Alessandro
9f1e24a2db fix(prompts): strip JSON fences at render time
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
Keep fenced examples readable in prompt Markdown while removing only JSON fence markers from the final assembled system prompt. Cover all bundled profiles and preserve non-JSON fences.
2026-07-25 16:01:52 +02:00
Alessandro
cfb7349c11 prompts: clarify unfenced JSON output
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
Explain that fenced examples are documentation-only and make the canonical response example match the required wire format. Add focused guardrails for the rendered instruction and unfenced example.
2026-07-25 00:59:41 +02:00
Alessandro
87bafe10e0 fix(stream): tolerate partial response snapshots
Guard partially parsed tool arguments while streaming and render both text and legacy message response fields. Keep live response logs synchronized without allowing incomplete code arguments to raise.
2026-07-25 00:45:02 +02:00
Alessandro
c6136da08b fix(response): keep completions on the tool path
Route native Responses output text through the normalized response-tool executor instead of ending the monologue directly. Preserve active goal overrides and Responses state cleanup, wait for complete native streams, and reject empty response payloads.
2026-07-25 00:44:56 +02:00
Alessandro
391fab9469 Update Launcher download links to v1.4
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Point the README release page and platform installers to the published v1.4 Launcher artifacts.
2026-07-23 19:29:19 +02:00
Alessandro
dec6df661f Stabilize WebUI mount geometry
Some checks are pending
Build And Publish Docker Images / build (push) Blocked by required conditions
Build And Publish Docker Images / plan (push) Waiting to run
Add responsive shell styling for a 250px desktop sidebar slot that yields to the mounted left panel and collapses on mobile.

Reserve the welcome composer's final height while nested input components hydrate, and document that component-local layout contract.
2026-07-23 15:25:34 +02:00
Alessandro
6b7302f664 fix(tools): harden malformed text tool handling
Require complete standalone text requests for execution while accepting supported text-tool formats. Route fenced and structurally broken tool intent through the existing misformat repair path so streamed chats do not remain in a thinking state.
2026-07-23 11:34:38 +02:00
Alessandro
d3a81ac65b fix(response): reject malformed response arguments
Raise RepairableException when response lacks a top-level text or message string. The existing recovery path now warns the model to correct the call instead of exposing a KeyError, while preserving legacy message arguments.
2026-07-23 09:05:42 +02:00
Alessandro
1831c7b47e feat(connector): page tail history snapshots
Serve a bounded tail snapshot and cursor-based older pages for interactive clients. Preserve complete replay for clients that do not request history hints.
2026-07-23 03:43:44 +02:00
Alessandro
a592d3c9ab Use inline confirmation for extension deletion
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Replace the native confirm dialog with the shared inline confirmation UI.

Escape extension names before rendering the destructive prompt.
2026-07-21 18:55:33 +02:00
Alessandro
23af25e52a Stabilize Internal Docker Browser rendering
Return WebUI navigation after the initial document commit and align the socket timeout with browser command deadlines.

Remove forced viewport nudges and reject cropped or mismatched screencast frames so tab changes and pointer movement do not stretch the viewport.
2026-07-21 18:55:26 +02:00
Alessandro
b6d6c1126a Fix Chrome Web Store extension installs
Skip redundant same-version reinstalls and stage updates before replacing extension files.

Show clear install progress, offload blocking work, and restart active browser runtimes safely.
2026-07-21 16:28:26 +02:00
Alessandro
0ddb5fb31d fix: release Paramiko import traceback
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
Paramiko caches its optional invoke import error with the original traceback, retaining the code-execution tool-loading stack and first agent.

Clear only the stale traceback while preserving the exception, and add focused regression coverage.
2026-07-21 00:56:59 +02:00
Alessandro
21c62f6716 fix: release deferred task resources
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
Clear DeferredTask callables and arguments after completion or cancellation while running each invocation from a safe private snapshot. Preserve result retrieval and active restart behavior, clean up child tasks, and add best-effort local and SSH session destructors with focused lifecycle regression coverage.
2026-07-20 21:15:35 +02:00
frdel
4ffcdf5246 Handle shell/SSH process exits as completion
Detect and treat terminated local/SSH/TTY shells as definitive command completion. Add is_terminated and get_exit_code helpers to LocalInteractiveSession, SSHInteractiveSession, and TTYSession; expand _is_closed_pty_error to recognize exited TTY processes. CodeExecution now reports a shell-exit prompt, recreates terminated sessions lazily before the next command, and returns immediately when a shell has exited. Docs and README updated to describe strict-mode/exit behavior, and tests were added/updated to cover the new termination detection and handling.
2026-07-20 17:04:05 +02:00
Alessandro
fd795bda82 Limit runtime secret redaction to credentials
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
Filter usr/.env masking to API keys and login/password credentials so ordinary settings cannot corrupt chat text. Keep global and project secrets protected, and cover full-response, prompt, and streaming behavior with a regression test.
2026-07-19 13:22:57 +02:00
Alessandro
425cfc283b Make chat compaction resumable and secret-safe
Preserve authorization, evidence, pending work, loaded skills, and secret references in a fixed resumable-state summary. Clear the stale context-window cache after compaction and cover the prompt and persistence contracts with focused tests.
2026-07-18 23:15:21 +02:00
Alessandro
bba84d91dd Consolidate goal tool
Replace the separate create, get, update, and storage modules with one multi-action goal tool while preserving the slash command, API, goal strip, and active-goal response behavior.
2026-07-18 21:03:14 +02:00
Alessandro
9e2a1b6324 Revert "Prevent WebUI extension loading stalls"
This reverts commit bf2046ff87.
2026-07-18 13:32:52 +02:00
Alessandro
d1d48bc9c0 Update launcher README links to v1.3
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Point the root README's A0 Launcher downloads and release note link at the published v1.3 assets without moving the Agent Zero v2.4 tag.
2026-07-17 17:43:28 +02:00
Alessandro
dc7004462e Expose unified model calls to extensions
Decorate unified_call and unified_turn so community plugins can observe the real logical model-call boundary.

Add focused coverage for the generated start and end extension points.
2026-07-17 17:00:40 +02:00
Alessandro
bf2046ff87 Prevent WebUI extension loading stalls
Serialize extension discovery requests to avoid exhausting embedded Chromium request resources. Always clear component loading placeholders after failures and add focused regression coverage.
2026-07-17 16:57:43 +02:00
Alessandro
55456df294 Mask runtime .env values in agent output
Include usr/.env in the agent-facing SecretsManager sources so runtime credentials are masked in tool results, history, logs, and streamed output. Keep the writable default secrets manager scoped to usr/secrets.env.

Add regression coverage for dotenv masking and document the source contract.
2026-07-17 16:23:46 +02:00
Alessandro
4b0c575f01 Remove Launcher Host access controls from Core
Delete the Core WebUI gateway menu and its client-side control store so Host access stays owned by A0 Launcher. Keep /computer-use informational in WebUI and direct users to Launcher or A0 CLI for host changes.
2026-07-17 15:59:30 +02:00