RichContentNode::Mention],
discriminated on type.
type FileSearchResult = { filename: string; path: string; score: number; type: "file" } | { dirname: string; path: string; score: number; type: "directory" } | { indexingStatusLabel: string | null; repo: string; repoFullName: string; score: number; setupStatusLabel: string | null; type: "repo" } | { playbook: PlaybookRef; score: number; type: "playbook" } | { aliases: string[] | null; categoryType: FileSearchCategoryType; description: string; isDisabled: boolean | null; isLoading: boolean | null; name: string; score: number; type: "category" } | { description: string; instructions: string; isDisabled: boolean | null; name: string; score: number; type: "teach" } | { command: string; description: string | null; displayText: string; replacementText: string; score: number; type: "slash-command" } | { aliases: string[] | null; command: string; description: string; displayText: string; score: number; type: "input-command" } | { description: string; name: string; score: number; type: "manage-commands" } | { description: string; name: string; score: number; type: "send-secret" } | { name: string; note: string; score: number; type: "secret" } | { description: string; repoName: string; score: number; skillName: string; skillPath: string; type: "skill" } | { initialMessage: string | null; score: number; sessionId: string; status: string; title: string; type: "devin-session" } | { macro: string; noteName: string; score: number; type: "macro" }

