Adds Microsoft Foundry model provider support to Apus.

Distribution

Surface

Requirements

Chat models

Microsoft Foundry chat deployments use the provider model ref microsoft-foundry/<deployment-name>. Onboarding discovers Foundry resources and deployments with the Azure CLI, then writes the selected deployment name to the model config.

Apus uses the Foundry /openai/v1 endpoint for supported OpenAI-compatible chat APIs:

Anthropic Claude deployments in Microsoft Foundry use the Anthropic Messages API shape, not the OpenAI-compatible /openai/v1 shape. Configure those as a custom anthropic-messages provider until the Microsoft Foundry plugin grows a native Anthropic runtime. When the Foundry deployment name differs from the Claude model ID, set params.canonicalModelId on the model entry so Apus can apply model-specific wire contracts, map /think off correctly, and preserve signed thinking safely.

MAI image generation

The plugin registers microsoft-foundry for image_generate with the current Microsoft AI image models:

Use a deployed MAI image deployment name as the model ref. The provider does not declare a default image model because the MAI API requires your deployment name in the request model field:

{
  agents: {
    defaults: {
      mediaModels: {
        image: {
          primary: "microsoft-foundry/<deployment-name>",
          timeoutMs: 600000,
        },
      },
    },
  },
}

Prompt-only generation calls Microsoft Foundry's MAI generations endpoint: /mai/v1/images/generations. Reference-image edits call /mai/v1/images/edits and are limited to MAI-Image-2.5-Flash and MAI-Image-2.5 deployments.

Prompt-only generation can use a custom deployment name with just the Foundry endpoint configured. For image edits with a custom deployment name, select the deployment through onboarding or include model metadata so Apus can verify that the deployment is backed by MAI-Image-2.5-Flash or MAI-Image-2.5.

MAI image constraints:

Troubleshooting