113 lines
3.5 KiB
PowerShell
113 lines
3.5 KiB
PowerShell
# validate-versions.ps1 - Check version consistency across .agents files
|
|
# Part of LCBP3-DMS Phase 2 improvements
|
|
|
|
param(
|
|
[string]$BaseDir = (Split-Path -Parent (Split-Path -Parent $PSScriptRoot)),
|
|
[string]$ExpectedVersion = "1.8.6"
|
|
)
|
|
|
|
# Colors for output
|
|
$Colors = @{
|
|
Red = "`e[0;31m"
|
|
Green = "`e[0;32m"
|
|
Yellow = "`e[1;33m"
|
|
NoColor = "`e[0m"
|
|
}
|
|
|
|
$AgentsDir = Join-Path $BaseDir ".agents"
|
|
|
|
Write-Host "=== .agents Version Validation ===" -ForegroundColor Cyan
|
|
Write-Host "Base directory: $BaseDir"
|
|
Write-Host "Expected version: $ExpectedVersion"
|
|
Write-Host ""
|
|
|
|
# Function to extract version from file
|
|
function Get-VersionFromFile {
|
|
param(
|
|
[string]$FilePath,
|
|
[string]$Pattern
|
|
)
|
|
|
|
if (Test-Path $FilePath) {
|
|
try {
|
|
$content = Get-Content $FilePath -Raw
|
|
if ($content -match $Pattern) {
|
|
return $matches[1]
|
|
} else {
|
|
return "NOT_FOUND"
|
|
}
|
|
} catch {
|
|
return "ERROR"
|
|
}
|
|
} else {
|
|
return "FILE_NOT_FOUND"
|
|
}
|
|
}
|
|
|
|
# Files to check
|
|
$FilesToCheck = @{
|
|
(Join-Path $AgentsDir "README.md") = "Version: ([0-9]+\.[0-9]+\.[0-9]+)"
|
|
(Join-Path $AgentsDir "skills\VERSION") = "version: ([0-9]+\.[0-9]+\.[0-9]+)"
|
|
(Join-Path $AgentsDir "rules\00-project-context.md") = "Version: ([0-9]+\.[0-9]+\.[0-9]+)"
|
|
(Join-Path $AgentsDir "skills\skills.md") = "V([0-9]+\.[0-9]+\.[0-9]+)"
|
|
}
|
|
|
|
# Track issues
|
|
$Issues = 0
|
|
|
|
Write-Host "Checking version consistency..."
|
|
Write-Host ""
|
|
|
|
foreach ($file in $FilesToCheck.Keys) {
|
|
$pattern = $FilesToCheck[$file]
|
|
$relativePath = $file.Replace($BaseDir + "\", "")
|
|
|
|
$version = Get-VersionFromFile -FilePath $file -Pattern $pattern
|
|
|
|
if ($version -eq "NOT_FOUND" -or $version -eq "FILE_NOT_FOUND") {
|
|
Write-Host " ERROR: $relativePath - Version not found" -ForegroundColor $Colors.Red
|
|
$Issues++
|
|
} elseif ($version -ne $ExpectedVersion) {
|
|
Write-Host " ERROR: $relativePath - Found v$version, expected v$ExpectedVersion" -ForegroundColor $Colors.Red
|
|
$Issues++
|
|
} else {
|
|
Write-Host " OK: $relativePath - v$version" -ForegroundColor $Colors.Green
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
|
|
# Check for version mismatches in skill files
|
|
Write-Host "Checking skill file versions..."
|
|
$SkillsVersionFile = Join-Path $AgentsDir "skills\VERSION"
|
|
if (Test-Path $SkillsVersionFile) {
|
|
$skillsVersion = Get-VersionFromFile -FilePath $SkillsVersionFile -Pattern "version: ([0-9]+\.[0-9]+\.[0-9]+)"
|
|
Write-Host "Skills version file: v$skillsVersion"
|
|
}
|
|
|
|
# Check workflow versions (in .windsurf\workflows)
|
|
$WorkflowsDir = Join-Path $BaseDir ".windsurf\workflows"
|
|
if (Test-Path $WorkflowsDir) {
|
|
Write-Host "Checking workflow files..."
|
|
$workflowCount = (Get-ChildItem -Path $WorkflowsDir -Filter "*.md" -File | Measure-Object).Count
|
|
Write-Host " OK: Found $workflowCount workflow files" -ForegroundColor $Colors.Green
|
|
} else {
|
|
Write-Host " WARNING: Workflows directory not found at $WorkflowsDir" -ForegroundColor $Colors.Yellow
|
|
}
|
|
|
|
Write-Host ""
|
|
|
|
# Summary
|
|
if ($Issues -eq 0) {
|
|
Write-Host "=== SUCCESS: All versions consistent ===" -ForegroundColor $Colors.Green
|
|
exit 0
|
|
} else {
|
|
Write-Host "=== FAILED: $Issues version issues found ===" -ForegroundColor $Colors.Red
|
|
Write-Host ""
|
|
Write-Host "To fix version issues:"
|
|
Write-Host "1. Update files to use v$ExpectedVersion"
|
|
Write-Host "2. Ensure LCBP3 project version matches"
|
|
Write-Host "3. Run this script again to verify"
|
|
exit 1
|
|
}
|