Skip to content

Latest commit

 

History

History
314 lines (220 loc) · 17.9 KB

README.md

File metadata and controls

314 lines (220 loc) · 17.9 KB

ESS ADK — One-Shot Installer

A single command that installs everything needed for the ESS Maker Kit: VS Code, Python 3.12, Git, GitHub CLI, the .NET runtime, NuGet, Copilot extensions, pip dependencies, and clones the repo.

Windows (PowerShell):

iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap.ps1)

macOS (Terminal):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-mac.sh)"

Once complete, the installer asks in the terminal which experience you want — Maker (guided rail layout — recommended) or Developer (default VS Code view with the rendered README). Under a non-interactive shell (CI, piped input) the installer silently picks Maker. VS Code then opens at solutions/ess-maker-skills/. When you're ready, run /setup in Copilot Chat — in Maker mode, follow the Getting started walkthrough — to connect the workspace to an existing editable DA Dev agent. /setup is not run automatically in either mode. Review the workspace trust prompt before accepting it, then follow the purpose-specific sign-in guidance below.

GitHub Copilot subscription is required for the in-editor maker experience. This script installs the toolchain and extension scaffolding; it does not grant the Copilot entitlement.

Authentication prompts

The full Maker and Developer experiences use two independent authentication stages:

  1. GitHub Copilot sign-in activates Copilot Chat, the interface where you run /setup and the other ESS maker commands. Sign in with a GitHub account that has an active GitHub Copilot entitlement. This sign-in does not grant access to Power Platform.
  2. Power Platform sign-in authorizes the kit to discover environments and agents and to call the required Microsoft services. When /setup opens a browser, sign in with the Microsoft work account that can access the target Power Platform environment and agent.

You may see more than one Microsoft account-selection or consent window because setup and FlightCheck call multiple Microsoft services. These prompts are separate from GitHub Copilot authentication.

Cloning the public repository and installing VS Code do not normally require GitHub authentication. A private fork or branch may require GitHub or GitHub CLI authentication, and Codespaces requires a GitHub account because it is a GitHub-hosted service.

FlightCheck-only mode does not require VS Code, GitHub, or GitHub Copilot. It still opens the Microsoft sign-in required to inspect the selected Power Platform environment and its services.

Maker Mode (Guided Rail Layout) and Developer Mode

The one-shot installer (bootstrap.ps1 / bootstrap-mac.sh) asks you to choose between Maker and Developer in the terminal before VS Code launches, so mode selection is a one-line choice from the main installer — no separate command needed. Maker was previously called "Lite" and Developer was previously called "Standard"; the old names still work for pinned scripts and previously-installed users.

For scripts and docs that need to pin the choice up front (bypassing the terminal prompt), mode-specific shortcuts are available:

Windows (PowerShell):

# Maker mode (guided rail)
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-lite.ps1)

# Developer mode (default VS Code layout)
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-dev.ps1)

macOS (Terminal):

# Maker mode (guided rail)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-lite-mac.sh)"

# Developer mode (default VS Code layout)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-dev-mac.sh)"

bootstrap-lite.ps1 / bootstrap-lite-mac.sh are kept at their original URLs for back-compat with existing docs and links, and now pin Maker mode (the renamed Lite mode).

Maker mode is the same install as Developer mode plus the ESS Maker Profile extension applying:

  • A guided layout: a focused activity-bar rail with the walkthrough and chat, developer surfaces tucked away
  • A Customization rail listing common tasks (Customize landing page, Create a topic, Update a topic, Scan for issues, Run a flightcheck, Generate tests, Push to Copilot Studio)
  • A built-in Getting started walkthrough explaining each step

Run /setup yourself in Copilot Chat when you're ready — it isn't triggered automatically. You can restore the default VS Code layout at any time with ESS Maker: Restore Developer Layout from the Command Palette.

GitHub Codespaces (no local install)

Free tier available: GitHub accounts include 120 core-hours/month of free Codespaces usage (60 hours on a 2-core machine). Compute is only billed while the Codespace is running — it stops automatically after 30 minutes of inactivity. For organizational accounts, your admin may need to enable Codespaces — see managing Codespaces for your organization.

For users who prefer a cloud-based development environment — no local toolchain or VS Code desktop install required. Just a browser and a GitHub account:

👉 Create Codespace

The Codespace comes pre-configured with Python 3.12, pip dependencies, and GitHub Copilot. Select the 2-core machine type (sufficient for the maker kit). Once it starts:

  1. Open the solutions/ess-maker-skills folder (File → Open Folder → /workspaces/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills)
  2. Run /setup in Copilot Chat to connect an existing editable DA Dev agent

FlightCheck via Codespaces

