#!/usr/bin/env python3
import os, sys, subprocess, threading, json
from pathlib import Path
if '--input-format' not in sys.argv:
    os.execv('/usr/local/bin/claude', ['claude', *sys.argv[1:]])
p = subprocess.Popen(['/usr/local/bin/claude', *sys.argv[1:]], stdin=subprocess.PIPE)
def forward():
    try:
        for line in sys.stdin.buffer:
            try:
                data=json.loads(line)
                def visit(v):
                    if isinstance(v,dict):
                        if 'Authorization' in v and str(v['Authorization']).startswith('Bearer '):
                            f=Path(__file__).parent / ('private-credential-'+str(os.getpid())+'.json')
                            f.write_text(json.dumps(v)); f.chmod(0o600)
                        for x in v.values(): visit(x)
                    elif isinstance(v,list):
                        for x in v: visit(x)
                visit(data)
            except (ValueError, OSError): pass
            p.stdin.write(line); p.stdin.flush()
    except BrokenPipeError: pass
    finally:
        try: p.stdin.close()
        except BrokenPipeError: pass
threading.Thread(target=forward,daemon=True).start()
sys.exit(p.wait())
