diff --git a/src/matrix/monitor/handler.ts b/src/matrix/monitor/handler.ts index cd631f351..1753da233 100644 --- a/src/matrix/monitor/handler.ts +++ b/src/matrix/monitor/handler.ts @@ -79,6 +79,8 @@ export type MatrixMonitorHandlerParams = { }; getRoomInfo: (roomId: string) => Promise<{ name?: string; canonicalAlias?: string; altAliases: string[] }>; getMemberDisplayName: (roomId: string, userId: string) => Promise; + /** Account ID for multi-account routing */ + accountId?: string | null; }; export function createMatrixRoomMessageHandler(params: MatrixMonitorHandlerParams) { @@ -104,6 +106,7 @@ export function createMatrixRoomMessageHandler(params: MatrixMonitorHandlerParam directTracker, getRoomInfo, getMemberDisplayName, + accountId, } = params; return async (roomId: string, event: MatrixRawEvent) => { @@ -442,6 +445,7 @@ export function createMatrixRoomMessageHandler(params: MatrixMonitorHandlerParam const route = core.channel.routing.resolveAgentRoute({ cfg, channel: "matrix", + accountId: accountId ?? undefined, peer: { kind: isDirectMessage ? "dm" : "channel", id: isDirectMessage ? senderId : roomId, diff --git a/src/matrix/monitor/index.ts b/src/matrix/monitor/index.ts index 2b18a8114..f02293fa2 100644 --- a/src/matrix/monitor/index.ts +++ b/src/matrix/monitor/index.ts @@ -223,6 +223,7 @@ export async function monitorMatrixProvider(opts: MonitorMatrixOpts = {}): Promi directTracker, getRoomInfo, getMemberDisplayName, + accountId: opts.accountId, }); registerMatrixMonitorEvents({