Python: [Breaking] Remove WorkflowCompletedEvent, introduce workflow output and migrate to ctx.yield_output() + a huge refactoring ( #845 )
* Introduce input and output types for executor and workflow
* WorkflowOutputContext handles two types
* Remove can_handle_types from Executor
* Update validation
* Move workflow executor
* Move workflow executor
* Fix issues in WorkflowExecutor
* refactor executor
* update execute signature to create workflow context within Executor
* fix simple sub workflow test; fix validation
* fix output types in WorkflowExecutor
* fix issue in Executor handling of SubWorkflowRequestInfo
* update tests to use proper workflow output
* update orchestration patterns to use output
* Update sample -- not finished
* Update python/packages/main/tests/workflow/test_workflow_states.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update python/packages/main/tests/workflow/test_concurrent.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* address comments
* WorkflowOutputContext --> WorkflowContext
* remove WorkflowCompletedEvent
* update samples
* Update doc string for important classes; update WorkflowExecutor to support concurrent execution
* use Never instead of None for default type
* Update usage of WorkflowContext[None to WorkflowContext[Never
* address comments
* remove filter for None
* address comments, minor fixes
* quality of life improvement on interceptor types
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >