feat: AgentBeats A2A adapter, re-ported onto the compiled-Steps engine#661
Closed
xdotli wants to merge 6 commits into
Closed
feat: AgentBeats A2A adapter, re-ported onto the compiled-Steps engine#661xdotli wants to merge 6 commits into
xdotli wants to merge 6 commits into
Conversation
(cherry picked from commit 7f29508)
(cherry picked from commit 50df623)
(cherry picked from commit d64cad1)
(cherry picked from commit 0772e94)
…down The cherry-picked A2A work was ported from the retired _run_scene loop to the compiled-Steps engine, and the Docker stop() teardown gained a three-way down-command selection during conflict resolution. Cover the ported/changed code directly: - ACP-to-A2A turn switch disconnects the live ACP session exactly once and routes the A2A turn through the participant adapter only - self-built images are torn down with --rmi all when safe cleanup is off
… state mapping Review hardening on the cherry-picked AgentBeats A2A participant work: - Pin the workspace-containment boundary with a parametrized regression test: final_response files[].path comes from an external (untrusted) endpoint and _upload_a2a_file runs mkdir/upload/chown as root, so traversal, absolute, and shared-prefix escapes must raise before any sandbox command runs. Deleting the containment raise previously left the suite green (surviving mutant on a security boundary); the new test fails on that mutant. - Accumulate _timing["agent_execution"] across A2A turns, matching the ACP execute() accumulation semantics. Previously only the first turn was recorded, under-counting multi-turn scenes. - Pin YAML role parsing for transport/endpoint_url plus the role keys the loader previously ignored and now honors (timeout_sec, idle_timeout_sec, skills_dir, capabilities) — a behavior change for existing YAML files that already carried those keys. - Replace the stale contract-only module docstring in agents/a2a.py, document why non-recoverable a2a task states (input-required, auth-required, rejected, unknown) map to failed in non-interactive benchmark turns, and document the path-string containment trust model for materialized files.
Member
Author
|
@Yiminnn requesting your review/sign-off — this is your #345 work cherry-picked with authorship preserved and re-ported onto the current compiled-Steps engine (details in the PR body). If the port looks faithful to your intent, approve and we'll land it on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A clean-base port of the AgentBeats Agent-to-Agent adapter work from #345 by @Yiminnn — all original commits cherry-picked with authorship preserved (
-xprovenance trailers), re-ported from the retired_run_sceneloop onto the current compiled-Steps engine and three-way Docker teardown.On top of the port: workspace-containment regression tests (mutation-verified — traversal/absolute/shared-prefix paths all rejected), per-turn
agent_executiontiming accumulation matching ACP semantics, role-parse pins for the now-honoredtimeout_sec/idle_timeout_sec/skills_dir/capabilitieskeys, and honest docstrings for the non-interactive task-status mapping. Full suite green (2,829 passed).This does NOT close #345 — it exists because #345 conflicts with the current base, and lands only with @Yiminnn's review/sign-off.