import type { EnvironmentId, TerminalAttachInput } from "@t3tools/contracts"; export interface ThreadTerminalSubscriptionIdentity { readonly environmentId: EnvironmentId; readonly threadId: TerminalAttachInput["threadId"]; readonly terminalId: TerminalAttachInput["terminalId"]; readonly cwd: string; readonly worktreePath: string | null; } export interface TerminalGridSize { readonly cols: number; readonly rows: number; } export function buildThreadTerminalAttachInput( identity: ThreadTerminalSubscriptionIdentity, gridSize: TerminalGridSize, ): TerminalAttachInput { return { threadId: identity.threadId, terminalId: identity.terminalId, cwd: identity.cwd, worktreePath: identity.worktreePath, cols: gridSize.cols, rows: gridSize.rows, }; }