UNPKG

capsule-ai-cli

Version:

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

35 lines 1.9 kB
import React from 'react'; import { Box, Text } from 'ink'; import SelectInput from 'ink-select-input'; import chalk from 'chalk'; import { getProviderColor, createProviderColoredItem } from '../utils/provider-colors.js'; export const ProviderSelector = ({ providers = [], currentProvider, onSelect, onClose }) => { const providerColor = getProviderColor(currentProvider); const items = providers.map(provider => ({ label: provider === currentProvider ? `${provider} ${chalk.green('(current)')}` : provider, value: provider })); if (providers.length === 0) { return (React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: "yellow", paddingX: 1 }, React.createElement(Text, { color: "yellow" }, "No providers available. Configure API keys with /keys"))); } const maxVisibleItems = 10; const showingAllItems = items.length <= maxVisibleItems; return (React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: providerColor, paddingX: 1 }, React.createElement(Box, { marginBottom: 1 }, React.createElement(Text, { bold: true }, "Select an AI provider:")), React.createElement(SelectInput, { items: items, limit: maxVisibleItems, onSelect: (item) => { onSelect(item.value); onClose(); }, itemComponent: createProviderColoredItem() }), !showingAllItems && (React.createElement(Box, { marginTop: 1 }, React.createElement(Text, { dimColor: true }, "Showing ", maxVisibleItems, " of ", items.length, " providers"))), React.createElement(Box, { marginTop: 1 }, React.createElement(Text, { dimColor: true }, "Press ESC to cancel")))); }; //# sourceMappingURL=ProviderSelector.js.map