use async_trait;
use Sender;
use CancellationToken;
use crateEnvelope;
use crateNodeCtx;
/// A pipeline source.
///
/// Drives its own cadence (polling, streaming, event-driven) and pushes
/// envelopes into `tx`. When `cancel` fires, the implementation must exit
/// promptly; dropping `tx` on exit signals downstream stages to drain.