import type { MentionSuggestion } from '@renderer/types/mention'; export function getSuggestionTriggerChar(suggestion: MentionSuggestion): '@' | '#' | '/' { if (suggestion.type === 'task') return '#'; if (suggestion.type === 'command' || suggestion.type === 'skill') return '/'; return '@'; } export function getSuggestionInsertionText(suggestion: MentionSuggestion): string { if (suggestion.type === 'command' || suggestion.type === 'skill') { return suggestion.command?.slice(1) ?? suggestion.insertText ?? suggestion.name; } return suggestion.insertText ?? suggestion.name; } export function doesSuggestionMatchQuery(suggestion: MentionSuggestion, query: string): boolean { const normalizedQuery = query.trim().toLowerCase(); if (!normalizedQuery) return true; const haystacks = [ suggestion.name, suggestion.subtitle, suggestion.description, suggestion.relativePath, suggestion.searchText, suggestion.teamDisplayName, suggestion.teamName, suggestion.command, ] .filter(Boolean) .map((value) => value!.toLowerCase()); return haystacks.some((value) => value.includes(normalizedQuery)); }