feat: finalize matrix platform audit and docs
This commit is contained in:
parent
6422c7db58
commit
4524a6abc8
30 changed files with 3093 additions and 176 deletions
|
|
@ -7,7 +7,12 @@ from typing import TYPE_CHECKING
|
|||
import httpx
|
||||
import structlog
|
||||
|
||||
from adapter.matrix.store import get_room_meta, set_load_pending, set_platform_chat_id
|
||||
from adapter.matrix.store import (
|
||||
get_room_meta,
|
||||
next_platform_chat_id,
|
||||
set_load_pending,
|
||||
set_platform_chat_id,
|
||||
)
|
||||
from core.protocol import IncomingCommand, OutgoingEvent, OutgoingMessage
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
|
@ -45,7 +50,7 @@ async def _resolve_room_id(event: IncomingCommand, chat_mgr) -> str:
|
|||
|
||||
async def _resolve_context_scope(
|
||||
event: IncomingCommand,
|
||||
store: "StateStore",
|
||||
store: StateStore,
|
||||
chat_mgr,
|
||||
) -> tuple[str, str | None]:
|
||||
room_id = await _resolve_room_id(event, chat_mgr)
|
||||
|
|
@ -54,7 +59,7 @@ async def _resolve_context_scope(
|
|||
return room_id, platform_chat_id
|
||||
|
||||
|
||||
def make_handle_save(agent_api, store: "StateStore", prototype_state: "PrototypeStateStore"):
|
||||
def make_handle_save(agent_api, store: StateStore, prototype_state: PrototypeStateStore):
|
||||
async def handle_save(
|
||||
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
||||
) -> list[OutgoingEvent]:
|
||||
|
|
@ -96,7 +101,7 @@ def make_handle_save(agent_api, store: "StateStore", prototype_state: "Prototype
|
|||
return handle_save
|
||||
|
||||
|
||||
def make_handle_load(store: "StateStore", prototype_state: "PrototypeStateStore"):
|
||||
def make_handle_load(store: StateStore, prototype_state: PrototypeStateStore):
|
||||
async def handle_load(
|
||||
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
||||
) -> list[OutgoingEvent]:
|
||||
|
|
@ -123,17 +128,15 @@ def make_handle_load(store: "StateStore", prototype_state: "PrototypeStateStore"
|
|||
return handle_load
|
||||
|
||||
|
||||
def make_handle_reset(store: "StateStore", prototype_state: "PrototypeStateStore"):
|
||||
def make_handle_reset(store: StateStore, prototype_state: PrototypeStateStore):
|
||||
async def handle_reset(
|
||||
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
||||
) -> list[OutgoingEvent]:
|
||||
import time
|
||||
|
||||
room_id = await _resolve_room_id(event, chat_mgr)
|
||||
room_meta = await get_room_meta(store, room_id)
|
||||
old_chat_id = (room_meta or {}).get("platform_chat_id") or room_id
|
||||
|
||||
new_chat_id = f"matrix:{room_id}#{int(time.time())}"
|
||||
new_chat_id = await next_platform_chat_id(store)
|
||||
await set_platform_chat_id(store, room_id, new_chat_id)
|
||||
|
||||
disconnect = getattr(platform, "disconnect_chat", None)
|
||||
|
|
@ -142,7 +145,12 @@ def make_handle_reset(store: "StateStore", prototype_state: "PrototypeStateStore
|
|||
|
||||
await prototype_state.clear_current_session(new_chat_id)
|
||||
|
||||
return [OutgoingMessage(chat_id=event.chat_id, text="Контекст сброшен. Агент не помнит предыдущий разговор.")]
|
||||
return [
|
||||
OutgoingMessage(
|
||||
chat_id=event.chat_id,
|
||||
text="Контекст сброшен. Агент не помнит предыдущий разговор.",
|
||||
)
|
||||
]
|
||||
|
||||
return handle_reset
|
||||
|
||||
|
|
@ -170,7 +178,7 @@ async def _call_reset_endpoint(agent_base_url: str, chat_id: str) -> list[Outgoi
|
|||
return [OutgoingMessage(chat_id=chat_id, text="Контекст сброшен.")]
|
||||
|
||||
|
||||
def make_handle_context(store: "StateStore", prototype_state: "PrototypeStateStore"):
|
||||
def make_handle_context(store: StateStore, prototype_state: PrototypeStateStore):
|
||||
async def handle_context(
|
||||
event: IncomingCommand, auth_mgr, platform, chat_mgr, settings_mgr
|
||||
) -> list[OutgoingEvent]:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue