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

Function toContactItem

packages/node-runtime/src/services/contacts/compute.ts:481–518  ·  view source on GitHub ↗
(
  acc: ContactAccumulator,
  pool: 'friend' | 'non_friend',
  scoring: { score: number; scoreBreakdown: ContactItem['scoreBreakdown'] }
)

Source from the content-addressed store, hash-verified

479}
480
481function toContactItem(
482 acc: ContactAccumulator,
483 pool: 'friend' | 'non_friend',
484 scoring: { score: number; scoreBreakdown: ContactItem['scoreBreakdown'] }
485): ContactItem {
486 const aliases = [...acc.aliases].filter((alias) => alias !== acc.displayName)
487 const searchText = [acc.displayName, acc.platformId, ...aliases].join(' ').toLowerCase()
488
489 const item: ContactItem = {
490 key: acc.key,
491 platform: acc.platform,
492 platformId: acc.platformId,
493 sessionScoped: acc.sessionScoped,
494 sessionId: acc.sessionId,
495 displayName: acc.displayName,
496 aliases,
497 avatar: acc.avatar,
498 isFriend: acc.isFriend,
499 pool,
500 score: scoring.score,
501 scoreBreakdown: {
502 ...scoring.scoreBreakdown,
503 privateMessageCount: acc.privateMessageCount || scoring.scoreBreakdown.privateMessageCount,
504 activePrivateMonths: acc.activePrivateMonths.size || scoring.scoreBreakdown.activePrivateMonths,
505 commonGroupCount: acc.commonGroupSessionIds.size,
506 coOccurrenceCount: acc.coOccurrenceCount,
507 coOccurrenceRawScore: acc.coOccurrenceRawScore,
508 replyInteractionCount: acc.replyInteractionCount,
509 repliesFromOwnerToContact: acc.repliesFromOwnerToContact,
510 repliesFromContactToOwner: acc.repliesFromContactToOwner,
511 },
512 sourceSessions: acc.sourceSessions,
513 searchText,
514 lastInteractionTs: acc.lastInteractionTs,
515 }
516 if (pool === 'friend') item.friendSource = 'private'
517 return item
518}
519
520export function createEmptyContactsDiagnostics(): ContactsDiagnostics {
521 return createEmptyDiagnostics()

Callers 1

buildContactItemsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected