Ready for first real test

This commit is contained in:
Aryan Singh committed 2026-07-02 00:46:34 -05:00
1 parent acddf9135f
commit b91c81ebdf
46 files changed
+34903 -26

No files matched your search

+22 -5
View File
@@ -50,10 +50,19 @@ class Settings(BaseSettings):
llm_max_tokens: int = 2048
# --- Budgets ---
per_agent_wallclock_min: int = 130
per_agent_step_budget: int = 60
per_agent_min_steps: int = 25 # keep researching (nudge) until at least this many steps
per_agent_wallclock_min: int = 130 # hard wall-clock cap per agent
per_agent_min_minutes: int = 120 # TIME FLOOR: keep researching until at least this long
per_agent_step_budget: int = 400 # high safety cap so steps don't cap before the time floor
per_agent_min_steps: int = 25 # secondary floor (steps)
hard_stop: str = "07:00" # local wall-clock HH:MM; nightly run must finish by this
sandbox_timeout_s: int = 90 # run_analysis script wall-clock limit
# --- Email (daily report; use a Gmail App Password, never your real password) ---
email_to: str = ""
email_from: str = ""
smtp_host: str = "smtp.gmail.com"
smtp_port: int = 587
email_app_password: str = ""
# --- Timezones ---
market_tz: str = "America/New_York" # authoritative market clock
@@ -76,6 +85,14 @@ class Settings(BaseSettings):
def db_path(self) -> Path:
return REPO_ROOT / "state" / "trading.db"
@property
def reports_dir(self) -> Path:
return REPO_ROOT / "state" / "reports"
@property
def sandbox_dir(self) -> Path:
return REPO_ROOT / "state" / "sandbox"
@property
def llm_base_url(self) -> str:
return f"http://{self.llm_host}:{self.llm_port}/v1"
@@ -128,8 +145,8 @@ class Settings(BaseSettings):
return self.alpaca_api_key, self.alpaca_secret_key
def ensure_dirs(self) -> None:
self.output_dir.mkdir(parents=True, exist_ok=True)
self.log_dir.mkdir(parents=True, exist_ok=True)
for d in (self.output_dir, self.log_dir, self.reports_dir, self.sandbox_dir):
d.mkdir(parents=True, exist_ok=True)
@lru_cache