export {
  assignProjectColor,
  assignProjectColors,
  ASSIGNMENT_ORDER,
  oklabDeltaE,
  type ProjectColor,
  type ProjectColorOverrides,
} from './project-colors'

export {
  compareOptional,
  formatDurationMs,
  formatPercent,
  formatRelativeTime,
  ratioPercent,
} from './format'

export { safeHttpUrl } from './safe-url'

export {
  BUCKET_META,
  bucketMetaFor,
  segmentsForRun,
  type BucketMeta,
  type ForensicsAttribution,
  type ForensicsBucketCat,
  type ForensicsRun,
  type ForensicsSegment,
  type ForensicsTile,
} from './forensics-types'

export { SectionCard, type SectionCardAction, type SectionCardProps } from './SectionCard'
export { SectionHeading, type SectionHeadingProps } from './SectionHeading'
export { ScoreCard, type ScoreCardProps, type ScoreTrend, type ScoreTrendDirection } from './ScoreCard'
export { InboxItem, type InboxItemAction, type InboxItemDot, type InboxItemProps } from './InboxItem'
export {
  DecisionRow,
  type DecisionContextKv,
  type DecisionRowAnswerState,
  type DecisionRowOption,
  type DecisionRowProps,
} from './DecisionRow'
export { LimitMeter, type LimitMeterAccount, type LimitMeterProps } from './LimitMeter'
export { KpiTile, type KpiTileProps } from './KpiTile'
export { PhaseBars, type PhaseBarsProps } from './PhaseBars'
export { RunLanes, type RunLanesProps } from './RunLanes'
export { RunTable, type RunTableProps } from './RunTable'
export { KvPanel, type KvIntent, type KvPanelProps, type KvRow } from './KvPanel'
export { BotTable, type BotRow, type BotStatus, type BotTableProps } from './BotTable'
export { StaleBadge, type AdapterStalenessStatus, type StaleBadgeProps } from './StaleBadge'
export { VerdictBadge, type Verdict, type VerdictBadgeProps } from './VerdictBadge'
export { CriterionRow, type CriterionRowProps } from './CriterionRow'
export { MapNode, type MapChip, type MapNodeModel, type MapNodeProps, type MapNodePulse } from './MapNode'
export { MapCanvas, type MapCanvasProps, type MapEdge } from './MapCanvas'
export { useSseStream, type SseConnectionStatus, type UseSseStreamOptions } from './useSseStream'
export { DeckTooltipLayer,
  useDeckTooltip,
  type DeckTooltipTargetProps,
} from './DeckTooltip'
export { DetailDrawer } from './DetailDrawer'
export { LinkButton } from './LinkButton'
export {
  Button,
  type ButtonProps,
  type ButtonSize,
  type ButtonTone,
  type ButtonVariant,
} from './Button'
export { TextField, type TextFieldLabelMode, type TextFieldProps } from './TextField'
export { TextArea, type TextAreaProps } from './TextArea'
export { Select, type SelectOption, type SelectProps } from './Select'
export { Checkbox, type CheckboxProps } from './Checkbox'
export { UndoToast, type UndoToastHandle } from './UndoToast'
export { AttentionPanel, type AttentionItem } from './AttentionPanel'
export { AttentionRow } from './AttentionRow'
export { DistanceToDone, type TaskStateCell } from './DistanceToDone'
export { WrapperCapacity, type WrapperRateLimit } from './WrapperCapacity'
export { RateLimitDialog } from './RateLimitDialog'
export { SwimlaneTrace, type ConditionBand, type TraceLane } from './SwimlaneTrace'
export { TraceSegment } from './TraceSegment'
export { SegmentDetailDrawer } from './SegmentDetailDrawer'
export { SettingsTable, type SettingItem, type SettingLayer } from './SettingsTable'
export { SettingRow } from './SettingRow'
export { LayerLadderEditor } from './LayerLadderEditor'
export { DecisionDialog, type DecisionDetail } from './DecisionDialog'
export { RunCommandBar } from './RunCommandBar'
export { DataCoveragePanel } from './DataCoveragePanel'
export { AgentStatusBar, type AgentIdentity } from './AgentStatusBar'
export { IdleTimer } from './IdleTimer'
export { AgentFeed, type AgentTurn, type AgentActivityItem, type AgentActivityBase, type AgentEditItem, type AgentGroupItem } from './AgentFeed'
export type { AgentProgressItem, AgentTestItem, AgentDecisionItem, AgentWarningItem, AgentOutcomeItem } from './AgentActivityRow'
export { TurnCard } from './TurnCard'
export { AgentActivityRow } from './AgentActivityRow'
export { DiffViewer, parseUnifiedDiff, type DiffFile, type DiffHunk, type DiffRow, type DiffParseResult, type DiffParseWarning, type DiffViewerProps } from './DiffViewer'
export { AgentMetaSidebar } from './AgentMetaSidebar'
export { AgentComposer } from './AgentComposer'
export { PlanRunListRow } from './PlanRunListRow'
export {
  StatusChip,
  planStatusCategory,
  type PlanStatusCategory,
} from './StatusChip'
export { IconButton } from './IconButton'
export { ActionsMenu, type ActionItem } from './ActionsMenu'
export {
  resolveActionForFailClass,
  type ResolveAction,
} from './resolve-action'
export {
  ProjectGroupRow,
  type ProjectGroupColumnKey,
  type ProjectGroupSummary,
} from './ProjectGroupRow'
export { PlanTable } from './PlanTable'
export { PlanTableRow, type PlanTableItem } from './PlanTableRow'
export { LiveDuration } from './LiveDuration'
export {
  AbandonedPlansTable,
  type AbandonedPlanItem,
} from './AbandonedPlansTable'
export { AgentModeToggle, type AgentViewMode } from './AgentModeToggle'
export { FilterInput, type FilterInputProps } from './FilterInput'
export {
  TerminalView,
  type TerminalInput,
  type TerminalKey,
  type TerminalViewProps,
  type TerminalViewState,
} from './TerminalView'

