Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 26 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,46 +27,50 @@ The following SDK package versions are used across the samples in this repositor

| Package | Version |
|---------|---------|
| `@microsoft/agents-activity` | `1.2.2` |
| `@microsoft/agents-hosting` | `1.2.2` |
| `@microsoft/agents-activity` | `1.2.3` |
| `@microsoft/agents-hosting` | `1.2.3` |
| `Microsoft.Agents.AI` | `1.0.0-preview.251113.1` |
| `Microsoft.Agents.Authentication.Msal` | `1.3.*-*` |
| `Microsoft.Agents.Hosting.AspNetCore` | `1.3.*-*` |
| `Microsoft.Agents.Authentication.Msal` | `1.3.176` |
| `Microsoft.Agents.Hosting.AspNetCore` | `1.3.176` |
| `microsoft-agents-activity` | `0.7.0` |
| `microsoft-agents-authentication-msal` | `0.7.0` |
| `microsoft-agents-hosting-aiohttp` | `0.7.0` |
| `microsoft-agents-hosting-core` | `0.7.0` |

### Microsoft Agent 365 SDK Packages

#### Python
| Package | Version |
|---------|---------|
| `microsoft_agents_a365_notifications` | `0.1.0` |
| `microsoft_agents_a365_observability_core` | `0.1.0` |
| `microsoft_agents_a365_observability_extensions_openai` | `0.1.0` |
| `microsoft_agents_a365_runtime` | `0.1.0` |
Comment thread
abdulanu0 marked this conversation as resolved.
Outdated
| `microsoft_agents_a365_tooling` | `0.1.0` |
| `microsoft_agents_a365_tooling_extensions_openai` | `0.1.0` |
| `microsoft-agents-a365-observability-core` | `0.1.0` |
| `microsoft-agents-a365-notifications` | `0.2.1.dev10` |
| `microsoft-agents-a365-observability-core` | `0.2.1.dev10` |
| `microsoft-agents-a365-observability-extensions-openai` | `0.2.1.dev10` |
| `microsoft-agents-a365-observability-hosting` | `0.2.0` |
| `microsoft-agents-a365-tooling` | `0.1.0` |
| `microsoft-agents-a365-runtime` | `0.2.1.dev10` |
| `microsoft-agents-a365-tooling` | `0.2.1.dev10` |
| `microsoft-agents-a365-tooling-extensions-openai` | `0.2.1.dev10` |

