/** * Per-source icon-name + label lookup. Keyed by `RagTableConfig.id` (the same * id used in `chat_source_rag_tables.rag_table_id` and on each * `ChatRef.sourceRepo`). * * Server-safe — lives in `src/utils/` (no `'use client'` banner) so * hub server-side rag-mappers + chat route handlers can call * `getSourceLabel()` / `getSourceIconName()` directly. The client-side * chat barrel re-exports from here for ergonomic client imports. * * Used by SOURCE-LEVEL chip surfaces: * - The chip strip below an assistant message. * - The tracking-row source glyph on inline entity cards. * * Why a small map here instead of a column on RAG_TABLE_CONFIGS: * - The icon NAME is a small string; the resolver (icon-name → React * component) lives in `src/components/chat/utils/icon-registry.ts` * where it can stay client-only. Server-side consumers stay * icon-component-free. * - The mapping is intrinsic to the TABLE, not per-platform — same * entry serves every (platform, source) binding. * * Per-table admin-UI bucket id (`SOURCE_CATEGORIES_BY_TABLE`) stays * hub-side because it depends on the hub's `RagSourceCategoryId` enum. */ /** Map RagTableConfig.id → icon_name (resolvable via `getIconComponent`). */ export declare const SOURCE_ICON_NAMES: Record; /** Lookup an icon name by RagTableConfig.id. Returns undefined when * unknown so callers can decide whether to fall back to documentType * or to the generic FileText glyph in the icon registry. */ export declare function getSourceIconName(tableId: string | null | undefined): string | undefined; /** * Per-table display LABEL — used by SERVER-SIDE chip-strip rendering * (the row's "Customer Interviews (8 records)" chip below an assistant * message). * * The chip GRID + autocomplete DROPDOWN read their command label * from the DB (per-source `chat_admin_slash_commands.label`) — those * surfaces can carry per-source labels (e.g. "OpenFrame Commits" vs * "GitHub Commits" for the same table). This map is the TABLE-LEVEL * label used by sub-message chips where a SINGLE label per table is * sufficient regardless of which source's chat is rendering. */ export declare const SOURCE_LABELS_BY_TABLE: Record; /** Lookup a human-readable label by RagTableConfig.id. Falls back * to the raw id (chip text becomes the table slug — visible bug * that prompts an entry to land in `SOURCE_LABELS_BY_TABLE`). */ export declare function getSourceLabel(tableId: string): string; /** * Default `documentType → RagTableConfig.id` reverse map. * * Mirrors the canonical lookup the hub registers via * `lib/config/rag-table-config.ts:tableIdForDocumentType()` — same vocabulary * the LLM emits inside `[card://:]` markers, same tableIds the * retrieval layer routes by, and same set of keys covered by * `SOURCE_ICON_NAMES` / `SOURCE_LABELS_BY_TABLE` above. * * Server-safe (no `'use client'` banner), keyed by string for forward * compatibility — adding a new RAG table is a single-line edit here so * lib-based embedders pick it up without re-publishing. * * Embedders that need a CUSTOM mapping (e.g. polymorphic types whose * tableId depends on per-tenant config) still pass their own * `tableIdForDocumentType` callback to `useEmbeddedChat`; this default * only applies when no callback is supplied. * * Inverse mapping audited 2026-05-24 against the hub registry — every * entry in `RAG_TABLE_CONFIGS` with a `documentType` is represented. */ export declare const DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID: Record; /** * Default `tableIdForDocumentType` resolver used by `useEmbeddedChat` when * the caller didn't pass an explicit callback. Returns `null` for * unrecognized document types so downstream `discussRef` / `displayRef` * still short-circuits gracefully on stale or custom types. */ export declare function defaultTableIdForDocumentType(documentType: string): string | null; //# sourceMappingURL=source-icons.d.ts.map