#!/usr/bin/env python3
"""Collect only credential-free transcripts, wrappers, and metadata."""
from pathlib import Path
import json,shutil,yaml,hashlib
root=Path('/tmp/lead-27840-r1/capture')
runs={
 'R6a-before':'20261103T035342676294-before-two-host-modern',
 'R6a-after':'20261103T035342724089-after-two-host-modern',
 'R6b-before':'20261103T035149085979-before-signed-in-modern',
 'R6b-after':'20261103T035149175342-after-signed-in-modern',
}
manifest=[]
for label,name in runs.items():
    run=root/name;argv=(run/'argv.log').read_text()
    shutil.copyfile(run/'argv.log',root/(label+'-argv.txt'))
    shutil.copyfile(run/'bin/glab',root/(label+'-wrapper.sh'))
    auth=[line for line in argv.splitlines() if line.startswith('auth ')]
    expected=['auth status','auth status --all'] if label=='R6a-after' else ['auth status']
    assert auth==expected,(label,auth,expected)
    manifest.append(dict(label=label,**json.loads((run/'fixture.json').read_text()),auth=auth))
for name in ['two-host','signed-out','signed-in']:
    d=yaml.safe_load((root/name/'glab/config.yml').read_text())
    for host in d.get('hosts',{}).values():
        for key in list(host):
            if 'token' in key:host[key]='REDACTED'
    (root/(name+'-glab-config-REDACTED.yml')).write_text(yaml.safe_dump(d))
manifest.append({'oldGlabTarball':'https://gitlab.com/gitlab-org/cli/-/releases/v1.78.0/downloads/glab_1.78.0_linux_amd64.tar.gz','oldGlabTarballSha256':hashlib.sha256((root/'glab-1.78.0.tar.gz').read_bytes()).hexdigest()})
(root/'run-manifest.json').write_text(json.dumps(manifest,indent=2))
print('All R6 argv expectations satisfied; support files contain no raw config.')
