@xyo-network/dapp-kit-events
v2.1.4
Published
Public Event Kit admitted-wake bridge for durable dapp-kit event streams
Readme
@xyo-network/dapp-kit-events
This neutral package bridges the public Event Kit admitted-wake/lease boundary into the dapp-kit D-029 event stream. It does not accept HTTP bodies or JWTs and does not perform Event Kit admission.
drainEventKitWakeQueue claims only bounded work, synthesizes a stable event
whose identity excludes the per-attempt JWT jti, durably appends it, requests
each declared dapp subscription wake, and only then acknowledges the Event Kit
lease. A processing failure releases the lease. An acknowledgement failure
leaves it in-flight for exclusive-owner recovery or lease expiry. Concurrent
Function startup must not reset another invocation's active lease.
synthesizeEventKitAdmittedWake accepts the single canonical source-aware
envelope for finalized XL1, finalized Ethereum, and completed UTC intervals.
It verifies the admitted payload hash asynchronously and binds the exact source
and separate XL1 authorization chain into provenance. Legacy envelopes and
version-suffixed Event Kit schema names are rejected; there is no profile
dispatch or compatibility conversion.
Every synthesized draft must carry the package's domain-separated provenance
hash over the stable wakeId, audience, deployment/queue, publisher, event
hash, and the complete signed envelope, including its source and position range.
Injected synthesizers cannot omit or replace
that binding; their own transformation ID/version is independently fingerprinted
by the dapp event contract.
conformance/events/event-kit-provenance.json is reproduced by both the public
TypeScript API and the repository's independent Python event-vector verifier.
The package depends on public Event Kit protocol and schema packages
for AdmittedWake, WakeQueue, and wake-envelope validation. Fail-closed
parsing still rejects raw envelopes, JWT wrappers, and inconsistent duplicated
fields. The core @xyo-network/dapp-kit package does not take an Event Kit
dependency. The canonical source-aware contract requires a coordinated Event Kit
release exporting these APIs; historical release evidence does not qualify it.
Packed-consumer verification requires a clean Event Kit checkout at the tag
matching its package version, then installs its exact artifacts and the packed
dapp-kit packages together, including a
compile-time check that the drain and synthesizer accept Event Kit's exported
AdmittedWake and WakeQueue types.
Wake ranges remain scheduling hints. Consumers must resume from their own durable source checkpoint and independently verify source finality or interval completion. They must not treat a wake range or the event-stream sequence as canonical source progress. Ethereum heights and UTC interval positions are never compared to XL1 authorization heights.
