Marmot-TS
    Preparing search index...

    Type Alias GroupsManagerOptions<THistory, TMedia>

    Options for creating a new GroupsManager

    type GroupsManagerOptions<
        THistory extends BaseGroupHistory
        | undefined = undefined,
        TMedia extends BaseGroupMedia | undefined = undefined,
    > = {
        audit?: AuditSink;
        auditContext?: AuditContextOptions;
        convergencePolicy?: ConvergencePolicy;
        cryptoProvider?: CryptoProvider;
        historyFactory?: GroupHistoryFactory<THistory>;
        ingestionPool?: IngestionPoolOptions;
        ingestPersistence: IngestPersistenceCapability;
        ingestStateStore: GenericKeyValueStore<Uint8Array>;
        lifecycleStore: GenericKeyValueStore<Uint8Array>;
        mediaFactory?: GroupMediaFactory<TMedia>;
        network: NostrNetworkInterface;
        removedMarkerStore?: GenericKeyValueStore<boolean>;
        rewindStore?: GenericKeyValueStore<Uint8Array>;
        signer: EventSigner;
        store: GenericKeyValueStore<SerializedClientState>;
        verifyEvent?: VerifyEventMethod;
    }

    Type Parameters

    Index
    audit?: AuditSink

    Optional forensic audit sink inherited by groups. Omitted by default.

    auditContext?: AuditContextOptions

    Required when audit is set; contains stable engine/account/session metadata.

    convergencePolicy?: ConvergencePolicy

    Convergence policy applied to every group (branch selection + the maxRewindCommits rollback horizon). Set maxRewindCommits: Infinity to keep forks of any age eligible for re-convergence. Defaults to profile 1.

    cryptoProvider?: CryptoProvider

    The crypto provider to use for cryptographic operations

    historyFactory?: GroupHistoryFactory<THistory>

    Optional group history factory passed to each MarmotGroup instance

    ingestionPool?: IngestionPoolOptions

    Ingestion-pool tuning applied to every group: max entries and max epoch-age for undecryptable events held for retry. Raise both for a debugging tool that aims to retain and process everything.

    ingestPersistence: IngestPersistenceCapability
    ingestStateStore: GenericKeyValueStore<Uint8Array>
    lifecycleStore: GenericKeyValueStore<Uint8Array>
    mediaFactory?: GroupMediaFactory<TMedia>

    Optional group media factory passed to each MarmotGroup instance

    The nostr relay pool to use for the client

    removedMarkerStore?: GenericKeyValueStore<boolean>

    Dedicated backend for the persisted removed-inactive marker (D-12), keyed by the same group-id hex as store. When provided, the fact that an involuntary removal has already been realized survives a restart, so the removed event fires exactly once across process boundaries and a rewind that supersedes the removal can clear it durably. Optional — when omitted, realization degrades to in-memory-only (fires once per process, does not survive a restart).

    rewindStore?: GenericKeyValueStore<Uint8Array>

    Dedicated backend for the per-group rewind-history blob. When provided, the convergence rewind window is persisted and survives a restart. Optional.

    signer: EventSigner

    The signer used for the clients identity

    The backend storing serialized group state bytes

    verifyEvent?: VerifyEventMethod

    Injectable Nostr event verifier gating the 445 #connectGroup drain (SEC-01): every inbound group-message event is verified before it reaches group.ingest(). Defaults to applesauce's verifyEvent.