System: Integrate Dispatcher and Update Workflow
This commit is contained in:
75
main.py
75
main.py
@@ -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()
|
||||
Reference in New Issue
Block a user