The same Codespace environment can be used to run FlightCheck without the full maker kit setup. After creating the Codespace above:

  1. Open the solutions/ess-maker-skills folder (File → Open Folder → /workspaces/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills)
  2. Open a terminal and run:
    python scripts/flightcheck/cli.py --scope full --no-open
    --no-open skips the auto-launch of the HTML report (Codespaces can't open a local file:// URL in your browser). Open the saved workspace/flightcheck/report.html manually from the file explorer instead.
  3. Follow the prompts to sign in and select your environment

FlightCheck-Only Mode

Run FlightCheck without coding tools or VS Code. The Windows standalone installer checks a selected Declarative Agent (DA), using the same setup diagnostics and report as /flightcheck in a configured DA workspace. It does not run legacy/custom-engine or environment-only checks.

Windows (PowerShell):

iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1)

That's it. The script handles everything automatically:

  1. Installs Python and Git (if not already present)
  2. Accepts your DA's Copilot Studio URL, or offers environment and native-agent selection
  3. Opens sign-in for the Microsoft work account that can access that agent
  4. Verifies the exact selected agent and saves its standalone configuration
  5. Runs the full DA setup diagnostics and opens the report

Dataverse and completed foundation setup are not required. Checks needing unavailable evidence explain what remains unverified. Local-file checks need an agent workspace; the installer does not export a Dataverse solution.

macOS retains its existing standalone discovery workflow:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck-mac.sh)"

For DA diagnostics on macOS, use the direct command below from an already configured DA workspace.

Changing your environment or agent

Re-run the same Windows command and select the intended DA. Older environment-only/legacy standalone configurations are replaced only after the new target is verified. Existing maker-workspace configurations are not overwritten; use /flightcheck there or choose a separate -InstallRoot.

iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1)

Targeting a non-prod ring

The FlightCheck-only installer targets the Power Platform prod service ring by default (where customer environments live). To validate a preprod or test environment, pass -Ring / --ring. A supplied Copilot Studio URL must match that ring:

Windows (PowerShell):

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1))) -Ring preprod

macOS (Terminal):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck-mac.sh)" _ --ring preprod

Accepted values: prod, preprod, test.

Running FlightCheck again (after initial setup)

Once you've run the installer once, you can re-run FlightCheck directly without going through setup again. The HTML report opens in your default browser when the run finishes — pass --no-open to skip (useful for CI / headless / SSH sessions).

Windows:

cd $env:USERPROFILE\source\Employee-Self-Service-Agent-Developer-Kit\solutions\ess-maker-skills
python scripts/flightcheck/cli.py --scope full

macOS:

cd ~/source/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills
../../.venv/bin/python scripts/flightcheck/cli.py --scope full

Files

File Purpose
Install-EssAdk.ps1 Windows orchestrator. Installs toolchain via winget, pip dependencies, clones repo, installs extensions, launches VS Code. With -FlightCheckOnly, installs minimal toolchain and runs FlightCheck.
install-ess-adk.sh macOS orchestrator. Same as above but uses Homebrew. Set FLIGHTCHECK_ONLY=true for FlightCheck-only mode.
bootstrap.ps1 Windows one-liner entry point (asks Maker vs Developer in the terminal before VS Code launches).
bootstrap-lite.ps1 Windows one-liner entry point (Maker mode - guided rail layout; previously named "Lite").
bootstrap-dev.ps1 Windows one-liner entry point (Developer mode - default VS Code layout; previously named "Standard").
bootstrap-flightcheck.ps1 Windows one-liner entry point (FlightCheck only).
bootstrap-mac.sh macOS one-liner entry point (asks Maker vs Developer in the terminal before VS Code launches).
bootstrap-lite-mac.sh macOS one-liner entry point (Maker mode - guided rail layout; previously named "Lite").
bootstrap-dev-mac.sh macOS one-liner entry point (Developer mode - default VS Code layout; previously named "Standard").
bootstrap-flightcheck-mac.sh macOS one-liner entry point (FlightCheck only).
ess-adk-setup.winget.yaml Declarative DSC config consumed by winget configure (optional Windows path).
telemetry/install-telemetry.ps1 Installer telemetry emitter (PowerShell). Fail-open; emits install start/step/completion to Aria/1DS.
telemetry/install-telemetry.sh Installer telemetry emitter (bash) — macOS/Linux mirror of the PowerShell emitter.
.devcontainer/devcontainer.json Codespace configuration. Pre-installs Python 3.12, pip dependencies, and Copilot extensions.

