mirror of
https://github.com/razzant/ouroboros.git
synced 2026-08-04 16:19:50 +00:00
Branch `ouroboros` was seeded from an `.app` bundle snapshot
(`6700358 Initial commit from app bundle`), not from `main`, so the
release pipeline (build scripts, PyInstaller spec, launcher runtime,
vendored Python framework, CI workflow) never landed on this branch.
Import those files verbatim from `origin/main` (76bf13c) so a tagged
push can trigger the existing tag-driven release pipeline.
Imported verbatim from `origin/main`:
- .github/workflows/ci.yml Three-tier CI (push -> quick
tests, stable/tag -> full matrix,
v* tag -> build + GitHub Release
with `prerelease: contains(...,
-rc|-alpha|-beta)`).
- build.sh / build_linux.sh / PyInstaller + Playwright Chromium
build_windows.ps1 / Dockerfile bundling for each target (the four
files `tests/test_build_scripts.py`
assertively requires).
- Ouroboros.spec PyInstaller entry spec.
- entitlements.plist macOS codesign entitlements.
- launcher.py Native launcher that bootstraps
the embedded python-standalone
interpreter and runs the agent as
a subprocess.
- scripts/download_python_standalone.sh / .ps1 / pyi_rth_pythonnet.py
- Python, Python.framework/ Vendored macOS launcher-side
Python 3.10 framework.
- certifi/, jsonschema/, Marker + data files consumed by
jsonschema_specifications/ the runtime-loaded agent deps.
Adapted for Phase 1-6:
- Ouroboros.spec datas now contains ('skills', 'skills') so the
bundled Phase 5 weather reference skill under `skills/weather/`
actually ships inside the .app / .exe / tarball. Without this the
Skills page on a packaged build would show "no skills discovered"
even with the bundled reference in source. Docstring updated to
document the new bundled payload.
Verification:
- `pytest tests/test_build_scripts.py tests/test_release_sync.py`
passes locally (47 asserts; all Playwright + PyInstaller ordering
invariants + release-sync carrier logic hold after the import).
- `python -c "import ast; ast.parse(open('Ouroboros.spec').read())"`
parses.
Not imported from main (intentional):
- `.pytest-tmp-run`, pytest-cache dirs, and other transient files.
- No existing file was overwritten by the checkout; the import is
purely additive on top of the Phase 1-6 tree.
47 lines
1.6 KiB
PowerShell
47 lines
1.6 KiB
PowerShell
# Downloads python-build-standalone for Windows (x86_64)
|
|
# Run from repo root: powershell -ExecutionPolicy Bypass -File scripts/download_python_standalone.ps1
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$Release = "20260211"
|
|
$PyVersion = "3.10.19"
|
|
$Dest = "python-standalone"
|
|
$Platform = "x86_64-pc-windows-msvc"
|
|
|
|
$Filename = "cpython-${PyVersion}+${Release}-${Platform}-install_only_stripped.tar.gz"
|
|
$Url = "https://github.com/astral-sh/python-build-standalone/releases/download/${Release}/${Filename}"
|
|
|
|
Write-Host "=== Downloading Python ${PyVersion} for ${Platform} ==="
|
|
Write-Host "URL: ${Url}"
|
|
|
|
if (Test-Path $Dest) { Remove-Item -Recurse -Force $Dest }
|
|
if (Test-Path "_python_tmp") { Remove-Item -Recurse -Force "_python_tmp" }
|
|
New-Item -ItemType Directory -Path "_python_tmp" | Out-Null
|
|
|
|
$ArchivePath = "_python_tmp\python.tar.gz"
|
|
Write-Host "Downloading..."
|
|
Invoke-WebRequest -Uri $Url -OutFile $ArchivePath -UseBasicParsing
|
|
|
|
Write-Host "Extracting..."
|
|
tar -xzf $ArchivePath -C "_python_tmp"
|
|
|
|
Move-Item "_python_tmp\python" $Dest
|
|
Remove-Item -Recurse -Force "_python_tmp"
|
|
|
|
echo ""
|
|
Write-Host "=== Installing agent dependencies ==="
|
|
& "${Dest}\python.exe" -m pip install --quiet -r requirements.txt
|
|
|
|
echo ""
|
|
Write-Host "=== Installing optional: local model support ==="
|
|
try {
|
|
& "${Dest}\python.exe" -m pip install --quiet "llama-cpp-python[server]" 2>&1
|
|
Write-Host "llama-cpp-python installed successfully"
|
|
} catch {
|
|
Write-Warning "llama-cpp-python install failed - local model support will not be available"
|
|
}
|
|
|
|
echo ""
|
|
Write-Host "=== Done ==="
|
|
Write-Host "Python: ${Dest}\python.exe"
|
|
& "${Dest}\python.exe" --version
|