Refresh reviewer runtime visibility
All checks were successful
build / build (push) Successful in 33s

This commit is contained in:
robert
2026-06-08 09:25:53 -03:00
parent d039ee225b
commit 9758c5588d
5 changed files with 16 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
name: agent-reviewer
version: 0.1.0
version: 0.1.1
entrypoint: agent:AgentReviewer
description: Pre-deploy audit of an A2A agent's source — security, scope, ergonomics.
expose:
public: false
public: true

View File

@@ -30,7 +30,7 @@ class AgentReviewer(A2AAgent[ReviewerConfig, NoAuth]):
"repo from Gitea, applies security / best-practice / grant-scope "
"skill bundles, and returns a structured ReviewReport."
)
version = "0.1.0"
version = "0.1.1"
config_model = ReviewerConfig
auth_model = NoAuth
@@ -115,6 +115,7 @@ class AgentReviewer(A2AAgent[ReviewerConfig, NoAuth]):
llm_temperature_mode=creds.temperature_mode,
llm_temperature=creds.temperature,
llm_extra_body=creds.extra_body,
llm_metadata=getattr(creds, "metadata", None),
),
completion_box=completion_box,
)
@@ -134,6 +135,7 @@ class AgentReviewer(A2AAgent[ReviewerConfig, NoAuth]):
heartbeat_task = asyncio.create_task(_heartbeat())
last_reply = ""
try:
await ctx.emit_progress(f"review graph starting for {gitea_owner}/{agent_name}@{ref}")
async for event in graph.astream_events(
{"messages": [{"role": "user", "content": user_msg}]},
version="v2",
@@ -168,6 +170,7 @@ class AgentReviewer(A2AAgent[ReviewerConfig, NoAuth]):
report = completion_box.get("report")
if report is None:
await ctx.emit_progress(f"review finished without structured report for {agent_name}@{ref}")
return {
"ok": False,
"agent_name": agent_name,
@@ -175,6 +178,10 @@ class AgentReviewer(A2AAgent[ReviewerConfig, NoAuth]):
"warning": "reviewer finished without submitting a structured report",
"reply": last_reply[:2000],
}
await ctx.emit_progress(
"review submitted "
f"ok={report.ok} findings={len(report.findings)} agent={agent_name}@{ref}"
)
return report.model_dump()

View File

@@ -33,6 +33,7 @@ class ReviewerContext:
llm_temperature_mode: str | None = None
llm_temperature: float | None = None
llm_extra_body: dict[str, Any] | None = None
llm_metadata: dict[str, Any] | None = None
SYSTEM_PROMPT = """\
@@ -139,6 +140,7 @@ def build_reviewer_graph(
temperature_mode=ctx.llm_temperature_mode or "default",
temperature=ctx.llm_temperature,
extra_body=dict(ctx.llm_extra_body or {}),
metadata=dict(ctx.llm_metadata or {}),
)
return create_a2a_deep_agent(

View File

@@ -1,4 +1,4 @@
a2a-pack>=0.1.75
a2a-pack>=0.1.82
httpx>=0.27
deepagents>=0.5.0
langchain>=0.3

View File

@@ -21,7 +21,7 @@ from agent_reviewer.config import load_settings # noqa: E402
def test_class_metadata() -> None:
assert AgentReviewer.name == "agent-reviewer"
assert AgentReviewer.version
assert AgentReviewer.version == "0.1.1"
assert AgentReviewer.wants_cp_jwt is True
@@ -102,6 +102,7 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
llm_model="platform-model",
llm_temperature_mode="omit",
llm_extra_body={"extra_body": {"thinking": {"type": "disabled"}}},
llm_metadata={"a2a_grant_id": "grant-1"},
),
completion_box={},
)
@@ -113,6 +114,7 @@ def test_reviewer_graph_uses_forwarded_llm_credentials(
assert getattr(creds, "api_key") == "scoped-grant-token"
assert getattr(creds, "temperature_mode") == "omit"
assert getattr(creds, "extra_body") == {"extra_body": {"thinking": {"type": "disabled"}}}
assert getattr(creds, "metadata") == {"a2a_grant_id": "grant-1"}
def test_reviewer_graph_rejects_missing_forwarded_llm_credentials(