Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/a2a/server/tasks/task_updater.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import uuid

from datetime import datetime, timezone
from typing import Any

from a2a.server.events import EventQueue
Expand Down Expand Up @@ -34,15 +35,23 @@ def __init__(self, event_queue: EventQueue, task_id: str, context_id: str):
self.context_id = context_id

def update_status(
self, state: TaskState, message: Message | None = None, final=False
self,
state: TaskState,
message: Message | None = None,
final=False,
timestamp: str | None = None,
):
"""Updates the status of the task and publishes a `TaskStatusUpdateEvent`.

Args:
state: The new state of the task.
message: An optional message associated with the status update.
final: If True, indicates this is the final status update for the task.
timestamp: Optional ISO 8601 datetime string. Defaults to current time.
"""
current_timestamp = (
timestamp if timestamp else datetime.now(timezone.utc).isoformat()
)
self.event_queue.enqueue_event(
TaskStatusUpdateEvent(
taskId=self.task_id,
Expand All @@ -51,6 +60,7 @@ def update_status(
status=TaskStatus(
state=state,
message=message,
timestamp=current_timestamp,
),
)
)
Expand Down