feat: AR-House initial commit

This commit is contained in:
2026-07-03 12:24:58 -04:00
commit 047c05287a
216 changed files with 127552 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
"""Configuracion global de AR-House."""
APP_NAME = "AR-House"
APP_VERSION = "0.1.0"
# Modo de uso de recursos:
# low_power -> secuencial estricto, keep_alive=0 (default, para 12GB VRAM)
# balanced -> secuencial, keep_alive=300s (reutiliza modelos en sesiones cortas)
# performance -> paralelo (>16GB VRAM, no implementado todavia)
RESOURCE_MODE = "low_power"
KEEP_ALIVE_BY_MODE = {
"low_power": 0,
"balanced": 300,
"performance": 600,
}
# ETA por agente en modo low_power (carga + inferencia, segundos)
# Calibrado contra smoke tests reales en 12GB VRAM / 32GB RAM
AGENT_ETA_LOW_POWER = {
"PhotoInspector": 30,
"DealAnalyzer": 45,
"FloridaResearcher": 25,
"LenderMatcher": 50,
"Coordinator": 75,
"ValueEstimator": 50, # Wave 2
"OfferStrategist": 55, # Wave 2
"ContextualGlossaryAgent": 90, # mas grande post-Wave 2 (recibe value + offer adicionales)
}
ANALYSIS_ETA_SECONDS = sum(AGENT_ETA_LOW_POWER.values()) # ~420s = ~7 min
OLLAMA_HOST = "http://localhost:11434"
ANALYSES_DIR = "analyses"
# Markets DB (Phase 3E - selector dinamico de mercados)
MARKETS_DB_FILE = "markets_database.json"
USER_ACTIVE_MARKETS_FILE = "user_active_markets.json"
# ═══════════════════════════════════════════════════════════════════════════
# Phase 3 — DealFinder configuration
# ═══════════════════════════════════════════════════════════════════════════
# SQLite database for deals pipeline
DEALS_DB_PATH = "data/deals.db"
# DealClassifier model name (light Ollama model for fast classification)
DEAL_CLASSIFIER_MODEL = "DealClassifier"
# Firecrawl monthly budget (free tier: 1000 credits/mes)
FIRECRAWL_CREDIT_BUDGET = 500 # 50% del free tier — margen seguro
FIRECRAWL_ALERT_THRESHOLD_PCT = 80 # alert al usuario al 80% del budget (400 cr)
FIRECRAWL_PAUSE_THRESHOLD_PCT = 95 # auto-pause DealFinder al 95% del budget (475 cr)
# Phase 3 scraper schedules
DEALFINDER_SCHEDULE_HOUR = 6 # 6 AM daily (Windows Task Scheduler)
DEALFINDER_VBS_LAUNCHER = "scripts/AR-House-DealFinder.vbs"
# Deal status lifecycle (canonical values for deals.db.status)
DEAL_STATUS_NEW = "new"
DEAL_STATUS_CLASSIFIED = "classified"
DEAL_STATUS_VIEWED = "viewed"
DEAL_STATUS_INTERESTING = "interesting"
DEAL_STATUS_DISMISSED = "dismissed"
DEAL_STATUS_ANALYZED = "analyzed"
DEAL_STATUS_VALUES = [
DEAL_STATUS_NEW, DEAL_STATUS_CLASSIFIED, DEAL_STATUS_VIEWED,
DEAL_STATUS_INTERESTING, DEAL_STATUS_DISMISSED, DEAL_STATUS_ANALYZED,
]
# DealClassifier classification status (canonical values for deals.db.classification_status)
CLASS_POTENTIAL_WINNER = "potential_winner" # high score, looks promising
CLASS_MAYBE = "maybe" # marginal, needs deeper look
CLASS_PASS = "pass" # clear pass, doesn't fit criteria
CLASS_RED_FLAG = "red_flag" # flagged for risk pattern (foreclosure heredable, etc)
CLASSIFICATION_VALUES = [
CLASS_POTENTIAL_WINNER, CLASS_MAYBE, CLASS_PASS, CLASS_RED_FLAG,
]
# Data fetchers (Wave 1 - real-data layer antes de los agentes)
CACHE_DIR = ".cache/data_fetchers"
HURDAT2_FILE = "data/hurdat2.txt"
HURDAT2_MAX_AGE_DAYS = 365