Skip to content

Add Order Management with Enhanced Task Completion sample#492

Merged
adilei merged 1 commit into
microsoft:reorg/v1from
adilei:reorg/v1
Apr 21, 2026
Merged

Add Order Management with Enhanced Task Completion sample#492
adilei merged 1 commit into
microsoft:reorg/v1from
adilei:reorg/v1

Conversation

@adilei
Copy link
Copy Markdown
Collaborator

@adilei adilei commented Apr 21, 2026

Summary

End-to-end sample demonstrating Copilot Studio agents with Enhanced Task Completion calling MCP servers for e-commerce order management and warehouse fulfillment, with a Gradio chat UI that renders tool calls, reasoning, and file attachments inline.

What's included

  • Two Copilot Studio agents — Orders Agent (ETC enabled) + Warehouse connected agent, as importable Power Platform solution
  • Two Node.js MCP servers — order management (5 tools) + warehouse (4 tools) with mock e-commerce data
  • Gradio chat UI — renders reasoning steps, tool calls, intermediate messages, file upload/download via Microsoft Agents SDK
  • Custom connectors — Swagger + apiProperties with x-ms-agentic-protocol: mcp-streamable-1.0
  • Cross-platform scripts — setup, start servers + devtunnels, start UI
  • Documentation — README, import guide, chat UI setup guide

Test plan

  • End-to-end deployment tested on clean environment (solution import, connector setup, agent publish, Gradio UI query)
  • README instructions verified step-by-step using Playwright
  • Jekyll site renders correctly (Mermaid diagrams, JTD callouts, child pages)

🤖 Generated with Claude Code

