-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Howie/release 2.7.0 #49028
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+57,808
−21,722
Merged
Howie/release 2.7.0 #49028
Changes from all commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
a72aeef
Update version
dargilco 0c5bd80
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco ef83c08
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 166052b
Restore tsp-location.yaml
dargilco b15ba3d
Update emitter skill for Python to deal with prerequisites (#47878)
dargilco deb805e
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung cf8829f
change log (#47916)
howieleung 64783d8
[azure-ai-projects] Emit SDK from TypeSpec (commit fca510e0) (#47914)
dargilco eae0318
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco f6a0197
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 939b4c3
Fix TypeSpec paths (#47959)
dargilco 51dbaa7
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung 747ce0b
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco f2e1cab
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco ae7422f
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 4cad88f
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 1de6714
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 73ca2c6
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco 8932768
Remove sample_agent_toolbox_skill.py per bakcned folks and Linda requ…
howieleung 02145d9
Re-emit from latest TypeSpec and do required updates (#48216)
dargilco a33bfb2
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco ca0aae3
Re-emit, to remove WebIQ tools (#48240)
dargilco 0d65d14
update report
dargilco 695e62b
Updates in prep for a release of 2.4.0 (#48248)
dargilco ae8d605
Update rename tsp-location.yaml, so it does not break release build
dargilco 350e355
change log (#48246)
howieleung d68f0da
Add sample toolboxes for synchronous and asynchronous AIProjectClient…
howieleung 2ffb388
Comment out additional sample tests in TestSamples class
howieleung 9714db0
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco f169f24
Update to version 2.5.0
dargilco 9f0123f
Howie/sample 35 (#48310)
howieleung 6cb3f2d
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco e01f89b
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung b4d7c19
change log (#48427)
howieleung 1fe6479
Custom LRO pollers to enable easy access to Job ID (#48468)
dargilco dffe468
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco ce59ab0
Re-emit from latest TypeSpec commit (8-10-2026 17:16) (#48526)
dargilco 347077e
update api.md files
dargilco 779facb
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
dargilco c52a855
Update public methods report. Delete other old report
dargilco 973b21f
Howie/reemit (#48608)
howieleung 1b38b61
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
howieleung 87f300c
Update CHANGELOG.md to include new A2A tools and breaking changes (#4…
howieleung d447ed2
fix: add missing newline at end of emitter-package.json and emitter-p…
howieleung 92de5eb
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung d7631a4
Remove deprecated multi-agent workflow samples and update evaluation …
howieleung 5546775
main -> vnext (#48897)
howieleung e2c626c
Remove unused RaiInvocation classes and invocations_moderation from R…
howieleung e003f75
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung c713f57
Merge branch 'main' into feature/azure-ai-projects/vnext
howieleung 133a702
Update public methods documentation to reflect new methods and change…
howieleung 4b336a5
fix doc gen
howieleung 2d9f1e7
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
howieleung 5920738
Fix pylint
howieleung de019d4
re-emit
howieleung 3dde3a8
fix recording
howieleung fa742ac
revert
howieleung ad84b1b
Refactor beta operations and update public methods (#49003)
howieleung d5d87df
Merge remote-tracking branch 'origin/main' into feature/azure-ai-proj…
howieleung 2905e2a
Refactor Azure AI Projects SDK: Remove Realtime Voice Agent Operation…
howieleung bb593b2
Release
howieleung c074195
New emitter hasn't released to fix etag emitting. This postscript d…
howieleung 4899c6e
Update public methods documentation and tsp-location.yaml commit refe…
howieleung 9027877
Merge remote-tracking branch 'origin/feature/azure-ai-projects/vnext'…
howieleung 3522185
[azure-ai-projects] Add Voice Agents realtime client, samples, and te…
xitzhang f7d64f6
Merge branch 'feature/azure-ai-projects/vnext' into howie/release-2.7.0
howieleung c93a47d
Update CHANGELOG for release 2.7.0, adding new features, breaking cha…
howieleung 0099e6e
Refactor sample_voice_agent_generate.py documentation for clarity and…
howieleung 2709faa
Fix date format in CHANGELOG and update sample_voice_agent_basic.py d…
howieleung a0985ef
Refactor constructors in BetaRealtime and AsyncBetaRealtime to accept…
howieleung a8942e0
Address Copilot review feedback on voice-agent samples/tests
f81b04c
Use delete_version instead of delete for temp agent cleanup
805ef88
Support agent-name-only mode in read-conversation samples
3f5ba45
Revert "Support agent-name-only mode in read-conversation samples"
2742ddb
Revert "Use delete_version instead of delete for temp agent cleanup"
d556c13
Revert "Address Copilot review feedback on voice-agent samples/tests"
2715afc
Update CrossLanguageVersion and fix import statement in _operations.p…
howieleung 39b087f
Address Copilot review feedback on voice-agent samples/tests (#49065)
xitzhang 26b5948
Merge branch 'howie/release-2.7.0' of https://github.com/Azure/azure-…
howieleung 1f2235b
Update documentation to reflect synchronous AIProjectClient
howieleung dda8f6c
Merge branch 'howie/release-2.7.0' of https://github.com/Azure/azure-…
howieleung 26a6d74
Refactor voice agent sample scripts to track and delete specific agen…
howieleung 6cc7623
Add GitHub Copilot and Skills preview features to agent operation hea…
howieleung 09a03e2
Fix read-conversation samples deleting user's real agent in agent-onl…
xitzhang 1743fc4
Refactor match_condition parameter to be required in telephony operat…
howieleung 8ae969d
changelog
glharper d1c71bc
changelog
glharper File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
123 changes: 123 additions & 0 deletions
123
...ure-ai-projects/.github/skills/azure-ai-projects-model-reference-graph/SKILL.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,123 @@ | ||
| --- | ||
| name: azure-ai-projects-model-reference-graph | ||
| description: 'Generate and analyze the azure-ai-projects model reference graph from models/_models.py through model references, inheritance, runtime ownership, and public operation methods. WHEN: find which operations use a model; trace model dependencies; generate model-reference-graph.json; generate model-reference-trees.txt; investigate unused or orphaned generated models; assess whether a TypeSpec model may be removable. DO NOT USE FOR: deleting generated models automatically; packages other than azure-ai-projects. INVOKES: GenerateModelReferenceGraph.ps1, Python JSON validation, git diff checks.' | ||
| argument-hint: 'Optionally provide a model name to inspect after generating the graph' | ||
| --- | ||
|
|
||
| # Generate the azure-ai-projects model reference graph | ||
|
|
||
| Run this workflow from `sdk\ai\azure-ai-projects`. | ||
|
|
||
| ## 1. Check prerequisites | ||
|
|
||
| Confirm the package root and required files: | ||
|
|
||
| ```powershell | ||
| git rev-parse --show-prefix | ||
| Test-Path .\.github\skills\azure-ai-projects-model-reference-graph\scripts\GenerateModelReferenceGraph.ps1 | ||
| Test-Path .\azure\ai\projects\models\_models.py | ||
| ``` | ||
|
|
||
| The Git prefix must be `sdk/ai/azure-ai-projects/`. Stop and report the missing prerequisite if either file does not exist. | ||
|
|
||
| Prefer the active virtual environment's Python. Use `.\.venv\Scripts\python.exe` when it exists; otherwise use `python`. | ||
|
|
||
| ## 2. Generate the graph | ||
|
|
||
| ```powershell | ||
| .\.github\skills\azure-ai-projects-model-reference-graph\scripts\GenerateModelReferenceGraph.ps1 ` | ||
| -PythonExecutable .\.venv\Scripts\python.exe | ||
| ``` | ||
|
|
||
| The script produces: | ||
|
|
||
| - `model-reference-graph.json`: structured data keyed by every class in `_models.py`. | ||
| - `model-reference-trees.txt`: readable reverse-reference trees rooted at every model. | ||
|
|
||
| Do not edit generated artifacts manually. Rerun the script after SDK emission or model changes. | ||
|
|
||
| ## 3. Interpret the graph | ||
|
|
||
| For each model, follow children toward public operations: | ||
|
|
||
| ```text | ||
| ChildModel | ||
| `- BaseModel [base class] | ||
| `- RequestOrResponseModel | ||
| `- SomeOperations.method [operation] | ||
| ``` | ||
|
|
||
| Edge and marker meanings: | ||
|
|
||
| - An unmarked model child directly references its parent through a field, annotation, decorator, or other model declaration. | ||
| - `[base class]` traverses from a derived model to its base type. | ||
| - `[derived class]` traverses from a base model to a derived type. | ||
| - `[operation]` is a public sync/async-deduplicated operation method. | ||
| - `[cycle]` stops a circular model relationship. | ||
| - `[already expanded]` identifies a shared branch already rendered under the same root. | ||
|
|
||
| The JSON entry additionally contains direct and indirect model referrers, bases, derived models, operation references, paths, public-export status, and non-operation references. | ||
|
|
||
| Some runtime ownership is not expressible through Python method annotations. The generator maintains an explicit, reviewed ownership table for WebSocket protocol messages, custom polling results, and flattened request bodies. Do not add a mapping based only on similar names. Verify the owning endpoint, handwritten patch, protocol documentation, or generated method implementation first. | ||
|
|
||
| ## 4. Inspect a requested model | ||
|
|
||
| When the user supplies a model name, report: | ||
|
|
||
| 1. Its base and derived models. | ||
| 2. Models that reference it directly and indirectly. | ||
| 3. Every public operation it reaches, distinguishing direct references from inherited or transitive paths. | ||
| 4. At least one representative path from the operation to the requested model. | ||
| 5. Non-operation references from patches, tests, or samples. | ||
|
|
||
| Use PowerShell for a focused JSON lookup: | ||
|
|
||
| ```powershell | ||
| $graph = Get-Content .\model-reference-graph.json -Raw | ConvertFrom-Json -AsHashtable | ||
| $graph.models['<ModelName>'] | ConvertTo-Json -Depth 10 | ||
| ``` | ||
|
|
||
| ## 5. Validate generated artifacts | ||
|
|
||
| Run all checks after generation: | ||
|
|
||
| ```powershell | ||
| $tokens = $null | ||
| $errors = $null | ||
| [System.Management.Automation.Language.Parser]::ParseFile( | ||
| (Resolve-Path '.\.github\skills\azure-ai-projects-model-reference-graph\scripts\GenerateModelReferenceGraph.ps1'), | ||
| [ref]$tokens, | ||
| [ref]$errors | ||
| ) | Out-Null | ||
| if ($errors.Count) { throw ($errors.Message -join [Environment]::NewLine) } | ||
|
|
||
| python -m json.tool .\model-reference-graph.json > $null | ||
| git diff --check -- .\.github\skills\azure-ai-projects-model-reference-graph\scripts\GenerateModelReferenceGraph.ps1 .\model-reference-graph.json .\model-reference-trees.txt | ||
| ``` | ||
|
|
||
| Also verify the summary against the structured graph: | ||
|
|
||
| ```powershell | ||
| $graph = Get-Content .\model-reference-graph.json -Raw | ConvertFrom-Json -AsHashtable | ||
| $withoutOperations = @($graph.models.GetEnumerator() | Where-Object { $_.Value.pathsToOperations.Count -eq 0 }) | ||
| if ($withoutOperations.Count -ne $graph.metadata.modelsWithoutOperationPaths) { | ||
| throw 'The tree summary does not match the structured graph.' | ||
| } | ||
| ``` | ||
|
|
||
| ## 6. Apply removal safeguards | ||
|
|
||
| Operation reachability is not proof that a model is safe or unsafe to remove. Before proposing removal, verify all of the following: | ||
|
|
||
| - Public export status in `models/__init__.py`. | ||
| - References from `_patch.py`, `_unions.py`, samples, and tests. | ||
| - Base classes, derived classes, and discriminator registration. | ||
| - Runtime protocol roles such as WebSocket events and LRO polling bodies. | ||
| - The corresponding TypeSpec declaration and all TypeSpec references. | ||
| - API review impact after regenerating the SDK. | ||
|
|
||
| Never delete generated classes directly from `_models.py`. Remove or correct the TypeSpec source, regenerate the SDK, rerun this skill, and run package validation. | ||
|
|
||
| ## 7. Report results | ||
|
|
||
| Report the model count, models with and without operation paths, requested model paths, explicit runtime ownership mappings used, and validation results. Clearly label static-analysis limitations and any model requiring TypeSpec or runtime review. | ||
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.