CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-fluidframework--container-loader

Fluid container loader providing core container loading functionality for the Fluid Framework

57%

Overall

Evaluation57%

0.98x

Agent success when using this tile

Overview
Eval results
Files

task.mdevals/scenario-3/

Collaborative Presence Tracker

A utility that listens to a collaborative session's audience to surface join/leave events and current membership state. It builds its initial member list from the provided audience snapshot, then stays in sync through join and leave notifications.

Capabilities

Stream audience changes

  • When a participant joins after tracker creation, subscribers receive a "join" event with the participant id and provided metadata. @test
  • When a participant later disconnects, subscribers receive a "leave" event for that id after any prior join events. @test

Snapshot active participants

  • After initialization, getActiveMembers returns all current participants (including those present before the tracker was created) with their ids and metadata. @test

Member lookup

  • getMember returns the stored metadata for a known participant id and undefined for an unknown id. @test

Implementation

@generates

API

export interface AudienceMemberDetails {
  id: string;
  mode?: string;
  capabilities?: Record<string, unknown>;
  [key: string]: unknown;
}

export type PresenceEvent =
  | { type: "join"; clientId: string; details: AudienceMemberDetails }
  | { type: "leave"; clientId: string };

export interface PresenceTracker {
  subscribe(handler: (event: PresenceEvent) => void): () => void;
  getActiveMembers(): AudienceMemberDetails[];
  getMember(clientId: string): AudienceMemberDetails | undefined;
}

export interface CollaborativeSessionAudience {
  on(
    event: "memberAdded" | "memberRemoved",
    listener: (clientId: string, details?: AudienceMemberDetails) => void
  ): void;
  off(
    event: "memberAdded" | "memberRemoved",
    listener: (clientId: string, details?: AudienceMemberDetails) => void
  ): void;
  getMembers(): Record<string, AudienceMemberDetails>;
}

export function createPresenceTracker(audience: CollaborativeSessionAudience): PresenceTracker;

Dependencies { .dependencies }

@fluidframework/container-loader { .dependency }

Provides audience presence tracking for collaborative Fluid containers.

tessl i tessl/npm-fluidframework--container-loader@2.60.0

tile.json