Streams records from JSONL, NDJSON, or JSON-array files as individual typed t values at a paced rate, looping the directory when asked. Use it when downstream needs typed records from a JSON corpus.
Typical backends
Replay a record corpus into a model and forward each reply as JSON.
Caveats
- I/O contractThe bound slot is a directory; the file extension picks the parser — line-delimited files are read one record per line and a JSON file is read as an array — and one typed value is emitted per record, never a list.
- Hard constraintEvery record across every file must conform to the single type wired to the output port; mixed-shape corpora need that type to be a union or an optional wrapper.
- FallbackA line that is not valid JSON or that does not match the resolved type is logged and skipped rather than aborting the run; trailing carriage returns are stripped before parsing.
- OrderingRecords are emitted in source order, and
fps paces each one out, with a non-positive rate disabling pacing. - State lifetime
repeat loops the directory when on and idles after one pass when off; the bound slot, repeat, fps, and skip_empty_lines are all hot-swappable.