@sekiban/dcb-runtime 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/LICENSE +86 -0
  2. package/README.md +13 -0
  3. package/dist/allocator/AllocatorDurableObject.d.ts +36 -0
  4. package/dist/allocator/AllocatorDurableObject.js +658 -0
  5. package/dist/allocator/IssuanceLedger.d.ts +188 -0
  6. package/dist/allocator/IssuanceLedger.js +608 -0
  7. package/dist/allocator/IssuanceReconciler.d.ts +41 -0
  8. package/dist/allocator/IssuanceReconciler.js +191 -0
  9. package/dist/allocator/OrderClock.d.ts +41 -0
  10. package/dist/allocator/OrderClock.js +92 -0
  11. package/dist/allocator/SortableUniqueId.d.ts +46 -0
  12. package/dist/allocator/SortableUniqueId.js +156 -0
  13. package/dist/allocator/types.d.ts +52 -0
  14. package/dist/allocator/types.js +1 -0
  15. package/dist/bootstrap/BootstrapCoordinatorDurableObject.d.ts +28 -0
  16. package/dist/bootstrap/BootstrapCoordinatorDurableObject.js +357 -0
  17. package/dist/bootstrap/BootstrapStoreAdapter.d.ts +51 -0
  18. package/dist/bootstrap/BootstrapStoreAdapter.js +162 -0
  19. package/dist/bootstrap/OperatorBootstrap.d.ts +20 -0
  20. package/dist/bootstrap/OperatorBootstrap.js +104 -0
  21. package/dist/bootstrap/manifest.d.ts +9 -0
  22. package/dist/bootstrap/manifest.js +115 -0
  23. package/dist/bootstrap/types.d.ts +75 -0
  24. package/dist/bootstrap/types.js +1 -0
  25. package/dist/cli/OperatorRepairCli.d.ts +11 -0
  26. package/dist/cli/OperatorRepairCli.js +108 -0
  27. package/dist/cloudflare.d.ts +164 -0
  28. package/dist/cloudflare.js +19487 -0
  29. package/dist/commit/CommitWorker.d.ts +101 -0
  30. package/dist/commit/CommitWorker.js +921 -0
  31. package/dist/commit/types.d.ts +25 -0
  32. package/dist/commit/types.js +13 -0
  33. package/dist/completeness/GlobalCompletenessReconciler.d.ts +77 -0
  34. package/dist/completeness/GlobalCompletenessReconciler.js +572 -0
  35. package/dist/completeness/types.d.ts +85 -0
  36. package/dist/completeness/types.js +6 -0
  37. package/dist/composition.d.ts +123 -0
  38. package/dist/composition.js +237 -0
  39. package/dist/cosmos.d.ts +11 -0
  40. package/dist/cosmos.js +1411 -0
  41. package/dist/d1-mv.d.ts +8 -0
  42. package/dist/d1-mv.js +2001 -0
  43. package/dist/d1.d.ts +16 -0
  44. package/dist/d1.js +3418 -0
  45. package/dist/diagnostics/G60DurableHop.d.ts +99 -0
  46. package/dist/diagnostics/G60DurableHop.js +248 -0
  47. package/dist/diagnostics/G65Admission.d.ts +23 -0
  48. package/dist/diagnostics/G65Admission.js +43 -0
  49. package/dist/diagnostics/G65DirectRing.d.ts +33 -0
  50. package/dist/diagnostics/G65DirectRing.js +85 -0
  51. package/dist/diagnostics/G69AdmissionAttempt.d.ts +43 -0
  52. package/dist/diagnostics/G69AdmissionAttempt.js +22 -0
  53. package/dist/downstream/DeliveryCore.d.ts +127 -0
  54. package/dist/downstream/DeliveryCore.js +304 -0
  55. package/dist/downstream/Doorbell.d.ts +43 -0
  56. package/dist/downstream/Doorbell.js +137 -0
  57. package/dist/downstream/DownstreamAdapter.d.ts +52 -0
  58. package/dist/downstream/DownstreamAdapter.js +299 -0
  59. package/dist/downstream/ExclusionLookup.d.ts +36 -0
  60. package/dist/downstream/ExclusionLookup.js +50 -0
  61. package/dist/downstream/InconsistencyDetector.d.ts +27 -0
  62. package/dist/downstream/InconsistencyDetector.js +82 -0
  63. package/dist/downstream/OutboxDrain.d.ts +35 -0
  64. package/dist/downstream/OutboxDrain.js +126 -0
  65. package/dist/downstream/types.d.ts +77 -0
  66. package/dist/downstream/types.js +64 -0
  67. package/dist/eventIdentity.d.ts +30 -0
  68. package/dist/eventIdentity.js +49 -0
  69. package/dist/eventRecord.d.ts +26 -0
  70. package/dist/eventRecord.js +53 -0
  71. package/dist/g42-probe.d.ts +9 -0
  72. package/dist/g42-probe.js +9 -0
  73. package/dist/http/SerializedQueryWorker.d.ts +58 -0
  74. package/dist/http/SerializedQueryWorker.js +497 -0
  75. package/dist/http/commitResponse.d.ts +46 -0
  76. package/dist/http/commitResponse.js +80 -0
  77. package/dist/http/testServiceId.d.ts +17 -0
  78. package/dist/http/testServiceId.js +14 -0
  79. package/dist/index.d.ts +112 -0
  80. package/dist/index.js +19926 -0
  81. package/dist/journal/JournalDurableObject.d.ts +30 -0
  82. package/dist/journal/JournalDurableObject.js +481 -0
  83. package/dist/journal/JournalFirstTouchProbe.d.ts +190 -0
  84. package/dist/journal/JournalFirstTouchProbe.js +375 -0
  85. package/dist/journal/types.d.ts +116 -0
  86. package/dist/journal/types.js +52 -0
  87. package/dist/mv/MaterializedViewCatchUp.d.ts +60 -0
  88. package/dist/mv/MaterializedViewCatchUp.js +353 -0
  89. package/dist/mv/MaterializedViewRuntime.d.ts +80 -0
  90. package/dist/mv/MaterializedViewRuntime.js +328 -0
  91. package/dist/mv/MaterializedViewStore.d.ts +257 -0
  92. package/dist/mv/MaterializedViewStore.js +875 -0
  93. package/dist/mv/UnsafeWindowMaterializedView.d.ts +112 -0
  94. package/dist/mv/UnsafeWindowMaterializedView.js +495 -0
  95. package/dist/mv/index.d.ts +8 -0
  96. package/dist/mv/index.js +2357 -0
  97. package/dist/projection/LiveProjectionWorker.d.ts +86 -0
  98. package/dist/projection/LiveProjectionWorker.js +240 -0
  99. package/dist/projection/ProjectionRuntime.d.ts +113 -0
  100. package/dist/projection/ProjectionRuntime.js +346 -0
  101. package/dist/projection/ProjectorRegistry.d.ts +51 -0
  102. package/dist/projection/ProjectorRegistry.js +116 -0
  103. package/dist/query/ProjectionQueryStore.d.ts +102 -0
  104. package/dist/query/ProjectionQueryStore.js +185 -0
  105. package/dist/query/QueryRegistry.d.ts +22 -0
  106. package/dist/query/QueryRegistry.js +36 -0
  107. package/dist/read/SerializedReadWorker.d.ts +36 -0
  108. package/dist/read/SerializedReadWorker.js +225 -0
  109. package/dist/repair/RepairWorker.d.ts +72 -0
  110. package/dist/repair/RepairWorker.js +461 -0
  111. package/dist/safeWindow.d.ts +20 -0
  112. package/dist/safeWindow.js +36 -0
  113. package/dist/scope/ControlRouteScope.d.ts +22 -0
  114. package/dist/scope/ControlRouteScope.js +36 -0
  115. package/dist/scope/ScopeName.d.ts +34 -0
  116. package/dist/scope/ScopeName.js +67 -0
  117. package/dist/service/ServiceIdentityProvider.d.ts +35 -0
  118. package/dist/service/ServiceIdentityProvider.js +56 -0
  119. package/dist/store/CosmosEventStore.d.ts +126 -0
  120. package/dist/store/CosmosEventStore.js +950 -0
  121. package/dist/store/D1EventStore.d.ts +111 -0
  122. package/dist/store/D1EventStore.js +1111 -0
  123. package/dist/store/PostgresEventStore.d.ts +35 -0
  124. package/dist/store/PostgresEventStore.js +811 -0
  125. package/dist/store/provider.d.ts +25 -0
  126. package/dist/store/provider.js +32 -0
  127. package/dist/store/types.d.ts +205 -0
  128. package/dist/store/types.js +18 -0
  129. package/dist/tag/EventDigest.d.ts +40 -0
  130. package/dist/tag/EventDigest.js +158 -0
  131. package/dist/tag/TagDurableObject.d.ts +286 -0
  132. package/dist/tag/TagDurableObject.js +4071 -0
  133. package/dist/tag/TagSqlMeasurement.d.ts +26 -0
  134. package/dist/tag/TagSqlMeasurement.js +44 -0
  135. package/dist/tag/TagSqlSchema.d.ts +29 -0
  136. package/dist/tag/TagSqlSchema.js +211 -0
  137. package/dist/tag/types.d.ts +173 -0
  138. package/dist/tag/types.js +3 -0
  139. package/dist/tagstate/TagStateDurableObject.d.ts +57 -0
  140. package/dist/tagstate/TagStateDurableObject.js +499 -0
  141. package/dist/trace/AttributionRatio.d.ts +12 -0
  142. package/dist/trace/AttributionRatio.js +68 -0
  143. package/dist/trace/CloudflareTracing.d.ts +7 -0
  144. package/dist/trace/CloudflareTracing.js +9 -0
  145. package/dist/trace/CommitTrace.d.ts +405 -0
  146. package/dist/trace/CommitTrace.js +1008 -0
  147. package/dist/trace/CommitTraceConsoleSink.d.ts +68 -0
  148. package/dist/trace/CommitTraceConsoleSink.js +114 -0
  149. package/dist/trace/CommitTraceVerifier.d.ts +22 -0
  150. package/dist/trace/CommitTraceVerifier.js +295 -0
  151. package/dist/trace/ObservationStream.d.ts +118 -0
  152. package/dist/trace/ObservationStream.js +148 -0
  153. package/package.json +71 -0
