feat(event): normalize session.status to session.idle

Add session-status-normalizer to handle session.status events and
convert idle status to synthetic session.idle events. Includes
deduplication logic to prevent duplicate idle events within 500ms.
This commit is contained in:
YeonGyu-Kim
2026-02-10 11:16:44 +09:00
parent 79d70c7edd
commit 2b40eb48b3
3 changed files with 168 additions and 1 deletions
+22
View File
@@ -0,0 +1,22 @@
type EventInput = { event: { type: string; properties?: Record<string, unknown> } }
type SessionStatus = { type: string }
export function normalizeSessionStatusToIdle(input: EventInput): EventInput | null {
if (input.event.type !== "session.status") return null
const props = input.event.properties
if (!props) return null
const status = props.status as SessionStatus | undefined
if (!status || status.type !== "idle") return null
const sessionID = props.sessionID as string | undefined
if (!sessionID) return null
return {
event: {
type: "session.idle",
properties: { sessionID },
},
}
}