ArbitrAgent / simulation /scenario.py
AbeBhatti
final demo polish
da27912
"""
scenario.py — Deterministic demo scenario.
Same run every time. Seeds all RNG.
Produces the 90-second ArbitrAgent demo.
"""
import random
random.seed(42)
from simulation.seller_profiles import get_profile, TRADE_TARGETS
from simulation.seller_sim import CraigslistSellerSim
def get_scenario():
"""
Returns the standard demo scenario.
Buy layer: 3 sellers (Motivated, Bluffer=camera, Ghoster)
Trade layer: 4 trade targets
Everything seeded for deterministic replay.
"""
sellers = [
CraigslistSellerSim(get_profile("seller_motivated_001")),
CraigslistSellerSim(get_profile("seller_bluffer_camera")),
CraigslistSellerSim(get_profile("seller_ghoster_001")),
]
trade_targets = TRADE_TARGETS
return sellers, trade_targets
def get_extended_scenario():
"""
Extended demo scenario:
- 5 sellers including the two additional profiles:
* seller_aggressive_001 (bluffer, vintage watch)
* seller_trader_001 (trade-curious, mountain bike)
- Uses the same trade targets; the demo loop controls turn count.
"""
sellers = [
CraigslistSellerSim(get_profile("seller_motivated_001")),
CraigslistSellerSim(get_profile("seller_bluffer_camera")),
CraigslistSellerSim(get_profile("seller_ghoster_001")),
CraigslistSellerSim(get_profile("seller_aggressive_001")),
CraigslistSellerSim(get_profile("seller_trader_001")),
]
trade_targets = TRADE_TARGETS
return sellers, trade_targets