@botmesh/core - v2.0.0-alpha.2
    Preparing search index...

    Interface ReplayOptions

    Options for replayTranscript.

    interface ReplayOptions {
        settleMs?: number;
        stepTimeoutMs?: number;
        order?: "strict" | "per-chat";
        timestamps?: { toleranceMs: number } | "ignore";
        compareIds?: boolean;
        compareContent?: boolean;
        ignoreContentFields?: string[];
        redact?: { emails?: boolean; phones?: boolean; rules?: RedactionRule[] };
        masks?: ReplayMask[];
        normalizeWhitespace?: boolean;
        normalizeText?: (text: string) => string;
        now?: () => number;
    }
    Index
    settleMs?: number

    Quiet period that ends a step once the expected replies arrived (default 30 ms).

    stepTimeoutMs?: number

    Max time to wait for a step's replies (default 2000 ms).

    order?: "strict" | "per-chat"

    Reply ordering: 'per-chat' (default) compares each chat's replies in order but tolerates interleaving between chats; 'strict' compares the global order.

    timestamps?: { toleranceMs: number } | "ignore"

    Timestamp tolerance. 'ignore' (default) skips timing. { toleranceMs } flags a reply whose delay after its triggering inbound turn differs from the recorded delay by more than toleranceMs.

    compareIds?: boolean

    Compare message ids of outbound turns (default false: ids are volatile).

    compareContent?: boolean

    Compare the full content when the expected turn has one (default true). false compares only kind + text.

    ignoreContentFields?: string[]

    Dot paths inside content to ignore (e.g. 'media', 'target.id').

    redact?: { emails?: boolean; phones?: boolean; rules?: RedactionRule[] }

    Category-level redaction for goldens made with redactTranscript(..., { outboundPatterns: true }). On both sides, matches of the enabled patterns and placeholders/surrogates of those categories (<phone:2>, +10000000001) all become <category:*> before comparing, so bot-printed values that were redacted still match the real ones.

    masks?: ReplayMask[]

    Masks applied to every string on both sides before comparing.

    normalizeWhitespace?: boolean

    Collapse runs of whitespace and trim (default true).

    normalizeText?: (text: string) => string

    Custom text normalizer, applied after masks.

    now?: () => number

    Clock for actual t offsets (default Date.now).