@@ -0,0 +1,112 @@
1
+ import type { DomainDefinition } from "@sekiban/dcb-core";
2
+ import { AllocatorDurableObject } from "./allocator/AllocatorDurableObject";
3
+ import { BootstrapCoordinatorDurableObject } from "./bootstrap/BootstrapCoordinatorDurableObject";
4
+ import type { DownstreamOutboxMessage } from "./downstream/types";
5
+ import type { DownstreamDoorbellBinding } from "./downstream/Doorbell";
6
+ import { JournalDurableObject } from "./journal/JournalDurableObject";
7
+ import { type RuntimeDomainLike, type RuntimeWorkerConfig } from "./composition";
8
+ import { TagDurableObject } from "./tag/TagDurableObject";
9
+ import { TagStateDurableObject } from "./tagstate/TagStateDurableObject";
10
+ import { type StoreProvider } from "./store/provider";
11
+ import type { MaterializedViewQueryPort, QueryBacking } from "./query/ProjectionQueryStore";
12
+ import { type ServiceIdentityProvider } from "./service/ServiceIdentityProvider";
13
+ export { buildScopeName, DURABLE_OBJECT_SCOPE_CLASSES, isScopeServiceId, parseScopeName, scopeIdFor, ScopeNameError, tagStateScopeIdentity, } from "./scope/ScopeName";
14
+ export type { DurableObjectScope, DurableObjectScopeClass, ScopeNameNamespace } from "./scope/ScopeName";
15
+ export { envServiceIdentity, G11_SERVICE_ID_HEADER, injectableServiceIdentity, requestServiceIdentity, requireServiceIdentity, ServiceIdentityMissingError, TEST_SERVICE_ID_HEADER, } from "./service/ServiceIdentityProvider";
16
+ export type { ServiceIdentityBehavior, ServiceIdentityEnvironment, ServiceIdentityProvider, ServiceIdentityRequestOptions, ServiceIdentityResolution, } from "./service/ServiceIdentityProvider";
17
+ export { D1MaterializedViewStore, MaterializedViewCasError, MaterializedViewPatchError, MaterializedViewPromotionCasError, MaterializedViewStoreError, } from "./mv/MaterializedViewStore";
18
+ export type { MaterializedViewApplyInput, MaterializedViewApplyResult, MaterializedViewCandidateInput, MaterializedViewCreateInput, MaterializedViewIndexEntry, MaterializedViewInstance, MaterializedViewOrderingQuarantine, MaterializedViewOrderingQuarantineClassification, MaterializedViewListConsistency, MaterializedViewListOptions, MaterializedViewListPage, MaterializedViewPromoteInput, MaterializedViewQueryOptions, MaterializedViewRow, MaterializedViewWaitForState, MaterializedViewStore, MaterializedViewStoreErrorCode, MaterializedViewStoreOperation, } from "./mv/MaterializedViewStore";
19
+ export { UnsafeWindowMaterializedViewError, UnsafeWindowMaterializedViewStore } from "./mv/UnsafeWindowMaterializedView";
20
+ export type { UnsafeComposedPage, UnsafeGcInput, UnsafeKickLease, UnsafeOutcome, UnsafeReadMeta, UnsafeWindowApplyInput, UnsafeWindowApplyResult, UnsafeWindowErrorCode, UnsafeWindowMaterializedViewStoreOptions } from "./mv/UnsafeWindowMaterializedView";
21
+ export { AllocatorDurableObject, BootstrapCoordinatorDurableObject, JournalDurableObject, TagDurableObject, TagStateDurableObject };
22
+ export type { ClosedPrefixCertificate } from "./allocator/types";
23
+ export type { SafeViewCoverageContext } from "./projection/ProjectionRuntime";
24
+ export { CommitTrace, CommitTraceScope, DurableObjectActivation, IDLE_EXPERIMENT_SCHEDULE_MS, beginWorkerInvocationObservation, classifyReactivationCause, correlationIdForAttempt, createTraceCorrelationId, enterNativeActorHandleSpan, enterNativeCommitSpan, enterNativeReconcileRootSpan, nativeTracingFromContext, noOpNativeTracing, observedIdleGapLowerBoundMs, stableTraceHash, traceManifest, } from "./trace/CommitTrace";
25
+ export { COMMIT_SNAPSHOT_LOG_BYTE_BUDGET, COMMIT_SNAPSHOT_LOG_EVENT, COMMIT_SNAPSHOT_LOG_SCHEMA, assertCommitSnapshotLogSize, commitSnapshotLogRecord, createCommitTraceConsoleSink, encodedCommitSnapshotLogBytes, } from "./trace/CommitTraceConsoleSink";
26
+ export type { CommitSnapshotLogRecord, CommitSnapshotLogRow, CommitTraceConsoleSinkOptions } from "./trace/CommitTraceConsoleSink";
27
+ export type { CommitTraceActorClass, CommitTraceClock, CommitTraceFace, CommitTraceProviderAdapter, CommitTraceSchema, CommitTraceSink, CommitTraceSnapshot, CommitTraceSpan, NativeTracing, NativeActorHandleIdentity, NativeActorHandleInput, NativeReconcileRootIdentity, ReactivationCause, ReactivationEvidence, } from "./trace/CommitTrace";
28
+ export { CommitTraceVerificationError, calculateUnattributedRatio, verifyCommitTrace, } from "./trace/CommitTraceVerifier";
29
+ export type { CommitTraceVerificationOptions, UnattributedRatio } from "./trace/CommitTraceVerifier";
30
+ export { BootstrapManifestError, bootstrapDigest, parseBootstrapDump } from "./bootstrap/manifest";
31
+ export { BootstrapIdentityConflictError, BootstrapStoreAdapter, createBootstrapStoreAdapter } from "./bootstrap/BootstrapStoreAdapter";
32
+ export type { BootstrapExportCursor, BootstrapExportPage } from "./bootstrap/BootstrapStoreAdapter";
33
+ export type { BootstrapControlRecord, BootstrapDump, BootstrapEventRecord, BootstrapManifest, BootstrapStatus, BootstrapStoreAdmissionPort } from "./bootstrap/types";
34
+ export { handleDownstreamQueue, stabilizeDownstream } from "./downstream/DownstreamAdapter";
35
+ export { processDownstreamDoorbell, processDeliveryCore } from "./downstream/DownstreamAdapter";
36
+ export { downstreamEnvelopeBytes, classifyDirectDoorbellFailure, readDomainDeliveryClass, preflightDirectDoorbell, readDirectDoorbellConfig, selectDirectDoorbellViews, MAX_SERVICE_BINDING_INVOCATIONS_PER_REQUEST, } from "./downstream/Doorbell";
37
+ export { deliveryCorrelationId } from "./downstream/DeliveryCore";
38
+ export { GlobalCompletenessReconciler } from "./completeness/GlobalCompletenessReconciler";
39
+ export { G44_HEALTH_STALE_AFTER_MS, G44_SCANNER_VERSION, GLOBAL_COMPLETENESS_INTERIM_DISPOSITION, } from "./completeness/types";
40
+ export type { GlobalCompletenessHealth, GlobalCompletenessHealthRecord, GlobalCompletenessScanResult, SourceObligationFact, SourceObligationPage, SourcePartitionSnapshot, } from "./completeness/types";
41
+ export { assertCanonicalEventType, canonicalEventType, DeliveryIdentityError, MissingCanonicalEventIdentityError, resolveDeliveryIdentity, } from "./eventIdentity";
42
+ export type { DeliveryProvenance, EventProvenance, ResolvedDeliveryIdentity } from "./eventIdentity";
43
+ export { allocateOrderRange, diagnosticAllocatedAt, decodeOrderOrdinal, encodeOrderOrdinal, OrderClockReadError, systemOrderClock, } from "./allocator/OrderClock";
44
+ export type { OrderAllocationRange, OrderClock } from "./allocator/OrderClock";
45
+ export { DOTNET_MAX_TICKS, DOTNET_TICKS_PER_MILLISECOND, DOTNET_UNIX_EPOCH_TICKS, MAX_UNIX_MILLISECONDS, SORTABLE_UNIQUE_ID_DIGITS, SORTABLE_UNIQUE_ID_RANDOM_DIGITS, SORTABLE_UNIQUE_ID_TICKS_DIGITS, SortableUniqueIdError, assertDotNetTicks, assertSortableUniqueId, compareSortableUniqueId, cryptoRandomSortableUniqueIdSuffix, dotNetTicksToUnixMs, formatSortableUniqueId, isSortableUniqueId, observeLegacySortableUniqueIdDecision, unixMsToDotNetTicks, } from "./allocator/SortableUniqueId";
46
+ export type { ParsedSortableUniqueId, SortableUniqueIdErrorCode } from "./allocator/SortableUniqueId";
47
+ export { MAX_PUBLISHED_SAFE_WINDOW_MS, PUBLISHED_SAFE_WINDOW_MS, safeWindowCeilingExceeded, safeWindowCutoffSuid, safeWindowMs, } from "./safeWindow";
48
+ export { SERIALIZED_COMMIT_CORRELATION_ID, SERIALIZED_SEKIBAN_EXECUTOR, createUuidV7, isRfc4122Uuid, isUuidV7, serializedEventMetadata, writeTimestampUtc, } from "./eventRecord";
49
+ export type { SerializedEventMetadata } from "./eventRecord";
50
+ export type { DeliveryCoreEnvironment, DeliveryCoreFailure, DeliveryCoreOptions, DeliveryCoreResult, DeliverySource, DeliveryViewApplyResult, DeliveryViewFailureClass, DeliveryViewHandler, DeliveryViewInput, DeliveryViewResult, } from "./downstream/DeliveryCore";
51
+ export type { DeliveryClass, DirectDoorbellDegradation, DirectDoorbellDeploymentConfig, DirectDoorbellPreflightResult, DirectDoorbellReceiverMode, DirectDoorbellFailureKind, DownstreamDoorbellBinding, } from "./downstream/Doorbell";
52
+ export type { JsonValue, MaterializedViewRowPatch } from "@sekiban/dcb-core";
53
+ export { composeRuntime, createRuntimeCommitPort, registeredEventParsers, RuntimeCommandRegistry, } from "./composition";
54
+ export type { RuntimeCommitAllocationLike, RuntimeCommitCandidateLike, RuntimeCommitPort, RuntimeCommitPortOptions, RuntimeCommitPortResult, RuntimeCommandLike, RuntimeDomainLike, RuntimeQueryDefinition, RuntimeWorkerConfig, } from "./composition";
55
+ export { POSTGRES_STORE_PROVIDER, createPostgresBootstrapAdapter, createPostgresStoreProvider } from "./store/provider";
56
+ export type { StoreProvider, StoreProviderEnvironment } from "./store/provider";
57
+ export { chooseQueryBacking, selectQueryBacking, } from "./query/ProjectionQueryStore";
58
+ export type { MaterializedViewQueryPort, QueryBacking, QueryBackingOptions, QueryBackingSelection, } from "./query/ProjectionQueryStore";
59
+ export interface Env {
60
+ ALLOCATOR: DurableObjectNamespace;
61
+ BOOTSTRAP: DurableObjectNamespace;
62
+ JOURNAL: DurableObjectNamespace;
63
+ TAG: DurableObjectNamespace;
64
+ TAG_STATE: DurableObjectNamespace;
65
+ /** Secret binding; deployment must configure this rather than a public var. */
66
+ REPAIR_OPERATOR_TOKEN: string;
67
+ /** Queue producer/consumer for durable Tag outbox rows. */
68
+ DOWNSTREAM_QUEUE: Queue<DownstreamOutboxMessage>;
69
+ DOWNSTREAM_DOORBELL?: DownstreamDoorbellBinding;
70
+ /** Deployment-only handoff; local tests retain explicit drain control. */
71
+ AUTO_DRAIN_OUTBOX?: string;
72
+ /** Local Docker/CI connection; deployed Workers normally use HYPERDRIVE. */
73
+ POSTGRES_URL?: string;
74
+ HYPERDRIVE?: Hyperdrive;
75
+ REPAIR_EXCLUSION_LOOKUP?: Fetcher;
76
+ /** Only an authenticated deployment-verification lane may set this. */
77
+ G11_VERIFICATION_ENABLED?: string;
78
+ /** Required non-secret service identity configured per deployment. */
79
+ SDT_SERVICE_ID?: string;
80
+ DOMAIN_DELIVERY_CLASS?: string;
81
+ DIRECT_DOORBELL?: string;
82
+ DIRECT_DOORBELL_ALLOWED_VIEWS?: string;
83
+ DIRECT_DOORBELL_MAX_INVOCATIONS?: string;
84
+ DIRECT_DOORBELL_DEGRADATION?: string;
85
+ DIRECT_DOORBELL_RECEIVER_MODE?: string;
86
+ DIRECT_DOORBELL_SELF_BINDING_PROOF?: string;
87
+ /** Explicit opt-in D1 PipelineStore binding; default composition remains Postgres. */
88
+ D1?: D1Database;
89
+ /** Separate D1 binding for row-backed materialized views. */
90
+ D1_MV?: D1Database;
91
+ }
92
+ export interface RuntimeWorkerOptions {
93
+ readonly domain?: DomainDefinition | RuntimeDomainLike;
94
+ readonly config?: RuntimeWorkerConfig;
95
+ /** Explicitly opt into a non-Postgres provider; default is Postgres. */
96
+ readonly storeProvider?: StoreProvider;
97
+ /** Deploy-time query backing; defaults to the existing memory projection. */
98
+ readonly queryBacking?: QueryBacking;
99
+ /** Optional injected D1-MV query port for explicit composition/tests. */
100
+ readonly materializedViewQueryPort?: MaterializedViewQueryPort;
101
+ /** Host seam; default composition resolves identity from SDT_SERVICE_ID. */
102
+ readonly serviceIdentityProvider?: ServiceIdentityProvider;
103
+ }
104
+ /**
105
+ * Compose a Worker from dcb-core domain values. Projector/query registries are
106
+ * intentionally private implementation details; callers only receive the
107
+ * ordinary Worker handler and can therefore use the same public package
108
+ * surface in consumer applications and local Miniflare tests.
109
+ */
110
+ export declare function createRuntimeWorker(options?: RuntimeWorkerOptions): ExportedHandler<Env>;
111
+ declare const worker: ExportedHandler<Env, unknown, unknown, unknown>;
112
+ export default worker;