* Add Handoff orchestration pattern support
* PR feedback
* Use AOAI client in samples
* Adjust to tool
* Handoff to sub-agent via ai function
* PR feedback
* More cleanup
* Improvements
* PR feedback cleanup
* Add handoff migration sample.
* Remove type ignore
* fix markdown link formatting
* Remove readme link for non-existent sample
* ensure function aproval is parsed correctly
* udpate ui, add deployment guide button, other debug panel fixes
* feat(devui): Implement lazy loading architecture with enhanced security and state management
Major architectural improvements to DevUI for better performance, security, and developer experience:
Performance & Architecture:
- Implement lazy loading for entity discovery - entities loaded on-demand instead of at startup
- Add hot reload capability for development workflow via new reload endpoint
- Reduce startup time and memory footprint by deferring module imports
Security Enhancements:
- Remove remote entity loading capabilities (POST /v1/entities/add, DELETE endpoints)
- DevUI now strictly local development tool - no remote code execution
- Add explicit security documentation and best practices in README
Frontend Improvements:
- Migrate to Zustand for centralized state management (replacing prop drilling)
- Add lightweight zero-dependency markdown renderer with code block copy support
- Improve gallery UX with setup instructions modal instead of direct URL loading
- Enhanced message UI with copy functionality and better token usage display
Testing & Quality:
- Expand test coverage for lazy loading, type detection, and cache invalidation
- Add comprehensive tests for new behaviors (+231 lines of test code)
- Improve type safety and documentation throughout
Breaking Changes:
- Remote entity loading via URLs is no longer supported
- Entities must be loaded from local filesystem only
* update ui issues, uupdate test descripion
* Python: Fix AI Search Tool Sample and improve AI Search Exceptions
* Python: Fix AI Search Tool Test
---------
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
* Python: set role=tool when processing approval responses
* Python: set role=tool when processing approval responses
* Fix approval mode with OpenAIChatClient and threads: add approval requests to assistant message, fix deduplication/rejection call_id, filter approval content, add tests and example
* update test tools after change
* Rename _collect_approval_todos to _collect_approval_responses and filter empty call_ids
* Python: DevUI - Internal Refactor, Conversations API support, and performance improvements
Comprehensive refactor of DevUI package including samples relocation,
frontend reorganization, OpenAI Conversations API support, and critical
performance and code quality improvements.
Key Changes:
Architecture & Organization
- Moved DevUI samples to python/samples/getting_started/devui/
- Consolidated with other framework samples for better discoverability
- Added .env.example files and comprehensive README
- Restructured frontend components into feature-based folders (agent, workflow, gallery, layout)
- Created new OpenAI-compliant message renderers (devui should render oai responses types primarily)
New Features
- Added _conversations.py (467 lines) - Full conversation storage abstraction, replaces the /threads endpoint to better match oai conversations api
- Implements OpenAI Conversations API for thread management, Supports in-memory and extensible storage backends
API Simplification
- Use 'model' field as entity_id (agent/workflow name) instead of extra_body
- Use standard OpenAI 'conversation' field for conversation context.
Performance & Quality Improvements
- Improved context management in MessageMapper with bounded memory (~500KB max)
- Implemented hybrid LRU + cleanup approach to prevent unbounded memory growth
- General QOL improvement - Eliminated ~150 lines of dead/duplicate code, Consolidated helper functions into _utils.py, Extracted magic numbers to module-level constants, Optimized conversation item lookups with index-based approach
Testing
- Added test_conversations.py (13 tests)
- Added test_performance_fixes.py (9 tests)
- Updated existing tests for code consolidation
- 53 tests passing
Impact: 76 files changed: +4,106 insertions, -2,373 deletions
All linting and formatting checks passing. No breaking changes - backward compatible.
Migration: Samples moved to python/samples/getting_started/devui/
* readme lint fixes
* initial support for function approval and minor ui fixes
* 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>
* refactor AgentExecutor, add output_response flag for switching on or off workflow output for each agent.
* introduce add_agent
* make default agent's streaming to false
* address comments
* fix test
* add is_streaming to RunnerContext and WorkflowContext
* fix add_agent return
* fix tests
* address comments
* resolve conflict
* update to address comments
* fix
* added a sample on integration of Azure OpenAI Responses Client with hosted Model Context Protocol (MCP)
* added additional comments mentioning that the Microsoft Learn MCP server can be replaced by any other desired MCP server
* corrected the MCP server type to local
* added a newline at the end
* Update python/samples/getting_started/agents/azure_openai/azure_responses_client_with_local_mcp.py
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
---------
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>