diff --git a/chatkit/agents.py b/chatkit/agents.py index daddab5..5ace8d2 100644 --- a/chatkit/agents.py +++ b/chatkit/agents.py @@ -165,7 +165,7 @@ async def start_workflow(self, workflow: Workflow) -> None: # Defer sending added event until we have tasks return - await self.stream(ThreadItemAddedEvent(item=self.workflow_item)) + await self.stream(ThreadItemAddedEvent(item=self.workflow_item)) async def update_workflow_task(self, task: Task, task_index: int) -> None: """Update an existing workflow task and stream the delta.""" diff --git a/tests/test_agents.py b/tests/test_agents.py index 045b90e..baf3758 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -176,6 +176,34 @@ async def all_events( return [event async for event in events] +async def test_start_workflow_streams_added_task(): + context = AgentContext( + previous_response_id=None, thread=thread, store=mock_store, request_context=None + ) + result = make_result() + + task = CustomTask(title="custom") + await context.start_workflow(Workflow(type="custom", tasks=[task])) + result.done() + + events = await all_events( + stream_agent_response( + context=context, + result=result, + ) + ) + + workflow_events = [ + event + for event in events + if isinstance(event, ThreadItemAddedEvent) and event.item.type == "workflow" + ] + + assert context.workflow_item is not None + assert len(workflow_events) == 1 + assert workflow_events[0].item.id == context.workflow_item.id + + async def test_returns_widget_item(): context = AgentContext( previous_response_id=None, thread=thread, store=mock_store, request_context=None