fix: исправить поиск tasks_list — использовать полное имя с префиксом MCP

MCP-инструменты после загрузки получают префикс mcp__journal-bh-professor__.
tools.get("tasks_list") всегда возвращал None → статус не загружался.
Исправлено в ui.py (вкладка Статус) и cli.py (команда status).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 16:49:48 +03:00
parent 3ae3488691
commit ee2c8de372
2 changed files with 10 additions and 3 deletions
+3 -2
View File
@@ -83,9 +83,10 @@ async def cmd_status() -> None:
print("[cli] Получаю список заданий...")
journal = load_journal_toolsets()
tools = {t.name: t for t in journal.tasks_submissions_tools}
tool = tools.get("tasks_list")
tool = tools.get("mcp__journal-bh-professor__tasks_list") \
or next((v for k, v in tools.items() if "tasks_list" in k), None)
if not tool:
print("Ошибка: инструмент tasks_list не найден")
print(f"Ошибка: инструмент tasks_list не найден. Доступны: {list(tools.keys())}")
return
raw = await tool.ainvoke({"courseId": "698b49da77cb6d4d2e43ce78"})
+7 -1
View File
@@ -464,9 +464,15 @@ with tab_status:
async def _fetch():
j = load_journal_toolsets()
# Инструменты имеют префикс mcp__journal-bh-professor__
tools = {t.name: t for t in j.tasks_submissions_tools}
t = tools.get("tasks_list")
full_name = "mcp__journal-bh-professor__tasks_list"
t = tools.get(full_name)
if not t:
# fallback: ищем по любому имени содержащему tasks_list
t = next((v for k, v in tools.items() if "tasks_list" in k), None)
if not t:
st.warning(f"Инструмент tasks_list не найден. Доступны: {list(tools.keys())}")
return []
raw = await t.ainvoke({"courseId": "698b49da77cb6d4d2e43ce78"})
text = next((x["text"] for x in raw if x.get("type") == "text"), str(raw)) if isinstance(raw, list) else str(raw)