import asyncio
import sys
from aws_ssm_bridge import SessionManager, configure_logging
async def main() -> None:
configure_logging("info")
target = sys.argv[1]
command = sys.argv[2] if len(sys.argv) > 2 else "uname -a"
manager = await SessionManager.new()
async with await manager.start_session(target, reason="python shell example") as session:
print(f"session {session.id} ready (agent {session.agent_version})")
await session.send(f"{command}\r".encode())
async def drain() -> None:
async for chunk in session.output():
sys.stdout.write(chunk.decode(errors="replace"))
sys.stdout.flush()
try:
await asyncio.wait_for(drain(), timeout=3.0)
except asyncio.TimeoutError:
pass
asyncio.run(main())