@bjornpagen/bumbledb-log 0.20.2 → 1.0.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 (192) hide show
  1. package/README.md +275 -114
  2. package/dist/admin.d.ts +24 -0
  3. package/dist/admin.d.ts.map +1 -0
  4. package/dist/admin.js +12 -0
  5. package/dist/admin.js.map +1 -0
  6. package/dist/bridge.d.ts +30 -0
  7. package/dist/bridge.d.ts.map +1 -0
  8. package/dist/bridge.js +92 -0
  9. package/dist/bridge.js.map +1 -0
  10. package/dist/codes.d.ts +11 -0
  11. package/dist/codes.d.ts.map +1 -0
  12. package/dist/codes.js +53 -0
  13. package/dist/codes.js.map +1 -0
  14. package/dist/command.d.ts +21 -0
  15. package/dist/command.d.ts.map +1 -0
  16. package/dist/command.js +12 -0
  17. package/dist/command.js.map +1 -0
  18. package/dist/errors.d.ts +78 -197
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +144 -114
  21. package/dist/errors.js.map +1 -1
  22. package/dist/history.d.ts +22 -0
  23. package/dist/history.d.ts.map +1 -0
  24. package/dist/history.js +12 -0
  25. package/dist/history.js.map +1 -0
  26. package/dist/identity.d.ts +144 -0
  27. package/dist/identity.d.ts.map +1 -0
  28. package/dist/identity.js +223 -0
  29. package/dist/identity.js.map +1 -0
  30. package/dist/index.d.ts +24 -31
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +16 -21
  33. package/dist/index.js.map +1 -1
  34. package/dist/machine.d.ts +151 -0
  35. package/dist/machine.d.ts.map +1 -0
  36. package/dist/machine.js +1128 -0
  37. package/dist/machine.js.map +1 -0
  38. package/dist/migration-ops.d.ts +20 -0
  39. package/dist/migration-ops.d.ts.map +1 -0
  40. package/dist/migration-ops.js +7 -0
  41. package/dist/migration-ops.js.map +1 -0
  42. package/dist/migrations/bin.d.ts +3 -0
  43. package/dist/migrations/bin.d.ts.map +1 -0
  44. package/dist/migrations/bin.js +43 -0
  45. package/dist/migrations/bin.js.map +1 -0
  46. package/dist/migrations/canonical.d.ts +40 -0
  47. package/dist/migrations/canonical.d.ts.map +1 -0
  48. package/dist/migrations/canonical.js +156 -0
  49. package/dist/migrations/canonical.js.map +1 -0
  50. package/dist/migrations/cli.d.ts +32 -0
  51. package/dist/migrations/cli.d.ts.map +1 -0
  52. package/dist/migrations/cli.js +147 -0
  53. package/dist/migrations/cli.js.map +1 -0
  54. package/dist/migrations/codec.d.ts +74 -0
  55. package/dist/migrations/codec.d.ts.map +1 -0
  56. package/dist/migrations/codec.js +2 -0
  57. package/dist/migrations/codec.js.map +1 -0
  58. package/dist/migrations/decode.d.ts +16 -0
  59. package/dist/migrations/decode.d.ts.map +1 -0
  60. package/dist/migrations/decode.js +302 -0
  61. package/dist/migrations/decode.js.map +1 -0
  62. package/dist/migrations/diff.d.ts +39 -0
  63. package/dist/migrations/diff.d.ts.map +1 -0
  64. package/dist/migrations/diff.js +385 -0
  65. package/dist/migrations/diff.js.map +1 -0
  66. package/dist/migrations/expr.d.ts +22 -0
  67. package/dist/migrations/expr.d.ts.map +1 -0
  68. package/dist/migrations/expr.js +228 -0
  69. package/dist/migrations/expr.js.map +1 -0
  70. package/dist/migrations/fail.d.ts +34 -0
  71. package/dist/migrations/fail.d.ts.map +1 -0
  72. package/dist/migrations/fail.js +69 -0
  73. package/dist/migrations/fail.js.map +1 -0
  74. package/dist/migrations/fsops.d.ts +37 -0
  75. package/dist/migrations/fsops.d.ts.map +1 -0
  76. package/dist/migrations/fsops.js +222 -0
  77. package/dist/migrations/fsops.js.map +1 -0
  78. package/dist/migrations/generate.d.ts +11 -0
  79. package/dist/migrations/generate.d.ts.map +1 -0
  80. package/dist/migrations/generate.js +479 -0
  81. package/dist/migrations/generate.js.map +1 -0
  82. package/dist/migrations/index.d.ts +25 -0
  83. package/dist/migrations/index.d.ts.map +1 -0
  84. package/dist/migrations/index.js +6 -0
  85. package/dist/migrations/index.js.map +1 -0
  86. package/dist/migrations/intent.d.ts +86 -0
  87. package/dist/migrations/intent.d.ts.map +1 -0
  88. package/dist/migrations/intent.js +97 -0
  89. package/dist/migrations/intent.js.map +1 -0
  90. package/dist/migrations/lock.d.ts +27 -0
  91. package/dist/migrations/lock.d.ts.map +1 -0
  92. package/dist/migrations/lock.js +14 -0
  93. package/dist/migrations/lock.js.map +1 -0
  94. package/dist/migrations/native.d.ts +37 -0
  95. package/dist/migrations/native.d.ts.map +1 -0
  96. package/dist/migrations/native.js +135 -0
  97. package/dist/migrations/native.js.map +1 -0
  98. package/dist/migrations/repo.d.ts +38 -0
  99. package/dist/migrations/repo.d.ts.map +1 -0
  100. package/dist/migrations/repo.js +191 -0
  101. package/dist/migrations/repo.js.map +1 -0
  102. package/dist/migrations/theory.d.ts +21 -0
  103. package/dist/migrations/theory.d.ts.map +1 -0
  104. package/dist/migrations/theory.js +107 -0
  105. package/dist/migrations/theory.js.map +1 -0
  106. package/dist/migrations/types.d.ts +243 -0
  107. package/dist/migrations/types.d.ts.map +1 -0
  108. package/dist/migrations/types.js +2 -0
  109. package/dist/migrations/types.js.map +1 -0
  110. package/dist/migrations/workflow.d.ts +11 -0
  111. package/dist/migrations/workflow.d.ts.map +1 -0
  112. package/dist/migrations/workflow.js +14 -0
  113. package/dist/migrations/workflow.js.map +1 -0
  114. package/dist/native.d.ts +600 -0
  115. package/dist/native.d.ts.map +1 -0
  116. package/dist/native.js +8 -0
  117. package/dist/native.js.map +1 -0
  118. package/dist/options.d.ts +106 -0
  119. package/dist/options.d.ts.map +1 -0
  120. package/dist/options.js +2 -0
  121. package/dist/options.js.map +1 -0
  122. package/dist/outcome.d.ts +291 -0
  123. package/dist/outcome.d.ts.map +1 -0
  124. package/dist/outcome.js +2 -0
  125. package/dist/outcome.js.map +1 -0
  126. package/dist/production.d.ts +12 -0
  127. package/dist/production.d.ts.map +1 -0
  128. package/dist/production.js +29 -0
  129. package/dist/production.js.map +1 -0
  130. package/dist/schema.d.ts +10 -0
  131. package/dist/schema.d.ts.map +1 -0
  132. package/dist/schema.js +9 -0
  133. package/dist/schema.js.map +1 -0
  134. package/dist/surface.d.ts +80 -0
  135. package/dist/surface.d.ts.map +1 -0
  136. package/dist/surface.js +2 -0
  137. package/dist/surface.js.map +1 -0
  138. package/dist/tenants.d.ts +20 -52
  139. package/dist/tenants.d.ts.map +1 -1
  140. package/dist/tenants.js +11 -330
  141. package/dist/tenants.js.map +1 -1
  142. package/pack-provenance.json +7 -0
  143. package/package.json +20 -23
  144. package/dist/braids.d.ts +0 -28
  145. package/dist/braids.d.ts.map +0 -1
  146. package/dist/braids.js +0 -45
  147. package/dist/braids.js.map +0 -1
  148. package/dist/bytes.d.ts +0 -26
  149. package/dist/bytes.d.ts.map +0 -1
  150. package/dist/bytes.js +0 -86
  151. package/dist/bytes.js.map +0 -1
  152. package/dist/chain.d.ts +0 -56
  153. package/dist/chain.d.ts.map +0 -1
  154. package/dist/chain.js +0 -137
  155. package/dist/chain.js.map +0 -1
  156. package/dist/codec.d.ts +0 -71
  157. package/dist/codec.d.ts.map +0 -1
  158. package/dist/codec.js +0 -179
  159. package/dist/codec.js.map +0 -1
  160. package/dist/descriptor.d.ts +0 -61
  161. package/dist/descriptor.d.ts.map +0 -1
  162. package/dist/descriptor.js +0 -160
  163. package/dist/descriptor.js.map +0 -1
  164. package/dist/keys.d.ts +0 -52
  165. package/dist/keys.d.ts.map +0 -1
  166. package/dist/keys.js +0 -166
  167. package/dist/keys.js.map +0 -1
  168. package/dist/manifest.d.ts +0 -42
  169. package/dist/manifest.d.ts.map +0 -1
  170. package/dist/manifest.js +0 -116
  171. package/dist/manifest.js.map +0 -1
  172. package/dist/replica.d.ts +0 -154
  173. package/dist/replica.d.ts.map +0 -1
  174. package/dist/replica.js +0 -820
  175. package/dist/replica.js.map +0 -1
  176. package/dist/store-s3.d.ts +0 -31
  177. package/dist/store-s3.d.ts.map +0 -1
  178. package/dist/store-s3.js +0 -299
  179. package/dist/store-s3.js.map +0 -1
  180. package/dist/store.d.ts +0 -129
  181. package/dist/store.d.ts.map +0 -1
  182. package/dist/store.js +0 -577
  183. package/dist/store.js.map +0 -1
  184. package/dist/tilde-family.json +0 -21
  185. package/dist/vector.d.ts +0 -31
  186. package/dist/vector.d.ts.map +0 -1
  187. package/dist/vector.js +0 -87
  188. package/dist/vector.js.map +0 -1
  189. package/dist/writer.d.ts +0 -106
  190. package/dist/writer.d.ts.map +0 -1
  191. package/dist/writer.js +0 -677
  192. package/dist/writer.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Caller-supplied bindings and option records. Bindings are discriminated
