Users can now list available agents with !agent and select one by number. Selection persists in user metadata (selected_agent_id). If the current room has no agent binding yet, selecting an agent binds it immediately so the user can start messaging without !new. Also updates the dispatcher test to reflect that real-mode platform is now RoutedPlatformClient, not a bare RealPlatformClient.
95 lines
3.4 KiB
Python
95 lines
3.4 KiB
Python
from __future__ import annotations
|
|
|
|
from core.protocol import IncomingCommand, OutgoingMessage
|
|
|
|
HELP_TEXT = "\n".join(
|
|
[
|
|
"Команды",
|
|
"",
|
|
"!new [название] создать новый чат",
|
|
"!chats список активных чатов",
|
|
"!rename <название> переименовать текущий чат",
|
|
"!archive архивировать текущий чат",
|
|
"!context показать текущее состояние контекста",
|
|
"!save [имя] сохранить текущий контекст",
|
|
"!load показать сохранённые контексты",
|
|
"",
|
|
"!agent показать доступных агентов",
|
|
"!agent <номер> выбрать агента для следующих чатов",
|
|
"",
|
|
"Остальные команды и настройки скрыты в MVP, чтобы не вводить в заблуждение.",
|
|
]
|
|
)
|
|
|
|
|
|
MVP_UNAVAILABLE_TEXT = (
|
|
"Эта команда скрыта в MVP и сейчас недоступна. "
|
|
"Используй !help для списка поддерживаемых команд."
|
|
)
|
|
|
|
|
|
async def handle_settings(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_help(event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=HELP_TEXT)]
|
|
|
|
|
|
async def handle_settings_skills(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_connectors(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_soul(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_safety(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_plan(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_status(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_settings_whoami(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_toggle_skill(event, auth_mgr, platform, chat_mgr, settings_mgr) -> list:
|
|
return [OutgoingMessage(chat_id=event.chat_id, text=MVP_UNAVAILABLE_TEXT)]
|
|
|
|
|
|
async def handle_unknown_command(
|
|
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
|
) -> list:
|
|
return [
|
|
OutgoingMessage(
|
|
chat_id=event.chat_id,
|
|
text="Неизвестная команда. Используй !help для списка поддерживаемых команд.",
|
|
)
|
|
]
|