/
alexefan136
/
flowstack
Обзор
Документация
Войти
/
alexefan136
/
flowstack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
ui/src/lib/knowledge.ts
69 строк
2 KB
Alexander Efanov
Обновление репозитория
15 июл 2026, 12:19
15 июл 2026, 12:19
76704c6
Код
Авторство
О чём код?
// src/lib/types/knowledge.ts export type DocType = 'Решение' | 'Runbook' | 'Документ' | 'Сценарий' | 'Спецификация'; export type FreshnessLevel = 'excellent' | 'good' | 'stale' | 'outdated'; export interface KnowledgeDoc { id: string; title: string; type: DocType; freshness: number; // 0-100 views: number; updated: string; author: string; tags: string[]; summary?: string; content?: string; } export interface KnowledgeGap { id: string; title: string; severity: 'critical' | 'high' | 'medium' | 'low'; domain: string; description: string; detectedDaysAgo: number; relatedDocs?: string[]; } export interface GraphNode { id: string; label: string; type: 'concept' | 'document' | 'entity' | 'decision'; x: number; y: number; size: number; color: string; } export interface GraphEdge { source: string; target: string; label?: string; weight: number; } export interface SearchResult { doc: KnowledgeDoc; score: number; highlights: string[]; matchedFields: ('title' | 'content' | 'tags')[]; } export function getFreshnessLevel(score: number): FreshnessLevel { if (score >= 80) return 'excellent'; if (score >= 60) return 'good'; if (score >= 40) return 'stale'; return 'outdated'; } export function getFreshnessConfig(level: FreshnessLevel) { const configs = { excellent: { color: 'text-emerald-400', bg: 'bg-emerald-500', label: 'Отличная' }, good: { color: 'text-amber-400', bg: 'bg-amber-500', label: 'Хорошая' }, stale: { color: 'text-orange-400', bg: 'bg-orange-500', label: 'Стареет' }, outdated: { color: 'text-red-400', bg: 'bg-red-500', label: 'Устарела' }, }; return configs[level]; }