3
+ * local/hosted data — neither history constructor accepts the other
4
+ * backend's fields — and are trusted host configuration, not tenant-label
5
+ * authority. Credentials are configuration handed to the one native
6
+ * machine's supported provider path; they never construct a second JS
7
+ * S3 client, cache, or protocol machine. All options extend the core
8
+ * `ExecutionPolicy`; there is no second cancellation channel, TTL, or
9
+ * Effect `Schedule` slot anywhere in this file.
10
+ */
11
+ import type { ExecutionPolicy } from "@bjornpagen/bumbledb";
12
+ import type { DatabaseIdentity, OperationId, ReadConsistency } from "./identity.js";
13
+ /** Rust-side supported credential resolution; no static default. */
14
+ export type HostedCredentials = {
15
+ readonly kind: "provider-chain";
16
+ } | {
17
+ readonly kind: "static";
18
+ readonly accessKeyId: string;
19
+ readonly secretAccessKey: string;
20
+ readonly sessionToken?: string;
21
+ };
22
+ export interface HostedOrigin {
23
+ readonly bucket: string;
24
+ readonly prefix: string;
25
+ readonly region?: string;
26
+ }
27
+ /** One durable local LMDB history: the directory IS the database. */
28
+ export interface LocalBinding {
29
+ readonly kind: "local";
30
+ readonly directory: string;
31
+ readonly identity: DatabaseIdentity;
32
+ }
33
+ /** S3 HEAD authority plus a disposable local materialization directory. */
34
+ export interface HostedBinding {
35
+ readonly kind: "hosted";
36
+ readonly origin: HostedOrigin;
37
+ readonly directory: string;
38
+ readonly identity: DatabaseIdentity;
39
+ readonly credentials?: HostedCredentials;
40
+ }
41
+ export type HistoryBinding = LocalBinding | HostedBinding;
42
+ export interface LocalOpenOptions extends ExecutionPolicy {
43
+ }
44
+ export interface HostedOpenOptions extends ExecutionPolicy {
45
+ /**
46
+ * Explicit policy for a cache whose verified binding mismatches: close/
47
+ * quarantine and rebuild in a newly owned location. It never submits the
48
+ * old cache's pending commands or deletes remote objects.
49
+ */
50
+ readonly discardMismatchedCache?: boolean;
51
+ }
52
+ /**
53
+ * Creation is explicit and validated: a retry after uncertain creation
54
+ * validates this stable identity and completes genesis instead of adopting
55
+ * an unrelated database. The artifact is the checked canonical
56
+ * initialization data (ordinarily produced by the generated-plan
57
+ * `initialize` operation, C11), never fabricated migration history.
58
+ */
59
+ export interface CreationOptions {
60
+ readonly operationId: OperationId;
61
+ readonly artifact: Uint8Array;
62
+ }
63
+ export interface LocalCreateOptions extends LocalOpenOptions {
64
+ readonly creation: CreationOptions;
65
+ }
66
+ export interface HostedCreateOptions extends HostedOpenOptions {
67
+ readonly creation: CreationOptions;
68
+ }
69
+ /** Chapter 30's consistency sum over the core policy — nothing else. */
70
+ export interface ReadOptions extends ExecutionPolicy {
71
+ readonly consistency: ReadConsistency;
72
+ }
73
+ /**
74
+ * A finite native publication-attempt limit and backoff bounds. The native
75
+ * protocol owns catch-up/CAS retries; retries consume this one operation
76
+ * budget, not a fresh deadline per attempt.
77
+ */
78
+ export interface SubmitOptions extends ExecutionPolicy {
79
+ readonly attempts: number;
80
+ readonly backoff: {
81
+ readonly baseMillis: number;
82
+ readonly capMillis: number;
83
+ };
84
+ }
85
+ /**
86
+ * The generated runtime expectation (chapter 33 `runtime-contract.json`):
87
+ * exact canonical schema and applied migration-prefix digests. Shape is
88
+ * C11-provisional until P09/P10 freeze the generated contract.
89
+ */
90
+ export interface RuntimeExpectation {
91
+ readonly schemaId: string;
92
+ readonly appliedPrefixDigest: string;
93
+ }
94
+ /**
95
+ * One bounded native tenant registry configuration. There is no wall-clock
96
+ * TTL, renewal, or pre-lock cleanup: pressure is byte/count budgets, and
97
+ * eviction of a borrowed slot refuses.
98
+ */
99
+ export interface TenantCacheOptions {
100
+ readonly maxOpen: number;
101
+ readonly budgetBytes: bigint;
102
+ /** Charged against maintenance work (inspect/evict), not acquires. */
103
+ readonly maintenance: ExecutionPolicy;
104
+ readonly expected?: RuntimeExpectation;
105
+ }
106
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAElF,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAEJ,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CACnC;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,aAAa,CAAA;AAEzD,MAAM,WAAW,gBAAiB,SAAQ,eAAe;CAAG;AAE5D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACzD;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC3D,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CAClC;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,eAAe;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAC1B,CAAA;CACD;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Publication certainty, receipts and admin outcomes as owned immutable
3
+ * data. Terminal receipts are durable decisions in the log; errors ride
4
+ * inside the certainty unions (`not-submitted`/`outcome-unknown`) rather
5
+ * than replacing them. `SubmitOutcome`'s E is `never`; fiber interruption
6
+ * remains in Cause and joins native cleanup. It proves nothing about
7
+ * publication: resolve the ref retained before dispatch. Admin operations
8
+ * use the same three-way certainty with
9
+ * their existing protocol operation identities; there is no new journal.
10
+ */
11
+ import type { Violation } from "@bjornpagen/bumbledb";
12
+ import type { LogError } from "./errors.js";
13
+ import type { CommandRef, DatabaseIdentity, DecisionStamp, OperationId, OperationRef, PlanSetDigest, ReceiptEpoch, RootId, StateStamp } from "./identity.js";
14
+ import type { ActivationRef, GeneratedMigrations } from "./migrations/types.js";
15
+ import type { HistoryBinding } from "./options.js";
16
+ /** Bounded caller-declared scalar result metadata (core canonical scalars). */
17
+ export type CommandScalar = bigint | number | string | boolean | Uint8Array;
18
+ export type CommandResult = Readonly<Record<string, CommandScalar>>;
19
+ export interface ChangeSummary {
20
+ readonly added: bigint;
21
+ readonly removed: bigint;
22
+ }
23
+ export type TerminalOutcome = {
24
+ readonly kind: "committed";
25
+ readonly changed: ChangeSummary;
26
+ readonly result: CommandResult;
27
+ } | {
28
+ readonly kind: "no-change";
29
+ readonly result: CommandResult;
30
+ } | {
31
+ readonly kind: "precondition-failed";
32
+ readonly expected: StateStamp;
33
+ readonly observed: StateStamp;
34
+ } | {
35
+ readonly kind: "invariant-rejected";
36
+ readonly violations: readonly Violation[];
37
+ };
38
+ export interface TerminalReceipt {
39
+ readonly command: CommandRef;
40
+ readonly decisionAt: DecisionStamp;
41
+ readonly stateAt: StateStamp;
42
+ readonly outcome: TerminalOutcome;
43
+ }
44
+ /** Where an authoritative operation is in its publication lifecycle. */
45
+ export type PublicationPhase = "prepared" | "dispatchedUnresolved" | "confirmed" | "provedNonpublication";
46
+ /**
47
+ * This invocation's materialization, not durable receipt content. A
48
+ * resolved receipt does not prove the local cache reached that decision.
49
+ */
50
+ export type LocalMaterializationHealth = {
51
+ readonly kind: "ready";
52
+ readonly at: DecisionStamp;
53
+ } | {
54
+ readonly kind: "unavailable";
55
+ readonly error: LogError;
56
+ };
57
+ export type SubmitOutcome = {
58
+ readonly kind: "decided";
59
+ readonly receipt: TerminalReceipt;
60
+ readonly localHealth: LocalMaterializationHealth;
61
+ readonly phase: PublicationPhase;
62
+ } | {
63
+ readonly kind: "not-submitted";
64
+ readonly command: CommandRef;
65
+ readonly error: LogError;
66
+ readonly phase: PublicationPhase;
67
+ } | {
68
+ readonly kind: "outcome-unknown";
69
+ readonly command: CommandRef;
70
+ readonly error: LogError;
71
+ readonly phase: PublicationPhase;
72
+ };
73
+ export type ResolveOutcome = {
74
+ readonly kind: "found";
75
+ readonly receipt: TerminalReceipt;
76
+ } | {
77
+ readonly kind: "not-recorded-at";
78
+ readonly decisionAt: DecisionStamp;
79
+ } | {
80
+ readonly kind: "command-epoch-closed";
81
+ } | {
82
+ readonly kind: "receipt-expired-unknown";
83
+ };
84
+ export type AccessMode = "active" | "frozen" | "deleted";
85
+ export interface ReceiptPolicyReport {
86
+ readonly openEpoch: ReceiptEpoch;
87
+ readonly retiredThrough: bigint;
88
+ }
89
+ /** The bounded history health snapshot (chapter 22 evidence list). */
90
+ export interface HistoryInspection {
91
+ readonly identity: DatabaseIdentity;
92
+ readonly accessMode: AccessMode;
93
+ readonly headRevision: bigint;
94
+ readonly decision: DecisionStamp;
95
+ readonly state: StateStamp;
96
+ readonly receipts: ReceiptPolicyReport;
97
+ readonly tail: {
98
+ readonly count: bigint;
99
+ readonly bytes: bigint;
100
+ };
101
+ readonly unknownCommands: {
102
+ readonly count: bigint;
103
+ readonly oldestMillis: number | null;
104
+ };
105
+ readonly roots: {
106
+ readonly count: number;
107
+ readonly capacity: number;
108
+ };
109
+ readonly gc: "idle" | "marking" | "sweeping";
110
+ readonly lastMaintenanceError: string | null;
111
+ readonly accounted: {
112
+ readonly diskBytes: bigint;
113
+ readonly workingBytes: bigint;
114
+ };
115
+ readonly operations: {
116
+ readonly queued: bigint;
117
+ readonly active: bigint;
118
+ };
119
+ }
120
+ export type CacheSlotState = "opening" | "ready" | "closing" | "faulted";
121
+ export interface CacheSlotReport {
122
+ /** The fixed-width binding digest, never a raw tenant label. */
123
+ readonly binding: string;
124
+ readonly state: CacheSlotState;
125
+ readonly borrows: number;
126
+ readonly diskBytes: bigint;
127
+ }
128
+ export interface CacheInspection {
129
+ readonly openCount: number;
130
+ readonly opening: number;
131
+ readonly budget: {
132
+ readonly bytes: bigint;
133
+ readonly maxOpen: number;
134
+ };
135
+ readonly evictions: bigint;
136
+ readonly slots: readonly CacheSlotReport[];
137
+ }
138
+ /**
139
+ * completed = the reported transition/status is known (possibly paused);
140
+ * not-started = this invocation performed no authoritative mutation;
141
+ * outcome-unknown = uncertainty remains until status resolves it. The ref
142
+ * is the operation's existing protocol identity, derived before dispatch.
143
+ */
144
+ export type AdminOutcome<Value> = {
145
+ readonly kind: "completed";
146
+ readonly ref: OperationRef;
147
+ readonly value: Value;
148
+ readonly phase: PublicationPhase;
149
+ } | {
150
+ readonly kind: "not-started";
151
+ readonly ref: OperationRef;
152
+ readonly error: LogError;
153
+ readonly phase: PublicationPhase;
154
+ } | {
155
+ readonly kind: "outcome-unknown";
156
+ readonly ref: OperationRef;
157
+ readonly error: LogError;
158
+ readonly phase: PublicationPhase;
159
+ };
160
+ export interface CheckpointReport {
161
+ readonly at: DecisionStamp;
162
+ readonly state: StateStamp;
163
+ readonly root: RootId;
164
+ }
165
+ export interface RestorePointReport {
166
+ readonly root: RootId;
167
+ readonly at: DecisionStamp;
168
+ readonly state: StateStamp;
169
+ }
170
+ export interface RootReleaseReport {
171
+ readonly root: RootId;
172
+ /** The lost recovery capability, reported before collection. */
173
+ readonly wasCurrentRecoveryBase: boolean;
174
+ }
175
+ export interface ReceiptRotationReport {
176
+ readonly openEpoch: ReceiptEpoch;
177
+ }
178
+ export interface ReceiptRetirementReport {
179
+ readonly retiredThrough: bigint;
180
+ }
181
+ export interface GcReport {
182
+ readonly objectEpoch: bigint;
183
+ readonly swept: bigint;
184
+ readonly orphansObserved: bigint;
185
+ }
186
+ export interface BackupReport {
187
+ readonly manifestDigest: string;
188
+ readonly objects: bigint;
189
+ readonly bytes: bigint;
190
+ readonly at: DecisionStamp;
191
+ }
192
+ export interface BackupVerification {
193
+ readonly identity: DatabaseIdentity;
194
+ readonly at: DecisionStamp;
195
+ readonly state: StateStamp;
196
+ readonly objects: bigint;
197
+ readonly bytes: bigint;
198
+ readonly manifestDigest: string;
199
+ }
200
+ export interface RestoreReport {
201
+ /** Writable restore is a new incarnation; read-only grants none. */
202
+ readonly identity: DatabaseIdentity;
203
+ readonly genesis: string;
204
+ readonly binding: HistoryBinding;
205
+ }
206
+ export interface ResidualCopy {
207
+ readonly kind: string;
208
+ readonly location: string;
209
+ }
210
+ export interface ErasureReport {
211
+ readonly tombstoned: boolean;
212
+ readonly retainedRoots: readonly RootId[];
213
+ /** Residual copies reported honestly, never a secure-erase claim. */
214
+ readonly residual: readonly ResidualCopy[];
215
+ }
216
+ export type { ActivationRef, GeneratedMigrations };
217
+ /** Binds abort to the exact operation, plan set and planned target. */
218
+ export interface MigrationRef {
219
+ readonly operation: OperationRef;
220
+ readonly planSetDigest: PlanSetDigest;
221
+ readonly target: DatabaseIdentity;
222
+ }
223
+ export interface SourceAccessReport {
224
+ readonly access: AccessMode;
225
+ readonly operation: OperationId | null;
226
+ }
227
+ export type MigrateValue = {
228
+ readonly kind: "up-to-date";
229
+ readonly binding: HistoryBinding;
230
+ } | {
231
+ readonly kind: "ready-to-switch";
232
+ readonly deploymentBinding: HistoryBinding;
233
+ readonly activation: ActivationRef;
234
+ } | {
235
+ readonly kind: "paused";
236
+ readonly error: LogError;
237
+ readonly sourceState: SourceAccessReport;
238
+ };
239
+ export interface InitializeValue {
240
+ readonly binding: HistoryBinding;
241
+ readonly genesis: string;
242
+ }
243
+ export interface ActivationReport {
244
+ readonly target: DatabaseIdentity;
245
+ readonly accessMode: AccessMode;
246
+ readonly operation: OperationId;
247
+ /** True when this invocation performed the one-time transition. */
248
+ readonly activatedNow: boolean;
249
+ }
250
+ export interface AbortReport {
251
+ readonly target: DatabaseIdentity;
252
+ readonly targetFenced: boolean;
253
+ readonly sourceAccess: AccessMode;
254
+ }
255
+ export type MigrationStatus = {
256
+ readonly kind: "up-to-date";
257
+ readonly appliedPrefixDigest: string;
258
+ } | {
259
+ readonly kind: "pending";
260
+ readonly pending: readonly string[];
261
+ } | {
262
+ readonly kind: "in-progress";
263
+ readonly operation: OperationRef;
264
+ } | {
265
+ readonly kind: "paused";
266
+ readonly operation: OperationRef;
267
+ readonly error: LogError;
268
+ readonly sourceState: SourceAccessReport;
269
+ } | {
270
+ readonly kind: "ready-to-switch";
271
+ readonly operation: OperationRef;
272
+ readonly activation: ActivationRef;
273
+ } | {
274
+ readonly kind: "activated";
275
+ readonly operation: OperationRef;
276
+ readonly target: DatabaseIdentity;
277
+ } | {
278
+ readonly kind: "aborted";
279
+ readonly operation: OperationRef;
280
+ } | {
281
+ readonly kind: "outcome-unknown";
282
+ readonly operation: OperationRef;
283
+ readonly error: LogError;
284
+ } | {
285
+ readonly kind: "drift";
286
+ readonly detail: string;
287
+ } | {
288
+ readonly kind: "database-ahead";
289
+ readonly detail: string;
290
+ };
291
+ //# sourceMappingURL=outcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The one production machine instance: the real addon wire plus the core's
3
+ * internal integration seam (C10). `internalPublishedReader` wraps a
4
+ * published core snapshot handle in the exact core `QueryReader`;
5
+ * `internalChanges` is the core's landed private ChangeSet registry
6
+ * accessor (the retained native change — no re-marshaled rows); `lower` is
7
+ * the same core schema lowering `Db.open` admits; `runtimeHandle` captures
8
+ * the already-acquired shared `NativeRuntime`. All four are core-owned
9
+ * (P07/P06) and imported literally — the log mirrors none of them.
10
+ */
11
+ export declare const log: import("./machine.js").LogMachine;
12
+ //# sourceMappingURL=production.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production.d.ts","sourceRoot":"","sources":["../src/production.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2BH,eAAO,MAAM,GAAG,kCAA6C,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The one production machine instance: the real addon wire plus the core's
3
+ * internal integration seam (C10). `internalPublishedReader` wraps a
4
+ * published core snapshot handle in the exact core `QueryReader`;
5
+ * `internalChanges` is the core's landed private ChangeSet registry
6
+ * accessor (the retained native change — no re-marshaled rows); `lower` is
7
+ * the same core schema lowering `Db.open` admits; `runtimeHandle` captures
8
+ * the already-acquired shared `NativeRuntime`. All four are core-owned
9
+ * (P07/P06) and imported literally — the log mirrors none of them.
10
+ */
11
+ import { internalChanges, internalPublishedReader, lower, runtimeHandle } from "@bjornpagen/bumbledb/internal/log";
12
+ import { makeLogMachine } from "#machine.ts";
13
+ import { logNative } from "#native.ts";
14
+ const coreIntegration = {
15
+ reader(core, schema) {
16
+ return internalPublishedReader(core, schema);
17
+ },
18
+ changes(value) {
19
+ return internalChanges(value);
20
+ },
21
+ schemaSpec(schema) {
22
+ return lower(schema);
23
+ },
24
+ runtime() {
25
+ return runtimeHandle();
26
+ }
27
+ };
28
+ export const log = makeLogMachine(logNative, coreIntegration);
29
+ //# sourceMappingURL=production.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production.js","sourceRoot":"","sources":["../src/production.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAElH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,eAAe,GAAoB;IACxC,MAAM,CACL,IAAiC,EACjC,MAAS;QAET,OAAO,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,CAAC,KAAoC;QAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,UAAU,CAAC,MAAiB;QAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IACD,OAAO;QACN,OAAO,aAAa,EAAE,CAAA;IACvB,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `@bjornpagen/bumbledb-log/schema` — ONLY pure schema-evolution intent
3
+ * constructors (chapter 35). These build inert typed metadata over the core's
4
+ * own schema/`ScalarExpr` values; generation, filesystem work, hashing and
5
+ * execution live in `@bjornpagen/bumbledb-log/migrations` and the native
6
+ * codec. Importing this module performs no native work.
7
+ */
8
+ export type { MigrationIntent, MigrationIntentEntry } from "./migrations/intent.js";
9
+ export { backfill, convert, dropField, dropRelation, migrationIntent, renameField, renameRelation, seed } from "./migrations/intent.js";
10
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,IAAI,EACJ,MAAM,uBAAuB,CAAA"}
package/dist/schema.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `@bjornpagen/bumbledb-log/schema` — ONLY pure schema-evolution intent
3
+ * constructors (chapter 35). These build inert typed metadata over the core's
4
+ * own schema/`ScalarExpr` values; generation, filesystem work, hashing and
5
+ * execution live in `@bjornpagen/bumbledb-log/migrations` and the native
6
+ * codec. Importing this module performs no native work.
7
+ */
8
+ export { backfill, convert, dropField, dropRelation, migrationIntent, renameField, renameRelation, seed } from "#migrations/intent.ts";
9
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,IAAI,EACJ,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The chapter 35 log signature roster: the same core, with durable
3
+ * identity. `PublishedSnapshot<S>` extends the exact core `QueryReader<S>`
4
+ * — same `get`/`execute`, parameters, policies, errors and result owners;
5
+ * the log adds only identity/stamps/freshness. A `HistoryBorrow<S>` has the
6
+ * same members as `History<S>` with `release` instead of owner `close`.
7
+ * Everything effectful is lazy, scoped and bounded; there is no Promise,
8
+ * sync, or disposal twin anywhere on this surface.
9
+ */
10
+ import type { AnySchema, CloseReport, DbError, ExecutionPolicy, ExecutionSession } from "@bjornpagen/bumbledb";
11
+ import type { Capability, ChangeSet, CompleteResult, QueryReader } from "@bjornpagen/bumbledb/internal/log";
12
+ import type { Effect, Scope } from "effect";
13
+ import type { LogError } from "./errors.js";
14
+ import type { CommandRef, DatabaseIdentity, DecisionStamp, Freshness, ReceiptEpoch, RequestId, StateStamp } from "./identity.js";
15
+ import type { HistoryBinding, ReadOptions, SubmitOptions } from "./options.js";
16
+ import type { CacheInspection, CommandResult, HistoryInspection, ResolveOutcome, SubmitOutcome } from "./outcome.js";
17
+ export interface PublishedSnapshot<S extends AnySchema> extends QueryReader<S> {
18
+ readonly identity: DatabaseIdentity;
19
+ readonly decisionStamp: DecisionStamp;
20
+ readonly stateStamp: StateStamp;
21
+ readonly freshness: Freshness;
22
+ /** Core QueryReader.execute: the CompleteResult owner, not a copied page. */
23
+ execute: QueryReader<S>["execute"];
24
+ session(work: ExecutionPolicy): Effect.Effect<ExecutionSession<S>, DbError, Scope.Scope>;
25
+ close(): Effect.Effect<CloseReport>;
26
+ }
27
+ /** Published snapshot is a QueryReader over a native Capability, never a writable Db. */
28
+ export type PublishedCapability = Capability;
29
+ /** Re-export so execute sites name the core CompleteResult owner. */
30
+ export type { CompleteResult };
31
+ export interface Command<S extends AnySchema> {
32
+ readonly ref: CommandRef;
33
+ /** Phantom schema brand: a command submits only to its own S's history. */
34
+ readonly schema?: S;
35
+ close(): Effect.Effect<CloseReport>;
36
+ }
37
+ export type Precondition = {
38
+ readonly kind: "blind";
39
+ } | {
40
+ readonly kind: "exact-state";
41
+ readonly at: StateStamp;
42
+ };
43
+ /** Exactly chapter 30's `{ scope, id, changes, precondition, result }`. */
44
+ export interface CommandInput<S extends AnySchema> {
45
+ readonly scope: DatabaseIdentity;
46
+ readonly id: {
47
+ readonly receiptEpoch: ReceiptEpoch;
48
+ readonly requestId: RequestId;
49
+ };
50
+ readonly changes: ChangeSet<S>;
51
+ readonly precondition: Precondition;
52
+ readonly result: CommandResult;
53
+ }
54
+ export interface History<S extends AnySchema> {
55
+ readonly identity: DatabaseIdentity;
56
+ readonly receiptEpoch: ReceiptEpoch;
57
+ snapshot(options: ReadOptions): Effect.Effect<PublishedSnapshot<S>, LogError, Scope.Scope>;
58
+ submit(command: Command<S>, options: SubmitOptions): Effect.Effect<SubmitOutcome>;
59
+ resolve(ref: CommandRef, work: ExecutionPolicy): Effect.Effect<ResolveOutcome, LogError>;
60
+ inspect(work: ExecutionPolicy): Effect.Effect<HistoryInspection, LogError>;
61
+ close(): Effect.Effect<CloseReport>;
62
+ }
63
+ /** Releasing frees only this borrow; it cannot close the shared owner. */
64
+ export interface HistoryBorrow<S extends AnySchema> {
65
+ readonly identity: DatabaseIdentity;
66
+ readonly receiptEpoch: ReceiptEpoch;
67
+ snapshot(options: ReadOptions): Effect.Effect<PublishedSnapshot<S>, LogError, Scope.Scope>;
68
+ submit(command: Command<S>, options: SubmitOptions): Effect.Effect<SubmitOutcome>;
69
+ resolve(ref: CommandRef, work: ExecutionPolicy): Effect.Effect<ResolveOutcome, LogError>;
70
+ inspect(work: ExecutionPolicy): Effect.Effect<HistoryInspection, LogError>;
71
+ release(): Effect.Effect<CloseReport>;
72
+ }
73
+ export interface TenantCache<S extends AnySchema> {
74
+ acquire(binding: HistoryBinding, options: ExecutionPolicy): Effect.Effect<HistoryBorrow<S>, LogError, Scope.Scope>;
75
+ inspect(work: ExecutionPolicy): Effect.Effect<CacheInspection, LogError>;
76
+ /** Refuses a borrowed/active slot instead of revoking another request. */
77
+ evict(binding: HistoryBinding): Effect.Effect<CloseReport, LogError>;
78
+ close(): Effect.Effect<CloseReport>;
79
+ }
80
+ //# sourceMappingURL=surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":""}