System: Integrate Dispatcher and Update Workflow

This commit is contained in:
serhiimosiiash
2025-12-19 19:45:34 +02:00
parent 643d03f6a3
commit 6bbec7178b
2 changed files with 84 additions and 70 deletions

75
main.py
View File

@@ -1,39 +1,52 @@
import os
import time
import psycopg2
import requests
import argparse
import sys
import logging
from modules.squad_logic import MorningStandup, HeavyWorker, QAAuditor, ScrumReport
# Налаштування (беруться з Environment Variables)
DB_HOST = os.getenv("DB_HOST", "postgres")
DB_USER = os.getenv("DB_USER", "postgres")
DB_PASS = os.getenv("DB_PASS", "password")
GRAPHITI_URL = os.getenv("GRAPHITI_URL", "http://graphiti:8000")
# Налаштування логування
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - [ANTIGRAVITY] - %(levelname)s - %(message)s',
datefmt='%H:%M:%S',
handlers=[logging.StreamHandler(sys.stdout)]
)
logger = logging.getLogger(__name__)
def check_connections():
print("🕵️ Antigravity Agent: Starting Diagnostics...")
def main():
parser = argparse.ArgumentParser(description="Antigravity Squad Dispatcher")
parser.add_argument(
"--task",
choices=["standup", "worker", "audit", "report"],
help="Phase of the day to execute"
)
# Опція для перевірки версії
parser.add_argument("--version", action="store_true", help="Show version")
# 1. Перевірка Graphiti (Пам'ять)
try:
r = requests.get(f"{GRAPHITI_URL}/health", timeout=3)
if r.status_code == 200:
print(f"✅ Graphiti Memory is ONLINE at {GRAPHITI_URL}")
else:
print(f"⚠️ Graphiti returned status {r.status_code}")
except Exception as e:
print(f"❌ Graphiti Connection Failed: {e}")
args = parser.parse_args()
if args.version:
print("Antigravity Agent v0.3.0 (Squad Architecture)")
sys.exit(0)
# Якщо аргумент не передано, за замовчуванням запускаємо worker
# (це забезпечує сумісність, якщо ми випадково запустимо без прапорців)
task = args.task if args.task else "worker"
logger.info(f"🚀 Starting Antigravity Core. Task: {task.upper()}")
# 2. Перевірка Postgres (База Знань)
try:
conn = psycopg2.connect(
host=DB_HOST, user=DB_USER, password=DB_PASS, dbname="postgres"
)
print("✅ Postgres Database is CONNECTED")
conn.close()
if task == "standup":
MorningStandup().run()
elif task == "worker":
HeavyWorker().run()
elif task == "audit":
QAAuditor().run()
elif task == "report":
ScrumReport().run()
except Exception as e:
print(f"❌ Postgres Connection Failed: {e}")
logger.error(f"❌ CRITICAL FAILURE in {task}: {e}")
sys.exit(1)
if __name__ == "__main__":
while True:
check_connections()
print("💤 Sleeping for 60 seconds...")
time.sleep(60)
main()