export interface LineageEntryLike { id?: string; } export interface LineageSessionManagerLike { getBranch: () => LineageEntryLike[]; getEntries?: () => LineageEntryLike[]; } export const getActiveLineageEntryIds = ( sessionManager: LineageSessionManagerLike, ): Set => { try { const branch = sessionManager.getBranch() ?? []; if (branch.length > 0) { return new Set( branch.map((e) => e.id).filter((id): id is string => Boolean(id)), ); } } catch { // fall through to defensive fallback } try { const all = sessionManager.getEntries?.() ?? []; return new Set( all.map((e) => e.id).filter((id): id is string => Boolean(id)), ); } catch { return new Set(); } };