Fixes #710 This PR implements comprehensive Azure OpenAI integration for Dyad, enabling users to leverage Azure OpenAI models through proper environment variable configuration. The implementation adds Azure as a supported provider with full integration into the existing language model architecture, including support for GPT-5 models. Key features include environment-based configuration using `AZURE_API_KEY` and `AZURE_RESOURCE_NAME`, specialized UI components that provide clear setup instructions and status indicators, and seamless integration with Dyad's existing provider system. The Azure provider leverages the @ai-sdk/azure package (v1.3.25) for compatibility with the current TypeScript language model interfaces. The implementation includes robust error handling for missing configuration, comprehensive test coverage with 9 new unit tests covering critical functionality like model client creation and error scenarios, and an E2E test for the Azure-specific settings UI. <img width="1510" height="908" alt="Screenshot 2025-08-18 at 9 14 32 PM" src="https://github.com/user-attachments/assets/04aa99e1-1590-4bb0-86c9-a67b97bc7500" /> --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> Co-authored-by: Will Chen <willchen90@gmail.com>
21 lines
735 B
TypeScript
21 lines
735 B
TypeScript
import { testSkipIfWindows } from "./helpers/test_helper";
|
|
|
|
// Set environment variables before the test runs to enable Azure testing
|
|
process.env.TEST_AZURE_BASE_URL = "http://localhost:3500/azure";
|
|
process.env.AZURE_API_KEY = "fake-azure-key-for-testing";
|
|
process.env.AZURE_RESOURCE_NAME = "fake-resource-for-testing";
|
|
|
|
testSkipIfWindows("send message through Azure OpenAI", async ({ po }) => {
|
|
// Set up Azure without test provider
|
|
await po.setUpAzure();
|
|
|
|
// Select Azure model
|
|
await po.selectTestAzureModel();
|
|
|
|
// Send a test prompt that returns a normal conversational response
|
|
await po.sendPrompt("tc=basic");
|
|
|
|
// Verify we get a response (this means Azure integration is working)
|
|
await po.snapshotMessages();
|
|
});
|