import { AgentActivityMessage, AgentActivityTurn, AgentActivitySnapshot } from '@tutti-os/agent-activity-core'; interface AgentHostUserInfo { userId: string; email?: string; avatar?: string; avatarObjectKey?: string; name?: string; } type ToolCallStatusKind = "working" | "completed" | "failed" | "canceled" | "waiting"; interface WorkspaceAgentToolCallDisplay { id: string; name: string; status: string | null; statusKind: ToolCallStatusKind | null; detail?: string; } type WorkspaceAgentLatestActivityStatus = "working" | "waiting" | "idle" | "completed" | "canceled" | "failed"; interface WorkspaceAgentConversationPreviewLine { actorName: string; summary: string; } type WorkspaceAgentActivityStatus = WorkspaceAgentLatestActivityStatus; interface WorkspaceAgentChangedFile { path: string; label: string; } interface WorkspaceAgentActivityCard { id: string; sessionId: string; userId: string | null; userName: string; userAvatarUrl?: string; agentProvider: string; agentName: string; title: string; status: WorkspaceAgentActivityStatus; latestActivitySummary: string; /** User prompt + latest agent reply for task/issue execution cards; room status list uses single-line summary only. */ conversationPreview?: WorkspaceAgentConversationPreviewLine[]; latestActivityActorName?: string; toolCalls?: WorkspaceAgentToolCallDisplay[]; changedFiles: WorkspaceAgentChangedFile[]; sortTimeUnixMs: number; readTimeUnixMs?: number; } interface WorkspaceAgentActivityListViewModel { activities: WorkspaceAgentActivityCard[]; } interface BuildWorkspaceAgentActivityListOptions { sessionMessagesById?: Record; /** * Canonical Turn file-change snapshots not retained on the Session's latest * Turn. Hosts may provide older Turns here after mapping transport DTOs. */ sessionTurnFileChangesById?: Readonly[]>>; userProfilesById?: Record; } interface CollectWorkspaceAgentGeneratedFilesOptions { /** When set, only include files produced by these Agent targets. */ agentTargetIds?: readonly string[] | null; workspaceRoot?: string | null; /** When set, only include files from sessions whose cwd matches this path. */ sessionCwd?: string | null; } type WorkspaceAgentActivityListSnapshot = Pick; export type { BuildWorkspaceAgentActivityListOptions as B, CollectWorkspaceAgentGeneratedFilesOptions as C, ToolCallStatusKind as T, WorkspaceAgentActivityCard as W, WorkspaceAgentActivityListSnapshot as a, WorkspaceAgentActivityListViewModel as b, WorkspaceAgentActivityStatus as c, WorkspaceAgentChangedFile as d };