UNPKG

@nanocollective/nanocoder

Version:

A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter

32 lines 2.1 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { Box, Text } from 'ink'; import React from 'react'; import { TOKEN_THRESHOLD_CRITICAL_PERCENT, TOKEN_THRESHOLD_WARNING_PERCENT, } from '../constants.js'; import { useResponsiveTerminal } from '../hooks/useTerminalWidth.js'; import { DEVELOPMENT_MODE_LABELS, DEVELOPMENT_MODE_LABELS_NARROW, } from '../types/core.js'; function getContextColor(percent, colors) { if (percent >= TOKEN_THRESHOLD_CRITICAL_PERCENT) return colors.error; if (percent >= TOKEN_THRESHOLD_WARNING_PERCENT) return colors.warning; return colors.secondary; } /** * Development mode indicator component * Shows the current development mode (normal/auto-accept/plan/scheduler) and instructions * Always visible to help users understand the current mode */ export const DevelopmentModeIndicator = React.memo(({ developmentMode, colors, contextPercentUsed, }) => { const { isNarrow } = useResponsiveTerminal(); const modeLabel = isNarrow ? DEVELOPMENT_MODE_LABELS_NARROW[developmentMode] : DEVELOPMENT_MODE_LABELS[developmentMode]; return (_jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: developmentMode === 'normal' ? colors.secondary : developmentMode === 'auto-accept' || developmentMode === 'scheduler' ? colors.info : colors.warning, children: [_jsx(Text, { bold: true, children: modeLabel }), isNarrow && developmentMode !== 'scheduler' && (_jsx(Text, { dimColor: true, children: " (Shift+Tab to cycle)" }))] }), contextPercentUsed !== null && (_jsxs(_Fragment, { children: [_jsx(Text, { color: colors.secondary, children: "\u00B7 " }), _jsxs(Text, { color: getContextColor(contextPercentUsed, colors), dimColor: contextPercentUsed < TOKEN_THRESHOLD_WARNING_PERCENT, children: ["ctx: ", contextPercentUsed, "%"] })] }))] })); }); DevelopmentModeIndicator.displayName = 'DevelopmentModeIndicator'; //# sourceMappingURL=development-mode-indicator.js.map