import sys, json, subprocess, pathlib, datetime
side, port, sha = sys.argv[1:]
cases = [
 ('Valid registration', {'client_name':'Registration test','redirect_uris':['https://client.example/callback'],'token_endpoint_auth_method':'none'}),
 ('Disallowed redirect URI', {'redirect_uris':['ftp://client.example/callback']}),
 ('Numeric client_name', {'client_name':42,'redirect_uris':['https://client.example/callback']}),
 ('String redirect_uris', {'redirect_uris':'https://client.example/callback'}),
]
output = ['MCP registration: '+side, 'Commit: '+sha, 'Environment: Linux, real development server on loopback; fresh isolated database; T3CODE_DEV_SEED=0.', 'Transport: curl HTTP POST /oauth/mcp/register, Content-Type: application/json.', '']
for name, body in cases:
 payload=json.dumps(body,separators=(',',':'))
 result=subprocess.run(['curl','--silent','--show-error','--include','--request','POST',f'http://127.0.0.1:{port}/oauth/mcp/register','--header','Content-Type: application/json','--data',payload],capture_output=True,text=True,check=True)
 output += ['=== '+name+' ===','Request JSON: '+payload,'Response:',result.stdout,'']
text='\n'.join(output)
folder=pathlib.Path(__file__).parent / (side+'-'+datetime.datetime.now(datetime.timezone.utc).strftime('%Y%m%dT%H%M%SZ'))
folder.mkdir()
(folder/'http-transcript.txt').write_text(text)
print(text)
print('Saved transcript:',folder/'http-transcript.txt')
