Skip to main content

Type Alias: SceneIngestionOptions

type SceneIngestionOptions = {
agent: Agent;
pipeline: IngestionPipeline;
sources?: IngestionSource[];
};

Defined in: livelink.clients/livelink.agent/sources/data/SceneIngestion.ts:66

Options for a SceneIngestion.

Properties

agent

agent: Agent;

Defined in: livelink.clients/livelink.agent/sources/data/SceneIngestion.ts:73

The (pre-built, not-yet-started) agent to drive. SceneIngestion owns its start/stop; do not start it yourself. Built by the caller so its attachment policy (mode, watch, leave-on-condition) stays the caller's choice — mode: "join-all" for many sessions, mode: "join-or-start" for a single shared session.


pipeline

pipeline: IngestionPipeline;

Defined in: livelink.clients/livelink.agent/sources/data/SceneIngestion.ts:90

The mapping engine driving the scenes, built by the caller:

pipeline: new IngestionPipeline({ mappings, onError });

Always the caller's to build, so it can be unit-tested on its own, shared between ingestions, fed from somewhere else as well, and — the reason it is not sugar here — so its onError always reaches the caller, whoever constructed it.

Errors split by layer: the pipeline's own onError reports a mapping that throws or an entity write that fails; this object's on-error event reports a source that fails to start or an underlying agent error. Point both at the same handler for one channel.


sources?

optional sources?: IngestionSource[];

Defined in: livelink.clients/livelink.agent/sources/data/SceneIngestion.ts:104

The upstream data sources, as TransportSpecs or factories.

Started lazily, when the first session becomes ready, and shared by every session (one subscription, one timeline). Until then — and again once every session is gone — nothing is subscribed and events that would have arrived are simply not received; the pipeline counts anything that does arrive with no scene bound under the no_binding drop reason.

Optional: events can be pushed straight in with SceneIngestion.ingest, and any transport can be pointed at the ingestion itself (it is a EventSink), in which case you own that transport's lifecycle.