add console.py: interactive CLI for managing BroJS tasks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+75
@@ -0,0 +1,75 @@
|
||||
"""Консольный интерфейс для управления агентом BroJS.
|
||||
|
||||
Использование:
|
||||
python console.py
|
||||
|
||||
Команды:
|
||||
tasks — показать все задания и статусы
|
||||
solve <id> — решить конкретное задание по ID
|
||||
run — решить все todo-задания автоматически
|
||||
exit — выйти
|
||||
"""
|
||||
import asyncio
|
||||
import os
|
||||
|
||||
os.environ["NO_PROXY"] = "openrouter.ai,platform.brojs.ru,git.brojs.ru," + os.environ.get("NO_PROXY", "")
|
||||
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
from solve_task import fetch_todo_tasks, solve, run_all
|
||||
|
||||
HELP = """
|
||||
Команды:
|
||||
tasks — список заданий и их статусы
|
||||
solve <id> — решить задание по полному ID
|
||||
run — решить все todo-задания автоматически
|
||||
help — показать это сообщение
|
||||
exit — выйти
|
||||
"""
|
||||
|
||||
|
||||
async def main():
|
||||
print("=" * 50)
|
||||
print(" BroJS Agent Console")
|
||||
print("=" * 50)
|
||||
print(HELP)
|
||||
|
||||
while True:
|
||||
try:
|
||||
cmd = input(">> ").strip()
|
||||
except (EOFError, KeyboardInterrupt):
|
||||
print("\nВыход.")
|
||||
break
|
||||
|
||||
if not cmd:
|
||||
continue
|
||||
|
||||
if cmd in ("exit", "quit", "выход"):
|
||||
print("Выход.")
|
||||
break
|
||||
|
||||
elif cmd in ("help", "?"):
|
||||
print(HELP)
|
||||
|
||||
elif cmd == "tasks":
|
||||
tasks = await fetch_todo_tasks()
|
||||
if not tasks:
|
||||
print(" Нет активных заданий.")
|
||||
|
||||
elif cmd.startswith("solve "):
|
||||
task_id = cmd.split(" ", 1)[1].strip()
|
||||
if not task_id:
|
||||
print(" Укажи ID задания: solve <id>")
|
||||
else:
|
||||
await solve(task_id)
|
||||
|
||||
elif cmd == "run":
|
||||
await run_all()
|
||||
|
||||
else:
|
||||
print(f" Неизвестная команда: '{cmd}'. Введи 'help' для справки.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user