$path = Join-Path (Split-Path (Split-Path $PSScriptRoot -Parent) -Parent) "requirements.txt"
$lines = @(
'setuptools>=69.0.0'
'wheel>=0.42.0'
'aiofiles==23.2.1'
'alembic==1.12.1'
'amqp==5.3.1'
'annotated-types==0.7.0'
'anyio==3.7.1'
'bcrypt==4.3.0'
'billiard==4.2.1'
'black==23.11.0'
'celery==5.3.4'
'certifi==2025.8.3'
'cffi==1.17.1'
'charset-normalizer==3.4.3'
'click==8.2.1'
'click-didyoumean==0.3.1'
'click-plugins==1.1.1.2'
'click-repl==0.3.0'
'colorama==0.4.6'
'cryptography==45.0.6'
'ecdsa==0.19.1'
'et_xmlfile==2.0.0'
'fastapi==0.104.1'
'flake8==6.1.0'
'greenlet==3.2.3'
'h11==0.16.0'
'httpcore==1.0.9'
'httptools==0.6.4'
'httpx==0.25.2'
'idna==3.10'
'iniconfig==2.1.0'
'Jinja2==3.1.2'
'kombu==5.5.4'
'Mako==1.3.10'
'MarkupSafe==3.0.2'
'mccabe==0.7.0'
'mypy==1.7.1'
'mypy_extensions==1.1.0'
'numpy==1.26.4'
'openpyxl==3.1.2'
'packaging==25.0'
'pandas==2.2.3'
'passlib==1.7.4'
'pathspec==0.12.1'
'Pillow==10.1.0'
'platformdirs==4.3.8'
'pluggy==1.6.0'
'prometheus_client==0.20.0'
'prompt_toolkit==3.0.51'
'psutil==7.1.0'
'psycopg2-binary==2.9.9'
'pyasn1==0.6.1'
'pycodestyle==2.11.1'
'pycparser==2.22'
'pydantic==2.11.7'
'pydantic-settings==2.10.1'
'pydantic_core==2.33.2'
'pyflakes==3.1.0'
'Pygments==2.19.2'
'pytest==7.4.3'
'pytest-asyncio==0.21.1'
'python-dateutil==2.9.0.post0'
'python-dotenv==1.0.0'
'python-jose==3.3.0'
'python-multipart==0.0.6'
'pytz==2025.2'
'PyYAML==6.0.2'
'redis==5.0.1'
'reportlab==4.0.7'
'requests==2.32.5'
'rsa==4.9.1'
'six==1.17.0'
'sniffio==1.3.1'
'SQLAlchemy==2.0.23'
'starlette==0.27.0'
'typing-inspection==0.4.1'
'typing_extensions==4.14.1'
'tzdata==2025.2'
'urllib3==2.5.0'
'uvicorn==0.24.0'
'vine==5.1.0'
'watchfiles==1.1.0'
'wcwidth==0.2.13'
'websockets==15.0.1'
'groq>=0.11.0'
)
$utf8 = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText($path, ($lines -join "`n") + "`n", $utf8)
Write-Host "Wrote UTF-8 requirements.txt ($((Get-Item $path).Length) bytes)"
