@microdelta/history 0.1.0 → 0.3.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.
- package/README.md +15 -3
- package/dist/api/history.alpha.d.ts +2 -2
- package/dist/api/history.root.raw.alpha.d.ts +380 -21
- package/dist/api/history.root.raw.beta.d.ts +40 -2
- package/dist/api/history.root.raw.public.d.ts +40 -2
- package/dist/api/history.root.raw.untrimmed.d.ts +380 -21
- package/dist/api/history.shared.alpha.d.ts +376 -19
- package/dist/api/history.shared.beta.d.ts +36 -0
- package/dist/api/history.shared.public.d.ts +36 -0
- package/dist/api/history.shared.untrimmed.d.ts +376 -19
- package/dist/api/history.untrimmed.d.ts +2 -2
- package/dist/src/durable/contracts.d.ts +292 -17
- package/dist/src/durable/contracts.d.ts.map +1 -1
- package/dist/src/durable/errors.d.ts +44 -3
- package/dist/src/durable/errors.d.ts.map +1 -1
- package/dist/src/durable/errors.js +43 -7
- package/dist/src/durable/errors.js.map +1 -1
- package/dist/src/durable/index.d.ts.map +1 -1
- package/dist/src/durable/index.js +299 -111
- package/dist/src/durable/index.js.map +1 -1
- package/dist/src/durable/journal.d.ts +53 -0
- package/dist/src/durable/journal.d.ts.map +1 -0
- package/dist/src/durable/journal.js +174 -0
- package/dist/src/durable/journal.js.map +1 -0
- package/dist/src/durable/records.d.ts +40 -0
- package/dist/src/durable/records.d.ts.map +1 -0
- package/dist/src/durable/records.js +74 -0
- package/dist/src/durable/records.js.map +1 -0
- package/dist/src/durable/schema.d.ts +14 -3
- package/dist/src/durable/schema.d.ts.map +1 -1
- package/dist/src/durable/schema.js +99 -21
- package/dist/src/durable/schema.js.map +1 -1
- package/dist/src/durable/selected-index.d.ts.map +1 -1
- package/dist/src/durable/selected-index.js +19 -5
- package/dist/src/durable/selected-index.js.map +1 -1
- package/dist/src/durable/sqlite-boundary.d.ts +11 -0
- package/dist/src/durable/sqlite-boundary.d.ts.map +1 -0
- package/dist/src/durable/sqlite-boundary.js +79 -0
- package/dist/src/durable/sqlite-boundary.js.map +1 -0
- package/dist/src/index.d.ts +7 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -3
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,18 +4,27 @@ const sql = String.raw;
|
|
|
4
4
|
/** The schema identity recorded in every durable History file. */
|
|
5
5
|
export const schemaName = 'microdelta.history.durable';
|
|
6
6
|
/** The only schema version this implementation reads or writes. */
|
|
7
|
-
export const schemaVersion =
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
]
|
|
7
|
+
export const schemaVersion = 3;
|
|
8
|
+
/**
|
|
9
|
+
* Unique identities that could displace immutable history during INSERT OR
|
|
10
|
+
* REPLACE. Every primary key and independent secondary UNIQUE key must appear:
|
|
11
|
+
* SQLite's implicit replacement deletes do not run delete triggers unless the
|
|
12
|
+
* caller enables recursive_triggers. BEFORE INSERT therefore owns this guard.
|
|
13
|
+
* The result scope UNIQUE includes result_id and is covered by its primary key.
|
|
14
|
+
*/
|
|
15
|
+
const immutableKeys = {
|
|
16
|
+
history_identity: [['singleton']],
|
|
17
|
+
history_results: [['result_id'], ['publication']],
|
|
18
|
+
history_dependencies: [['attempt_id', 'position']],
|
|
19
|
+
history_nodes: [['result_id', 'node_id']],
|
|
20
|
+
history_edges: [['result_id', 'parent_node', 'edge_kind', 'edge_key']],
|
|
21
|
+
history_addresses: [['result_id', 'address']],
|
|
22
|
+
history_acceptances: [['acceptance_id']],
|
|
23
|
+
history_acceptance_dependencies: [['acceptance_id', 'position']],
|
|
24
|
+
history_promotions: [['promotion_id']],
|
|
25
|
+
history_promotion_results: [['promotion_id', 'position'], ['promotion_id', 'result_id']],
|
|
26
|
+
history_journal: [['analysis', 'environment', 'collection', 'journal_key', 'revision'], ['sequence']],
|
|
27
|
+
};
|
|
19
28
|
/** Tables whose rows may change state but are never deleted. */
|
|
20
29
|
const retainedTables = ['history_writer', 'history_sequences', 'history_attempts', 'history_current'];
|
|
21
30
|
/**
|
|
@@ -44,7 +53,9 @@ const schemaObjects = [
|
|
|
44
53
|
singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
|
|
45
54
|
last_attempt INTEGER NOT NULL CHECK (last_attempt >= 0),
|
|
46
55
|
last_publication INTEGER NOT NULL CHECK (last_publication >= 0),
|
|
47
|
-
last_acceptance INTEGER NOT NULL CHECK (last_acceptance >= 0)
|
|
56
|
+
last_acceptance INTEGER NOT NULL CHECK (last_acceptance >= 0),
|
|
57
|
+
last_promotion INTEGER NOT NULL CHECK (last_promotion >= 0),
|
|
58
|
+
last_journal INTEGER NOT NULL CHECK (last_journal >= 0)
|
|
48
59
|
) STRICT`,
|
|
49
60
|
// Durable attempts with their stable key, intent digest, staged candidate
|
|
50
61
|
// content and failure evidence. Staged content is never a completed result.
|
|
@@ -104,7 +115,7 @@ const schemaObjects = [
|
|
|
104
115
|
position INTEGER NOT NULL CHECK (position >= 0),
|
|
105
116
|
dependency_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
106
117
|
PRIMARY KEY (attempt_id, position)
|
|
107
|
-
) STRICT`,
|
|
118
|
+
) STRICT, WITHOUT ROWID`,
|
|
108
119
|
// The generated selected index: one row per node of the canonical payload.
|
|
109
120
|
// Only `scalar` holds author data; everything else is shape or digest.
|
|
110
121
|
sql `CREATE TABLE history_nodes (
|
|
@@ -125,7 +136,7 @@ const schemaObjects = [
|
|
|
125
136
|
AND prototype IS NULL AND prototype_node IS NULL AND terminal IS NULL)
|
|
126
137
|
OR (kind = 'record' AND scalar IS NULL AND array_length IS NULL AND own_keys IS NOT NULL
|
|
127
138
|
AND prototype IS NOT NULL AND terminal IS NOT NULL AND (prototype = 'custom') = (prototype_node IS NOT NULL)))
|
|
128
|
-
) STRICT`,
|
|
139
|
+
) STRICT, WITHOUT ROWID`,
|
|
129
140
|
// Structural slots: own record members and present array elements.
|
|
130
141
|
sql `CREATE TABLE history_edges (
|
|
131
142
|
result_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
@@ -135,7 +146,7 @@ const schemaObjects = [
|
|
|
135
146
|
position INTEGER NOT NULL,
|
|
136
147
|
child_node INTEGER NOT NULL,
|
|
137
148
|
PRIMARY KEY (result_id, parent_node, edge_kind, edge_key)
|
|
138
|
-
) STRICT`,
|
|
149
|
+
) STRICT, WITHOUT ROWID`,
|
|
139
150
|
// Every reachable structured address, with its node and MDO1 value digest.
|
|
140
151
|
sql `CREATE TABLE history_addresses (
|
|
141
152
|
result_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
@@ -145,7 +156,7 @@ const schemaObjects = [
|
|
|
145
156
|
value_fingerprint TEXT,
|
|
146
157
|
PRIMARY KEY (result_id, address),
|
|
147
158
|
CHECK ((address = '[]') = (value_fingerprint IS NULL))
|
|
148
|
-
) STRICT`,
|
|
159
|
+
) STRICT, WITHOUT ROWID`,
|
|
149
160
|
// The latest publication of each scoped subject; acceptance never moves it.
|
|
150
161
|
sql `CREATE TABLE history_current (
|
|
151
162
|
analysis TEXT NOT NULL,
|
|
@@ -156,23 +167,66 @@ const schemaObjects = [
|
|
|
156
167
|
FOREIGN KEY (result_id, analysis, environment, subject)
|
|
157
168
|
REFERENCES history_results (result_id, analysis, environment, subject)
|
|
158
169
|
) STRICT`,
|
|
159
|
-
// Current acceptance evidence, separate from the result's provenance
|
|
170
|
+
// Current acceptance evidence, separate from the result's provenance, in
|
|
171
|
+
// the namespace of the environment whose verification recorded it.
|
|
160
172
|
sql `CREATE TABLE history_acceptances (
|
|
161
173
|
acceptance_id INTEGER PRIMARY KEY CHECK (acceptance_id > 0),
|
|
162
174
|
result_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
175
|
+
environment TEXT NOT NULL CHECK (length(environment) > 0),
|
|
163
176
|
fence INTEGER NOT NULL CHECK (fence > 0),
|
|
164
177
|
evidence_format TEXT NOT NULL,
|
|
165
178
|
evidence_version INTEGER NOT NULL,
|
|
166
179
|
evidence TEXT NOT NULL
|
|
167
180
|
) STRICT`,
|
|
168
|
-
sql `CREATE INDEX history_acceptances_by_result ON history_acceptances (result_id, acceptance_id)`,
|
|
181
|
+
sql `CREATE INDEX history_acceptances_by_result ON history_acceptances (result_id, environment, acceptance_id)`,
|
|
169
182
|
sql `CREATE TABLE history_acceptance_dependencies (
|
|
170
183
|
acceptance_id INTEGER NOT NULL REFERENCES history_acceptances (acceptance_id),
|
|
171
184
|
position INTEGER NOT NULL CHECK (position >= 0),
|
|
172
185
|
dependency_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
173
186
|
PRIMARY KEY (acceptance_id, position)
|
|
187
|
+
) STRICT, WITHOUT ROWID`,
|
|
188
|
+
// Recorded promotions (RUN-017): each admits exact results of other
|
|
189
|
+
// environments into its target environment, with the promoter's evidence.
|
|
190
|
+
sql `CREATE TABLE history_promotions (
|
|
191
|
+
promotion_id INTEGER PRIMARY KEY CHECK (promotion_id > 0),
|
|
192
|
+
analysis TEXT NOT NULL CHECK (length(analysis) > 0),
|
|
193
|
+
environment TEXT NOT NULL CHECK (length(environment) > 0),
|
|
194
|
+
fence INTEGER NOT NULL CHECK (fence > 0),
|
|
195
|
+
evidence_format TEXT NOT NULL,
|
|
196
|
+
evidence_version INTEGER NOT NULL,
|
|
197
|
+
evidence TEXT NOT NULL
|
|
174
198
|
) STRICT`,
|
|
175
|
-
|
|
199
|
+
sql `CREATE INDEX history_promotions_by_target ON history_promotions (analysis, environment, promotion_id)`,
|
|
200
|
+
sql `CREATE TABLE history_promotion_results (
|
|
201
|
+
promotion_id INTEGER NOT NULL REFERENCES history_promotions (promotion_id),
|
|
202
|
+
position INTEGER NOT NULL CHECK (position >= 0),
|
|
203
|
+
result_id INTEGER NOT NULL REFERENCES history_results (result_id),
|
|
204
|
+
PRIMARY KEY (promotion_id, position),
|
|
205
|
+
UNIQUE (promotion_id, result_id)
|
|
206
|
+
) STRICT, WITHOUT ROWID`,
|
|
207
|
+
sql `CREATE INDEX history_promotion_results_by_result ON history_promotion_results (result_id, promotion_id)`,
|
|
208
|
+
// Run Supervision's operation journal: immutable revisions of opaque owner
|
|
209
|
+
// records per environment namespace, owner-named collection and key. The
|
|
210
|
+
// current record is an address's highest revision; the sequence orders
|
|
211
|
+
// commits. The format and version are each revision's tag, never part of
|
|
212
|
+
// the record's identity, so two formats can never hold parallel records.
|
|
213
|
+
sql `CREATE TABLE history_journal (
|
|
214
|
+
analysis TEXT NOT NULL CHECK (length(analysis) > 0),
|
|
215
|
+
environment TEXT NOT NULL CHECK (length(environment) > 0),
|
|
216
|
+
collection TEXT NOT NULL CHECK (length(collection) > 0),
|
|
217
|
+
journal_key TEXT NOT NULL CHECK (length(journal_key) > 0),
|
|
218
|
+
revision INTEGER NOT NULL CHECK (revision > 0),
|
|
219
|
+
sequence INTEGER NOT NULL UNIQUE CHECK (sequence > 0),
|
|
220
|
+
fence INTEGER NOT NULL CHECK (fence > 0),
|
|
221
|
+
format TEXT NOT NULL CHECK (length(format) > 0),
|
|
222
|
+
format_version INTEGER NOT NULL CHECK (format_version > 0),
|
|
223
|
+
content TEXT NOT NULL,
|
|
224
|
+
PRIMARY KEY (analysis, environment, collection, journal_key, revision)
|
|
225
|
+
) STRICT, WITHOUT ROWID`,
|
|
226
|
+
...Object.entries(immutableKeys).flatMap(([table, keys]) => [
|
|
227
|
+
sql `CREATE TRIGGER ${table}_immutable_insert BEFORE INSERT ON ${table}
|
|
228
|
+
WHEN EXISTS (SELECT 1 FROM ${table} WHERE ${keys.map((key) => `(${key.map((column) => `${column} = NEW.${column}`).join(' AND ')})`).join(' OR ')})
|
|
229
|
+
BEGIN SELECT RAISE(ABORT, '${table} rows are immutable history'); END`,
|
|
176
230
|
sql `CREATE TRIGGER ${table}_immutable_update BEFORE UPDATE ON ${table}
|
|
177
231
|
BEGIN SELECT RAISE(ABORT, '${table} rows are immutable history'); END`,
|
|
178
232
|
sql `CREATE TRIGGER ${table}_immutable_delete BEFORE DELETE ON ${table}
|
|
@@ -228,14 +282,38 @@ export function initializeSchema(connection, logicalStore) {
|
|
|
228
282
|
connection.prepare(sql `/* schema */ INSERT INTO history_identity (singleton, schema_name, schema_version, logical_store) VALUES (1, ?, ?, ?)`)
|
|
229
283
|
.run(schemaName, schemaVersion, logicalStore);
|
|
230
284
|
connection.prepare(sql `/* schema */ INSERT INTO history_writer (singleton, last_fence, holder, expires_at, time_high_water) VALUES (1, 0, NULL, 0, 0)`).run();
|
|
231
|
-
connection.prepare(sql `/* schema */ INSERT INTO history_sequences (singleton, last_attempt, last_publication, last_acceptance
|
|
285
|
+
connection.prepare(sql `/* schema */ INSERT INTO history_sequences (singleton, last_attempt, last_publication, last_acceptance, last_promotion, last_journal)
|
|
286
|
+
VALUES (1, 0, 0, 0, 0, 0)`).run();
|
|
232
287
|
return undefined;
|
|
233
288
|
});
|
|
234
289
|
validateSchema(connection, logicalStore);
|
|
235
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Reject a file that records this schema under another version before
|
|
293
|
+
* comparing objects, so an earlier or later History layout is diagnosed by its
|
|
294
|
+
* version rather than as an incomplete schema. A file whose identity cannot be
|
|
295
|
+
* read this way is left to the exact object comparison.
|
|
296
|
+
*/
|
|
297
|
+
function rejectOtherVersion(connection, present) {
|
|
298
|
+
if (!present.has('history_identity')) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
let identities;
|
|
302
|
+
try {
|
|
303
|
+
identities = connection.prepare(sql `/* schema */ SELECT schema_name, schema_version FROM history_identity`).all();
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const identity = identities[0];
|
|
309
|
+
if (identities.length === 1 && identity?.schema_name === schemaName && identity.schema_version !== schemaVersion) {
|
|
310
|
+
throw new HistorySchemaError(`Unsupported History schema ${schemaName} version ${String(identity.schema_version)}; this implementation reads only version ${String(schemaVersion)} and never migrates stored data by guessing`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
236
313
|
/** Reject any database that is not exactly this schema for this logical store. */
|
|
237
314
|
function validateSchema(connection, logicalStore) {
|
|
238
315
|
const present = presentObjects(connection);
|
|
316
|
+
rejectOtherVersion(connection, present);
|
|
239
317
|
const missing = [...expectedObjects.keys()].filter((name) => !present.has(name));
|
|
240
318
|
const unexpected = [...present.keys()].filter((name) => !expectedObjects.has(name));
|
|
241
319
|
if (missing.length > 0 || unexpected.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/durable/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/durable/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-index.d.ts","sourceRoot":"","sources":["../../../src/durable/selected-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"selected-index.d.ts","sourceRoot":"","sources":["../../../src/durable/selected-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AAiB1G,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EAI1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAM1D,2DAA2D;AAC3D,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,4DAA4D;AAC5D,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7C,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,4EAA4E;AAC5E,UAAU,QAAQ;IAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,UAAU,WAAW;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACpB,6FAA6F;IAC7F,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;CAC5C;AAwBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAuG5E;AAgGD,yFAAyF;AACzF,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,yBAAyB,KAAK,MAAM,CAAC;AAE/E,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,sFAAsF;IACtF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACjD,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,0BAA0B,CAAC;IACrE,iFAAiF;IACjF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CA2YpI"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decodeSnapshot, decodeValue, encodeSelectedFact, encodeSnapshot, encodeValue, fingerprint, navigate, observe, recordFromEntries, } from '@microdelta/value';
|
|
1
|
+
import { decodeSnapshot, decodeValue, encodeSelectedFact, encodeSnapshot, encodeValue, fingerprint, navigate, observe, observePrepared, prepareValue, preparedRoot, recordFromEntries, } from '@microdelta/value';
|
|
2
2
|
import { HistoryIntegrityError } from './errors.js';
|
|
3
3
|
/** Identity tag for embedded SQL; the text is passed through unchanged. */
|
|
4
4
|
const sql = String.raw;
|
|
@@ -21,6 +21,14 @@ function ownValue(record, key) {
|
|
|
21
21
|
* that an earlier level does not shadow.
|
|
22
22
|
*/
|
|
23
23
|
export function buildIndex(root, host) {
|
|
24
|
+
// Validate and detach once before constructing addresses; selected reads then
|
|
25
|
+
// consult Value's prepared immutable facts without rescanning ancestor arrays.
|
|
26
|
+
const prepared = prepareValue(root);
|
|
27
|
+
const preparedRootValue = preparedRoot(prepared);
|
|
28
|
+
if (preparedRootValue === null || typeof preparedRootValue !== 'object') {
|
|
29
|
+
throw new TypeError('A completed result payload needs a record or array root');
|
|
30
|
+
}
|
|
31
|
+
const snapshotRoot = preparedRootValue;
|
|
24
32
|
const nodes = [];
|
|
25
33
|
const edges = [];
|
|
26
34
|
const addresses = [];
|
|
@@ -84,7 +92,7 @@ export function buildIndex(root, host) {
|
|
|
84
92
|
address: encodeAddress(address),
|
|
85
93
|
nodeId,
|
|
86
94
|
own: own ? 1 : 0,
|
|
87
|
-
valueFingerprint: address.length === 0 ? null : fingerprint(encodeSelectedFact(
|
|
95
|
+
valueFingerprint: address.length === 0 ? null : fingerprint(encodeSelectedFact(observePrepared(prepared, address, 'value')), host),
|
|
88
96
|
});
|
|
89
97
|
const node = nodes[nodeId];
|
|
90
98
|
if (node?.kind === 'array') {
|
|
@@ -112,7 +120,7 @@ export function buildIndex(root, host) {
|
|
|
112
120
|
}
|
|
113
121
|
}
|
|
114
122
|
}
|
|
115
|
-
addAddress(addNode(
|
|
123
|
+
addAddress(addNode(snapshotRoot), [], true);
|
|
116
124
|
return { nodes, edges, addresses };
|
|
117
125
|
}
|
|
118
126
|
/** Narrow a stored cell to text, or fail as corrupted storage. */
|
|
@@ -232,9 +240,13 @@ export function createSelectedIndex(connection, host, resolve) {
|
|
|
232
240
|
fingerprints: connection.prepare(sql `/* fingerprint */ SELECT a.value_fingerprint, n.snapshot_fingerprint
|
|
233
241
|
FROM history_addresses a JOIN history_nodes n ON n.result_id = a.result_id AND n.node_id = a.node_id
|
|
234
242
|
WHERE a.result_id = ? AND a.address = ?`),
|
|
243
|
+
// The selected frontier drives each edge lookup through the existing
|
|
244
|
+
// (result_id, parent_node) key prefix; a result-wide edge scan per node
|
|
245
|
+
// would multiply work while discovering a large retained subtree.
|
|
235
246
|
subtreeNodes: connection.prepare(sql `/* subtree-payload */ WITH RECURSIVE subtree(node_id) AS (
|
|
236
247
|
SELECT ?
|
|
237
|
-
UNION SELECT e.child_node FROM
|
|
248
|
+
UNION SELECT e.child_node FROM subtree s CROSS JOIN history_edges e
|
|
249
|
+
WHERE e.result_id = ? AND e.parent_node = s.node_id
|
|
238
250
|
UNION SELECT n.prototype_node FROM history_nodes n JOIN subtree s ON n.node_id = s.node_id
|
|
239
251
|
WHERE n.result_id = ? AND n.prototype_node IS NOT NULL
|
|
240
252
|
)
|
|
@@ -337,7 +349,7 @@ export function createSelectedIndex(connection, host, resolve) {
|
|
|
337
349
|
}
|
|
338
350
|
return value;
|
|
339
351
|
}
|
|
340
|
-
/** Answer a presence, length or key-order fact from metadata alone. */
|
|
352
|
+
/** Answer a container kind, presence, length or key-order fact from metadata alone. */
|
|
341
353
|
function metadataFact(resultId, operation, address) {
|
|
342
354
|
const metadata = metadataAt(resultId, address);
|
|
343
355
|
if (metadata === undefined) {
|
|
@@ -345,6 +357,8 @@ export function createSelectedIndex(connection, host, resolve) {
|
|
|
345
357
|
return absoluteFact(operation, address, observe(stand, remainder, operation).fact);
|
|
346
358
|
}
|
|
347
359
|
switch (operation) {
|
|
360
|
+
case 'container-kind':
|
|
361
|
+
return absoluteFact(operation, address, metadata.kind);
|
|
348
362
|
case 'own':
|
|
349
363
|
case 'membership':
|
|
350
364
|
if (address.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-index.js","sourceRoot":"","sources":["../../../src/durable/selected-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selected-index.js","sourceRoot":"","sources":["../../../src/durable/selected-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ISqliteCapability, ISqliteConnection } from '@microdelta/machine';
|
|
2
|
+
import { HistoryBusyError } from './errors.js';
|
|
3
|
+
/** Whether this exact failure came from History's wrapped SQLite capability. */
|
|
4
|
+
export declare function isHistorySqliteBoundaryBusy(error: unknown): error is HistoryBusyError;
|
|
5
|
+
/**
|
|
6
|
+
* Open a connection whose SQLite calls use History's typed busy failure.
|
|
7
|
+
* A busy error thrown by a transaction callback remains that callback's
|
|
8
|
+
* exact error, even when it is itself a Machine SqliteBusyError.
|
|
9
|
+
*/
|
|
10
|
+
export declare function openHistorySqlite(sqlite: ISqliteCapability, location: string): ISqliteConnection;
|
|
11
|
+
//# sourceMappingURL=sqlite-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-boundary.d.ts","sourceRoot":"","sources":["../../../src/durable/sqlite-boundary.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAA8C,MAAM,qBAAqB,CAAC;AAE5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,gFAAgF;AAChF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAErF;AA8BD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CA8BhG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* History's narrow Machine SQLite boundary. It translates exhausted host
|
|
3
|
+
* contention without changing transaction callbacks, domain failures, or
|
|
4
|
+
* the connection's atomicity and fencing semantics.
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
import { SqliteBusyError } from '@microdelta/machine';
|
|
8
|
+
import { HistoryBusyError } from './errors.js';
|
|
9
|
+
/** Only errors translated here attest that Machine's SQLite boundary was busy. */
|
|
10
|
+
const boundaryFailures = new WeakSet();
|
|
11
|
+
/** Whether this exact failure came from History's wrapped SQLite capability. */
|
|
12
|
+
export function isHistorySqliteBoundaryBusy(error) {
|
|
13
|
+
return error instanceof HistoryBusyError && boundaryFailures.has(error);
|
|
14
|
+
}
|
|
15
|
+
/** Preserve the host cause while marking the translated instance for lease policy. */
|
|
16
|
+
function historyBusy(cause) {
|
|
17
|
+
const failure = new HistoryBusyError(cause.message, cause);
|
|
18
|
+
boundaryFailures.add(failure);
|
|
19
|
+
return failure;
|
|
20
|
+
}
|
|
21
|
+
/** Translate only Machine's typed exhausted contention, preserving its identity as the cause. */
|
|
22
|
+
function atBoundary(operation) {
|
|
23
|
+
try {
|
|
24
|
+
return operation();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error instanceof SqliteBusyError) {
|
|
28
|
+
throw historyBusy(error);
|
|
29
|
+
}
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Wrap one prepared statement, leaving bound values and returned rows unchanged. */
|
|
34
|
+
function historyStatement(statement) {
|
|
35
|
+
return {
|
|
36
|
+
run: (...values) => atBoundary(() => statement.run(...values)),
|
|
37
|
+
get: (...values) => atBoundary(() => statement.get(...values)),
|
|
38
|
+
all: (...values) => atBoundary(() => statement.all(...values)),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Open a connection whose SQLite calls use History's typed busy failure.
|
|
43
|
+
* A busy error thrown by a transaction callback remains that callback's
|
|
44
|
+
* exact error, even when it is itself a Machine SqliteBusyError.
|
|
45
|
+
*/
|
|
46
|
+
export function openHistorySqlite(sqlite, location) {
|
|
47
|
+
const connection = atBoundary(() => sqlite.openSqlite(location));
|
|
48
|
+
return {
|
|
49
|
+
exec: (sql) => atBoundary(() => connection.exec(sql)),
|
|
50
|
+
prepare: (sql) => historyStatement(atBoundary(() => connection.prepare(sql))),
|
|
51
|
+
transaction: (operation) => {
|
|
52
|
+
let callbackFailed = false;
|
|
53
|
+
let callbackError;
|
|
54
|
+
try {
|
|
55
|
+
return connection.transaction(() => {
|
|
56
|
+
try {
|
|
57
|
+
return operation();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
callbackFailed = true;
|
|
61
|
+
callbackError = error;
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (callbackFailed && error === callbackError) {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
if (error instanceof SqliteBusyError) {
|
|
71
|
+
throw historyBusy(error);
|
|
72
|
+
}
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
close: () => atBoundary(() => connection.close()),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=sqlite-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-boundary.js","sourceRoot":"","sources":["../../../src/durable/sqlite-boundary.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* Result History & Publication. This entry exposes the existing row Store,
|
|
3
3
|
* its memory adapter and compatibility schema unchanged, the exact
|
|
4
4
|
* completed-result reading ports, and the project-private alpha durable
|
|
5
|
-
* authority that owns attempts, the single logical writer, atomic publication
|
|
6
|
-
*
|
|
5
|
+
* authority that owns attempts, the single logical writer, atomic publication,
|
|
6
|
+
* acceptance records, environment namespaces, recorded promotions and Run
|
|
7
|
+
* Supervision's opaque operation journal. It never decides candidate validity
|
|
8
|
+
* or freshness and never interprets journal records.
|
|
7
9
|
* @packageDocumentation
|
|
8
10
|
*/
|
|
9
11
|
export { DuplicateRowError, FingerprintAlgorithmMismatchError, InvalidStorePatchError, MissingRowError, } from './store/index.js';
|
|
@@ -12,15 +14,15 @@ export { createMemoryStore } from './store/memory/index.js';
|
|
|
12
14
|
export type { MemoryStoreOptions } from './store/memory/index.js';
|
|
13
15
|
export type { ICompletedNavigationReader, ICompletedProjectionReader, ICompletedResultReader, ICompletedResultReference, ISelectedFingerprintRequest, ISelectedFingerprintResolution, ISelectedReadRequest, } from './completed-results.js';
|
|
14
16
|
export type { IAddressSegment, IOperation, ISelectedFact, ISelectedNode, IValueProjectionDescriptor, IValueProjectionFact, IValueProjectionMember, IValueProjectionTraversal, } from '@microdelta/value';
|
|
15
|
-
export { AttemptConflictError, AttemptStateError, HistoryClockError, HistoryIntegrityError, HistorySchemaError, StaleWriterError, } from './durable/errors.js';
|
|
17
|
+
export { AttemptConflictError, AttemptStateError, HistoryBusyError, HistoryClockError, HistoryIntegrityError, HistorySchemaError, JournalConflictError, JournalVersionError, StaleWriterError, } from './durable/errors.js';
|
|
16
18
|
export { openDurableHistory } from './durable/index.js';
|
|
17
|
-
export type { IAbandonRequest, IAcceptanceRecord, IAcceptanceRequest, IAttemptRecord, IAttemptRequest, IAttemptState, ICompletedEnvelope, IDurableHistory, IDurableHistoryOptions, IHistoryScope, IRecoveryOutcome, IResultVerification, IScopedSubject, IStageRequest, IVersionedRecord, IVersionedSubject, IWriterAcquisition, IWriterAcquisitionRequest, IWriterLease, } from './durable/contracts.js';
|
|
19
|
+
export type { IAbandonRequest, IAcceptanceRecord, IAcceptanceRequest, IAttemptRecord, IAttemptRequest, IAttemptState, ICompletedEnvelope, IDurableHistory, IDurableHistoryOptions, IHistoryScope, IJournalAddress, IJournalCommit, IJournalDeclaration, IJournalFormat, IJournalQuery, IJournalRecord, IJournalWrite, IOperationJournal, IPromotionQuery, IPromotionRecord, IPromotionRequest, IRecoveryOutcome, IResultVerification, IScopedSubject, IStageRequest, IVersionedRecord, IVersionedSubject, IWriterAcquisition, IWriterAcquisitionRequest, IWriterContention, IWriterLease, IWriterRenewal, } from './durable/contracts.js';
|
|
18
20
|
/**
|
|
19
21
|
* Machine host contracts surfaced by the durable authority's options and by
|
|
20
22
|
* the connections its SQLite capability returns. They are re-exported
|
|
21
23
|
* intentionally, as Value and Tracking re-export the host contracts they
|
|
22
24
|
* surface, so alpha consumers name Machine's exact types from History.
|
|
23
25
|
*/
|
|
24
|
-
export type { IClockCapability, ISha256Capability, ISqliteCapability, ISqliteConnection, ISqliteRow, ISqliteRunResult, ISqliteStatement, ISqliteSynchronousResult, ISqliteValue, } from '@microdelta/machine';
|
|
26
|
+
export type { IClockCapability, ISha256Capability, ISqliteCapability, ISqliteOpenOptions, ISqliteConnection, ISqliteRow, ISqliteRunResult, ISqliteStatement, ISqliteSynchronousResult, ISqliteValue, } from '@microdelta/machine';
|
|
25
27
|
export type { Divergence, Fingerprint, GenerationState, Identity, Outcome, Path, RecordedRead, ResultKey, Subject, } from './types.js';
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,iBAAiB,EACjB,iCAAiC,EACjC,sBAAsB,EACtB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,KAAK,EACL,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,eAAe,EACf,UAAU,EACV,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC;;;;;GAKG;AACH,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
* Result History & Publication. This entry exposes the existing row Store,
|
|
3
3
|
* its memory adapter and compatibility schema unchanged, the exact
|
|
4
4
|
* completed-result reading ports, and the project-private alpha durable
|
|
5
|
-
* authority that owns attempts, the single logical writer, atomic publication
|
|
6
|
-
*
|
|
5
|
+
* authority that owns attempts, the single logical writer, atomic publication,
|
|
6
|
+
* acceptance records, environment namespaces, recorded promotions and Run
|
|
7
|
+
* Supervision's opaque operation journal. It never decides candidate validity
|
|
8
|
+
* or freshness and never interprets journal records.
|
|
7
9
|
* @packageDocumentation
|
|
8
10
|
*/
|
|
9
11
|
export { DuplicateRowError, FingerprintAlgorithmMismatchError, InvalidStorePatchError, MissingRowError, } from './store/index.js';
|
|
10
12
|
export { createMemoryStore } from './store/memory/index.js';
|
|
11
|
-
export { AttemptConflictError, AttemptStateError, HistoryClockError, HistoryIntegrityError, HistorySchemaError, StaleWriterError, } from './durable/errors.js';
|
|
13
|
+
export { AttemptConflictError, AttemptStateError, HistoryBusyError, HistoryClockError, HistoryIntegrityError, HistorySchemaError, JournalConflictError, JournalVersionError, StaleWriterError, } from './durable/errors.js';
|
|
12
14
|
export { openDurableHistory } from './durable/index.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,iBAAiB,EACjB,iCAAiC,EACjC,sBAAsB,EACtB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAqB5D,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|