UNPKG

capsule-ai-cli

Version:

The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing

48 lines 2.25 kB
import React from 'react'; import { Box, Text } from 'ink'; import chalk from 'chalk'; import { getProviderColor } from '../utils/provider-colors.js'; import { getModelDisplayName } from '../utils/model-display.js'; export const StatusBar = ({ mode, model, provider, tokenCount, tokenLimit, isPasting = false }) => { const percentage = Math.round((tokenCount / tokenLimit) * 100); const getModeStyle = () => { switch (mode) { case 'agent': return chalk.hex('#FFFF00'); case 'plan': return chalk.hex('#00FFFF'); case 'orchestrator': return chalk.hex('#FF00FF'); case 'auto': return chalk.hex('#00FF00'); default: return chalk.white; } }; const getProviderStyle = () => { return chalk.hex(getProviderColor(provider)); }; const getModelStyle = () => { return chalk.hex(getProviderColor(provider)); }; const getTokenStyle = () => { if (percentage > 90) return chalk.hex('#EF4444'); if (percentage > 80) return chalk.hex('#F59E0B'); return chalk.hex('#6B7280'); }; return (React.createElement(Box, { justifyContent: "space-between", width: "100%" }, React.createElement(Box, null, React.createElement(Text, null, getModeStyle()(`◆ ${mode}`), " "), React.createElement(Text, { dimColor: true }, "(shift+tab)"), React.createElement(Text, { color: "gray" }, " \u2022 "), React.createElement(Text, null, getModelStyle()(getModelDisplayName(model)), " "), React.createElement(Text, { color: "gray" }, " \u2022 "), React.createElement(Text, null, getProviderStyle()(provider)), isPasting && (React.createElement(React.Fragment, null, React.createElement(Text, { color: "gray" }, " \u2022 "), React.createElement(Text, { color: "yellow" }, "Pasting...")))), React.createElement(Box, null, React.createElement(Text, null, getTokenStyle()(`${tokenCount.toLocaleString()}/${(tokenLimit / 1000).toFixed(0)}k tokens (${percentage}%)`))))); }; //# sourceMappingURL=StatusBar.js.map