export {
  type CapabilityProbe,
  type ClusterQueueModel,
  type FleetHost,
  type HostState,
  type OffloadAction,
  type OffloadControlModel,
  type QueueTicket,
  type RemoteJob,
} from './offload-types'
export { MachineCard, type MachineCardProps } from './MachineCard'
export {
  MachineDetailModal,
  MachineSummaryPopover,
  type MachineDetailModalProps,
} from './MachineDetailModal'
export { HostLogsModal, type HostLogsModalProps } from './HostLogsModal'
export { ClusterQueue, type ClusterQueueProps } from './ClusterQueue'
export { RemoteJobsTable, type RemoteJobsTableProps } from './RemoteJobsTable'
export { OffloadControl, type OffloadControlProps } from './OffloadControl'
export {
  RepoCiTile,
  type RepoCiDegradation,
  type RepoCiSummary,
  type RepoCiTileProps,
} from './RepoCiTile'
export { RepoCiStrip, type RepoCiStripProps } from './RepoCiStrip'
export {
  LaneSegment,
  type LaneSegmentProps,
  type TrainJob,
} from './LaneSegment'
export { LaneBar, type LaneBarProps } from './LaneBar'
export {
  TrainCard,
  type TrainCardProps,
  type TrainGateRun,
  type TrainState,
  type TrainViewModel,
} from './TrainCard'
export {
  compareTrains,
  TrainRail,
  type TrainRailProps,
  type TrainRepoCompleteness,
} from './TrainRail'
export {
  PrQueueTable,
  type PrCheckBucket,
  type PrQueueCheck,
  type PrQueueItem,
  type PrQueueRepoCompleteness,
  type PrQueueTableProps,
} from './PrQueueTable'
export {
  RunnerFleetStrip,
  type RunnerFleetRunner,
  type RunnerFleetStripProps,
} from './RunnerFleetStrip'
export { TimeSeriesChart, type TimeSeriesChartProps, type TimeSeriesGap, type TimeSeriesPoint } from './TimeSeriesChart'
export {
  AmplificationSpark,
  type AmplificationGate,
  type AmplificationSparkProps,
} from './AmplificationSpark'
export { CiCoverageBanner, type CiCoverageBannerProps } from './CiCoverageBanner'
export {
  resolveCiRepoGaps,
  resolvePrQueueRepoGap,
  resolveTrainRepoGap,
  type CiCoverageGap,
  type CiRepoCompleteness,
} from './ci-coverage'
export { DataTable, withSearch, withSorting, withColumnResizing, withPagination, type DataTableColumn, type DataTableSort } from './internal/DataTable'
