@vivantel/virage-core
    Preparing search index...

    Interface VectorDocument

    interface VectorDocument {
        collection?: string;
        commitHash: string;
        denseText: string;
        denseTextHash: string;
        denseVector: number[];
        id?: string;
        metadata: Record<string, unknown>;
        metadataGeneratorId: string;
        sourceFile: string;
        sparseText: string;
        sparseTextGeneratorId: string;
        tags?: string[];
    }
    Index
    collection?: string

    Collection name (for multi-collection stores).

    commitHash: string

    Git commit hash (for change detection).

    denseText: string

    Text sent to the embedding model (breadcrumb + full body).

    denseTextHash: string

    sha256(denseText) truncated to 16 hex chars — primary dedup key.

    denseVector: number[]

    Dense embedding vector of denseText.

    id?: string

    Unique ID (optional; set to denseTextHash by Uploader when omitted).

    metadata: Record<string, unknown>

    Metadata for filtering (serialized ChunkMeta).

    metadataGeneratorId: string

    Method fingerprint for metadata assembly (ADR-037).

    sourceFile: string

    Source file path (for tracking updates).

    sparseText: string

    Raw body used for BM25/FTS lexical search (no breadcrumb prefix).

    sparseTextGeneratorId: string

    Method fingerprint for sparseText generation (ADR-037).

    tags?: string[]

    Tags for store-level access filtering (ADR-046). Set by the index-time tag pipeline from fileSet.tags and fileSet.tagRules. Stored alongside metadata_json so the store can apply WHERE tags && ARRAY[allowed]. Sourced from ChunkMeta.tags and must stay in sync with metadata.tags.