- Added ChatMessage[] handler to ConfigureRoutes to support array dispatch
- Workflow runtime can dispatch messages as either List<ChatMessage> or ChatMessage[]
- Added 10 comprehensive unit tests validating message routing behavior
- Tests ensure functionality and protect against future refactoring (issue #782)
- Updated code comments to reflect exact-type-matching requirement
Fixes issue where raw WorkflowBuilder with AIAgent nodes failed to receive
initial messages due to missing array type handler.
* Add mapping for application media type in OpenAI responses client
* Enhance multimodal input samples: Add PDF testing functionality and fix image sample
* Standardize filename handling and add multimodal samples
- Standardized filename extraction logic between chat and responses clients
- Both clients now omit filename when not provided (no default fallback)
- Added Azure Responses API multimodal sample with PDF support
- Cleaned up Azure Chat sample to focus on supported features only
- Fixed test comment placement for better code documentation
- Updated README with clear API capability differences
* Enhance multimodal input samples with image and PDF handling
- Refactor image and PDF handling in `azure_chat_multimodal.py` and `openai_chat_multimodal.py` to use new utility functions.
- Add `load_sample_pdf` and `create_sample_image` functions for better test asset management.
- Remove redundant code for creating sample images and PDFs.
- Introduce a sample PDF file in `sample_assets` for testing purposes.
* Fix formatting in OpenAI chat client
---------
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
* feat: add OpenAI reasoning events support with comprehensive test coverage
- Implement reasoning event handling in OpenAI Responses client
* Add support for ResponseReasoningTextDeltaEvent
* Add support for ResponseReasoningTextDoneEvent
* Add support for ResponseReasoningSummaryTextDeltaEvent
* Add support for ResponseReasoningSummaryTextDoneEvent
* Map all reasoning events to TextReasoningContent objects
* Preserve metadata across reasoning events
- Add comprehensive test coverage (5 focused test functions)
* test_streaming_reasoning_text_delta_event
* test_streaming_reasoning_text_done_event
* test_streaming_reasoning_summary_text_delta_event
* test_streaming_reasoning_summary_text_done_event
* test_streaming_reasoning_events_preserve_metadata
- Add sample demonstrating reasoning functionality
* Shows how to enable reasoning in chat options
* Demonstrates accessing reasoning content from responses
- Code quality improvements
* Follow existing code patterns and style guidelines
* Organize imports properly
* Maintain backwards compatibility
* All tests pass and quality checks succeed
* fix: resolve type errors and cleanup unused imports after rebase
- Add proper hasattr checks for optional attributes in union types
- Remove unused OpenAI event type imports
- Fix line length formatting issues
- Ensure type safety when accessing content attributes