Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion chatkit/agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -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."""
Expand Down
28 changes: 28 additions & 0 deletions tests/test_agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down