3ddf8170f8
- rooms: create, join, leave, forget, list, resolve alias, get info/members, invite/kick/ban/unban, set name/topic. RoomInfo/MemberInfo/PowerLevels dataclasses. - messaging: send text (with HTML, reply, thread), notice, emote, image, file, sticker, edit, redact, react, typing, read receipts, fully-read markers. - sync: SyncEngine with event-type/room/global handler dispatch, incremental sync with backoff retry, SyncFilter, paginated message history. - CLI: rooms (list/create/join/leave/info/members/invite), send (text/image/file), sync (listen with filters). - 182 tests pass (60 existing + 122 new).
156 lines
2.8 KiB
Python
156 lines
2.8 KiB
Python
"""
|
|
Matrix-Hermes: Matrix authentication, client, rooms, messaging, and sync integration
|
|
for Hermes Agent.
|
|
|
|
Provides:
|
|
- Authentication (login, token management, device registration)
|
|
- Async client wrapper around mautrix
|
|
- Room management (create, join, list, leave, invite, kick, ban)
|
|
- Messaging (send text, images, files, edits, reactions)
|
|
- Sync engine (incremental sync, event dispatch, filtering)
|
|
- CLI tools for all operations
|
|
"""
|
|
|
|
__version__ = "0.3.0"
|
|
|
|
# Auth
|
|
from matrix_hermes.auth import (
|
|
AuthResult,
|
|
WhoAmIResult,
|
|
login,
|
|
login_from_config,
|
|
logout,
|
|
save_session,
|
|
load_session,
|
|
remove_session,
|
|
validate_token,
|
|
)
|
|
|
|
# Config
|
|
from matrix_hermes.config import MatrixConfig
|
|
|
|
# Client
|
|
from matrix_hermes.client import (
|
|
MatrixClient,
|
|
MatrixMessage,
|
|
SendResult,
|
|
quick_connect,
|
|
)
|
|
|
|
# Rooms
|
|
from matrix_hermes.rooms import (
|
|
RoomInfo,
|
|
CreateRoomResult,
|
|
MemberInfo,
|
|
PowerLevels,
|
|
create_room,
|
|
join_room,
|
|
leave_room,
|
|
forget_room,
|
|
get_joined_rooms,
|
|
resolve_room_alias,
|
|
get_room_info,
|
|
get_room_members,
|
|
invite_user,
|
|
kick_user,
|
|
ban_user,
|
|
unban_user,
|
|
set_room_name,
|
|
set_room_topic,
|
|
)
|
|
|
|
# Messaging
|
|
from matrix_hermes.messaging import (
|
|
send_text,
|
|
send_notice,
|
|
send_emote,
|
|
send_image,
|
|
send_file,
|
|
send_sticker,
|
|
edit_message,
|
|
redact_message,
|
|
send_reaction,
|
|
send_typing,
|
|
send_read_receipt,
|
|
set_fully_read,
|
|
)
|
|
|
|
# Sync
|
|
from matrix_hermes.sync import (
|
|
SyncFilter,
|
|
SyncResult,
|
|
SyncEvent,
|
|
SyncEngine,
|
|
EventHandler,
|
|
PaginatedMessages,
|
|
create_filter,
|
|
sync_once,
|
|
extract_events,
|
|
get_messages,
|
|
)
|
|
|
|
__all__ = [
|
|
# Auth
|
|
"AuthResult",
|
|
"WhoAmIResult",
|
|
"login",
|
|
"login_from_config",
|
|
"logout",
|
|
"save_session",
|
|
"load_session",
|
|
"remove_session",
|
|
"validate_token",
|
|
# Config
|
|
"MatrixConfig",
|
|
# Client
|
|
"MatrixClient",
|
|
"MatrixMessage",
|
|
"SendResult",
|
|
"quick_connect",
|
|
# Rooms
|
|
"RoomInfo",
|
|
"CreateRoomResult",
|
|
"MemberInfo",
|
|
"PowerLevels",
|
|
"create_room",
|
|
"join_room",
|
|
"leave_room",
|
|
"forget_room",
|
|
"get_joined_rooms",
|
|
"resolve_room_alias",
|
|
"get_room_info",
|
|
"get_room_members",
|
|
"invite_user",
|
|
"kick_user",
|
|
"ban_user",
|
|
"unban_user",
|
|
"set_room_name",
|
|
"set_room_topic",
|
|
# Messaging
|
|
"send_text",
|
|
"send_notice",
|
|
"send_emote",
|
|
"send_image",
|
|
"send_file",
|
|
"send_sticker",
|
|
"edit_message",
|
|
"redact_message",
|
|
"send_reaction",
|
|
"send_typing",
|
|
"send_read_receipt",
|
|
"set_fully_read",
|
|
# Sync
|
|
"SyncFilter",
|
|
"SyncResult",
|
|
"SyncEvent",
|
|
"SyncEngine",
|
|
"EventHandler",
|
|
"PaginatedMessages",
|
|
"create_filter",
|
|
"sync_once",
|
|
"extract_events",
|
|
"get_messages",
|
|
# Meta
|
|
"__version__",
|
|
]
|