Commit 2035462
Explicit EP Download & Per-EP Progress Reporting (#568)
Makes execution provider (EP) management explicit across all SDKs and
adds real-time per-EP download progress
reporting. Previously, EP downloads happened implicitly during catalog
access with no granular progress visibility.
Now callers explicitly discover, download, and monitor EPs with typed
APIs and streaming progress callbacks.
What's included
Explicit EP discovery and download (all SDKs)
- DiscoverEps() / discoverEps() / discover_eps() — returns typed EpInfo
with name and registration status
- DownloadAndRegisterEpsAsync() / downloadAndRegisterEps() /
download_and_register_eps() — downloads and registers
EPs, returns typed EpDownloadResult
- Catalog access no longer blocks on EP downloads
Per-EP progress callbacks (all SDKs)
- C#: DownloadAndRegisterEpsAsync(names, Action<string, double>
progressCallback, ct) — uses
ExecuteCommandWithCallbackAsync; parses wire format with
CultureInfo.InvariantCulture for locale safety
- JS: downloadAndRegisterEpsWithProgress(names?, progressCallback?) —
uses executeCommandStreaming
- Python: download_and_register_eps(names, progress_callback) — uses
execute_command_with_callback
- Rust: download_and_register_eps_with_progress(names, FnMut(&str, f64))
— parses "name|percent" wire format inside
the SDK
Live Audio Transcription (C#)
- New LiveAudioTranscriptionSession with real-time streaming over
WebSocket
- Supports start/stop/send audio chunks with configurable output types
- Unit tests with mocked CoreInterop
Other improvements
- Typed EpInfo / EpDownloadResult in dedicated type files across all
SDKs
- EP unit tests for JS and Python
- Removed implicit 6-hour catalog TTL caching (delegated to native core)
- New CoreInterop methods for callback-based command execution (C#)
- AOT-compatible JSON serialization context for EP types (C#)
Testing
- New unit tests for EP discovery/download in JS and Python
Breaking changes
- Catalog no longer implicitly triggers EP downloads — callers must
explicitly call DownloadAndRegisterEpsAsync /
downloadAndRegisterEps / download_and_register_eps before accessing
hardware-accelerated models.
---------
Co-authored-by: Baiju Meswani <bmeswani@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>1 parent 80211df commit 2035462
47 files changed
Lines changed: 1572 additions & 161 deletions
File tree
- samples
- cs
- audio-transcription-example
- foundry-local-web-server
- live-audio-transcription-example
- model-management-example
- native-chat-completions
- tool-calling-foundry-local-sdk
- tool-calling-foundry-local-web-server
- js/native-chat-completions
- sdk
- cs
- docs/api
- src
- Detail
- js
- docs
- classes
- examples
- src
- detail
- test
- python
- examples
- src
- test
- rust
- src
- www/src/routes/models
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 19 | + | |
| 20 | + | |
24 | 21 | | |
25 | 22 | | |
26 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
23 | 31 | | |
24 | 32 | | |
25 | 33 | | |
26 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
27 | 59 | | |
28 | 60 | | |
29 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
Lines changed: 2 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
| 24 | + | |
| 25 | + | |
29 | 26 | | |
30 | 27 | | |
31 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
17 | 46 | | |
18 | 47 | | |
19 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
52 | 55 | | |
53 | 56 | | |
54 | 57 | | |
55 | 58 | | |
56 | 59 | | |
57 | 60 | | |
58 | 61 | | |
59 | | - | |
| 62 | + | |
60 | 63 | | |
61 | | - | |
62 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
63 | 102 | | |
64 | 103 | | |
65 | | - | |
| 104 | + | |
66 | 105 | | |
67 | 106 | | |
68 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
9 | 13 | | |
10 | 14 | | |
11 | 15 | | |
| |||
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
25 | | - | |
26 | | - | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
| |||
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
0 commit comments