Open
Conversation
Co-authored-by: Prathik Rao <prathikrao@microsoft.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR consolidates “v1.0.0” cherry-picks across Python/JS/C# SDKs and samples, including API updates (streaming as async iteration, model variant selection via IModel), explicit Execution Provider (EP) management, packaging/versioning updates, and expanded multi-language tutorials.
Changes:
- Introduces Python SDK packaging scaffolding (pyproject + requirements), core types, logging helpers, and tests README.
- Updates JS SDK streaming APIs to return
AsyncIterable, adds EP types/APIs, and aligns examples/tests/docs accordingly. - Refactors C# SDK to use
IModelconsistently (variants + selection) and adds EP discovery/download types; adds/updates tutorial samples and CI workflow changes.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/python/test/README.md | Adds Python test-suite setup and execution guidance. |
| sdk/python/src/version.py | Adds Python SDK version constant. |
| sdk/python/src/openai/init.py | Exposes OpenAI-compatible Python clients. |
| sdk/python/src/logging_helper.py | Adds shared log-level mapping and logger severity setter. |
| sdk/python/src/exception.py | Defines SDK base exception type. |
| sdk/python/src/ep_types.py | Adds Pydantic models for EP discovery/download results. |
| sdk/python/src/detail/model_data_types.py | Adds Pydantic models for catalog/model metadata. |
| sdk/python/src/detail/init.py | Adds detail package init and re-exports. |
| sdk/python/src/init.py | Adds package exports and configures default logging. |
| sdk/python/requirements.txt | Adds Python runtime dependencies and native core pins. |
| sdk/python/requirements-winml.txt | Adds WinML-specific Python dependency pins. |
| sdk/python/requirements-dev.txt | Adds Python dev/test dependencies. |
| sdk/python/pyproject.toml | Adds Python packaging metadata, entrypoints, pytest config. |
| sdk/python/examples/chat_completion.py | Adds Python chat completion example. |
| sdk/python/LICENSE.txt | Adds Python package license file. |
| sdk/python/.gitignore | Adds Python SDK-specific ignore rules. |
| sdk/js/test/openai/responsesClient.test.ts | Updates tests to use IModel typing. |
| sdk/js/test/openai/chatClient.test.ts | Migrates streaming tests to async iteration; removes callback validation tests. |
| sdk/js/test/openai/audioClient.test.ts | Migrates streaming transcription tests to async iteration; removes callback validation tests. |
| sdk/js/test/model.test.ts | Fixes variant selection in tests using variant lookup. |
| sdk/js/test/foundryLocalManager.test.ts | Adds tests for EP download param behavior. |
| sdk/js/test/catalog.test.ts | Adds unit test for latest-version resolution using synthetic model data. |
| sdk/js/src/types.ts | Extends ModelInfo; adds EP type interfaces. |
| sdk/js/src/index.ts | Exposes Model/ModelVariant from detail as internal exports. |
| sdk/js/src/imodel.ts | Expands IModel surface (info + capabilities + variants + selection). |
| sdk/js/src/detail/modelVariant.ts | Updates imports; implements new IModel members for variant metadata. |
| sdk/js/src/detail/model.ts | Updates imports; adjusts variant selection & exposes new IModel members. |
| sdk/js/src/detail/coreInterop.ts | Changes streaming command return to Promise<string> with response payload. |
| sdk/js/script/pack.cjs | Adds packaging script to produce standard vs WinML npm tarballs. |
| sdk/js/script/install-winml.cjs | Adds WinML installer script for native artifacts. |
| sdk/js/script/install-standard.cjs | Adds standard installer script for native artifacts. |
| sdk/js/package.json | Renames package, bumps to 1.0.0, updates install/pack scripts and files list. |
| sdk/js/examples/tool-calling.ts | Updates streaming usage to async iteration. |
| sdk/js/examples/chat-completion.ts | Adds EP discovery/download and updates streaming example to async iteration. |
| sdk/js/examples/audio-transcription.ts | Updates streaming transcription example to async iteration. |
| sdk/js/docs/classes/ResponsesClientSettings.md | Updates generated docs package name and optional property markers. |
| sdk/js/docs/classes/ResponsesClient.md | Updates generated docs package name. |
| sdk/js/docs/classes/ModelLoadManager.md | Updates generated docs package name. |
| sdk/js/docs/classes/FoundryLocalManager.md | Documents new EP APIs and overloads. |
| sdk/js/docs/classes/ChatClientSettings.md | Updates generated docs package name and optional property markers. |
| sdk/js/docs/classes/ChatClient.md | Documents streaming API change to async iterable; adds examples. |
| sdk/js/docs/classes/AudioClientSettings.md | Updates generated docs package name and optional property markers. |
| sdk/js/docs/classes/AudioClient.md | Documents streaming API change to async iterable; adds examples. |
| sdk/js/.npmrc | Pins npm registry to Azure Artifacts feed for CI/packaging scenarios. |
| sdk/cs/test/FoundryLocal.Tests/appsettings.Test.json | Sets default test cache dir name to test-data-shared. |
| sdk/cs/test/FoundryLocal.Tests/Utils.cs | Reads cache dir from config and logs a critical error if missing. |
| sdk/cs/test/FoundryLocal.Tests/TestAssemblySetupCleanup.cs | Ensures cleanup checks manager initialization before unloading. |
| sdk/cs/test/FoundryLocal.Tests/ModelTests.cs | Removes obsolete test file (latest version behavior moved/changed). |
| sdk/cs/test/FoundryLocal.Tests/Microsoft.AI.Foundry.Local.Tests.csproj | Adjusts test project settings (WinAppSDK self-contained toggle). |
| sdk/cs/test/FoundryLocal.Tests/LOCAL_MODEL_TESTING.md | Updates local model testing instructions and path resolution rules. |
| sdk/cs/test/FoundryLocal.Tests/FoundryLocalManagerTest.cs | Updates selected-variant printing via model.Id. |
| sdk/cs/test/FoundryLocal.Tests/EndToEnd.cs | Uses catalog model + SelectVariant instead of constructing Model directly. |
| sdk/cs/test/FoundryLocal.Tests/ChatCompletionsTests.cs | Switches tests to IModel and uses variant directly. |
| sdk/cs/test/FoundryLocal.Tests/AudioClientTests.cs | Switches tests to IModel. |
| sdk/cs/src/Microsoft.AI.Foundry.Local.csproj | Moves to net9.0; updates WinML constants; bumps core versions to rc1. |
| sdk/cs/src/IModel.cs | Adds Info, Variants, SelectVariant to the public model interface. |
| sdk/cs/src/ICatalog.cs | Switches catalog APIs to IModel and adds GetLatestVersionAsync. |
| sdk/cs/src/FoundryModelInfo.cs | Adds new model metadata fields (context/modalities/capabilities). |
| sdk/cs/src/EpInfo.cs | Adds EP discovery/download result record types. |
| sdk/cs/src/Detail/ModelVariant.cs | Makes ModelVariant internal; implements Variants and throws on SelectVariant. |
| sdk/cs/src/Detail/Model.cs | Refactors variants to IModel; adds Info; updates variant selection behavior. |
| sdk/cs/src/Detail/JsonSerializationContext.cs | Adds EP types to source-generated JSON context. |
| sdk/cs/src/Detail/CoreInterop.cs | Adds WinML bootstrap param under IS_WINML. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.openaichatclient.md | Documents tool-aware chat completion overloads and streaming. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.openaiaudioclient.md | Documents live transcription session creation. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.modelinfo.md | Documents new metadata fields. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.model.md | Updates docs for IModel variants and Info; removes old latest-version method docs. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.imodel.md | Documents new Info, Variants, SelectVariant. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.epinfo.md | Adds EP discovery type docs. |
| sdk/cs/docs/api/microsoft.ai.foundry.local.epdownloadresult.md | Adds EP download result docs. |
| sdk/cs/docs/api/index.md | Adds EP types and OpenAI namespace entries; removes ModelVariant listing. |
| sdk/cs/README.md | Updates guidance for explicit EP management and IModel usage. |
| sdk/cs/NuGet.config | Removes nuget.org source (ORT feed only). |
| samples/rust/tutorial-voice-to-text/src/main.rs | Adds Rust voice-to-text tutorial sample. |
| samples/rust/tutorial-voice-to-text/Cargo.toml | Adds Rust voice-to-text tutorial crate. |
| samples/rust/tutorial-tool-calling/Cargo.toml | Adds Rust tool-calling tutorial crate. |
| samples/rust/tutorial-document-summarizer/Cargo.toml | Adds Rust document summarizer tutorial crate. |
| samples/rust/tutorial-chat-assistant/src/main.rs | Adds Rust chat assistant tutorial sample. |
| samples/rust/tutorial-chat-assistant/Cargo.toml | Adds Rust chat assistant tutorial crate. |
| samples/rust/tool-calling-foundry-local/src/main.rs | Adds snippet markers and organizes sections for docs/tutorial extraction. |
| samples/rust/native-chat-completions/src/main.rs | Adds snippet markers and organizes sections for docs/tutorial extraction. |
| samples/rust/foundry-local-webserver/src/main.rs | Adds snippet markers and organizes sections for docs/tutorial extraction. |
| samples/rust/audio-transcription-example/src/main.rs | Adjusts CLI arg behavior; adds snippet markers and sections. |
| samples/rust/Cargo.toml | Adds new tutorial crates to workspace. |
| samples/rust/.cargo/config.toml | Redirects crates-io to Azure Artifacts feed for compliance. |
| samples/python/web-server/src/app.py | Adds Python web-server sample using OpenAI SDK against local endpoint. |
| samples/python/web-server/requirements.txt | Adds sample dependencies. |
| samples/python/tutorial-voice-to-text/src/app.py | Adds Python voice-to-text tutorial sample. |
| samples/python/tutorial-voice-to-text/requirements.txt | Adds tutorial dependency list. |
| samples/python/tutorial-tool-calling/requirements.txt | Adds tutorial dependency list. |
| samples/python/tutorial-document-summarizer/src/app.py | Adds Python document summarizer tutorial sample. |
| samples/python/tutorial-document-summarizer/requirements.txt | Adds tutorial dependency list. |
| samples/python/tutorial-chat-assistant/src/app.py | Adds Python chat assistant tutorial sample. |
| samples/python/tutorial-chat-assistant/requirements.txt | Adds tutorial dependency list. |
| samples/python/tool-calling/requirements.txt | Adds sample dependency list. |
| samples/python/summarize/summarize.py | Removes legacy summarizer script. |
| samples/python/summarize/requirements.txt | Removes legacy summarizer deps. |
| samples/python/summarize/README.md | Removes legacy summarizer docs. |
| samples/python/summarize/.vscode/launch.json | Removes legacy VS Code debug config. |
| samples/python/native-chat-completions/src/app.py | Adds Python native chat completions sample. |
| samples/python/native-chat-completions/requirements.txt | Adds sample dependency list. |
| samples/python/langchain-integration/src/app.py | Adds Python LangChain integration sample against local endpoint. |
| samples/python/langchain-integration/requirements.txt | Adds LangChain + OpenAI deps for sample. |
| samples/python/hello-foundry-local/src/app.py | Removes legacy hello sample using older API. |
| samples/python/hello-foundry-local/README.md | Removes legacy hello sample docs. |
| samples/python/functioncalling/README.md | Removes legacy function-calling configuration doc. |
| samples/python/audio-transcription/src/app.py | Adds Python audio transcription sample. |
| samples/python/audio-transcription/requirements.txt | Adds sample dependency list. |
| samples/js/web-server-example/app.js | Adds snippet markers and sections for docs/tutorial extraction. |
| samples/js/tutorial-voice-to-text/package.json | Adds JS voice-to-text tutorial package manifest. |
| samples/js/tutorial-voice-to-text/app.js | Adds JS voice-to-text tutorial app. |
| samples/js/tutorial-tool-calling/package.json | Adds JS tool-calling tutorial package manifest. |
| samples/js/tutorial-document-summarizer/package.json | Adds JS document summarizer tutorial package manifest. |
| samples/js/tutorial-document-summarizer/app.js | Adds JS document summarizer tutorial app. |
| samples/js/tutorial-chat-assistant/package.json | Adds JS chat assistant tutorial package manifest. |
| samples/js/tutorial-chat-assistant/app.js | Adds JS chat assistant tutorial app. |
| samples/js/tool-calling-foundry-local/src/app.js | Adds snippet markers; aligns appName and organizes setup/cleanup sections. |
| samples/js/tool-calling-foundry-local/.npmrc | Pins npm registry to Azure Artifacts for sample environment. |
| samples/js/native-chat-completions/app.js | Adds EP discovery/download progress; updates streaming to async iteration; adds snippet markers. |
| samples/js/langchain-integration-example/app.js | Adds snippet markers and sections for docs/tutorial extraction. |
| samples/js/electron-chat-application/.npmrc | Pins npm registry to Azure Artifacts for sample environment. |
| samples/js/copilot-sdk-foundry-local/.npmrc | Pins npm registry to Azure Artifacts for sample environment. |
| samples/js/chat-and-audio-foundry-local/src/app.js | Aligns appName and updates streaming to async iteration. |
| samples/js/chat-and-audio-foundry-local/.npmrc | Pins npm registry to Azure Artifacts for sample environment. |
| samples/js/audio-transcription-example/app.js | Uses CLI arg for audio file; converts streaming to async iteration; adds snippet markers. |
| samples/cs/tutorial-voice-to-text/TutorialVoiceToText.sln | Adds C# voice-to-text tutorial solution. |
| samples/cs/tutorial-voice-to-text/TutorialVoiceToText.csproj | Adds unified cross-platform/WinML tutorial project file. |
| samples/cs/tutorial-voice-to-text/Program.cs | Adds voice-to-text tutorial program with streaming transcription + summarization. |
| samples/cs/tutorial-tool-calling/TutorialToolCalling.sln | Adds C# tool-calling tutorial solution. |
| samples/cs/tutorial-tool-calling/TutorialToolCalling.csproj | Adds unified cross-platform/WinML tutorial project file. |
| samples/cs/tutorial-document-summarizer/TutorialDocumentSummarizer.sln | Adds C# document summarizer tutorial solution. |
| samples/cs/tutorial-document-summarizer/TutorialDocumentSummarizer.csproj | Adds unified cross-platform/WinML tutorial project file. |
| samples/cs/tutorial-document-summarizer/Program.cs | Adds C# document summarizer tutorial program. |
| samples/cs/tutorial-chat-assistant/TutorialChatAssistant.sln | Adds C# chat assistant tutorial solution. |
| samples/cs/tutorial-chat-assistant/TutorialChatAssistant.csproj | Adds unified cross-platform/WinML tutorial project file. |
| samples/cs/tutorial-chat-assistant/Program.cs | Adds C# interactive chat assistant tutorial program. |
| samples/cs/tool-calling-foundry-local-web-server/ToolCallingFoundryLocalWebServer.sln | Adds C# web-server tool-calling sample solution. |
| samples/cs/tool-calling-foundry-local-web-server/ToolCallingFoundryLocalWebServer.csproj | Adds unified cross-platform/WinML sample project file. |
| samples/cs/tool-calling-foundry-local-web-server/Program.cs | Updates sample to new EP API and adds snippet markers. |
| samples/cs/tool-calling-foundry-local-sdk/ToolCallingFoundryLocalSdk.sln | Adds C# SDK tool-calling sample solution. |
| samples/cs/tool-calling-foundry-local-sdk/ToolCallingFoundryLocalSdk.csproj | Adds unified cross-platform/WinML sample project file. |
| samples/cs/tool-calling-foundry-local-sdk/Program.cs | Updates sample to new EP API and adds snippet markers. |
| samples/cs/nuget.config | Adds sample-scoped NuGet config with source mapping (nuget + ORT + local). |
| samples/cs/native-chat-completions/Program.cs | Updates sample for EP discovery/download progress; adds snippet markers. |
| samples/cs/native-chat-completions/NativeChatCompletions.sln | Adds C# native chat completions sample solution. |
| samples/cs/native-chat-completions/NativeChatCompletions.csproj | Adds unified cross-platform/WinML sample project file. |
| samples/cs/model-management-example/Program.cs | Updates sample for new EP API and IModel/variants selection semantics. |
| samples/cs/model-management-example/ModelManagementExample.sln | Adds C# model management sample solution. |
| samples/cs/model-management-example/ModelManagementExample.csproj | Adds unified cross-platform/WinML sample project file. |
| samples/cs/foundry-local-web-server/Program.cs | Updates sample for new EP API and adds snippet markers. |
| samples/cs/foundry-local-web-server/FoundryLocalWebServer.sln | Adds C# web server sample solution. |
| samples/cs/foundry-local-web-server/FoundryLocalWebServer.csproj | Adds unified cross-platform/WinML sample project file. |
| samples/cs/audio-transcription-example/Program.cs | Updates sample for new EP API, CLI arg audio file, adds snippet markers. |
| samples/cs/audio-transcription-example/AudioTranscriptionExample.sln | Adds C# audio transcription sample solution. |
| samples/cs/audio-transcription-example/AudioTranscriptionExample.csproj | Adds unified cross-platform/WinML sample project file; ensures audio asset copied. |
| samples/cs/README.md | Adds consolidated C# samples index and run instructions. |
| samples/cs/GettingStarted/windows/ToolCallingFoundryLocalWebServer/ToolCallingFoundryLocalWebServer.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/windows/ToolCallingFoundryLocalSdk/ToolCallingFoundryLocalSdk.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/windows/ModelManagementExample/ModelManagementExample.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/windows/HelloFoundryLocalSdk/HelloFoundryLocalSdk.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/windows/FoundryLocalWebServer/FoundryLocalWebServer.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/windows/AudioTranscriptionExample/AudioTranscriptionExample.csproj | Removes legacy platform-specific GettingStarted project. |
| samples/cs/GettingStarted/nuget.config | Removes legacy GettingStarted NuGet config. |
| samples/cs/GettingStarted/cross-platform/ToolCallingFoundryLocalWebServer/ToolCallingFoundryLocalWebServer.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/cross-platform/ToolCallingFoundryLocalSdk/ToolCallingFoundryLocalSdk.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/cross-platform/ModelManagementExample/ModelManagementExample.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/cross-platform/HelloFoundryLocalSdk/HelloFoundryLocalSdk.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/cross-platform/FoundryLocalWebServer/FoundryLocalWebServer.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/cross-platform/AudioTranscriptionExample/AudioTranscriptionExample.csproj | Removes legacy cross-platform GettingStarted project. |
| samples/cs/GettingStarted/README.md | Removes legacy GettingStarted README in favor of unified samples. |
| samples/cs/Directory.Packages.props | Bumps SDK package versions to 1.0.0-rc1 and adds shared dependency versions. |
| README.md | Updates root README examples to async-iter streaming transcription. |
| .github/workflows/foundry-local-sdk-build.yml | Switches CI to macOS builds and bumps version to 1.0.0.*. |
| .github/workflows/build-rust-steps.yml | Ensures CI uses crates.io (removes local redirect) and adds nightly feature flags. |
| .github/workflows/build-js-steps.yml | Removes CI reliance on Azure feed .npmrc and adds standard/winml pack scripts. |
| .github/workflows/build-cs-steps.yml | Generates temporary NuGet config with credentials; clears cache; restores using temp config. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
No description provided.