# FR: `@x12i/api-simulator` — fetch / undici transport helper

**Status:** Shipped in **1.3.0** (`createSimulatorFetch` on `@x12i/api-simulator/fetch`; undici via injected `fetch`)  
**Package:** `@x12i/api-simulator` **1.0.0+**  
**Consumers:** neo-tools workers (all vendor HTTP clients)

## Problem

1.0.0 ships in-process `dispatch` and a Node `createNodeHttpHandler`. Workers already have `undici` / `fetch` / axios clients. Without a first-class transport, each client forks live vs simulation around every HTTP call.

## Goals

1. Export a `fetch`-compatible adapter (and/or undici `Dispatcher`) that routes matching requests to the simulator.
2. Support a clear live-passthrough policy when no endpoint matches (throw vs forward) — configurable.
3. Keep the core engine transport-agnostic; adapters live in subpaths (e.g. `@x12i/api-simulator/fetch`).

## Non-goals

- Replacing client auth/signing logic
- Browser MSW-style service workers

## Acceptance

- `createSimulatorFetch(simulator)` returns `(input, init?) => Promise<Response>`
- Optional undici dispatcher documented for Node workers
- neo-tools can inject one transport instead of branching inside each vendor client
