Skip to main content
Glama
fallback-formatter.ts2.15 kB
import {header, trimWithEllipsis} from '../../../markdown.js'; import type {HierarchicalSearchResult} from '../types.js'; export const buildFallbackTitle = (fallbackResults: HierarchicalSearchResult[]): string => { const hierarchicalCount = fallbackResults.filter(r => r.foundVia === 'hierarchical').length; const regexCount = fallbackResults.filter(r => r.foundVia === 'regex').length; const directCount = fallbackResults.filter(r => r.foundVia === 'direct').length; let fallbackTitle = 'Advanced Search Results'; if (hierarchicalCount > 0) { fallbackTitle += ` (${hierarchicalCount} hierarchical`; if (regexCount > 0) { fallbackTitle += `, ${regexCount} fuzzy`; } if (directCount > 0) { fallbackTitle += `, ${directCount} direct`; } fallbackTitle += ')'; } else if (regexCount > 0) { fallbackTitle += ` (${regexCount} fuzzy matches)`; } else { fallbackTitle += ` (${directCount} direct matches)`; } return fallbackTitle; }; export const buildFallbackLines = (fallbackResults: HierarchicalSearchResult[]): string[] => { const lines: string[] = []; const hierarchicalCount = fallbackResults.filter(r => r.foundVia === 'hierarchical').length; const regexCount = fallbackResults.filter(r => r.foundVia === 'regex').length; const fallbackTitle = buildFallbackTitle(fallbackResults); lines.push(header(2, fallbackTitle)); for (const result of fallbackResults) { lines.push(`### ${result.title}`); if (result.kind) { lines.push(` • **Kind:** ${result.kind}`); } lines.push(` • **Path:** ${result.path}`, ` • **Found via:** ${result.foundVia} search`); if (result.platforms) { lines.push(` • **Platforms:** ${result.platforms}`); } if (result.description) { lines.push(` ${trimWithEllipsis(result.description, 180)}`); } lines.push(''); } if (hierarchicalCount > 0) { lines.push('🔍 **Hierarchical results** include symbols found in nested paths (e.g., "tabbar" found in "toolbarplacement/tabbar").'); } if (regexCount > 0) { lines.push('🎯 **Fuzzy results** include partial character matches across symbol names and paths.'); } return lines; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MightyDillah/apple-doc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server