openclaw/src/gateway/server/presence-events.ts

23 lines
626 B
TypeScript

import { listSystemPresence } from "../../infra/system-presence.js";
import type { GatewayBroadcastFn } from "../server-broadcast.js";
export function broadcastPresenceSnapshot(params: {
broadcast: GatewayBroadcastFn;
incrementPresenceVersion: () => number;
getHealthVersion: () => number;
}): number {
const presenceVersion = params.incrementPresenceVersion();
params.broadcast(
"presence",
{ presence: listSystemPresence() },
{
dropIfSlow: true,
stateVersion: {
presence: presenceVersion,
health: params.getHealthVersion(),
},
},
);
return presenceVersion;
}