> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# ReplayOptions

> Interface exported by @botmesh/core/testing.

Defined in: [testing/transcripts/replay.ts:61](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L61)

Options for [replayTranscript](https://botmesh.afaya.com.co/api/core/testing/functions/replayTranscript.md).

## Properties

### settleMs?

```ts theme={null}
settleMs?: number;
```

Defined in: [testing/transcripts/replay.ts:63](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L63)

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

***

### stepTimeoutMs?

```ts theme={null}
stepTimeoutMs?: number;
```

Defined in: [testing/transcripts/replay.ts:65](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L65)

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

***

### order?

```ts theme={null}
order?: "strict" | "per-chat";
```

Defined in: [testing/transcripts/replay.ts:70](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L70)

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

***

### timestamps?

```ts theme={null}
timestamps?: 
  | {
  toleranceMs: number;
}
  | "ignore";
```

Defined in: [testing/transcripts/replay.ts:76](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L76)

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?

```ts theme={null}
compareIds?: boolean;
```

Defined in: [testing/transcripts/replay.ts:78](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L78)

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

***

### compareContent?

```ts theme={null}
compareContent?: boolean;
```

Defined in: [testing/transcripts/replay.ts:83](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L83)

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

***

### ignoreContentFields?

```ts theme={null}
ignoreContentFields?: string[];
```

Defined in: [testing/transcripts/replay.ts:85](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L85)

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

***

### redact?

```ts theme={null}
redact?: object;
```

Defined in: [testing/transcripts/replay.ts:92](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L92)

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.

#### emails?

```ts theme={null}
emails?: boolean;
```

#### phones?

```ts theme={null}
phones?: boolean;
```

#### rules?

```ts theme={null}
rules?: RedactionRule[];
```

***

### masks?

```ts theme={null}
masks?: ReplayMask[];
```

Defined in: [testing/transcripts/replay.ts:94](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L94)

Masks applied to every string on both sides before comparing.

***

### normalizeWhitespace?

```ts theme={null}
normalizeWhitespace?: boolean;
```

Defined in: [testing/transcripts/replay.ts:96](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L96)

Collapse runs of whitespace and trim (default `true`).

***

### normalizeText?

```ts theme={null}
normalizeText?: (text) => string;
```

Defined in: [testing/transcripts/replay.ts:98](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L98)

Custom text normalizer, applied after masks.

#### Parameters

| Parameter | Type |
| - | - |
| `text` | `string` |

#### Returns

`string`

***

### now?

```ts theme={null}
now?: () => number;
```

Defined in: [testing/transcripts/replay.ts:100](https://github.com/andresayac/botmesh/blob/main/packages/core/src/testing/transcripts/replay.ts#L100)

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

#### Returns

`number`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.