* Add samples browser link to resources table (microsoft#474)

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix SharePoint customizer and contact center folder structure (microsoft#476)

SharePoint: Replace deprecated SharePointSSOComponent with modern
SharePointSSOAppCustomizer at root level (was nested as subfolder).

Contact center: Move Salesforce and skill-handoff samples out of
servicenow/ into their own top-level folders. Flatten double-nested
ServiceNow/ServiceNow/ structure.

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix RelayBot: Upgrade .Net target and Remove Obsolete BotFramework Adapter. (microsoft#475)

* Upgrade .Net target and Remove Obsolete BotFramework Adapter.

* update newtonsoft version

* add missing tenant property in appsettings.json

* upgrade the program file with top level statements.

* update README.md for .net 10

* Update deprecated notice: clarify archived Bot Framework SDK, fix Copilot Studio naming

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add dynamic MCP routing sample

Demonstrates a Power Platform connector that routes MCP Streamable HTTP
traffic to one of several MCP server instances selected via dropdown.

Includes:
- Multi-instance MCP server with path-based routing
- Catalog REST server for instance discovery
- Connector with x-ms-agentic-protocol and script.csx URL rewriter
- One-step deploy scripts for bash and PowerShell

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Use Mermaid diagram and fix Copilot Studio instructions

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix Copilot Studio configuration instructions (microsoft#481)

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Improve deploy script: colored output, name conflict handling, fixed paths (microsoft#482)

- Numbered steps with colored status indicators
- Server logs redirected to /tmp/ for clean output
- Auto-retry with random suffix on connector name conflict
- Fix paths for sample directory structure (connector/ not mcp-connector/)
- Use built JS instead of ts-node
- Require environment ID as argument (no hardcoded default)

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Enable Mermaid diagram rendering in Jekyll site (microsoft#483)

Just the Docs theme supports Mermaid natively via config.
This enables ```mermaid code blocks to render as diagrams.

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add ESS team as codeowners for EmployeeSelfServiceAgent (microsoft#490)

The @microsoft/ess-contributors team can now review and approve
PRs that only touch EmployeeSelfServiceAgent/ without requiring
repo maintainer review.

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Eval Gate for Azure DevOps sample (microsoft#491)

Copilot Studio Evaluation API as a CI/CD quality gate in Azure DevOps.
Pipeline automatically runs evals on PR push, blocks merge if pass rate
is below a configurable threshold, and publishes results to the ADO
Tests tab.

- eval-gate.mjs: standalone Node.js script (MSAL auth + PPAPI client)
- eval-gate.yml: ADO pipeline (self-hosted + hosted agent options)
- eval-config.json: environment config with pass threshold
- Screenshots: passing gate, failing gate, pipeline logs, tests tab

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Order Management MCP Demo with Enhanced Task Completion

End-to-end sample demonstrating Copilot Studio agents with Enhanced Task
Completion calling MCP servers for e-commerce order management and warehouse
fulfillment, with a Gradio chat UI that renders tool calls and reasoning inline.

Includes:
- Two Node.js MCP servers (order-management: 5 tools, warehouse: 4 tools)
- Power Platform connector definitions for both MCP servers
- Exported solution with both agents (Orders Agent + Warehouse Agent)
- Unpacked solution source for git-friendly review
- Gradio chat frontend with inline tool rendering, file upload/download
- Cross-platform scripts for setup, deployment, and connector management
- Demo CSV for file upload scenario

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix missing aiohttp dependency in chat-ui requirements

The microsoft-agents-copilotstudio-client package requires aiohttp
but doesn't declare it as a dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Auto-deploy connectors on start, add demo screenshot

- start.mjs now accepts --env flag to auto-deploy connectors after tunnels
  are ready (tries update first, falls back to create)
- Updated README quick start to reflect single-command workflow
- Added Gradio UI demo screenshot to assets

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Simplify deployment: update connector hosts via Custom Connectors UI

- Removed paconn dependency and auto-deploy logic from start.mjs
- Updated README step 4: users edit connector Host field in Power Apps UI
- Simplified start.mjs to just start servers + tunnels
- Tested end-to-end: solution import → connector update → Gradio UI → tool calls succeed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix code review issues: token cache, debug logging, gitignore

- Fix LocalTokenCache to use MSAL's serialize()/deserialize() API
  instead of directly accessing _cache dict (prevents token corruption)
- Remove leftover debug request/response interception from warehouse server
- Add .gitignore files for chat-ui (secrets, venv) and MCP servers (node_modules, dist)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add app registration setup instructions to IMPORT.md

Step-by-step guide for creating the Entra ID app registration
needed by the Gradio chat UI's MSAL authentication.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Replace ASCII architecture diagram with Mermaid

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Enhanced Task Completion context and experimental warning to README

Links to official Microsoft docs, explains what ETC is and how it differs
from standard generative orchestration, adds JTD warning callout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix IMPORT.md: add Jekyll front matter, update instructions

- Add Jekyll front matter so IMPORT.md renders as HTML (not raw markdown)
- Update import steps to match actual workflow (single solution zip)
- Fix README link to use stripped .md extension per Jekyll convention
- Add screenshot reference to README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Polish Gradio UI design, restructure README and docs

- Redesign chat UI: dark header with teal ETC badge, Plus Jakarta Sans
  font, green-bordered tool accordions, refined message bubbles and
  markdown rendering
- Restructure README: rewrite What's Included as logical components
  (agents, MCP servers, chat UI, connectors), move architecture diagram
  to bottom, inline sample queries after Quick Start step 5
- Split IMPORT.md: move .env config and app registration to new
  SETUP.md, keep IMPORT.md focused on solution import + connections
- Fix IMPORT.md step numbering and add note about clean environment
  connection creation
- Update README step 2 to clarify connections must be created separately
- Update screenshot showing tool calls and reasoning in action

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Vikram Singh <singhvikra@microsoft.com>
@adilei adilei requested a review from HenryJammes as a code owner April 21, 2026 19:58
@adilei adilei merged commit f0a92ee into microsoft:reorg/v1 Apr 21, 2026
adilei added a commit that referenced this pull request Apr 21, 2026
* Reorganize repo into 9 category folders

Restructure 34 top-level folders into 9 categories:

- authoring/ — solutions (PnP format) and snippets (topics, adaptive cards)
- contact-center/ — engagement hub integrations and playbook templates
- extensibility/ — A2A, MCP servers, M365 Agents SDK samples
- guides/ — implementation guide and hands-on workshop
- infrastructure/ — VNet support ARM templates
- sso/ — Entra ID, Okta, and Chat API authentication
- testing/ — functional (pytest) and load (JMeter) testing
- ui/custom-ui/ — standalone chat frontends (Assistant UI, DirectLine JS, reasoning display)
- ui/embed/ — platform embeds (ServiceNow, Power Apps PCF, SharePoint, minimizable widget)
- EmployeeSelfServiceAgent/ — Workday/facilities topics (pending deprecation)

New samples from upstream: account-contact-lookup, resume-job-finder,
directline-js, pcf-canvas-app, servicenow-widget. Solution zips
exploded into PnP structure with source code.

Unified README format across all folders.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add cross-references to M365 Agents SDK samples

Link related samples from microsoft/Agents repo in:
- extensibility/agents-sdk/ (copilotstudio-client, copilotstudio-skill, multiagent)
- ui/custom-ui/ (copilotstudio-webchat-react, copilotstudio-webclient)
- sso/ (obo-authorization)
- contact-center/ (GenesysHandoff)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Just the Docs site with search, nav, and GitHub Pages deployment

- Jekyll infrastructure: Gemfile, _config.yml, GitHub Actions workflow
- Front matter on all ~80 README.md files for 3-level sidebar navigation
- Client-side search via lunr.js (321 indexed entries)
- Callout config (note/tip/important/warning/caution) replacing GitHub alert syntax
- "Browse source on GitHub" button at top of each page
- Copilot Studio logo and favicon
- Normalized README casing, fixed internal links, Liquid escaping
- Exclude patterns for source code, binaries, and build artifacts
- Reorganized Contact Center nav (flat: Skill Handoff, Salesforce, ServiceNow)
- Moved engagement playbook to Guides
- Cross-reference tables (SSO page links to UI samples with auth)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add external sample pages, deprecation labels, and contributor instructions

- External nav pages: Genesys Handoff, Copilot Studio Client/Skill, Multi-Agent, WebChat React, Web Client
- Custom "View sample in M365 Agents SDK repo" button for external pages
- Deprecated labels on Chat API, Multilingual Bot, Relay Bot
- Contributor instructions in CLAUDE.md and .github/copilot-instructions.md
- Flattened Contact Center nav, moved Engagement Playbook to Guides

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Remove chat-api sample, add MIGRATION.md with old/new location mapping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix MIGRATION.md owners to original contributors

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Remove engagement playbook (outdated PVA content)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix owners for Multilingual Bot, Search Species, Pytest Agents SDK

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Point site at microsoft.github.io, trigger workflow on main

- _config.yml: url → microsoft.github.io, all links → microsoft/CopilotStudioSamples
- pages.yml: trigger on main instead of reorg/v1
- Updated CLAUDE.md, copilot-instructions.md, MIGRATION.md references

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix internal links pointing to old folder locations

- SharePoint Customizer: use relative links instead of absolute GitHub URLs
- Workshop/Proctor: update blob paths from CopilotStudioWorkshop/ to guides/workshop/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Order Management with Enhanced Task Completion sample (#1) (#492)

* Add samples browser link to resources table (#474)




* Fix SharePoint customizer and contact center folder structure (#476)

SharePoint: Replace deprecated SharePointSSOComponent with modern
SharePointSSOAppCustomizer at root level (was nested as subfolder).

Contact center: Move Salesforce and skill-handoff samples out of
servicenow/ into their own top-level folders. Flatten double-nested
ServiceNow/ServiceNow/ structure.




* Fix RelayBot: Upgrade .Net target and Remove Obsolete BotFramework Adapter. (#475)

* Upgrade .Net target and Remove Obsolete BotFramework Adapter.

* update newtonsoft version

* add missing tenant property in appsettings.json

* upgrade the program file with top level statements.

* update README.md for .net 10

* Update deprecated notice: clarify archived Bot Framework SDK, fix Copilot Studio naming



---------




* Add dynamic MCP routing sample

Demonstrates a Power Platform connector that routes MCP Streamable HTTP
traffic to one of several MCP server instances selected via dropdown.

Includes:
- Multi-instance MCP server with path-based routing
- Catalog REST server for instance discovery
- Connector with x-ms-agentic-protocol and script.csx URL rewriter
- One-step deploy scripts for bash and PowerShell




* Use Mermaid diagram and fix Copilot Studio instructions




* Fix Copilot Studio configuration instructions (#481)




* Improve deploy script: colored output, name conflict handling, fixed paths (#482)

- Numbered steps with colored status indicators
- Server logs redirected to /tmp/ for clean output
- Auto-retry with random suffix on connector name conflict
- Fix paths for sample directory structure (connector/ not mcp-connector/)
- Use built JS instead of ts-node
- Require environment ID as argument (no hardcoded default)




* Enable Mermaid diagram rendering in Jekyll site (#483)

Just the Docs theme supports Mermaid natively via config.
This enables ```mermaid code blocks to render as diagrams.




* Add ESS team as codeowners for EmployeeSelfServiceAgent (#490)

The @microsoft/ess-contributors team can now review and approve
PRs that only touch EmployeeSelfServiceAgent/ without requiring
repo maintainer review.




* Add Eval Gate for Azure DevOps sample (#491)

Copilot Studio Evaluation API as a CI/CD quality gate in Azure DevOps.
Pipeline automatically runs evals on PR push, blocks merge if pass rate
is below a configurable threshold, and publishes results to the ADO
Tests tab.

- eval-gate.mjs: standalone Node.js script (MSAL auth + PPAPI client)
- eval-gate.yml: ADO pipeline (self-hosted + hosted agent options)
- eval-config.json: environment config with pass threshold
- Screenshots: passing gate, failing gate, pipeline logs, tests tab




* Add Order Management MCP Demo with Enhanced Task Completion

End-to-end sample demonstrating Copilot Studio agents with Enhanced Task
Completion calling MCP servers for e-commerce order management and warehouse
fulfillment, with a Gradio chat UI that renders tool calls and reasoning inline.

Includes:
- Two Node.js MCP servers (order-management: 5 tools, warehouse: 4 tools)
- Power Platform connector definitions for both MCP servers
- Exported solution with both agents (Orders Agent + Warehouse Agent)
- Unpacked solution source for git-friendly review
- Gradio chat frontend with inline tool rendering, file upload/download
- Cross-platform scripts for setup, deployment, and connector management
- Demo CSV for file upload scenario



* Fix missing aiohttp dependency in chat-ui requirements

The microsoft-agents-copilotstudio-client package requires aiohttp
but doesn't declare it as a dependency.



* Auto-deploy connectors on start, add demo screenshot

- start.mjs now accepts --env flag to auto-deploy connectors after tunnels
  are ready (tries update first, falls back to create)
- Updated README quick start to reflect single-command workflow
- Added Gradio UI demo screenshot to assets



* Simplify deployment: update connector hosts via Custom Connectors UI

- Removed paconn dependency and auto-deploy logic from start.mjs
- Updated README step 4: users edit connector Host field in Power Apps UI
- Simplified start.mjs to just start servers + tunnels
- Tested end-to-end: solution import → connector update → Gradio UI → tool calls succeed



* Fix code review issues: token cache, debug logging, gitignore

- Fix LocalTokenCache to use MSAL's serialize()/deserialize() API
  instead of directly accessing _cache dict (prevents token corruption)
- Remove leftover debug request/response interception from warehouse server
- Add .gitignore files for chat-ui (secrets, venv) and MCP servers (node_modules, dist)



* Add app registration setup instructions to IMPORT.md

Step-by-step guide for creating the Entra ID app registration
needed by the Gradio chat UI's MSAL authentication.



* Replace ASCII architecture diagram with Mermaid



* Add Enhanced Task Completion context and experimental warning to README

Links to official Microsoft docs, explains what ETC is and how it differs
from standard generative orchestration, adds JTD warning callout.



* Fix IMPORT.md: add Jekyll front matter, update instructions

- Add Jekyll front matter so IMPORT.md renders as HTML (not raw markdown)
- Update import steps to match actual workflow (single solution zip)
- Fix README link to use stripped .md extension per Jekyll convention
- Add screenshot reference to README



* Polish Gradio UI design, restructure README and docs

- Redesign chat UI: dark header with teal ETC badge, Plus Jakarta Sans
  font, green-bordered tool accordions, refined message bubbles and
  markdown rendering
- Restructure README: rewrite What's Included as logical components
  (agents, MCP servers, chat UI, connectors), move architecture diagram
  to bottom, inline sample queries after Quick Start step 5
- Split IMPORT.md: move .env config and app registration to new
  SETUP.md, keep IMPORT.md focused on solution import + connections
- Fix IMPORT.md step numbering and add note about clean environment
  connection creation
- Update README step 2 to clarify connections must be created separately
- Update screenshot showing tool calls and reasoning in action



---------

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Vikram Singh <singhvikra@microsoft.com>

---------

Co-authored-by: adilei <adileibowiz@microsoft.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Vikram Singh <singhvikra@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant