Add currentRole: string | null to StepOutput and ThreadListItemWithStatus.
- idle/running: derives next role via evaluate() on workflow graph
- completed/cancelled: null
- as next role: null
Includes 9 test cases covering all status combinations and conditional routing.