import type { ThreadId } from "@t3tools/contracts"; interface TerminalRetentionThread { id: ThreadId; deletedAt: string | null; } interface CollectActiveTerminalThreadIdsInput { snapshotThreads: readonly TerminalRetentionThread[]; draftThreadIds: Iterable; } export function collectActiveTerminalThreadIds( input: CollectActiveTerminalThreadIdsInput, ): Set { const activeThreadIds = new Set(); for (const thread of input.snapshotThreads) { if (thread.deletedAt !== null) continue; activeThreadIds.add(thread.id); } for (const draftThreadId of input.draftThreadIds) { activeThreadIds.add(draftThreadId); } return activeThreadIds; }