Commit Graph

8 Commits

  • .NET: Bug fixes for declarative workflows (#6427)
    * declarative workflow approval flow fix
    
    * Update mcp handler cache construction
    
    * fix method argument.
    
    * Update dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/ObjectModel/InvokeFunctionToolExecutor.cs
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    
    * Fix identation
    
    ---------
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • .NET: Promote Workflows.Declarative packages to stable versions (#6254)
    * Promote Workflows.Declarative packages to stable versions
    
    * Address PR feedback: enable package validation on GA declarative packages
    
    Both Workflows.Declarative and Workflows.Declarative.Mcp set IsReleased=true
    
    but were disabling package validation, bypassing the repo's GA convention
    
    (see dotnet/nuget/nuget-package.props which auto-enables validation when
    
    IsReleased=true).
    
    Re-enable validation by removing the local EnablePackageValidation=false
    
    overrides and pointing PackageValidationBaselineVersion at 1.8.0-rc1 (the
    
    latest published version of each package). This catches accidental breaking
    
    changes between RC and the first GA. Future GAs should bump the baseline to
    
    the previous GA version.
    
    Verified locally: dotnet build -c Release on both projects runs
    
    RunPackageValidation -> APICompat ran successfully without finding any
    
    breaking changes.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Update statement for the baseline validation.
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • .NET: Delegate MCP ContentBlock to AIContent conversion to the MCP SDK (#5903)
    * Add sample for invoking Foundry Toolbox tools from declarative workflows
    
    * Addressed initial PR comments.
    
    * Delegate MCP ContentBlock to AIContent conversion to the MCP SDK
    
    * Addressed additional properties metadata in the conversion fallback.
  • .NET: Add sample for invoking Foundry Toolbox tools from declarative workflows (#5829)
    * Add sample for invoking Foundry Toolbox tools from declarative workflows
    
    * Addressed initial PR comments.
  • .NET: Add API breaking change validation for RC packages (#4977)
    * Add API breaking change validation for RC packages
    
    Enable .NET Package Validation for release candidate packages to detect
    API breaking changes in CI. This follows the same pattern used by
    Semantic Kernel, centralized through nuget-package.props.
    
    Changes:
    - Enable EnablePackageValidation for IsReleaseCandidate packages
    - Update PackageValidationBaselineVersion to 1.0.0-rc4 (latest published)
    - Generate CompatibilitySuppressions.xml for existing known API changes
      in 5 packages (AI, AzureAI, OpenAI, Workflows, Workflows.Declarative.AzureAI)
    - Opt out Workflows.Declarative.Mcp (not yet published to NuGet)
    - Add breaking changes guidance to CONTRIBUTING.md
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Address PR review feedback
    
    - Remove unnecessary empty PackageValidationBaselineVersion override
      in Workflows.Declarative.Mcp.csproj (EnablePackageValidation=false
      is sufficient)
    - Tighten CONTRIBUTING.md wording to clarify opt-out possibility
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Enable package validation for GA packages (no VersionSuffix)
    
    Expand the EnablePackageValidation condition to also cover future GA
    packages that have no VersionSuffix, not just RC packages.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix EnablePackageValidation GA condition to check PackageVersion
    
    The previous condition VersionSuffix=='' matched all packages (preview
    included) since VersionSuffix defaults to empty. Now uses two separate
    conditions: one for RC, one for true GA (PackageVersion == VersionPrefix).
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Add IsGeneralAvailable flag for package validation
    
    Replace fragile PackageVersion condition with explicit IsGeneralAvailable
    property, following the same per-project self-declaration pattern as
    IsReleaseCandidate.
    
    - Directory.Build.props: Add IsGeneralAvailable=false default
    - nuget-package.props: EnablePackageValidation on RC OR GA
    - CONTRIBUTING.md: Update docs to mention both flags
    
    When packages go GA, they set IsGeneralAvailable=true in their .csproj.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Rename IsGeneralAvailable to IsGenerallyAvailable
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • .NET: Update to OpenAI 2.9.1, Azure.AI.OpenAI 2.9.0-beta.1, Microsoft.Extensions.AI 10.4.0, and Azure.AI.Projects 2.0.0-beta.2 (#4613)
    * Initial plan
    
    * Update code for Microsoft.Extensions.AI.Abstractions 10.4.0 breaking changes
    
    - Rename FunctionApprovalRequestContent → ToolApprovalRequestContent
    - Rename FunctionApprovalResponseContent → ToolApprovalResponseContent
    - Rename UserInputRequestContent → ToolApprovalRequestContent
    - Rename UserInputResponseContent → ToolApprovalResponseContent
    - Update .FunctionCall property → .ToolCall with FunctionCallContent casts where needed
    - Update .Id property → .RequestId on the renamed types
    - Rename FunctionApprovalRequestEventGenerator → ToolApprovalRequestEventGenerator
    - Rename FunctionApprovalResponseEventGenerator → ToolApprovalResponseEventGenerator
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Update OpenAI 2.9.1, ME.AI 10.4.0, fix breaking API changes
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Fix remaining ME.AI 10.4.0 breaking changes: MCP approval types, .Output→.Outputs
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Use pattern matching with `when` for ToolApprovalRequestContent/FunctionCallContent
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Update Azure.AI.OpenAI to 2.9.0-beta.1
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Fix remaining GetResponsesClient(model) build failures for Azure.AI.OpenAI 2.9.0-beta.1
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Address review feedback: remove redundant type checks in TestRequestAgent.cs and fix error message in AIAgentHostExecutor.cs
    
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    
    * Update Azure.AI.Projects to 2.0.0-beta.2 with namespace migration
    
    - Azure.AI.Projects 2.0.0-beta.1 → 2.0.0-beta.2
    - Azure.AI.Projects.OpenAI → Azure.AI.Extensions.OpenAI (transitive)
    - Agent types moved to Azure.AI.Projects.Agents namespace
    - AgentRecord.Versions.Latest → AgentRecord.GetLatestVersion()
    - OpenAPIFunctionDefinition → OpenApiFunctionDefinition
    - BingCustomSearchToolParameters → BingCustomSearchToolOptions
    - MemorySearchPreviewTool.UpdateDelay → UpdateDelayInSecs
    - Azure.Identity 1.17.1 → 1.19.0
    - Microsoft.Identity.Client.Extensions.Msal 4.78.0 → 4.83.1
    
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
    
    * Fix remaining type renames for Azure.AI.Projects 2.0.0-beta.2
    
    - BrowserAutomationToolParameters → BrowserAutomationToolOptions
    - MemoryUpdateOptions.UpdateDelay stays as UpdateDelay (not renamed)
    - WaitForMemoriesUpdateAsync parameter order: pollingInterval before options
    - AIProjectAgentsOperations → AgentsClient
    
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
    
    * Fix format errors and OpenTelemetry test for ME.AI 10.4.0
    
    - Remove unused 'using Azure.AI.Extensions.OpenAI' and fix import ordering
      in Agent_With_AzureAIProject/Program.cs
    - Update OpenTelemetryAgentTests: gen_ai.tool.definitions is now always
      emitted regardless of EnableSensitiveData per ME.AI 10.4.0 change
      (dotnet/extensions#7346). Tool definitions are not considered sensitive.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix GetRepoFolder() to work in git worktrees
    
    Use 'workflow-samples' directory as repo root marker instead of '.git',
    which fails in worktrees (.git is a file) and also matches too early
    when a '.github' folder exists in subdirectories.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix formatting: remove unused usings and fix import ordering
    
    dotnet format applied across 59 impacted projects. Primarily removes
    unnecessary 'using Azure.AI.Projects' where Azure.AI.Projects.Agents
    provides all needed types, and fixes import ordering per editorconfig.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Disable AzureAIAgentsPersistent integration tests (#4769)
    
    Azure.AI.Agents.Persistent 1.2.0-beta.9 references McpServerToolApprovalResponseContent
    which was removed in ME.AI 10.4.0 (renamed to ToolApprovalResponseContent), causing
    TypeLoadException at runtime. Mark all 6 test classes with IntegrationDisabled trait
    until Persistent ships a version targeting ME.AI 10.4.0+.
    
    Upstream fix: https://github.com/Azure/azure-sdk-for-net/pull/56929
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Add README with compatibility note for AzureAI.Persistent (#4769)
    
    Documents that Azure.AI.Agents.Persistent 1.2.0-beta.9 is only compatible
    with ME.AI ≤10.3.0 and OpenAI ≤2.8.0 due to type renames in ME.AI 10.4.0.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Fix file encoding: restore UTF-8 BOM on Persistent test files
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Mark AzureAI.Persistent as IsPackable=false (#4769)
    
    Prevent shipping until Azure.AI.Agents.Persistent targets ME.AI 10.4.0+.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * Moving IsPackable after import
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
    Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com>
  • .NET: Update A2A, MCP, and system package dependencies (#4647)
    * .NET: Update A2A, MCP, and system package dependencies
    
    Update dependency versions:
    - A2A/A2A.AspNetCore: 0.3.3-preview → 0.3.4-preview
    - ModelContextProtocol: 0.8.0-preview.1 → 1.1.0
    - Microsoft.Bcl.AsyncInterfaces: 10.0.3 → 10.0.4
    - System.Linq.AsyncEnumerable: 10.0.0 → 10.0.4
    - Add Microsoft.Bcl.Memory 10.0.4
    
    Remove internal polyfill extensions now provided by A2A SDK 0.3.4:
    - A2AMetadataExtensions (source + tests)
    - AdditionalPropertiesDictionaryExtensions (source + tests)
    
    Update DefaultMcpToolHandler to match MCP SDK 1.1.0 API changes where
    ImageContentBlock.Data and AudioContentBlock.Data changed from string
    to ReadOnlyMemory<byte>.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * address pr review comments
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • .NET: Support InvokeMcpTool for declarative workflows (#4204)
    * Initial implementation of InvokeMcpTool in declarative workflow
    
    * Cleaned up sample implementation
    
    * Updated sample comments.
    
    * Added missing executor routing attribute
    
    * Fix PR comments.
    
    * Updated based on PR comments.
    
    * Updated based on PR comments.
    
    * Removed unnecessary using statement.