Refresh reviewer runtime visibility
All checks were successful
build / build (push) Successful in 33s
All checks were successful
build / build (push) Successful in 33s
This commit is contained in:
4
a2a.yaml
4
a2a.yaml
@@ -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
|
||||
|
||||
9
agent.py
9
agent.py
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
a2a-pack>=0.1.75
|
||||
a2a-pack>=0.1.82
|
||||
httpx>=0.27
|
||||
deepagents>=0.5.0
|
||||
langchain>=0.3
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user