#### Node.js
| Package | Version |
|---------|---------|
| `@microsoft/agents-a365-notifications` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-observability` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-observability-extensions-openai` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-observability-hosting` | `0.1.0-preview.64` |
| `@microsoft/agents-a365-runtime` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-tooling` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-tooling-extensions-langchain` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-tooling-extensions-openai` | `0.1.0-preview.30` |
| `@microsoft/agents-a365-notifications` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-observability` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-observability-extensions-openai` | `0.1.0-preview.89` |
| `@microsoft/agents-a365-observability-hosting` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-runtime` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-tooling` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-tooling-extensions-langchain` | `0.1.0-preview.95` |
| `@microsoft/agents-a365-tooling-extensions-openai` | `0.1.0-preview.89` |

#### .NET
| Package | Version |
|---------|---------|
| `Microsoft.Agents.A365.Notifications` | `*-beta.*` |
| `Microsoft.Agents.A365.Observability.Extensions.AgentFramework` | `*-beta.*` |
| `Microsoft.Agents.A365.Tooling.Extensions.AgentFramework` | `*-beta.*` |
| `Microsoft.Agents.A365.Tooling.Extensions.SemanticKernel` | `*-beta.*` |
| `Microsoft.Agents.A365.Notifications` | `0.1.72-beta` |
| `Microsoft.Agents.A365.Observability.Extensions.AgentFramework` | `0.1.72-beta` |
| `Microsoft.Agents.A365.Tooling.Extensions.AgentFramework` | `0.1.72-beta` |
| `Microsoft.Agents.A365.Tooling.Extensions.SemanticKernel` | `0.1.72-beta` |

<!-- SDK_VERSIONS_END -->

Expand Down
175 changes: 145 additions & 30 deletions scripts/Update-ReadmeVersions.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -45,28 +45,61 @@ function Get-PythonVersions {
$pyprojectPath = Join-Path $Path "pyproject.toml"

if (Test-Path $pyprojectPath) {
$content = Get-Content $pyprojectPath -Raw

# Extract microsoft-agents packages
$pattern = '(microsoft[-_]agents[-_][a-zA-Z0-9_-]+)\s*[>=<~^]*\s*"?([0-9]+\.[0-9]+\.[0-9]+[^"]*)"?'
$matches = [regex]::Matches($content, $pattern)

foreach ($match in $matches) {
$pkgName = $match.Groups[1].Value
$version = $match.Groups[2].Value -replace '[",\s]', ''
$versions[$pkgName] = $version
# Try to get actual installed versions using uv pip list
Push-Location $Path
try {
# Sync dependencies first to ensure we have the latest
$syncResult = uv sync --quiet 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host " Note: uv sync returned exit code $LASTEXITCODE" -ForegroundColor Gray
}

$pipListJson = uv pip list --format=json 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host " Note: uv pip list returned exit code $LASTEXITCODE" -ForegroundColor Gray
$pipListJson = $null
}
if ($pipListJson) {
$packages = $pipListJson | ConvertFrom-Json
foreach ($pkg in $packages) {
if ($pkg.name -like 'microsoft-agents-*' -or $pkg.name -like 'microsoft_agents_*') {
$versions[$pkg.name] = $pkg.version
}
}
}
}
catch {
Write-Host " Warning: Could not get installed versions, falling back to pyproject.toml" -ForegroundColor Yellow
}
finally {
Pop-Location
}

# Try alternate pattern for dependencies section
$depsPattern = '"(microsoft[-_]agents[-_][a-zA-Z0-9_-]+)[>=<~^]*([0-9]+\.[0-9]+\.[0-9]+[^"]*)"'
$depsMatches = [regex]::Matches($content, $depsPattern)

foreach ($match in $depsMatches) {
$pkgName = $match.Groups[1].Value
$version = $match.Groups[2].Value -replace '[",\s]', ''
if (-not $versions.ContainsKey($pkgName)) {
# Fallback to parsing pyproject.toml if uv failed
if ($versions.Count -eq 0) {
$content = Get-Content $pyprojectPath -Raw

# Extract microsoft-agents packages
$pattern = '(microsoft[-_]agents[-_][a-zA-Z0-9_-]+)\s*[>=<~^]*\s*"?([0-9]+\.[0-9]+\.[0-9]+[^"]*)"?'
$matches = [regex]::Matches($content, $pattern)

foreach ($match in $matches) {
$pkgName = $match.Groups[1].Value
$version = $match.Groups[2].Value -replace '[",\s]', ''
$versions[$pkgName] = $version
}

# Try alternate pattern for dependencies section
$depsPattern = '"(microsoft[-_]agents[-_][a-zA-Z0-9_-]+)[>=<~^]*([0-9]+\.[0-9]+\.[0-9]+[^"]*)"'
$depsMatches = [regex]::Matches($content, $depsPattern)

foreach ($match in $depsMatches) {
$pkgName = $match.Groups[1].Value
$version = $match.Groups[2].Value -replace '[",\s]', ''
if (-not $versions.ContainsKey($pkgName)) {
$versions[$pkgName] = $version
}
}
}
}

Expand All @@ -80,6 +113,7 @@ function Get-NodejsVersions {
$packageJsonPath = Join-Path $Path "package.json"

if (Test-Path $packageJsonPath) {
# Read package.json first (before Push-Location)
$packageJson = Get-Content $packageJsonPath -Raw | ConvertFrom-Json

$allDeps = @{}
Expand All @@ -96,13 +130,53 @@ function Get-NodejsVersions {
}
}

foreach ($dep in $allDeps.GetEnumerator()) {
if ($dep.Key -like '@microsoft/agents*') {
# Clean version string (remove ^, ~, etc.)
$version = $dep.Value -replace '[\^~>=<]', ''
$versions[$dep.Key] = $version
# Try to get actual installed versions from node_modules
Push-Location $Path
try {
# Install dependencies first
$npmResult = npm install --silent 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host " Note: npm install returned exit code $LASTEXITCODE" -ForegroundColor Gray
}

$nodeModulesPath = "node_modules"

foreach ($dep in $allDeps.GetEnumerator()) {
if ($dep.Key -like '@microsoft/agents*') {
# Try to get actual installed version from node_modules
$pkgPathParts = $dep.Key -split '/'
$pkgPath = $nodeModulesPath
foreach ($part in $pkgPathParts) {
$pkgPath = Join-Path $pkgPath $part
}
$installedPkgJsonPath = Join-Path $pkgPath "package.json"

if (Test-Path $installedPkgJsonPath) {
$installedPkgJson = Get-Content $installedPkgJsonPath -Raw | ConvertFrom-Json
$versions[$dep.Key] = $installedPkgJson.version
}
else {
# Fallback to declared version
$version = $dep.Value -replace '[\^~>=<]', ''
$versions[$dep.Key] = $version
}
}
}
}
catch {
Write-Host " Warning: Could not get installed versions, falling back to package.json" -ForegroundColor Yellow

# Fallback to declared versions
foreach ($dep in $allDeps.GetEnumerator()) {
if ($dep.Key -like '@microsoft/agents*') {
$version = $dep.Value -replace '[\^~>=<]', ''
$versions[$dep.Key] = $version
}
}
}
finally {
Pop-Location
}
}

return $versions
Expand All @@ -115,15 +189,56 @@ function Get-DotnetVersions {
$csprojFiles = Get-ChildItem -Path $Path -Filter "*.csproj" -ErrorAction SilentlyContinue

foreach ($csproj in $csprojFiles) {
[xml]$xml = Get-Content $csproj.FullName
# Try to get resolved versions using dotnet list package
Push-Location $Path
try {
# Restore first to ensure we have resolved versions
$restoreResult = dotnet restore --verbosity quiet 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host " Note: dotnet restore returned exit code $LASTEXITCODE" -ForegroundColor Gray
}

$packageListJson = dotnet list package --format json 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host " Note: dotnet list package returned exit code $LASTEXITCODE" -ForegroundColor Gray
$packageListJson = $null
}
if ($packageListJson) {
$packages = $packageListJson | ConvertFrom-Json

if ($packages -and $packages.projects) {
foreach ($project in $packages.projects) {
foreach ($framework in $project.frameworks) {
foreach ($pkg in $framework.topLevelPackages) {
if ($pkg.id -like 'Microsoft.Agents*') {
# Use resolvedVersion (actual installed version) not requestedVersion (wildcard)
$versions[$pkg.id] = $pkg.resolvedVersion
}
}
}
}
}
}
}
catch {
Write-Host " Warning: Could not get resolved versions, falling back to csproj" -ForegroundColor Yellow
}
finally {
Pop-Location
}

$packageRefs = $xml.SelectNodes("//PackageReference")
foreach ($pkg in $packageRefs) {
$pkgName = $pkg.GetAttribute("Include")
$pkgVersion = $pkg.GetAttribute("Version")
# Fallback to reading csproj directly if dotnet list failed
if ($versions.Count -eq 0) {
[xml]$xml = Get-Content $csproj.FullName

if ($pkgName -like 'Microsoft.Agents*') {
$versions[$pkgName] = $pkgVersion
$packageRefs = $xml.SelectNodes("//PackageReference")
foreach ($pkg in $packageRefs) {
$pkgName = $pkg.GetAttribute("Include")
$pkgVersion = $pkg.GetAttribute("Version")

if ($pkgName -like 'Microsoft.Agents*') {
$versions[$pkgName] = $pkgVersion
}
}
}
}
Expand Down
Loading