> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.token_id_capture

Provide the core training-token capture interfaces.

Training capture is separate from evaluation capture.
Middleware sets a request-scoped token sink.
The model server records a `TokenEntry` from its complete response.
Consumers call `TokenSource.freeze` for an atomic snapshot.
The snapshot includes entries and incomplete state.
Its `snapshot_id` identifies the exact frozen state.
`TokenCaptureStore` is Gym's local sink and source implementation.
Framework transports may provide their own sink and source.
There is no HTTP token reader.
This leaf package avoids imports from Gym's server stack.
The rollout-record finalizer needs Gym's server stack.
It is deliberately not re-exported here.
Import `nemo_gym.token_id_capture.delivery` from server-side code.
The incomplete state prevents training on a rollout that lost a model call.
Finalization freezes and rebuilds the rollout.
Finalization does not retire the snapshot.
The caller retires it only after durable handoff.
Retirement uses the frozen `snapshot_id` and version.
Failed or masked builds retain their capture evidence.

## Submodules

* **[`nemo_gym.token_id_capture.builder`](/nemo-gym/nemo_gym/token_id_capture/builder)**
* **[`nemo_gym.token_id_capture.config`](/nemo-gym/nemo_gym/token_id_capture/config)**
* **[`nemo_gym.token_id_capture.consumer`](/nemo-gym/nemo_gym/token_id_capture/consumer)**
* **[`nemo_gym.token_id_capture.delivery`](/nemo-gym/nemo_gym/token_id_capture/delivery)**
* **[`nemo_gym.token_id_capture.protocols`](/nemo-gym/nemo_gym/token_id_capture/protocols)**
* **[`nemo_gym.token_id_capture.records`](/nemo-gym/nemo_gym/token_id_capture/records)**
* **[`nemo_gym.token_id_capture.sink`](/nemo-gym/nemo_gym/token_id_capture/sink)**
* **[`nemo_gym.token_id_capture.store`](/nemo-gym/nemo_gym/token_id_capture/store)**

## Package Contents

### Data

[`__all__`](#nemo_gym-token_id_capture-__all__)

### API

```python
nemo_gym.token_id_capture.__all__ = ['Chain', 'TokenIdCaptureConfig', 'TokenEntry', 'TOKEN_ENTRY_RECORD_SCHEMA_VERSI...
```