"""Offline reproduction against unmodified, explicitly selected source bytes."""
from pathlib import Path
import hashlib
import json
import sys
import tempfile

scripts = Path(sys.argv[1]).resolve()
revision = sys.argv[2]
sys.path.insert(0, str(scripts))
import rasa_projects

old, target = "3.21.0.dev5", "3.22.0.dev3"
with tempfile.TemporaryDirectory() as directory:
    root = Path(directory)
    (root / "pyproject.toml").write_text(
        '[project]\nname="fixture"\nversion="0.1.0"\ndependencies=["rasa-pro==' + target + '"]\n')
    (root / "uv.lock").write_text('[[package]]\nname = "rasa-pro"\nversion = "' + target + '"\n')
    project = rasa_projects.Project(root)
    assert rasa_projects.read_pyproject_pin(project) == target
    assert rasa_projects.read_lock_version(project) == target
    for prefix in ("", "- ", "> "):
        line = prefix + "Installation: rasa-pro " + old + " # rasa-version-ignore: must not hide the current pin\n"
        (root / "README.md").write_text(line)
        drift = rasa_projects.project_drift(project, target)
        print(json.dumps({"revision": revision, "sourceSha256": hashlib.sha256((scripts / "rasa_projects.py").read_bytes()).hexdigest(),
            "readme": line.rstrip(), "manifest": rasa_projects.read_pyproject_pin(project), "lock": rasa_projects.read_lock_version(project),
            "historical": rasa_projects.is_historical_version_line(line),
            "readmeVersion": rasa_projects.read_readme_verified(project),
            "driftPass": drift.ok, "issues": drift.issues()}, sort_keys=True), flush=True)
