import type { MsgContext } from "../auto-reply/templating.js"; import { recordSessionMetaFromInbound, type GroupKeyResolution, type SessionEntry, updateLastRoute, } from "../config/sessions.js"; export type InboundLastRouteUpdate = { sessionKey: string; channel: SessionEntry["lastChannel"]; to: string; accountId?: string; threadId?: string | number; }; export async function recordInboundSession(params: { storePath: string; sessionKey: string; ctx: MsgContext; groupResolution?: GroupKeyResolution | null; createIfMissing?: boolean; updateLastRoute?: InboundLastRouteUpdate; onRecordError: (err: unknown) => void; }): Promise { const { storePath, sessionKey, ctx, groupResolution, createIfMissing } = params; void recordSessionMetaFromInbound({ storePath, sessionKey, ctx, groupResolution, createIfMissing, }).catch(params.onRecordError); const update = params.updateLastRoute; if (!update) { return; } await updateLastRoute({ storePath, sessionKey: update.sessionKey, deliveryContext: { channel: update.channel, to: update.to, accountId: update.accountId, threadId: update.threadId, }, ctx, groupResolution, }); }