@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,25 @@
1
+ import type { ConsistencyTag } from "../journal/types";
2
+ /** The V1 base64 payload after fatal UTF-8 JSON admission, retained as text. */
3
+ export interface SerializedCommitCandidate {
4
+ /** Decoded UTF-8 JSON text; whitespace and member order are preserved. */
5
+ payload: string;
6
+ eventPayloadName: string;
7
+ eventType: string;
8
+ tags: string[];
9
+ }
10
+ export interface ValidatedCommitEnvelope {
11
+ eventCandidates: SerializedCommitCandidate[];
12
+ consistencyTags: ConsistencyTag[];
13
+ allTags: string[];
14
+ }
15
+ export interface AllocatedCommitCandidate extends SerializedCommitCandidate {
16
+ eventId: string;
17
+ suid: string;
18
+ timestamp: string;
19
+ }
20
+ /**
21
+ * Narrow fault hooks used only by the Miniflare adversarial tests. They are
22
+ * carried in a private header rather than accepted in the V1 JSON envelope.
23
+ */
24
+ export type CommitTestFault = "reservation-delayed-success" | "after-reservations-before-allocation" | "allocator-commit" | "journal-cas-after-allocator" | "tag-append-always" | "tag-append-last" | "fence-install-partial" | "fence-not-durable" | "tag-state-unavailable" | "sealing-after-cas" | "tombstone-after-durable";
25
+ export declare const COMMIT_TEST_FAULTS: readonly CommitTestFault[];
@@ -0,0 +1,13 @@
1
+ export const COMMIT_TEST_FAULTS = [
2
+ "reservation-delayed-success",
3
+ "after-reservations-before-allocation",
4
+ "allocator-commit",
5
+ "journal-cas-after-allocator",
6
+ "tag-append-always",
7
+ "tag-append-last",
8
+ "fence-install-partial",
9
+ "fence-not-durable",
10
+ "tag-state-unavailable",
11
+ "sealing-after-cas",
12
+ "tombstone-after-durable",
13
+ ];
@@ -0,0 +1,77 @@
1
+ import type { DownstreamOutboxMessage } from "../downstream/types";
2
+ import { type GlobalCompletenessCoverage, type GlobalCompletenessHealthRecord, type GlobalCompletenessScanResult, type SourceObligationFact } from "./types";
3
+ /** Test-only seam for exercising the same receipt-read failure branch. */
4
+ export interface GlobalCompletenessReconcilerOptions {
5
+ readonly globalReceiptMatcher?: (serviceId: string, tag: string, obligation: SourceObligationFact) => Promise<boolean>;
6
+ }
7
+ /**
8
+ * An independent source→global reconciliation pass. It never receives a
9
+ * Queue message or an expected test count: its universe is the source-side
10
+ * partition registry captured before paging any Tag DO.
11
+ */
12
+ export declare class GlobalCompletenessReconciler {
13
+ private readonly database;
14
+ private readonly tags;
15
+ private readonly scannerVersion;
16
+ private readonly options;
17
+ constructor(database: D1Database, tags: DurableObjectNamespace, scannerVersion?: string, options?: GlobalCompletenessReconcilerOptions);
18
+ reconcile(serviceId: string, nowMs: number): Promise<GlobalCompletenessScanResult>;
19
+ private readSourcePage;
20
+ /**
21
+ * Read the detector health authority without using findings, delivery, or
22
+ * Queue state as a proxy. A never-run or expired successful scan is never
23
+ * silently healthy.
24
+ */
25
+ readHealth(serviceId: string, nowMs: number, staleAfterMs?: number): Promise<GlobalCompletenessHealthRecord>;
26
+ /**
27
+ * The one interim coverage gate. It deliberately has no configuration
28
+ * matrix and does not turn a missing finding into a synthetic healthy read.
29
+ */
30
+ coverage(serviceId: string, nowMs: number): Promise<GlobalCompletenessCoverage>;
31
+ /**
32
+ * The downstream view gate must consume the same proof domain that the
33
+ * reconciler persisted. A service-level HEALTHY bit is insufficient: a
34
+ * delivery from a partition added after that scan must remain blocked until
35
+ * a later successful cursor includes its exact local obligation sequence.
36
+ */
37
+ coverageForObligation(serviceId: string, tag: string, obligationSequence: number, nowMs: number): Promise<GlobalCompletenessCoverage>;
38
+ /**
39
+ * DeliveryCore calls this after a detector exception and before it returns
40
+ * without applying views. It shares the scanner's single health/finding
41
+ * authority rather than creating a second incident workflow.
42
+ */
43
+ recordDetectorFailure(serviceId: string, error: unknown, nowMs: number): Promise<void>;
44
+ /** D1 receipt join is independent from every projection and transport. */
45
+ globalReceiptMatches(serviceId: string, tag: string, obligation: SourceObligationFact): Promise<boolean>;
46
+ private snapshotPartitions;
47
+ private assertSnapshotUniverseUnchanged;
48
+ private assertStartPartitionsRetained;
49
+ private assertPage;
50
+ /**
51
+ * The frontier is derived only from receipts inside the immutable source
52
+ * snapshot that just passed every G44 join. It is not the mutable global
53
+ * table head: a delivery arriving after the snapshot is deliberately left
54
+ * for a later FULL scan.
55
+ */
56
+ private settledFrontierAtSnapshot;
57
+ private latestFindingPartitionTag;
58
+ private appendObligationFinding;
59
+ private appendFinding;
60
+ private writeHealth;
61
+ }
62
+ /** The acknowledgement payload carries facts from the same source envelope. */
63
+ export declare function globalReceiptAcknowledgement(message: DownstreamOutboxMessage, receivedAt: number): {
64
+ deliveries: {
65
+ attemptId: string;
66
+ eventId: string;
67
+ suid: string;
68
+ payload: string;
69
+ eventType: string;
70
+ provenance: "g32";
71
+ timestamp: string;
72
+ allocatorLineageId: string;
73
+ enqueuedAt: number;
74
+ completeness: import("../downstream/types").OutboxCompletenessFacts;
75
+ }[];
76
+ nowMs: number;
77
+ };