MCPcopy Create free account
hub / github.com/ChatLab/ChatLab / applyGroupFacts

Function applyGroupFacts

packages/node-runtime/src/services/contacts/compute.ts:304–334  ·  view source on GitHub ↗
(
  accumulators: Map<string, ContactAccumulator>,
  sessionId: string,
  meta: ContactsSessionMetaFacts,
  sessionFacts: ContactsCachedGroupFacts[]
)

Source from the content-addressed store, hash-verified

302}
303
304function applyGroupFacts(
305 accumulators: Map<string, ContactAccumulator>,
306 sessionId: string,
307 meta: ContactsSessionMetaFacts,
308 sessionFacts: ContactsCachedGroupFacts[]
309): void {
310 for (const facts of sessionFacts) {
311 if (!hasGroupContactSignal(facts)) continue
312 const acc = getOrCreateAccumulator(accumulators, sessionId, meta, facts.contact)
313 acc.commonGroupSessionIds.add(sessionId)
314 acc.coOccurrenceCount += facts.coOccurrenceCount
315 acc.coOccurrenceRawScore += facts.coOccurrenceRawScore
316 acc.replyInteractionCount += facts.replyInteractionCount
317 acc.repliesFromOwnerToContact += facts.repliesFromOwnerToContact
318 acc.repliesFromContactToOwner += facts.repliesFromContactToOwner
319 updateLastInteraction(acc, facts.lastInteractionTs)
320 acc.sourceSessions.push({
321 id: sessionId,
322 name: meta.name,
323 platform: meta.platform,
324 type: ChatType.GROUP,
325 messageCount: facts.messageCount,
326 coOccurrenceCount: facts.coOccurrenceCount,
327 coOccurrenceRawScore: facts.coOccurrenceRawScore,
328 replyInteractionCount: facts.replyInteractionCount,
329 repliesFromOwnerToContact: facts.repliesFromOwnerToContact,
330 repliesFromContactToOwner: facts.repliesFromContactToOwner,
331 lastInteractionTs: facts.lastInteractionTs,
332 })
333 }
334}
335
336function hasGroupContactSignal(facts: ContactsCachedGroupFacts): boolean {
337 return facts.messageCount > 0 || facts.coOccurrenceCount > 0 || facts.replyInteractionCount > 0

Callers 1

applySessionFactsFunction · 0.70

Calls 4

hasGroupContactSignalFunction · 0.85
getOrCreateAccumulatorFunction · 0.85
updateLastInteractionFunction · 0.70
addMethod · 0.45

Tested by

no test coverage detected