Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | /** * Model Registry for Vision Training * * This registry defines model types and their metadata. * Pages use the path-based architecture and render components directly. */ import type { ModelType } from './train/components/wizard/types' // Registry entry for a model type export interface ModelRegistryEntry { label: string description: string icon: string } // Helper to get model registry entry export function getModelEntry(modelType: ModelType): ModelRegistryEntry { switch (modelType) { case 'boundary-detector': return { label: 'Boundary Detector', description: 'Detects abacus boundaries in camera frames', icon: '๐ฏ', } case 'column-classifier': return { label: 'Column Classifier', description: 'Classifies abacus column values (0-9)', icon: '๐ข', } default: { const exhaustiveCheck: never = modelType throw new Error(`Unknown model type: ${exhaustiveCheck}`) } } } // Get all model types for iteration export function getAllModelTypes(): ModelType[] { return ['boundary-detector', 'column-classifier'] } // Get label for a model type export function getModelLabel(modelType: ModelType): string { return getModelEntry(modelType).label } // Tab definitions export type TabId = 'data' | 'train' | 'test' | 'sessions' export interface TabDefinition { id: TabId label: string icon: string } export const TABS: TabDefinition[] = [ { id: 'data', label: 'Data', icon: '๐' }, { id: 'train', label: 'Train', icon: '๐๏ธ' }, { id: 'test', label: 'Test', icon: '๐งช' }, { id: 'sessions', label: 'Sessions', icon: '๐' }, ] |