Commit Graph

289 Commits

  • Python: clean up exception (#2319)
    * Potential fix for code scanning alert no. 18: Information exposure through an exception
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    
    * Fix test
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
  • Python: Clean up imports (#2318)
    * chore: tidy imports
    
    * Update python/packages/azurefunctions/agent_framework_azurefunctions/_errors.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/azurefunctions/agent_framework_azurefunctions/_callbacks.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * chore: revert stub file change
    
    * chore: trigger pre-commit hook, re-add `annotations` import
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Python: Introducing support for declarative yaml spec (#2002)
    * first work on declarative
    
    * initial version of the declarative support
    
    * fix tests and mypy
    
    * fix parameters of functiontool
    
    * slight logic improvement
    
    * remove path until merge
    
    * updates from comments
    
    * create dispatcher and spec type, json_schema method
    
    * fix mypy, skipping model
    
    * updated lock
    
    * fixed declarative tests and renamed some other test files
    
    * refined loader
    
    * updated lock
    
    * fix mypy
    
    * added readme to samples folder
    
    * fixes from review
    
    * undid test file rename
  • Python: fix all to include the latest and made that single source of truth (#2303)
    * fix all to include the latest and made that single source of truth
    
    * add lab
  • Python: fix: @ai_function doesn't properly handle 'self' param (#2266)
    * Fixes Python: @ai_function doesn't properly handle 'self' param
    Fixes #1343
    
    * fix for declaration only funcs
    
    * fix mypy
  • Python: fix: resolve string annotations in FunctionExecutor (#2308)
    * fix: resolve string annotations in FunctionExecutor
    
    Enhance type hint validation in FunctionExecutor by importing `typing` and
    using `get_type_hints` to correctly resolve annotations.
    
    This fixes validation failures when `from __future__ import annotations`
    is enabled, which stores annotations as strings.
    
    Fixes #1808
    
    * Update python/packages/core/tests/workflow/test_function_executor_future.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * ran pre commit
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
  • Python: fix Langfuse observability to capture ChatAgent system instructions (#2316)
    Fix bug where ChatAgent system instructions were not captured in Langfuse
    traces due to incorrect attribute access.
    
    The observability code was attempting to retrieve instructions using
    getattr(self, "instructions", None), but ChatAgent stores instructions
    in self.chat_options.instructions. This caused system_instructions to
    always be None in Langfuse traces.
    
    Changed both _trace_agent_run and _trace_agent_run_stream functions
    to correctly retrieve instructions from chat_options.instructions.
    
    Fixes affect:
    - Line 1123: _trace_agent_run (non-streaming)
    - Line 1192: _trace_agent_run_stream (streaming)
  • Python: fix for Incomplete URL substring sanitization (#2274)
    * Potential fix for code scanning alert no. 29: Incomplete URL substring sanitization
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    
    * Python: Fix URL parsing to handle trailing punctuation in deployment progress detection (#2296)
    
    * Initial plan
    
    * Fix URL parsing to handle trailing punctuation correctly
    
    Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>
    
    * updated lock
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>
    Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
  • Python: Improve WorkflowBuilder doc strings with code samples (#1960)
    * Improve WorkflowBuilder doc strings with code samples
    
    * Cleanup
  • Bump js-yaml from 4.1.0 to 4.1.1 in /python/packages/devui/frontend (#2230)
    Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
    - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)
    
    ---
    updated-dependencies:
    - dependency-name: js-yaml
      dependency-version: 4.1.1
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • Python: Fix ag-ui state handling issues (#2289)
    * Fix ag-ui state handling
    
    * Bump package version and update changelog
    
    * Update changelog
  • Python: Add checkpoint save and restore hooks to executor (#2097)
    * Add checkpoint hooks
    
    * Deprecate get_executor_state and set_executor_state
    
    * Fix tests and samples
    
    * Add doc strings
    
    * Add sample
    
    * Fix import
    
    * Address comments and fix tests
    
    * Address comments
    
    * conditional import
  • Python: fix anthropic code interpreter tool repr (#2244)
    * fix anthropic code interpreter tool repr
    
    * fixes
    
    * added skills and sample
    
    * test fix
    
    * add new sample to readme
    
    * fixes tests
  • Python: Updated package versions (#2238)
    * Updated package versions
    
    * Small fix
    
    * Small fix
  • Python: pre-commit improvements (#2222)
    * pre-commit improvements
    
    * updated lock
    
    * fix for globbing
    
    * reuse logic for mypy
    
    * updated ci-mypy
  • Python: Fix: Prevent duplicate MCP tools and prompts (#1876) (#1890)
    * Fix: Prevent duplicate MCP tools and prompts (#1876)
    
    - Added deduplication logic in MCPTool.load_tools() method
    - Added deduplication logic in MCPTool.load_prompts() method
    - Track existing function names before loading from MCP server
    - Skip tools/prompts that are already registered in _functions list
    - Prevents 400 error from Azure AI Foundry caused by duplicate tool names
    
    The issue occurred because load_tools() was being called multiple times
    (during connect() and by notification handlers), causing tools to be
    appended without duplicate checking.
    
    Changes made:
    1. In load_tools(): Added existing_names set to track registered functions
    2. In load_tools(): Added check to skip tools already in existing_names
    3. In load_prompts(): Applied same deduplication pattern
    
    Testing:
    - Created unit test verifying deduplication logic
    - Confirmed duplicates are skipped correctly
    - Confirmed new functions are added correctly
    - Prevents duplicate tool names being sent to LLM
    
    Fixes #1876
    
    * Address review feedback: Prevent multiple calls to load_tools and load_prompts
    
    - Added _tools_loaded and _prompts_loaded flags to MCPTool class
    - Modified load_tools() to check if already loaded and return early
    - Modified load_prompts() to check if already loaded and return early
    - Moved test cases from test_mcp_fix.py to test_mcp.py
    - Added tests for multiple call prevention
    - Deleted separate test_mcp_fix.py file
    
    Addresses review feedback from @eavanvalkenburg:
    - Prevents accidental multiple calls to load_tools()
    - Prevents accidental multiple calls to load_prompts()
    - Test file now in proper location (test_mcp.py)
    
    * Address review feedback: Move flag checks to connect() and remove comments
    
    - Removed verbose comments from code
    - Moved _tools_loaded and _prompts_loaded checks to connect() method
    - Allows manual calls to load_tools() and load_prompts() for updates
    - Updated tests to reflect new behavior
    - connect() now prevents duplicate loading during connection
    - Users can still manually call load_tools()/load_prompts() to refresh
    
    Addresses feedback from @eavanvalkenburg
    
    * Fix: Code quality and formatting issues
    
    - Applied black formatting
    - Fixed ruff linting issues
    - All tests passing locally
    
    * chore: Re-run uv lock per review request
    
    * Apply pre-commit formatting: consolidate type annotations
    
    - Consolidate multi-line type annotations to single line
    - Remove unnecessary parentheses
    - Apply ruff format and security checks
  • Python: ChatKit sample fixes (#2174)
    * sample fixes
    
    * Update thread naming
  • Python: Enhance Azure AI Search Citations with Complete URL Information (#2066)
    * add get_url to raw rep for absolute path url
    
    * fixes
    
    * add real url to citation annotation
    
    * small fix
    
    * project client + openapi fix
    
    * openapi sample revert
    
    * tool call list fix
  • Python: Fix HIL regression (#2167)
    * fix devui regression from #2021 where all input is stringified but devui HIL input does not handle stringified json strings correctly.
    
    * update incorrect test
    
    * add devui hil input tests
  • Python: fix tool call id mismatch in ag-ui (#2166)
    * Fix state for pending requests bug
    
    * Bump ver
    
    * Update changelog
  • Python: Updated package versions (#2165)
    * Updated package versions
    
    * Reverted package version update for ag-ui
    
    * Updated changelog file
  • .NET: Python: Azure Functions feature branch (#1916)
    * Python: Add Scaffolding for Durable AzureFunctions package to Agent Framework (#1823)
    
    * Add scafolding
    
    * update readme
    
    * add code owners and label
    
    * update owners
    
    * .NET: Durable extension: initial src and unit tests (#1900)
    
    * Python: Add Durable Agent Wrapper code (#1913)
    
    * add initial changes
    
    * Move code and add single sample
    
    * Update logger
    
    * Remove unused code
    
    * address PR comments
    
    * cleanup code and address comments
    
    ---------
    
    Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
    
    * Azure Functions .NET samples (#1939)
    
    * Python: Add Unit tests for Azurefunctions package (#1976)
    
    * Add Unit tests for Azurefunctions
    
    * remove duplicate import
    
    * .NET: [Feature Branch] Migrate state schema updates and support for agents as MCP tools (#1979)
    
    * Python: Add more samples for Azure Functions (#1980)
    
    * Move all samples
    
    * fix comments
    
    * remove dead lines
    
    * Make samples simpler
    
    * .NET: [Feature Branch] Durable Task extension integration tests (#2017)
    
    * .NET: [Feature Branch] Update OpenAI config for integration tests (#2063)
    
    * Python: Add Integration tests for AzureFunctions  (#2020)
    
    * Add Integration tests
    
    * Remove DTS extension
    
    * Apply suggestions from code review
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Add pyi file for type safety
    
    * Add samples in readme
    
    * Updated all readme instructions
    
    * Address comments
    
    * Update readmes
    
    * Fix requirements
    
    * Address comments
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * .NET: [Feature Branch] Update dotnet-build-and-test.yml to support integration tests (#2070)
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix DTS startup issue and improve logging (#2103)
    
    * .NET: [Feature Branch] Introduce Azure OpenAI config for .NET pipeline (#2106)
    
    Also fixes an issue where we were trying to start docker containers for integration tests on Windows, which doesn't work.
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix uv.lock after merge
    
    * Python: Add README for Azure Functions samples setup (#2100)
    
    * Add README for Azure Functions samples setup
    
    Added setup instructions for Azure Functions samples, including environment setup, virtual environment creation, and running samples.
    
    * Update python/samples/getting_started/azure_functions/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Apply suggestion from @Copilot
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Laveesh Rohra <larohra@microsoft.com>
    
    * Fix or remove broken markdown file links (#2115)
    
    * .NET: [Feature Branch] Update HTTP API to be consistent across languages (#2118)
    
    * Python: Fix AzureFunctions Integration Tests (#2116)
    
    * Add Identity Auth to samples
    
    * Update python/samples/getting_started/azure_functions/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/samples/getting_started/azure_functions/01_single_agent/function_app.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/samples/getting_started/azure_functions/02_multi_agent/function_app.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/samples/getting_started/azure_functions/06_multi_agent_orchestration_conditionals/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Python: Fix Http Schema (#2112)
    
    * Rename to threadid
    
    * Respond in plain text
    
    * Make snake-case
    
    * Add http prefix
    
    * rename to wait-for-response
    
    * Add query param check
    
    * address comments
    
    * .NET: Remove IsPackable=false in preparation for nuget release (#2142)
    
    * Python: Move `azurefunctions` to `azure` for import (#2141)
    
    * Move import to Azure
    
    * fix mypy
    
    * Update python/packages/azurefunctions/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Add missing types
    
    * Address comments
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/azurefunctions/pyproject.toml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/azurefunctions/agent_framework_azurefunctions/__init__.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Fix imports
    
    * Address PR feedback from westey-m (#2150)
    
    - Adds a link from the /dotnet/samples/README.md to /dotnet/samples/AzureFunctions
    - Make DurableAgentThread deserialization internal for future-proofing
    - Update JSON serialization logic to address recently discovered issues with source generator serialization
    
    * Address comments (#2160)
    
    ---------
    
    Co-authored-by: Laveesh Rohra <larohra@microsoft.com>
    Co-authored-by: Chris Gillum <cgillum@microsoft.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Anirudh Garg <anirudhg@microsoft.com>
  • Python: Fix ag-ui regressions (#2114)
    * Bump ag-ui package version. Update CHANGELOG
    
    * Fix ag-ui bugs
    
    * Revert port test change
    
    * Cleanup
    
    * Intro factory funcs for samples
    
    * Revert package ver change
  • .NET: Expose more agent metadata through DevUI discovery endpoint (#2138)
    * Exposes more agent metadata through DevUI discovery endpoint
    
    * Exposes more agent metadata through DevUI discovery endpoint
    
    * pr feedback
    
    * pr feedback
    
    * Don't expose Workflows as agents to DevUI
  • Python: Azure AI client based on new azure-ai-projects package (#1910)
    * Added changes (#1909)
    
    * Python: [Feature Branch] Renamed Azure AI agent and small fixes (#1919)
    
    * Renaming
    
    * Small fixes
    
    * Update python/packages/core/agent_framework/openai/_shared.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Small fix
    
    * Python: [Feature Branch] Added use_latest_version parameter to AzureAIClient (#1959)
    
    * Added use_latest_version parameter to AzureAIClient
    
    * Added unit tests
    
    * Update python/samples/getting_started/agents/azure_ai/azure_ai_use_latest_version.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/azure-ai/agent_framework_azure_ai/_client.py
    
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
    
    * Python: [Feature Branch] Structured Outputs and more examples for AzureAIClient (#1987)
    
    * Small updates
    
    * Added support for structured outputs
    
    * Added code interpreter example
    
    * More examples and fixes
    
    * Added more examples and README
    
    * Small fix
    
    * Addressed PR feedback
    
    * Removed optional ID from FunctionResultContent (#2011)
    
    * Added hosted MCP support (#2018)
    
    * Python: [Feature Branch] Fixed "store" parameter handling (#2069)
    
    * Fixed store parameter handling
    
    * Small fix
    
    * Python: [Feature Branch] Added more examples and fixes for Azure AI agent (#2077)
    
    * Updated azure-ai-projects package version
    
    * Added an example of hosted MCP with approval required
    
    * Updated code interpreter example
    
    * Added file search example
    
    * Update python/samples/getting_started/agents/azure_ai/azure_ai_with_file_search.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/samples/getting_started/agents/azure_ai/azure_ai_with_file_search.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Small fix
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Added handling for conversation_id (#2098)
    
    * Merge from main
    
    * Revert "Merge from main"
    
    This reverts commit b8206a85d7.
    
    * Python: [Feature Branch] Merge from main to Azure AI branch (#2111)
    
    * Do not build DevUI assets during .NET project build (#2010)
    
    * .NET: Add unit tests for declarative executor SetMultipleVariables (#2016)
    
    * Add unit tests for create conversation executor
    
    * Update indentation and comment typo.
    
    * Added unit tests for declarative executor SetMultipleVariablesExecutor
    
    * Updated comments and syntactic sugar
    
    * Python: DevUI: Use metadata.entity_id instead of model field (#1984)
    
    * DevUI: Use metadata.entity_id for agent/workflow name instead of model field
    
    * OpenAI Responses: add explicit request validation
    
    * Review feedback
    
    * .NET: DevUI - Do not automatically add/map OpenAI services/endpoints (#2014)
    
    * Don't add OpenAIResponses as part of Dev UI
    
    You should be able to add and remove Dev UI without impacting your other production endpoints.
    
    * Remove `AddDevUI()` and do not map OpenAI endpoints from `MapDevUI()`
    
    * Fix comment wording
    
    * Revise documentation
    
    ---------
    
    Co-authored-by: Daniel Roth <daroth@microsoft.com>
    
    * Python: DevUI: Add OpenAI Responses API proxy support  + HIL for Workflows (#1737)
    
    * DevUI: Add OpenAI Responses API proxy support with enhanced UI features
    
    This commit adds support for proxying requests to OpenAI's Responses API,
    allowing DevUI to route conversations to OpenAI models when configured to enable testing.
    
    Backend changes:
    - Add OpenAI proxy executor with conversation routing logic
    - Enhance event mapper to support OpenAI Responses API format
    - Extend server endpoints to handle OpenAI proxy mode
    - Update models with OpenAI-specific response types
    - Remove emojis from logging and CLI output for cleaner text
    
    Frontend changes:
    - Add settings modal with OpenAI proxy configuration UI
    - Enhance agent and workflow views with improved state management
    - Add new UI components (separator, switch) for settings
    - Update debug panel with better event filtering
    - Improve message renderers for OpenAI content types
    - Update types and API client for OpenAI integration
    
    * update ui, settings modal and workflow input form, add register cleanup hooks.
    
    * add workflow HIL support, user mode, other fixes
    
    * feat(devui): add human-in-the-loop (HIL) support with dynamic response schemas
    
    Implement  HIL workflow support allowing workflows to pause for user input
    with dynamically generated JSON schemas based on response handler type hints.
    
    Key Features:
    - Automatic response schema extraction from @response_handler decorators
    - Dynamic form generation in UI based on Pydantic/dataclass response types
    - Checkpoint-based conversation storage for HIL requests/responses
    - Resume workflow execution after user provides HIL response
    
    Backend Changes:
    - Add extract_response_type_from_executor() to introspect response handlers
    - Enrich RequestInfoEvent with response_schema via _enrich_request_info_event_with_response_schema()
    - Map RequestInfoEvent to response.input.requested OpenAI event format
    - Store HIL responses in conversation history and restore checkpoints
    
    Frontend Changes:
    - Add HILInputModal component with SchemaFormRenderer for dynamic forms
    - Support Pydantic BaseModel and dataclass response types
    - Render enum fields as dropdowns, strings as text/textarea, numbers, booleans, arrays, objects
    - Display original request context alongside response form
    
    Testing:
    - Add  tests for checkpoint storage (test_checkpoints.py)
    - Add schema generation tests for all input types (test_schema_generation.py)
    - Validate end-to-end HIL flow with spam workflow sample
    
    This enables workflows to seamlessly pause execution and request structured user input
    with type-safe, validated forms generated automatically from response type annotations.
    
    * improve HIL support, improve workflow execution view
    
    * ui updates
    
    * ui updates
    
    * improve HIL for workflows, add auth and view modes
    
    * update workflow
    
    * security improvements , ui fixes
    
    * fix mypy error
    
    * update loading spinner in ui
    
    ---------
    
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
    
    * .NET: Remove launchSettings.json from .gitignore in dotnet/samples (#2006)
    
    * Remove launchSettings.json from .gitignore in dotnet/samples
    
    * Update dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update dotnet/samples/AGUIClientServer/AGUIServer/Properties/launchSettings.json
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * DevUI: Serialize workflow input as string to maintain conformance with OpenAI Responses format (#2021)
    
    Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
    
    * Add Microsoft Agent Framework logo to assets (#2007)
    
    * Updated package versions (#2027)
    
    * DevUI: Prevent line breaks within words in the agent view (#2024)
    
    Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
    
    * .NET [AG-UI]: Adds support for shared state. (#1996)
    
    * Product changes
    
    * Tests
    
    * Dojo project
    
    * Cleanups
    
    * Python: Fix underlying tool choice bug and all for return to previous Handoff subagent (#2037)
    
    * Fix tool_choice override bug and add enable_return_to_previous support
    
    * Add unit test for handoff checkpointing
    
    * Handle tools when we have them
    
    * added missing chatAgent params (#2044)
    
    * .NET: fix ChatCompletions Tools serialization (#2043)
    
    * fix serialization in chat completions on tools
    
    * nit
    
    * .NET: assign AgentCard's URL to mapped-endpoint if not defined explicitly (#2047)
    
    * fix serialization in chat completions on tools
    
    * nit
    
    * write e2e test for agent card resolve + adjust behavior
    
    * nit
    
    * Version 1.0.0-preview.251110.1 (#2048)
    
    * .NET: Remove moved OpenAPI sample and point to SK one. (#1997)
    
    * Remove moved OpenAPI sample and point to SK one.
    
    * Update dotnet/samples/GettingStarted/Agents/README.md
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.4.2 to 4.0.4.6 (#2031)
    
    ---
    updated-dependencies:
    - dependency-name: AWSSDK.Extensions.Bedrock.MEAI
      dependency-version: 4.0.4.6
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    
    * .NET: Separate all memory and rag samples into their own folders (#2000)
    
    * Separate all memory and rag samples into their own folders
    
    * Fix broken link.
    
    * Python: .Net: Dotnet devui compatibility fixes (#2026)
    
    * DevUI: Add OpenAI Responses API proxy support with enhanced UI features
    
    This commit adds support for proxying requests to OpenAI's Responses API,
    allowing DevUI to route conversations to OpenAI models when configured to enable testing.
    
    Backend changes:
    - Add OpenAI proxy executor with conversation routing logic
    - Enhance event mapper to support OpenAI Responses API format
    - Extend server endpoints to handle OpenAI proxy mode
    - Update models with OpenAI-specific response types
    - Remove emojis from logging and CLI output for cleaner text
    
    Frontend changes:
    - Add settings modal with OpenAI proxy configuration UI
    - Enhance agent and workflow views with improved state management
    - Add new UI components (separator, switch) for settings
    - Update debug panel with better event filtering
    - Improve message renderers for OpenAI content types
    - Update types and API client for OpenAI integration
    
    * update ui, settings modal and workflow input form, add register cleanup hooks.
    
    * add workflow HIL support, user mode, other fixes
    
    * feat(devui): add human-in-the-loop (HIL) support with dynamic response schemas
    
    Implement  HIL workflow support allowing workflows to pause for user input
    with dynamically generated JSON schemas based on response handler type hints.
    
    Key Features:
    - Automatic response schema extraction from @response_handler decorators
    - Dynamic form generation in UI based on Pydantic/dataclass response types
    - Checkpoint-based conversation storage for HIL requests/responses
    - Resume workflow execution after user provides HIL response
    
    Backend Changes:
    - Add extract_response_type_from_executor() to introspect response handlers
    - Enrich RequestInfoEvent with response_schema via _enrich_request_info_event_with_response_schema()
    - Map RequestInfoEvent to response.input.requested OpenAI event format
    - Store HIL responses in conversation history and restore checkpoints
    
    Frontend Changes:
    - Add HILInputModal component with SchemaFormRenderer for dynamic forms
    - Support Pydantic BaseModel and dataclass response types
    - Render enum fields as dropdowns, strings as text/textarea, numbers, booleans, arrays, objects
    - Display original request context alongside response form
    
    Testing:
    - Add  tests for checkpoint storage (test_checkpoints.py)
    - Add schema generation tests for all input types (test_schema_generation.py)
    - Validate end-to-end HIL flow with spam workflow sample
    
    This enables workflows to seamlessly pause execution and request structured user input
    with type-safe, validated forms generated automatically from response type annotations.
    
    * improve HIL support, improve workflow execution view
    
    * ui updates
    
    * ui updates
    
    * improve HIL for workflows, add auth and view modes
    
    * update workflow
    
    * security improvements , ui fixes
    
    * fix mypy error
    
    * update loading spinner in ui
    
    * DevUI: Serialize workflow input as string to maintain conformance with OpenAI Responses format
    
    * Phase 1: Add /meta endpoint and fix workflow event naming for .NET DevUI compatibility
    
    * additional fixes for .NET DevUI workflow visualization item ID tracking
    
    **Problem:**
    .NET DevUI was generating different item IDs for ExecutorInvokedEvent and
    ExecutorCompletedEvent, causing only the first executor to highlight in the
    workflow graph. Long executor names and error messages also broke UI layout.
    
    **Changes:**
    - Add ExecutorActionItemResource to match Python DevUI implementation
    - Track item IDs per executor using dictionary in AgentRunResponseUpdateExtensions
    - Reuse same item ID across invoked/completed/failed events for proper pairing
    - Add truncateText() utility to workflow-utils.ts
    - Truncate executor names to 35 chars in execution timeline
    - Truncate error messages to 150 chars in workflow graph nodes
    
    ** Details:**
    - ExecutorActionItemResource registered with JSON source generation context
    - Dictionary cleaned up after executor completion/failure to prevent memory leaks
    - Frontend item tracking by unique item.id supports multiple executor runs
    - All changes follow existing codebase patterns and conventions
    
    Tested with review-workflow showing correct executor highlighting and state
    transitions for sequential and concurrent executors.
    
    * format fixes, remove cors tests
    
    * remove unecessary attributes
    
    ---------
    
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
    Co-authored-by: Reuben Bond <reuben.bond@gmail.com>
    
    * DevUI: support having both an agent and a workflow with the same id in discovery (#2023)
    
    * Python: Fix Model ID attribute not showing up in `invoke_agent` span (#2061)
    
    * Best effort to surface the model id to invoke agent span
    
    * Fix tests
    
    * Fix tests
    
    * Version 1.0.0-preview.251107.2 (#2065)
    
    * Version 1.0.0-preview.251110.2 (#2067)
    
    * Update README.md to change Grafana links to Azure portal links for dashboard access (#1983)
    
    * .NET - Enable build & test on branch `feature-foundry-agents` (#2068)
    
    * Tests good, mkay
    
    * Update .github/workflows/dotnet-build-and-test.yml
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Enable feature build pipelines
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
    
    * Python: Add concrete AGUIChatClient (#2072)
    
    * Add concrete AGUIChatClient
    
    * Update logging docstrings and conventions
    
    * PR feedback
    
    * Updates to support client-side tool calls
    
    * .NET: Move catalog samples to the HostedAgents folder (#2090)
    
    * move catalog samples to the HostedAgents folder
    
    * move the catalog samples' projects to the HostedAgents folder
    
    * Bump OpenTelemetry.Instrumentation.Runtime from 1.12.0 to 1.13.0 (#1856)
    
    ---
    updated-dependencies:
    - dependency-name: OpenTelemetry.Instrumentation.Runtime
      dependency-version: 1.13.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    
    * .NET: Bump Microsoft.SemanticKernel.Agents.Abstractions from 1.66.0 to 1.67.0 (#1962)
    
    * Bump Microsoft.SemanticKernel.Agents.Abstractions from 1.66.0 to 1.67.0
    
    ---
    updated-dependencies:
    - dependency-name: Microsoft.SemanticKernel.Agents.Abstractions
      dependency-version: 1.67.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * .NET: Bump all Microsoft.SemanticKernel packages from 1.66.* to 1.67.* (#1969)
    
    * Initial plan
    
    * Update all Microsoft.SemanticKernel packages to 1.67.*
    
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
    
    * Remove unrelated changes to package-lock.json and yarn.lock
    
    Co-authored-by: markwallace-microsoft <127216156+markwallace-microsoft@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
    Co-authored-by: markwallace-microsoft <127216156+markwallace-microsoft@users.noreply.github.com>
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
    Co-authored-by: markwallace-microsoft <127216156+markwallace-microsoft@users.noreply.github.com>
    
    * .NET: fix: WorkflowAsAgent Sample (#1787)
    
    * fix: WorkflowAsAgent Sample
    
    * Also makes ChatForwardingExecutor public
    
    * feat: Expand ChatForwardingExecutor handled types
    
    Make ChatForwardingExecutor match the input types of ChatProtocolExecutor.
    
    * fix: Update for the new AgentRunResponseUpdate merge logic
    
    AIAgent always sends out List<ChatMessage> now.
    
    * Updated (#2076)
    
    * Bump vite in /python/samples/demos/chatkit-integration/frontend (#1918)
    
    Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.9 to 7.1.12.
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/v7.1.12/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v7.1.12/packages/vite)
    
    ---
    updated-dependencies:
    - dependency-name: vite
      dependency-version: 7.1.12
      dependency-type: direct:development
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    
    * Bump Roslynator.Analyzers from 4.14.0 to 4.14.1 (#1857)
    
    ---
    updated-dependencies:
    - dependency-name: Roslynator.Analyzers
      dependency-version: 4.14.1
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    
    * Bump MishaKav/pytest-coverage-comment from 1.1.57 to 1.1.59 (#2034)
    
    Bumps [MishaKav/pytest-coverage-comment](https://github.com/mishakav/pytest-coverage-comment) from 1.1.57 to 1.1.59.
    - [Release notes](https://github.com/mishakav/pytest-coverage-comment/releases)
    - [Changelog](https://github.com/MishaKav/pytest-coverage-comment/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/mishakav/pytest-coverage-comment/compare/v1.1.57...v1.1.59)
    
    ---
    updated-dependencies:
    - dependency-name: MishaKav/pytest-coverage-comment
      dependency-version: 1.1.59
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
    
    * Python: Handle agent user input request in AgentExecutor (#2022)
    
    * Handle agent user input request in AgentExecutor
    
    * fix test
    
    * Address comments
    
    * Fix tests
    
    * Fix tests
    
    * Address comments
    
    * Address comments
    
    * Python: OpenAI Responses Image Generation Stream Support, Sample and Unit Tests (#1853)
    
    * support for image gen streaming
    
    * small fixes
    
    * fixes
    
    * added comment
    
    * Python: Fix MCP Tool Parameter Descriptions Not Propagated to LLMs (#1978)
    
    * mcp tool description fix
    
    * small fix
    
    * .NET: Allow extending agent run options via additional properties (#1872)
    
    * Allow extending agent run options via additional properties
    
    This mirrors the M.E.AI model in ChatOptions.AdditionalProperties which is very useful when building functionality pipelines.
    
    Fixes https://github.com/microsoft/agent-framework/issues/1815
    
    * Expand XML documentation
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Add AdditionalProperties tests to AgentRunOptions
    
    Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
    
    * Python: Use the last entry in the task history to avoid empty responses (#2101)
    
    * Use the last entry in the task history to avoid empty responses
    
    * History only contains Messages
    
    * Updated package versions (#2104)
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Reuben Bond <203839+ReubenBond@users.noreply.github.com>
    Co-authored-by: Peter Ibekwe <109177538+peibekwe@users.noreply.github.com>
    Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
    Co-authored-by: Daniel Roth <daroth@microsoft.com>
    Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Shawn Henry <sphenry@gmail.com>
    Co-authored-by: Javier Calvarro Nelson <jacalvar@microsoft.com>
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
    Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
    Co-authored-by: Korolev Dmitry <deagle.gross@gmail.com>
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Reuben Bond <reuben.bond@gmail.com>
    Co-authored-by: Tao Chen <taochen@microsoft.com>
    Co-authored-by: wuweng <wuweng@microsoft.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
    Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: Jacob Alber <jaalber@microsoft.com>
    Co-authored-by: Giles Odigwe <79032838+giles17@users.noreply.github.com>
    Co-authored-by: Daniel Cazzulino <daniel@cazzulino.com>
    Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
    
    * Updated azure-ai-projects package version and small fixes (#2139)
    
    * Python: [Feature Branch] Resolve CI issues (#2143)
    
    * Small documentation and code fixes
    
    * Small fix in documentation
    
    * Addressed PR feedback
    
    * Added AI Search example
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
    Co-authored-by: Reuben Bond <203839+ReubenBond@users.noreply.github.com>
    Co-authored-by: Peter Ibekwe <109177538+peibekwe@users.noreply.github.com>
    Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
    Co-authored-by: Daniel Roth <daroth@microsoft.com>
    Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
    Co-authored-by: Shawn Henry <sphenry@gmail.com>
    Co-authored-by: Javier Calvarro Nelson <jacalvar@microsoft.com>
    Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
    Co-authored-by: Korolev Dmitry <deagle.gross@gmail.com>
    Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Reuben Bond <reuben.bond@gmail.com>
    Co-authored-by: Tao Chen <taochen@microsoft.com>
    Co-authored-by: wuweng <wuweng@microsoft.com>
    Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
    Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: Jacob Alber <jaalber@microsoft.com>
    Co-authored-by: Giles Odigwe <79032838+giles17@users.noreply.github.com>
    Co-authored-by: Daniel Cazzulino <daniel@cazzulino.com>
    Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
  • Python: fixed image handling in anthropic and added convenience method on datacontent (#2083)
    * fixed image handling in anthropic and added convenience method on datacontent
    
    * remove wheel path
    
    * updated docstrings
    
    * fixed image handling in anthropic and added convenience method on datacontent
    
    * remove wheel path
    
    * updated lock
  • Python: Use the last entry in the task history to avoid empty responses (#2101)
    * Use the last entry in the task history to avoid empty responses
    
    * History only contains Messages
  • Python: OpenAI Responses Image Generation Stream Support, Sample and Unit Tests (#1853)
    * support for image gen streaming
    
    * small fixes
    
    * fixes
    
    * added comment
  • Python: Handle agent user input request in AgentExecutor (#2022)
    * Handle agent user input request in AgentExecutor
    
    * fix test
    
    * Address comments
    
    * Fix tests
    
    * Fix tests
    
    * Address comments
    
    * Address comments
  • Python: Add concrete AGUIChatClient (#2072)
    * Add concrete AGUIChatClient
    
    * Update logging docstrings and conventions
    
    * PR feedback
    
    * Updates to support client-side tool calls
  • Python: Fix Model ID attribute not showing up in invoke_agent span (#2061)
    * Best effort to surface the model id to invoke agent span
    
    * Fix tests
    
    * Fix tests
  • Python: .Net: Dotnet devui compatibility fixes (#2026)
    * DevUI: Add OpenAI Responses API proxy support with enhanced UI features
    
    This commit adds support for proxying requests to OpenAI's Responses API,
    allowing DevUI to route conversations to OpenAI models when configured to enable testing.
    
    Backend changes:
    - Add OpenAI proxy executor with conversation routing logic
    - Enhance event mapper to support OpenAI Responses API format
    - Extend server endpoints to handle OpenAI proxy mode
    - Update models with OpenAI-specific response types
    - Remove emojis from logging and CLI output for cleaner text
    
    Frontend changes:
    - Add settings modal with OpenAI proxy configuration UI
    - Enhance agent and workflow views with improved state management
    - Add new UI components (separator, switch) for settings
    - Update debug panel with better event filtering
    - Improve message renderers for OpenAI content types
    - Update types and API client for OpenAI integration
    
    * update ui, settings modal and workflow input form, add register cleanup hooks.
    
    * add workflow HIL support, user mode, other fixes
    
    * feat(devui): add human-in-the-loop (HIL) support with dynamic response schemas
    
    Implement  HIL workflow support allowing workflows to pause for user input
    with dynamically generated JSON schemas based on response handler type hints.
    
    Key Features:
    - Automatic response schema extraction from @response_handler decorators
    - Dynamic form generation in UI based on Pydantic/dataclass response types
    - Checkpoint-based conversation storage for HIL requests/responses
    - Resume workflow execution after user provides HIL response
    
    Backend Changes:
    - Add extract_response_type_from_executor() to introspect response handlers
    - Enrich RequestInfoEvent with response_schema via _enrich_request_info_event_with_response_schema()
    - Map RequestInfoEvent to response.input.requested OpenAI event format
    - Store HIL responses in conversation history and restore checkpoints
    
    Frontend Changes:
    - Add HILInputModal component with SchemaFormRenderer for dynamic forms
    - Support Pydantic BaseModel and dataclass response types
    - Render enum fields as dropdowns, strings as text/textarea, numbers, booleans, arrays, objects
    - Display original request context alongside response form
    
    Testing:
    - Add  tests for checkpoint storage (test_checkpoints.py)
    - Add schema generation tests for all input types (test_schema_generation.py)
    - Validate end-to-end HIL flow with spam workflow sample
    
    This enables workflows to seamlessly pause execution and request structured user input
    with type-safe, validated forms generated automatically from response type annotations.
    
    * improve HIL support, improve workflow execution view
    
    * ui updates
    
    * ui updates
    
    * improve HIL for workflows, add auth and view modes
    
    * update workflow
    
    * security improvements , ui fixes
    
    * fix mypy error
    
    * update loading spinner in ui
    
    * DevUI: Serialize workflow input as string to maintain conformance with OpenAI Responses format
    
    * Phase 1: Add /meta endpoint and fix workflow event naming for .NET DevUI compatibility
    
    * additional fixes for .NET DevUI workflow visualization item ID tracking
    
    **Problem:**
    .NET DevUI was generating different item IDs for ExecutorInvokedEvent and
    ExecutorCompletedEvent, causing only the first executor to highlight in the
    workflow graph. Long executor names and error messages also broke UI layout.
    
    **Changes:**
    - Add ExecutorActionItemResource to match Python DevUI implementation
    - Track item IDs per executor using dictionary in AgentRunResponseUpdateExtensions
    - Reuse same item ID across invoked/completed/failed events for proper pairing
    - Add truncateText() utility to workflow-utils.ts
    - Truncate executor names to 35 chars in execution timeline
    - Truncate error messages to 150 chars in workflow graph nodes
    
    ** Details:**
    - ExecutorActionItemResource registered with JSON source generation context
    - Dictionary cleaned up after executor completion/failure to prevent memory leaks
    - Frontend item tracking by unique item.id supports multiple executor runs
    - All changes follow existing codebase patterns and conventions
    
    Tested with review-workflow showing correct executor highlighting and state
    transitions for sequential and concurrent executors.
    
    * format fixes, remove cors tests
    
    * remove unecessary attributes
    
    ---------
    
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
    Co-authored-by: Reuben Bond <reuben.bond@gmail.com>
  • Python: Fix underlying tool choice bug and all for return to previous Handoff subagent (#2037)
    * Fix tool_choice override bug and add enable_return_to_previous support
    
    * Add unit test for handoff checkpointing
    
    * Handle tools when we have them
  • Python: DevUI: Add OpenAI Responses API proxy support + HIL for Workflows (#1737)
    * DevUI: Add OpenAI Responses API proxy support with enhanced UI features
    
    This commit adds support for proxying requests to OpenAI's Responses API,
    allowing DevUI to route conversations to OpenAI models when configured to enable testing.
    
    Backend changes:
    - Add OpenAI proxy executor with conversation routing logic
    - Enhance event mapper to support OpenAI Responses API format
    - Extend server endpoints to handle OpenAI proxy mode
    - Update models with OpenAI-specific response types
    - Remove emojis from logging and CLI output for cleaner text
    
    Frontend changes:
    - Add settings modal with OpenAI proxy configuration UI
    - Enhance agent and workflow views with improved state management
    - Add new UI components (separator, switch) for settings
    - Update debug panel with better event filtering
    - Improve message renderers for OpenAI content types
    - Update types and API client for OpenAI integration
    
    * update ui, settings modal and workflow input form, add register cleanup hooks.
    
    * add workflow HIL support, user mode, other fixes
    
    * feat(devui): add human-in-the-loop (HIL) support with dynamic response schemas
    
    Implement  HIL workflow support allowing workflows to pause for user input
    with dynamically generated JSON schemas based on response handler type hints.
    
    Key Features:
    - Automatic response schema extraction from @response_handler decorators
    - Dynamic form generation in UI based on Pydantic/dataclass response types
    - Checkpoint-based conversation storage for HIL requests/responses
    - Resume workflow execution after user provides HIL response
    
    Backend Changes:
    - Add extract_response_type_from_executor() to introspect response handlers
    - Enrich RequestInfoEvent with response_schema via _enrich_request_info_event_with_response_schema()
    - Map RequestInfoEvent to response.input.requested OpenAI event format
    - Store HIL responses in conversation history and restore checkpoints
    
    Frontend Changes:
    - Add HILInputModal component with SchemaFormRenderer for dynamic forms
    - Support Pydantic BaseModel and dataclass response types
    - Render enum fields as dropdowns, strings as text/textarea, numbers, booleans, arrays, objects
    - Display original request context alongside response form
    
    Testing:
    - Add  tests for checkpoint storage (test_checkpoints.py)
    - Add schema generation tests for all input types (test_schema_generation.py)
    - Validate end-to-end HIL flow with spam workflow sample
    
    This enables workflows to seamlessly pause execution and request structured user input
    with type-safe, validated forms generated automatically from response type annotations.
    
    * improve HIL support, improve workflow execution view
    
    * ui updates
    
    * ui updates
    
    * improve HIL for workflows, add auth and view modes
    
    * update workflow
    
    * security improvements , ui fixes
    
    * fix mypy error
    
    * update loading spinner in ui
    
    ---------
    
    Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
  • Python: DevUI: Use metadata.entity_id instead of model field (#1984)
    * DevUI: Use metadata.entity_id for agent/workflow name instead of model field
    
    * OpenAI Responses: add explicit request validation
    
    * Review feedback
  • .NET: DevUI: Use relative URLs for backend API by default (#2005)
    * DevUI: Use relative URLs for backend API by default
    
    * dotnet format
    
    * rebuild application
  • Python: [Purview] Add Caching and background processing in Python Purview Middleware (#1844)
    * [PythonPurview] Add Caching and background processing
    
    * [PythonPurview] Updates based on comments
  • Python: Fix ag-ui examples packaging for PyPI publish (#1953)
    * Fix ag-ui examples packaging for PyPI publish
    
    * Fix markdown links