Installer telemetry. The installers emit pseudonymous setup-reliability telemetry (install start / per-step / success-failure-cancelled completion, with the installer variant, platform, failing step and a scrubbed error category) natively from PowerShell/bash, because they run before Python exists. It is fail-open — a telemetry issue never affects the install — and honors the unified opt-out (ESS_ADK_TELEMETRY=off, or python scripts/adk_telemetry.py off). The bootstraps download the emitter into their temp dir and pass its path via ESS_INSTALL_TELEMETRY_LIB; if it can't be fetched, the install proceeds with no-op stubs. See the ADK "Telemetry & Privacy" section for the full data model.

Dependencies

The installer provisions the following dependencies. Users do not need to install these manually — the one-shot installer or Codespace handles everything.

System tools (installed via winget on Windows / Homebrew on macOS)

Tool Version Purpose FlightCheck only?
Python 3.12 Runtime for FlightCheck and maker scripts ✅
Git Latest Clone the repo, version control ✅
GitHub CLI (gh) Latest Device-code auth flow for private repo clone ❌
VS Code Latest Editor and Copilot host ❌
PowerShell 7 Latest Script execution (Windows only) ❌
.NET runtime 10 Runtime for Microsoft Object Model serialization ❌
NuGet Latest available Retrieves Microsoft Object Model packages using configured package sources ❌

Python packages (installed via pip from scripts/requirements.txt)

Package Purpose
msal Microsoft Authentication Library — Entra ID auth for FlightCheck
requests HTTP client for Dataverse / Graph API calls
urllib3 HTTP transport layer (requests dependency, pinned)
httpx Async HTTP client for the AgentConfiguration API
mcp MCP server runtime for landing-page configuration tools and widgets
PyYAML YAML parsing for topic schema validation
defusedxml Safe XML parsing for Workday SOAP responses (XXE-hardened)
pythonnet Loads the Microsoft Object Model serializer in Python (full install only)

VS Code extensions

Extension Purpose
GitHub.copilot GitHub Copilot AI completions
GitHub.copilot-chat Copilot Chat — the primary maker interface
ms-python.python Python language support, linting, debugging

Codespaces environment

The devcontainer provides an equivalent pre-built environment:

  • Base image: mcr.microsoft.com/devcontainers/python:3.12 (includes Python, git, common dev tools)
  • Python packages: Installed from scripts/requirements.txt via postCreateCommand
  • VS Code extensions: Copilot, Copilot Chat, Python (specified in customizations.vscode.extensions)
  • Additional features: GitHub CLI (via devcontainer features)
  • Additional runtime: .NET 10, Mono, and NuGet for Microsoft Object Model serialization

Microsoft Object Model packages

The full installer retrieves the exact Microsoft Object Model package versions required by the kit. NuGet uses the standard machine, user, and repository configuration hierarchy, including enterprise feeds, credentials, proxies, and package-source mappings.

If the runtime, NuGet, or Object Model packages cannot be installed, setup warns and continues. Object Model serialization remains unavailable until the reported dependency is installed and the package installer below is rerun.

To use a specific NuGet configuration, set ESS_ADK_NUGET_CONFIG before running the installer. To use one package source or an offline package directory, set ESS_ADK_NUGET_SOURCE instead.

For an existing clone, install the packages directly:

python solutions\ess-maker-skills\scripts\install_agentbuilder_object_model.py

How to test it locally

Windows

From this folder:

# Run the full installer end-to-end:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallRoot $env:USERPROFILE\source-test

Useful flags during testing:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipExtensions      # skip code --install-extension calls
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipClone           # skip git clone (toolchain only)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipLaunch          # don't open VS Code at the end
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -FlightCheckOnly     # minimal install for FlightCheck only
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallMode maker     # pin Maker mode (guided rail)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallMode developer # pin Developer mode (default VS Code layout)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipMakerProfile      # legacy alias: coerced to Developer mode

For air-gapped / locked-down environments, IT can mirror the files internally and serve them from an intranet URL by passing -SourceBaseUrl.

macOS

From this folder:

# Full installer (asks Maker or Developer in the terminal before VS Code launches):
bash install-ess-adk.sh

# Pin Maker mode (guided rail layout):
INSTALL_MODE=maker bash install-ess-adk.sh

# Pin Developer mode (default VS Code layout):
INSTALL_MODE=developer bash install-ess-adk.sh

# Legacy alias (still accepted; coerced to INSTALL_MODE=developer):
SKIP_MAKER_PROFILE=true bash install-ess-adk.sh

# FlightCheck only:
FLIGHTCHECK_ONLY=true bash install-ess-adk.sh

# Custom install location:
ESS_ADK_INSTALL_ROOT=~/projects bash install-ess-adk.sh

# Test against a branch:
ESS_ADK_BRANCH=my-feature bash install-ess-adk.sh

For air-gapped environments, set ESS_ADK_SOURCE_URL in the bootstrap scripts to point at your internal mirror.