/**
 * ============================================================
 *  src/ui/hooks/useTerminalSize.ts —— 终端尺寸感知
 * ------------------------------------------------------------
 *  返回当前终端的 rows / cols；监听 process.stdout 'resize' 事件，
 *  resize 时刷新 state，触发依赖此 hook 的组件 re-render（如 MessageList
 *  根据 rows < 28 决定是否折叠 reasoning）。
 *
 *  fallback 值：rows=24, cols=80（POSIX 终端历史默认）。
 *  非 TTY 场景（pipe / 测试环境）下 process.stdout.rows 可能 undefined，
 *  fallback 兜底保证 UI 不崩。
 * ============================================================
 */
import { useEffect, useState } from 'react';
function readSize() {
    return {
        rows: process.stdout.rows ?? 24,
        cols: process.stdout.columns ?? 80,
    };
}
export function useTerminalSize() {
    const [size, setSize] = useState(readSize);
    useEffect(() => {
        const update = () => setSize(readSize());
        process.stdout.on('resize', update);
        return () => {
            process.stdout.off('resize', update);
        };
    }, []);
    return size;
}
