# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json # # Fase 4d. The four open choices were closed against the two authoritative JSON schemas # (docs/2026-08-13-fase4-azure-yaml-valg.md), not against Learn prose: # # * `language: docker`, NO `codeConfiguration` โ€” codeConfiguration is ZIP-source mode, # and the git-pinned dependencies need our own Dockerfile (git in the base image). # * `protocols` pinned to invocations 2.0.0, stated outright: the header contract in # spike ยง1.5 (x-agent-user-id / x-agent-foundry-call-id, gateway allowlist) is a # 2.0.0 property, and 1.0.0 is deprecated with a blocking deadline. # * `project` is REQUIRED for host azure.ai.agent (the $ref'd azure.ai.agent.json); # `config:` is deprecated there and not used. # * NO `env:` block, deliberately: FOUNDRY_PROJECT_ENDPOINT must never be redeclared # (it would risk shadowing the platform's injected value โ€” spike pkt. 2), and model # selection is config (the packaged data/model_map.json, override via # PORTFOLIO_MODEL_MAP), not environment variables. # * NO `startupCommand`, deliberately: the image's CMD (Dockerfile) is the ONE copy of # the start command โ€” a second copy here could drift from it. name: portfolio-optimiser services: portfolio-optimiser: host: azure.ai.agent kind: hosted project: . language: docker protocols: - protocol: invocations version: "2.0.0"