import * as React from 'react'; import { useState } from 'react'; import { getSlowOperations } from '../bootstrap/state.js'; import { Text, useInterval } from '@anthropic/ink'; // Show DevBar for dev builds or all ants function shouldShowDevBar(): boolean { return process.env.NODE_ENV === 'development' || process.env.USER_TYPE === 'ant'; } export function DevBar(): React.ReactNode { const [slowOps, setSlowOps] = useState< ReadonlyArray<{ operation: string; durationMs: number; timestamp: number; }> >(getSlowOperations); useInterval( () => { setSlowOps(getSlowOperations()); }, shouldShowDevBar() ? 500 : null, ); // Only show when there's something to display if (!shouldShowDevBar() || slowOps.length === 0) { return null; } // Single-line format so short terminals don't lose rows to dev noise. const recentOps = slowOps .slice(-3) .map(op => `${op.operation} (${Math.round(op.durationMs)}ms)`) .join(' ยท '); return ( [ANT-ONLY] slow sync: {recentOps} ); }