@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,101 @@
1
+ import { type ValidatedCommitEnvelope } from "./types";
2
+ import type { DeliveryClass } from "../downstream/Doorbell";
3
+ import { type CommitTraceClock, type CommitTraceProviderAdapter, type CommitTraceSink, type NativeTracing } from "../trace/CommitTrace";
4
+ import { type ObservationLogSink } from "../trace/ObservationStream";
5
+ import { type ServiceIdentityProvider } from "../service/ServiceIdentityProvider";
6
+ import type { G60DurableHopObserver } from "../diagnostics/G60DurableHop";
7
+ export interface CommitWorkerEnv {
8
+ ALLOCATOR: DurableObjectNamespace;
9
+ /**
10
+ * Retained for the G42 probe and RepairWorker routes. CommitWorker must
11
+ * never resolve this namespace after G41: tags own prepare/commit facts.
12
+ */
13
+ JOURNAL?: DurableObjectNamespace;
14
+ TAG: DurableObjectNamespace;
15
+ /** Service-scoped bootstrap authority. Optional keeps pre-G21 unit harnesses compatible. */
16
+ BOOTSTRAP?: DurableObjectNamespace;
17
+ /** Set only by an authenticated deployment-verification lane. */
18
+ G11_VERIFICATION_ENABLED?: string;
19
+ /** Non-secret service identity configured per deployment. */
20
+ SDT_SERVICE_ID?: string;
21
+ }
22
+ /** Test seam for the admitted-then-stalled bootstrap race; production has no hook. */
23
+ export interface CommitWorkerHooks {
24
+ /** Test-only barrier after entry admission is released and before /allocate. */
25
+ beforeBootstrapAllocation?(): Promise<void> | void;
26
+ beforeBootstrapFinalization?(): Promise<void> | void;
27
+ /** Test-only allocator identity; production uses the canonical allocator identity. */
28
+ allocatorScopeIdentity?: string;
29
+ /** Runtime composition value; never sourced from a caller-controlled V1 body. */
30
+ domainDeliveryClass?: DeliveryClass;
31
+ /** Registered schema/parser authority for exact-case payload admission. */
32
+ registeredEventParsers?: Readonly<Record<string, (payload: unknown) => unknown>>;
33
+ /** Test/evidence observer. It is not a public response or protocol field. */
34
+ commitTraceSink?: CommitTraceSink;
35
+ /** Deterministic test clock for trace containment and ratio fixtures. */
36
+ commitTraceClock?: CommitTraceClock;
37
+ /** Provider automatic attributes are optional adapter input only. */
38
+ commitTraceProvider?: CommitTraceProviderAdapter;
39
+ /** Cloudflare active-context span API supplied by the Worker entrypoint. */
40
+ nativeTracing?: NativeTracing;
41
+ /** Test-only sink injection; production emits the structured log normally. */
42
+ workerObservationSink?: ObservationLogSink;
43
+ /** G60 internal durable hop observation; never changes the V1 wire. */
44
+ durableHopObserver?: G60DurableHopObserver;
45
+ /** Host/deployment identity seam; absent callers receive the env-backed default. */
46
+ serviceIdentityProvider?: ServiceIdentityProvider;
47
+ }
48
+ /** Parse the complete V1 envelope before any Durable Object is contacted. */
49
+ export declare function validateCommitEnvelope(value: unknown, registeredEventParsers?: Readonly<Record<string, (payload: unknown) => unknown>>): {
50
+ value: ValidatedCommitEnvelope;
51
+ } | {
52
+ error: Response;
53
+ };
54
+ /**
55
+ * Stateless request orchestrator. Every mutation is delegated to the durable
56
+ * actor that owns it; this class retains only one request's generated IDs.
57
+ */
58
+ export declare class CommitWorker {
59
+ private readonly env;
60
+ private readonly serviceId;
61
+ private readonly hooks;
62
+ constructor(env: CommitWorkerEnv, serviceId: string, hooks?: CommitWorkerHooks);
63
+ handle(request: Request): Promise<Response>;
64
+ private handleUntraced;
65
+ private tagFor;
66
+ /**
67
+ * `sdt.commit/v1` still has the historical S04/S05 row identities in its
68
+ * separately-owned G30 manifest. G41 keeps those observations zero-work
69
+ * until that trace schema is revised by its owner, while proving that they
70
+ * cannot perform a JOURNAL namespace operation. These spans are not a
71
+ * substitute for a Journal record or terminal-outcome authority.
72
+ */
73
+ private retiredJournalMilestone;
74
+ private bootstrapCommand;
75
+ private postJson;
76
+ private tagRequest;
77
+ private acquireReservations;
78
+ private allocate;
79
+ private readAllocation;
80
+ private withAllocatedSuids;
81
+ private appendAllTags;
82
+ /**
83
+ * Settle the same force-tombstone barrier used by the durable reservation
84
+ * failure path. A concurrently-started admission can reject after one or
85
+ * more acquire calls have succeeded; in that branch there is no terminal
86
+ * Journal record to perform this cleanup on the caller's behalf.
87
+ */
88
+ private cancelReservations;
89
+ private finishReservationFailure;
90
+ /**
91
+ * Persist the local partial-write fact for each tag whose append did not
92
+ * commit. This is not a response decoration: the Tag DO's fence is the
93
+ * source-side authority used by read and repair/reconciliation seams.
94
+ */
95
+ private installPartialWriteFences;
96
+ private partialWriteOutcome;
97
+ private successResponse;
98
+ /** The response was lost after tag-local facts may already be authoritative. */
99
+ private noApplicationOutcome;
100
+ }
101
+ export declare function handleSerializedCommit(request: Request, env: CommitWorkerEnv, hooks?: CommitWorkerHooks): Promise<Response>;