feat: complete Foundry azure.yaml unification (sibling targets, endpoint reuse)#8783
Conversation
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
e59e938
into
hui/foundry-agent-shape-migration
Summary
Draft PR completing the remaining gaps from the design spec
docs/specs/unify-azure-yaml/spec.md(#8590), assuming PRs #8675, #8777, and #8779are merged into the feature branch. It closes the major architectural gaps that were
still open after those three PRs.
Base:
huimiu/foundry-azure-yaml. This branch integrates #8779 (which contains#8675) and #8777 via merge commits, then builds the new work on top, so the diff
currently includes those PRs and will narrow to just the new commits as they merge
upstream.
What this closes (gap → design spec)
$refresolver + edit helper were trapped inazure.ai.agents/internal(not importable by siblings)ResolveFileRefs+ the$ref-aware YAML edit helper to corecli/azd/pkg/foundryso every Foundry extension can use themazure.ai.connectionhad no deploy-time service target (no-op shim)azure.ai.connectionsservice target: idempotent ARM CreateOrUpdate,${VAR}secret expansion (preserving${{...}})azure.ai.toolboxhad no deploy-time service target (no-op shim)azure.ai.toolboxesservice target: upserts a new toolbox version, resolves namedconnectionrefs to project connection IDs, publishes the MCP endpointazure.ai.projecthost owned by the agents no-op shimazure.ai.projectsnow owns the host with a light target (project + deployments are provisioned by built-in Bicep)endpoint:brownfield reuse was rejectedmicrosoft.foundryprovider now skips provisioning and connects to the existing project;azd downleaves bring-your-own projects in placeservice_target_resource.golisten.gopostprovision into theazure.ai.toolboxdeploy targetinput${VAR}not expandedazd deployexpands${VAR}in a routine'saction.input, preserving${{...}}Validation
go build ./...green across corepkg/foundry,azure.ai.agents,azure.ai.connections,azure.ai.toolboxes,azure.ai.projects,azure.ai.routines,azure.ai.skills.go testgreen for the new/changed packages (connection/toolbox/routine targets, brownfield provider, foundry resolver).golangci-lintclean on all new files;gofmtandcspellclean.Notes / temporary
pkg/foundryhelpers carries atemporary
replace github.com/azure/azure-dev/cli/azd => ../../(matching theexisting pattern in
azure.ai.agents/go.mod). These must be removed and theazddependency bumped once the core change lands.
Deferred to follow-up (documented, not in this draft)
$refincludes (agent-ref-includes) and agent toolbox/skill referenceresolution inside the agent
Deploy(§2.6): need the project-root plumbing thespec flags in §2.4 (the gRPC
ServiceConfigcarries the service path, not theproject root).
agent.manifest.yamlmigration detection (§1.5): the config-nested and on-diskagent.yamlshapes are already handled; manifest detection needs the manifestreshape.
instructionstemplating sweep: the skill target loads instruction filesbut does not yet run them through
foundry.ExpandEnv.listen.gostill carries a few toolbox helper functions now exercisedonly by tests, pending a follow-up cleanup.