This repository has been archived on 2026-07-18 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
64a601a85ae9a079a99bca805301f687f52d1ca2
A2A agent that audits another deployed agent's source pre-deploy. Reads the target Gitea repo via a short-lived read-only token minted through ctx.mint_gitea_token(), runs an inner DeepAgents graph backed by GiteaBackend, and emits a typed ReviewReport. Skill bundles: - security-anti-patterns (credentials, eval, sandbox bypass, egress) - a2apack-best-practices (class shape, decorators, types, timeouts) - grant-scope-evaluation (declared vs actual workspace scope) Tools: - sandbox_a2a_card : round-trips the project through microsandbox - sandbox_ruff_check: objective static checks - submit_review_report: typed final report 7 smoke tests pass; agent card loads cleanly via `a2a card`.
agent-reviewer
Pre-deploy audit agent. Reads another agent's source from Gitea, applies
three skill bundles (security, A2A Pack best practices, grant scope), and
returns a typed ReviewReport.
Skill: review
review(agent_name: str, ref: str = "main", owner: str | None = None) -> ReviewReport
Workflow:
- Mint a short-lived read-only Gitea token via the control plane.
- Spin up a DeepAgents graph backed by a
GiteaBackendpointed at{owner}/{agent_name}@{ref}. - Read the source, consult the bundled skills, run sandbox checks
(
a2a card,ruff), produce findings. - Release the Gitea token in
finally.
Output
ReviewReport:
class Finding(BaseModel):
severity: "critical" | "warning" | "info"
category: "security" | "correctness" | "ergonomics" | "policy" | "scope"
message: str
file: str | None
line: int | None
suggestion: str | None
class ReviewReport(BaseModel):
ok: bool # True iff zero critical findings
agent_name: str
ref: str
summary: str
findings: list[Finding]
Operational notes
- Read-only by design. Never writes to the target repo, never deploys.
- Uses the
meta-agent-readerGitea service user via the platform'sPOST /v1/platform/gitea-tokenendpoint. - Caller must run through the orchestrator (cp_jwt is forwarded).
Description
Languages
Python
100%