Add Day 1 agent runtime foundations with task and event schemas, verifier support, capability metadata, graph event tracing, and regression coverage while preserving the direct execution path.
33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime, timezone
|
|
from typing import Any, Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
TaskLifecycleStatus = Literal["pending", "in_progress", "completed", "failed", "blocked"]
|
|
VerificationStatus = Literal["passed", "failed", "skipped"]
|
|
|
|
|
|
class AgentTask(BaseModel):
|
|
task_id: str
|
|
title: str
|
|
status: TaskLifecycleStatus = "pending"
|
|
owner_agent_id: str | None = None
|
|
role: str | None = None
|
|
goal: str | None = None
|
|
expected_evidence: list[dict[str, Any]] = Field(default_factory=list)
|
|
evidence: list[dict[str, Any]] = Field(default_factory=list)
|
|
result_summary: str | None = None
|
|
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
|
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
|
|
|
|
|
class TaskResult(BaseModel):
|
|
task_id: str
|
|
status: VerificationStatus
|
|
summary: str | None = None
|
|
evidence: list[dict[str, Any]] = Field(default_factory=list)
|
|
output_data: dict[str, Any] | None = None
|