File size: 1,967 Bytes
a18b04f fbb8e8f a18b04f fbb8e8f a18b04f fbb8e8f a18b04f fbb8e8f a18b04f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# agents/start_repl.py
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import threading
from agents.init import ensure_db_initialized
# Проверка инициализации (вернёт config, если всё ОК)
config = ensure_db_initialized()
# ⚙️ Включение/отключение компонентов
# True | False
ENABLE_REPL = False
ENABLE_UI = True
ENABLE_MESH = False
ENABLE_SYNC = False
def start_all():
"""
Стартует все ключевые компоненты агента в отдельных потоках.
"""
threads = []
if ENABLE_REPL:
def repl():
from agents.repl import start_repl
start_repl()
threads.append(threading.Thread(target=repl, name="REPL"))
if ENABLE_UI:
def ui():
from agents.notebook import start_notebook
start_notebook()
threads.append(threading.Thread(target=ui, name="NotebookUI"))
if ENABLE_MESH:
def mesh():
from agents.agent_mesh_listener import start_listener
start_listener()
threads.append(threading.Thread(target=mesh, name="MeshListener"))
if ENABLE_SYNC:
def sync():
from agents.peer_sync import start_sync
start_sync()
threads.append(threading.Thread(target=sync, name="PeerSync"))
# Запуск потоков
for thread in threads:
try:
thread.start()
print(f"[✔] Поток {thread.name} запущен.")
except Exception as e:
print(f"[⚠️] Ошибка запуска потока {thread.name}: {e}")
# Блокирующее ожидание завершения
for thread in threads:
thread.join()
if __name__ == "__main__":
print("[*] Инициализация завершена. Запуск потоков...")
start_all()
|