import { memo, useCallback, useEffect, useMemo, useState } from 'react'; import { useAppTranslation } from '@features/localization/renderer'; import { Button } from '@renderer/components/ui/button'; import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@renderer/components/ui/dialog'; import { MemberSelect } from '@renderer/components/ui/MemberSelect'; import { Tooltip, TooltipContent, TooltipTrigger } from '@renderer/components/ui/tooltip'; import { cn } from '@renderer/lib/utils'; import { useStore } from '@renderer/store'; import { selectResolvedMembersForTeamName } from '@renderer/store/slices/teamSlice'; import { isLeadMember } from '@shared/utils/leadDetection'; import { Brain, Expand, MessageSquare, Terminal, Wrench } from 'lucide-react'; import { MemberLogStreamWithLegacyFallback } from './members/MemberLogStreamWithLegacyFallback'; import { ClaudeLogsPanel } from './ClaudeLogsPanel'; import { CollapsibleTeamSection } from './CollapsibleTeamSection'; import { buildSelectableLogMembers, formatMemberLogSourceDescription, formatMemberLogSourceLabel, getMemberNameFromLogSourceKey, LEAD_LOG_SOURCE_KEY, memberLogSourceKey, normalizeMemberLogSourceName, resolveLeadLogMember, } from './teamLogSources'; import { useClaudeLogsController } from './useClaudeLogsController'; import type { TeamLogSourceKey } from './teamLogSources'; import type { LastLogPreview } from './useClaudeLogsController'; import type { ResolvedTeamMember } from '@shared/types'; // ============================================================================= // Constants // ============================================================================= const PREVIEW_ICONS = { output: , thinking: , tool: , } as const; const LogsHeaderSkeletonPill = ({ className, }: Readonly<{ className?: string }>): React.JSX.Element => (