feat(tasks): add skill-templated task graph execution
This commit is contained in:
@ -3,7 +3,65 @@ from __future__ import annotations
|
||||
from pathlib import Path
|
||||
|
||||
from beaver.engine.session.manager import SessionManager
|
||||
from beaver.tasks.evidence import EvidenceBuilder, RunEvidence, TaskEvidencePacket, ToolEvidence, render_task_evidence
|
||||
from beaver.tasks.evidence import (
|
||||
EvidenceBuilder,
|
||||
RunEvidence,
|
||||
TaskEvidencePacket,
|
||||
ToolEvidence,
|
||||
evaluate_node_evidence,
|
||||
render_task_evidence,
|
||||
)
|
||||
|
||||
|
||||
def _run_evidence(*, tool_results: list[ToolEvidence] | None = None) -> RunEvidence:
|
||||
return RunEvidence(
|
||||
run_id="run-1",
|
||||
session_id="session-1",
|
||||
output_text="",
|
||||
finish_reason="stop",
|
||||
tool_results=list(tool_results or []),
|
||||
)
|
||||
|
||||
|
||||
def test_evaluate_node_evidence_requires_successful_tool_result() -> None:
|
||||
evidence = _run_evidence(
|
||||
tool_results=[
|
||||
ToolEvidence(
|
||||
tool_name="web_fetch",
|
||||
tool_call_id="call-1",
|
||||
content="failed",
|
||||
event_payload={"success": False},
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
assert evaluate_node_evidence(evidence, ["tool_result"], "done") == [
|
||||
"missing required evidence: tool_result"
|
||||
]
|
||||
|
||||
|
||||
def test_evaluate_node_evidence_accepts_url_in_successful_tool_content() -> None:
|
||||
evidence = _run_evidence(
|
||||
tool_results=[
|
||||
ToolEvidence(
|
||||
tool_name="web_fetch",
|
||||
tool_call_id="call-1",
|
||||
content="Source: https://example.test/report",
|
||||
event_payload={"success": True},
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
assert evaluate_node_evidence(evidence, ["tool_result", "url"], "done") == []
|
||||
|
||||
|
||||
def test_evaluate_node_evidence_checks_output_and_unknown_requirements() -> None:
|
||||
evidence = _run_evidence()
|
||||
|
||||
assert evaluate_node_evidence(evidence, ["output", "unknown_type"], " ") == [
|
||||
"missing required evidence: output",
|
||||
"unsupported evidence requirement: unknown_type",
|
||||
]
|
||||
|
||||
|
||||
def test_evidence_builder_preserves_full_tool_result(tmp_path: Path) -> None:
|
||||
|
||||
Reference in New Issue
Block a user