9917bddc2b
* Simplify AG-UI Step04 human-in-the-loop sample to idiomatic pattern The Step04 sample previously wrapped both the server and client agents in custom ServerFunctionApproval*Agent middleware (~470 lines across two files) to marshal a bespoke approval protocol over AG-UI. This is no longer needed: MapAGUIServer natively emits the tool-approval interrupt when the model calls an ApprovalRequiredAIFunction, and AGUIChatClient natively transports the client's ToolApprovalResponseContent decision back to resume the run. Changes: - Server: map the ChatClientAgent directly with MapAGUIServer; remove the ServerFunctionApprovalAgent wrapper, the JsonOptions plumbing, and the ApprovalJsonContext registration. - Client: use the AGUIChatClient-backed agent directly; the existing loop already handles ToolApprovalRequestContent -> CreateResponse idiomatically. - Delete ServerFunctionApprovalServerAgent.cs and ServerFunctionApprovalClientAgent.cs. Verified end-to-end (approval request -> approve -> tool executes -> final response) against GitHub Models. Both projects build with 0 warnings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eeb2168d-2ecc-4f8d-9830-c287072eb7e1 * Update AG-UI Step04 README to describe native approval flow The Step04 human-in-the-loop sample no longer uses the custom ServerFunctionApprovalServerAgent / ServerFunctionApprovalClientAgent wrappers. Update the README so it describes the idiomatic native flow: the server maps a plain agent with MapAGUIServer and relies on ApprovalRequiredAIFunction to raise the approval interrupt, and the client handles ToolApprovalRequestContent and replies with ToolApprovalResponseContent. * Fix AG-UI Step04 README server port to match client default The Step04 client defaults to http://localhost:5100 (and the server launchSettings also uses 5100), but the README told users to run the server on port 8888, so the client could not reach it. Align the Step04 server run command to 5100. Other steps intentionally keep 8888 because their clients default to that port. * Update AG-UI .NET samples for latest MAF + AG-UI SDK and align with docs - Bump AGUI.* packages 0.0.3 to 0.0.4 (Directory.Packages.props) - Step01/02/03: drop AddHttpClient().AddLogging() server noise and simplify the client run-started output to match the getting-started doc (no thread plumbing) - Step04 (HITL): remove HTTP body logging and MEAI001 pragmas, give the approval tool an explicit name, and align the resume decision message with the doc - Step05 (state): replace the custom SharedStateAgent/StatefulAgent DataContent pattern (dropped by released AGUI.Server) with declarative AGUIStreamOptions.MapResultAsStateSnapshot plus a thin RecipeStateAgent that reads RunAgentInput.State, and align the Recipe models with the docs - Refresh README to the shipped API (MapAGUIServer, ApprovalRequiredAIFunction, declarative state) Verified: all 10 sample projects build; Step04 approval/resume and Step05 state snapshot round-trip run end-to-end against GitHub Models. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eeb2168d-2ecc-4f8d-9830-c287072eb7e1 * Name the Step02 backend tool search_restaurants to match the docs Give the SearchRestaurants tool an explicit "search_restaurants" name so the client displays an accurate tool name (not a compiler-mangled local-function name) and stays aligned with the backend-tool-rendering doc. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eeb2168d-2ecc-4f8d-9830-c287072eb7e1 * Add UTF-8 BOM to Step05 sample files to satisfy check-format The check-format CI job enforces the repository's utf-8-bom charset rule via dotnet format. The Step05 files added in this PR were saved without a BOM. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eeb2168d-2ecc-4f8d-9830-c287072eb7e1 * Fix AG-UI sample conversation history Let AgentSession own prior messages so clients send only each new turn, and give the frontend location tool a stable protocol name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Roger Barreto <19890735+RogerBarreto@users.noreply.github.com> Copilot-Session: eeb2168d-2ecc-4f8d-9830-c287072eb7e1