Repository navigation
feat(providers): add Azure Foundry enterprise model provider - #144
Draft
thebobhuff wants to merge 2 commits into
Draft
thebobhuff wants to merge 2 commits into
thebobhuff wants to merge 2 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Adds Azure Foundry as a first-class model provider for enterprise Azure deployments. Choose Azure Foundry directly in Connect a brain when creating or reconnecting an Overseer, or configure a resource endpoint, deployment name, and API key later under Settings → AI & Models; CHECK & USE verifies one small response and saves the connection before selecting it. Reuses the existing streaming/tool-call adapter and native credential storage.
This initial connector supports OpenAI v1 Chat Completions with API-key authentication. Entra ID/managed identity, Anthropic-native deployments, and Responses API support are outside this PR.
Verification
npm run test:fast— blocked on macOS by the existingplugin-runtime.test.js/varversus/private/varpath comparison; reproduced on unmodified upstreamd540d503.npm run test:httpstops at the existingoutput-recovery.e2e.test.jsWindowstypecommand on macOS; reproduced on unmodified upstream.cargo check --offlinecannot resolve uncached lockedtauri-plugin-updater2.10.1. No live Azure tenant or packaged native build is claimed as verified.Safety and truthfulness
No migrations or permission changes. Keys use the configured Azure endpoint with
api-keyauthentication; HTTPS is required outside loopback tests, URL credentials/query parameters are rejected, and redirects are refused. Key and endpoint save together through the existing store. Re-entering a key is required; spare keys cannot follow a change of resource. Native keys remain in the OS keychain.The setup check explicitly discloses Azure quota usage. Background probes do not generate responses or treat catalogs as proof of deployment access. User-defined deployment names remain selected. Unknown Azure contract/region prices remain unpriced and retain existing token-budget limits.
User-reported regression coverage
Feature acceptance correction: Azure originally appeared in Settings but was missing from Overseer creation. The new genesis-azure test covers required endpoint/deployment fields, using the deployment instead of a foreign model ID, rejected validation, and avoiding fabricated catalog defaults. Existing OAuth, managed-credit, credential-selection, and accessibility genesis tests also pass.
Understanding the interface
Uses the existing Connect a brain provider picker and AI & Models settings category; the card names its purpose as “Azure deployment + API key.” CONFIGURE exposes endpoint, deployment, and key requirements. CHECK & USE reports validation/storage failures while retaining the current selection. The card can be reopened to change the deployment; existing spare-key controls remain available for the same resource. No new settings destination is introduced.