@superbee/core 0.2.0-pre.3 → 0.2.0-pre.5
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/dist/backend.d.ts +2 -1
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +34 -32
- package/dist/backend.js.map +1 -1
- package/dist/bundle.d.ts +2 -1
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +3 -3
- package/dist/bundle.js.map +1 -1
- package/dist/filesystem-host.d.ts +15 -0
- package/dist/filesystem-host.d.ts.map +1 -0
- package/dist/filesystem-host.js +20 -0
- package/dist/filesystem-host.js.map +1 -0
- package/dist/filesystem-identity.d.ts +6 -4
- package/dist/filesystem-identity.d.ts.map +1 -1
- package/dist/filesystem-identity.js +106 -96
- package/dist/filesystem-identity.js.map +1 -1
- package/dist/filesystem-lock.d.ts +6 -3
- package/dist/filesystem-lock.d.ts.map +1 -1
- package/dist/filesystem-lock.js +41 -56
- package/dist/filesystem-lock.js.map +1 -1
- package/dist/filesystem.d.ts +17 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +18 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/governed-body-write.d.ts +99 -0
- package/dist/governed-body-write.d.ts.map +1 -0
- package/dist/governed-body-write.js +244 -0
- package/dist/governed-body-write.js.map +1 -0
- package/dist/host-policy-snapshot.d.ts +9 -0
- package/dist/host-policy-snapshot.d.ts.map +1 -0
- package/dist/host-policy-snapshot.js +33 -0
- package/dist/host-policy-snapshot.js.map +1 -0
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts +23 -6
- package/dist/indexeddb-backend.d.ts.map +1 -1
- package/dist/indexeddb-backend.js +395 -115
- package/dist/indexeddb-backend.js.map +1 -1
- package/dist/journaled-backend.d.ts +148 -9
- package/dist/journaled-backend.d.ts.map +1 -1
- package/dist/journaled-backend.js +209 -5
- package/dist/journaled-backend.js.map +1 -1
- package/dist/remote-backend.d.ts +9 -54
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +13 -173
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-error.d.ts +22 -0
- package/dist/remote-error.d.ts.map +1 -0
- package/dist/remote-error.js +29 -0
- package/dist/remote-error.js.map +1 -0
- package/dist/remote-parsers.d.ts +86 -0
- package/dist/remote-parsers.d.ts.map +1 -0
- package/dist/remote-parsers.js +181 -0
- package/dist/remote-parsers.js.map +1 -0
- package/dist/remote.d.ts +5 -2
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +5 -1
- package/dist/remote.js.map +1 -1
- package/dist/storage.d.ts +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/uncertain-write.d.ts +4 -2
- package/dist/uncertain-write.d.ts.map +1 -1
- package/dist/uncertain-write.js +6 -3
- package/dist/uncertain-write.js.map +1 -1
- package/package.json +10 -2
package/dist/filesystem-lock.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { promises as fs, realpathSync } from "node:fs";
|
|
2
|
-
import { homedir, hostname
|
|
2
|
+
import { homedir, hostname } from "node:os";
|
|
3
|
+
import { captureFilesystemHostPolicy } from "./filesystem-host.js";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
5
6
|
const OWNER_FILE = "owner.json";
|
|
@@ -19,19 +20,6 @@ export class FilesystemMutationLockError extends Error {
|
|
|
19
20
|
this.malformed = details.malformed;
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
function runtimeOwnerKey() {
|
|
23
|
-
const uid = process.getuid?.();
|
|
24
|
-
if (uid !== undefined)
|
|
25
|
-
return `uid-${uid}`;
|
|
26
|
-
let username = "unknown";
|
|
27
|
-
try {
|
|
28
|
-
username = userInfo().username;
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
// Windows temp directories are already user-scoped; this is only a stable path segment.
|
|
32
|
-
}
|
|
33
|
-
return `user-${createHash("sha256").update(username).digest("hex").slice(0, 16)}`;
|
|
34
|
-
}
|
|
35
23
|
function canonicalExistingPath(value) {
|
|
36
24
|
try {
|
|
37
25
|
return realpathSync(value);
|
|
@@ -45,17 +33,13 @@ function pathContains(root, candidate) {
|
|
|
45
33
|
return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
|
|
46
34
|
}
|
|
47
35
|
/** Stable per-user runtime namespace outside `portableRoot`; refuses an impossible root bundle. */
|
|
48
|
-
export function filesystemMutationLockRoot(portableRoot) {
|
|
49
|
-
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
// of tmpdir(); otherwise two shells can derive different locks for the same portable target.
|
|
53
|
-
const runtimeParent = process.platform === "win32"
|
|
54
|
-
? path.join(homedir(), "AppData", "Local")
|
|
55
|
-
: "/tmp";
|
|
36
|
+
export function filesystemMutationLockRoot(portableRoot, hostPolicy) {
|
|
37
|
+
const policy = captureFilesystemHostPolicy(hostPolicy);
|
|
38
|
+
// A stable host parent keeps different process/session temp settings in one namespace.
|
|
39
|
+
const runtimeParent = policy.runtimeLockParent();
|
|
56
40
|
const tempParent = canonicalExistingPath(runtimeParent);
|
|
57
41
|
const homeParent = canonicalExistingPath(homedir());
|
|
58
|
-
const ownerKey = runtimeOwnerKey();
|
|
42
|
+
const ownerKey = policy.runtimeOwnerKey();
|
|
59
43
|
const candidates = [
|
|
60
44
|
path.join(tempParent, `agentstate-lite-mutation-locks-${ownerKey}`),
|
|
61
45
|
path.join(homeParent, ".agentstate", `mutation-locks-${ownerKey}`),
|
|
@@ -78,8 +62,8 @@ function explicitFilesystemMutationLockRoot(root, portableRoot) {
|
|
|
78
62
|
throw new FilesystemMutationLockError(`cannot place filesystem mutation locks outside portable root '${portable}'`, { lockPath: portable, owner: null, stale: false, malformed: true });
|
|
79
63
|
}
|
|
80
64
|
/** Runtime lock directory for one already-canonical physical target. */
|
|
81
|
-
export function filesystemMutationLockPath(target, portableRoot) {
|
|
82
|
-
return filesystemMutationLockPathInRoot(target, filesystemMutationLockRoot(portableRoot));
|
|
65
|
+
export function filesystemMutationLockPath(target, portableRoot, hostPolicy) {
|
|
66
|
+
return filesystemMutationLockPathInRoot(target, filesystemMutationLockRoot(portableRoot, hostPolicy));
|
|
83
67
|
}
|
|
84
68
|
function filesystemMutationLockPathInRoot(target, lockRoot) {
|
|
85
69
|
const digest = createHash("sha256").update(path.resolve(target)).digest("hex");
|
|
@@ -148,9 +132,9 @@ async function pathExists(candidate) {
|
|
|
148
132
|
/**
|
|
149
133
|
* Move one demonstrably dead same-host lock aside without deleting its evidence. The destination
|
|
150
134
|
* is stable for the dead owner's token and remains non-empty, so a delayed competing reclaimer
|
|
151
|
-
* cannot rename a replacement live lock over it
|
|
135
|
+
* cannot rename a replacement live lock over it across supported filesystems.
|
|
152
136
|
*/
|
|
153
|
-
async function quarantineStaleLock(lockPath, owner) {
|
|
137
|
+
async function quarantineStaleLock(lockPath, owner, policy) {
|
|
154
138
|
if (owner.hostname !== hostname() || processExists(owner.pid))
|
|
155
139
|
return false;
|
|
156
140
|
const quarantinePath = staleLockQuarantinePath(lockPath, owner);
|
|
@@ -164,7 +148,7 @@ async function quarantineStaleLock(lockPath, owner) {
|
|
|
164
148
|
return false;
|
|
165
149
|
if (await pathExists(quarantinePath))
|
|
166
150
|
return false;
|
|
167
|
-
if (
|
|
151
|
+
if (policy.isDirectoryContentionError(err))
|
|
168
152
|
return false;
|
|
169
153
|
throw err;
|
|
170
154
|
}
|
|
@@ -185,7 +169,7 @@ export function isPrivateFilesystemMutationLockRoot(facts) {
|
|
|
185
169
|
const unsafeMode = facts.enforcePrivateMode && (facts.mode & 0o777) !== 0o700;
|
|
186
170
|
return facts.directory && !facts.symbolicLink && !wrongOwner && !unsafeMode;
|
|
187
171
|
}
|
|
188
|
-
async function ensurePrivateLockRoot(root) {
|
|
172
|
+
async function ensurePrivateLockRoot(root, policy) {
|
|
189
173
|
try {
|
|
190
174
|
await fs.mkdir(root, { recursive: true, mode: 0o700 });
|
|
191
175
|
}
|
|
@@ -201,7 +185,7 @@ async function ensurePrivateLockRoot(root) {
|
|
|
201
185
|
ownerUid: stat.uid,
|
|
202
186
|
expectedUid: uid,
|
|
203
187
|
mode: stat.mode,
|
|
204
|
-
enforcePrivateMode:
|
|
188
|
+
enforcePrivateMode: policy.enforcePrivateMode,
|
|
205
189
|
})) {
|
|
206
190
|
throw new FilesystemMutationLockError(`refusing unsafe filesystem mutation lock root '${root}'; it must be a private directory owned by this user`, { lockPath: root, owner: null, stale: false, malformed: true });
|
|
207
191
|
}
|
|
@@ -231,7 +215,7 @@ async function canonicalTargetInDirectory(directory, requestedBasename) {
|
|
|
231
215
|
candidateStat = await fs.lstat(candidate);
|
|
232
216
|
}
|
|
233
217
|
catch {
|
|
234
|
-
// A sibling may disappear during the scan, or
|
|
218
|
+
// A sibling may disappear during the scan, or the host may deny metadata for a protected
|
|
235
219
|
// system entry in an otherwise-readable directory. Neither sibling can be the successfully
|
|
236
220
|
// witnessed requested entry, so it contributes no alias evidence and must not block locking.
|
|
237
221
|
continue;
|
|
@@ -280,22 +264,21 @@ async function resolvedPortableRoot(portableRoot) {
|
|
|
280
264
|
return undefined;
|
|
281
265
|
return fs.realpath(portableRoot).catch(() => path.resolve(portableRoot));
|
|
282
266
|
}
|
|
283
|
-
async function selectLockRoot(options) {
|
|
267
|
+
async function selectLockRoot(options, policy) {
|
|
284
268
|
const portableRoot = await resolvedPortableRoot(options.portableRoot);
|
|
285
269
|
const lockRoot = options.lockRoot !== undefined
|
|
286
270
|
? explicitFilesystemMutationLockRoot(options.lockRoot, portableRoot)
|
|
287
|
-
: filesystemMutationLockRoot(portableRoot);
|
|
288
|
-
await ensurePrivateLockRoot(lockRoot);
|
|
271
|
+
: filesystemMutationLockRoot(portableRoot, policy);
|
|
272
|
+
await ensurePrivateLockRoot(lockRoot, policy);
|
|
289
273
|
return lockRoot;
|
|
290
274
|
}
|
|
291
|
-
|
|
292
|
-
async function classifyLockClaimFailure(error, lockPath) {
|
|
275
|
+
async function classifyLockClaimFailure(error, lockPath, policy) {
|
|
293
276
|
const code = error.code;
|
|
294
277
|
if (code === "EEXIST")
|
|
295
278
|
return "contention";
|
|
296
|
-
if (
|
|
279
|
+
if (!policy.isDirectoryContentionError(error))
|
|
297
280
|
return "terminal";
|
|
298
|
-
//
|
|
281
|
+
// A host may report a contention-shaped error while another claimer creates or removes this exact
|
|
299
282
|
// directory. A witnessed path is contention. An absent path is ambiguous: permit one bounded
|
|
300
283
|
// retry in case the competing directory operation just completed, but never turn a durable
|
|
301
284
|
// create denial into a malformed-lock timeout. A denied probe remains terminal immediately.
|
|
@@ -306,7 +289,7 @@ async function classifyLockClaimFailure(error, lockPath) {
|
|
|
306
289
|
catch (probeError) {
|
|
307
290
|
const probeCode = probeError.code;
|
|
308
291
|
return probeCode === "ENOENT" || probeCode === "ENOTDIR"
|
|
309
|
-
? "unwitnessed-
|
|
292
|
+
? "unwitnessed-contention-error"
|
|
310
293
|
: "terminal";
|
|
311
294
|
}
|
|
312
295
|
}
|
|
@@ -315,31 +298,31 @@ async function classifyLockClaimFailure(error, lockPath) {
|
|
|
315
298
|
* owner record makes a crash leftover diagnosable, and release is token-checked so a caller can
|
|
316
299
|
* never remove a lock it no longer owns. Waits up to `waitMs`, polling every `pollMs`.
|
|
317
300
|
*/
|
|
318
|
-
async function claimLockPath(lockPath, owner, waitMs, pollMs) {
|
|
301
|
+
async function claimLockPath(lockPath, owner, waitMs, pollMs, policy) {
|
|
319
302
|
const started = owner.created_at_ms;
|
|
320
|
-
let
|
|
303
|
+
let unwitnessedRetryUsed = false;
|
|
321
304
|
while (true) {
|
|
322
305
|
try {
|
|
323
306
|
await fs.mkdir(lockPath, { mode: 0o700 });
|
|
324
307
|
}
|
|
325
308
|
catch (err) {
|
|
326
|
-
const failure = await classifyLockClaimFailure(err, lockPath);
|
|
309
|
+
const failure = await classifyLockClaimFailure(err, lockPath, policy);
|
|
327
310
|
if (failure === "terminal")
|
|
328
311
|
throw err;
|
|
329
|
-
if (failure === "unwitnessed-
|
|
330
|
-
if (
|
|
312
|
+
if (failure === "unwitnessed-contention-error") {
|
|
313
|
+
if (unwitnessedRetryUsed)
|
|
331
314
|
throw err;
|
|
332
|
-
|
|
315
|
+
unwitnessedRetryUsed = true;
|
|
333
316
|
// This is one immediate re-attempt, not a wait. It is permitted even with waitMs: 0 so
|
|
334
317
|
// the next result can distinguish a one-shot sharing race from a durable create denial.
|
|
335
318
|
continue;
|
|
336
319
|
}
|
|
337
320
|
else {
|
|
338
|
-
|
|
321
|
+
unwitnessedRetryUsed = false;
|
|
339
322
|
}
|
|
340
323
|
let existingOwner = await readOwner(lockPath);
|
|
341
324
|
if (existingOwner !== null) {
|
|
342
|
-
if (await quarantineStaleLock(lockPath, existingOwner))
|
|
325
|
+
if (await quarantineStaleLock(lockPath, existingOwner, policy))
|
|
343
326
|
continue;
|
|
344
327
|
// A failed quarantine attempt is non-progress: another reclaimer may have moved the stale
|
|
345
328
|
// lock and installed a live replacement while this caller was delayed in rename. Diagnose
|
|
@@ -352,7 +335,7 @@ async function claimLockPath(lockPath, owner, waitMs, pollMs) {
|
|
|
352
335
|
continue;
|
|
353
336
|
}
|
|
354
337
|
// The claim is ours now. Owner initialization and rollback failures are not claim
|
|
355
|
-
// contention
|
|
338
|
+
// contention, even when the host reports a contention-shaped error, and must propagate unchanged.
|
|
356
339
|
try {
|
|
357
340
|
await fs.writeFile(path.join(lockPath, OWNER_FILE), `${JSON.stringify(owner)}\n`, {
|
|
358
341
|
encoding: "utf8",
|
|
@@ -398,13 +381,14 @@ function newOwner(target) {
|
|
|
398
381
|
* fail-closed.
|
|
399
382
|
*/
|
|
400
383
|
export async function acquireFilesystemMutationLock(target, options = {}) {
|
|
384
|
+
const policy = captureFilesystemHostPolicy(options.hostPolicy);
|
|
401
385
|
const waitMs = positiveOption(options.waitMs, DEFAULT_WAIT_MS, "waitMs");
|
|
402
386
|
const pollMs = positiveOption(options.pollMs, DEFAULT_POLL_MS, "pollMs");
|
|
403
387
|
const targetResolved = path.resolve(target);
|
|
404
388
|
const targetDir = path.dirname(targetResolved);
|
|
405
389
|
const owner = newOwner(targetResolved);
|
|
406
|
-
//
|
|
407
|
-
//
|
|
390
|
+
// Existing filesystem roots can reject even a recursive mkdir. Resolve first and create
|
|
391
|
+
// only when the parent is genuinely absent. This preserves the
|
|
408
392
|
// create-on-demand behavior without mutating an already-existing filesystem root.
|
|
409
393
|
let canonicalDir;
|
|
410
394
|
try {
|
|
@@ -419,9 +403,9 @@ export async function acquireFilesystemMutationLock(target, options = {}) {
|
|
|
419
403
|
// Two callers may spell the same bundle through real and symlinked parent paths. Canonicalize
|
|
420
404
|
// the now-existing parent so both claim the same runtime lock for the physical target.
|
|
421
405
|
const targetCanonical = await canonicalTargetInDirectory(canonicalDir, path.basename(targetResolved));
|
|
422
|
-
const lockRoot = await selectLockRoot(options);
|
|
406
|
+
const lockRoot = await selectLockRoot(options, policy);
|
|
423
407
|
const lockPath = filesystemMutationLockPathInRoot(targetCanonical, lockRoot);
|
|
424
|
-
return claimLockPath(lockPath, { ...owner, target: targetCanonical }, waitMs, pollMs);
|
|
408
|
+
return claimLockPath(lockPath, { ...owner, target: targetCanonical }, waitMs, pollMs, policy);
|
|
425
409
|
}
|
|
426
410
|
const IDENTITY_KEY_SHAPE = /^[0-9a-f]{64}$/;
|
|
427
411
|
function assertIdentityKey(key) {
|
|
@@ -429,9 +413,9 @@ function assertIdentityKey(key) {
|
|
|
429
413
|
throw new TypeError("identity key must be a lowercase hex sha256 digest");
|
|
430
414
|
}
|
|
431
415
|
/** @internal Runtime lock directory for one identity key; the key is the whole path component. */
|
|
432
|
-
export function filesystemIdentityLockPath(key, portableRoot) {
|
|
416
|
+
export function filesystemIdentityLockPath(key, portableRoot, hostPolicy) {
|
|
433
417
|
assertIdentityKey(key);
|
|
434
|
-
return path.join(filesystemMutationLockRoot(portableRoot), `${key}.lock`);
|
|
418
|
+
return path.join(filesystemMutationLockRoot(portableRoot, hostPolicy), `${key}.lock`);
|
|
435
419
|
}
|
|
436
420
|
/**
|
|
437
421
|
* @internal Claim the same-user cross-process lock for an identity key that the caller derived
|
|
@@ -441,11 +425,12 @@ export function filesystemIdentityLockPath(key, portableRoot) {
|
|
|
441
425
|
*/
|
|
442
426
|
export async function acquireFilesystemIdentityLock(key, identity, options = {}) {
|
|
443
427
|
assertIdentityKey(key);
|
|
428
|
+
const policy = captureFilesystemHostPolicy(options.hostPolicy);
|
|
444
429
|
const waitMs = positiveOption(options.waitMs, DEFAULT_WAIT_MS, "waitMs");
|
|
445
430
|
const pollMs = positiveOption(options.pollMs, DEFAULT_POLL_MS, "pollMs");
|
|
446
431
|
const owner = newOwner(identity);
|
|
447
|
-
const lockRoot = await selectLockRoot(options);
|
|
448
|
-
return claimLockPath(path.join(lockRoot, `${key}.lock`), owner, waitMs, pollMs);
|
|
432
|
+
const lockRoot = await selectLockRoot(options, policy);
|
|
433
|
+
return claimLockPath(path.join(lockRoot, `${key}.lock`), owner, waitMs, pollMs, policy);
|
|
449
434
|
}
|
|
450
435
|
/** Run `fn` while holding the same-user cross-process mutation lock for `target`. */
|
|
451
436
|
export async function withFilesystemMutationLock(target, fn, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-lock.js","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-lock.js","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Explicit Node filesystem construction, independent of executable or CLI startup. */
|
|
2
|
+
import { FilesystemBackend } from "./backend.js";
|
|
3
|
+
import { type FilesystemHostPolicy } from "./filesystem-host.js";
|
|
4
|
+
import { type FilesystemMutationLockOptions } from "./filesystem-lock.js";
|
|
5
|
+
import type { Bundle, InitBundleOptions } from "./types.js";
|
|
6
|
+
export { FilesystemBackend } from "./backend.js";
|
|
7
|
+
export type { FilesystemBackendOptions, FilesystemHostPolicy } from "./filesystem-host.js";
|
|
8
|
+
export interface FilesystemRuntime {
|
|
9
|
+
backend(root: string): FilesystemBackend;
|
|
10
|
+
initBundle(root: string, options?: InitBundleOptions): Promise<Bundle>;
|
|
11
|
+
withMutationLock<T>(target: string, body: () => Promise<T>, options?: Omit<FilesystemMutationLockOptions, "hostPolicy">): Promise<T>;
|
|
12
|
+
mutationLockPath(target: string, portableRoot?: string): string;
|
|
13
|
+
}
|
|
14
|
+
/** Each runtime retains its selected host; it never changes another consumer's defaults. */
|
|
15
|
+
export declare function createFilesystemRuntime(policy?: FilesystemHostPolicy): FilesystemRuntime;
|
|
16
|
+
export { snapshotHostPolicy } from "./host-policy-snapshot.js";
|
|
17
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,6BAA6B,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjE;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,iBAAiB,CASxF;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Explicit Node filesystem construction, independent of executable or CLI startup. */
|
|
2
|
+
import { FilesystemBackend } from "./backend.js";
|
|
3
|
+
import { initBundle } from "./bundle.js";
|
|
4
|
+
import { captureFilesystemHostPolicy } from "./filesystem-host.js";
|
|
5
|
+
import { filesystemMutationLockPath, withFilesystemMutationLock, } from "./filesystem-lock.js";
|
|
6
|
+
export { FilesystemBackend } from "./backend.js";
|
|
7
|
+
/** Each runtime retains its selected host; it never changes another consumer's defaults. */
|
|
8
|
+
export function createFilesystemRuntime(policy) {
|
|
9
|
+
const hostPolicy = captureFilesystemHostPolicy(policy);
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
backend: (root) => new FilesystemBackend(root, { hostPolicy }),
|
|
12
|
+
initBundle: (root, options) => initBundle(root, options, { hostPolicy }),
|
|
13
|
+
withMutationLock: (target, body, options) => withFilesystemMutationLock(target, body, { ...options, hostPolicy }),
|
|
14
|
+
mutationLockPath: (target, portableRoot) => filesystemMutationLockPath(target, portableRoot, hostPolicy),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export { snapshotHostPolicy } from "./host-policy-snapshot.js";
|
|
18
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAA6B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAE3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAUjD,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,MAA6B;IACnE,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;QACtE,UAAU,EAAE,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC;QACpG,gBAAgB,EAAE,CAAI,MAAc,EAAE,IAAsB,EAAE,OAA2D,EAAE,EAAE,CAC3H,0BAA0B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;QACtE,gBAAgB,EAAE,CAAC,MAAc,EAAE,YAAqB,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC;KAC1H,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type Outcome, type OperationState, type UncertainWriteOptions } from "./uncertain-write.js";
|
|
2
|
+
import type { IntentRecord } from "./journaled-backend.js";
|
|
3
|
+
import type { Version } from "./types.js";
|
|
4
|
+
export declare const BODY_DELIVERY_LIMITS: Readonly<{
|
|
5
|
+
labelBytes: 2048;
|
|
6
|
+
bodyBytes: number;
|
|
7
|
+
envelopeBytes: number;
|
|
8
|
+
}>;
|
|
9
|
+
/** Complete journal reconciliation has a separate bound from each delivery envelope. */
|
|
10
|
+
export declare const BODY_RECONCILIATION_BYTES: number;
|
|
11
|
+
export interface BodyUpdateOperation {
|
|
12
|
+
readonly kind: "document.body.update";
|
|
13
|
+
readonly body: string;
|
|
14
|
+
}
|
|
15
|
+
export interface PreparedBodyDelivery {
|
|
16
|
+
readonly schema: 1;
|
|
17
|
+
readonly scope: string;
|
|
18
|
+
readonly requestId: string;
|
|
19
|
+
readonly target: string;
|
|
20
|
+
readonly okfVersion: "0.1" | "0.2";
|
|
21
|
+
readonly operation: BodyUpdateOperation;
|
|
22
|
+
readonly expectedVersion: Version;
|
|
23
|
+
readonly local: Version;
|
|
24
|
+
readonly content: string;
|
|
25
|
+
readonly createdAt: string;
|
|
26
|
+
readonly predecessor?: Readonly<{
|
|
27
|
+
requestId: string;
|
|
28
|
+
acknowledgedVersion: Version;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export interface CommittedBodyReceipt {
|
|
32
|
+
readonly scope: string;
|
|
33
|
+
readonly requestId: string;
|
|
34
|
+
readonly target: string;
|
|
35
|
+
readonly expectedVersion: Version;
|
|
36
|
+
readonly body: string;
|
|
37
|
+
readonly version: Version;
|
|
38
|
+
readonly content: string;
|
|
39
|
+
}
|
|
40
|
+
export type BodyDeliveryOutcome = {
|
|
41
|
+
readonly kind: "committed";
|
|
42
|
+
readonly receipt: CommittedBodyReceipt;
|
|
43
|
+
} | Exclude<Outcome, {
|
|
44
|
+
kind: "committed";
|
|
45
|
+
}>;
|
|
46
|
+
export interface BodyDeliveryTransport {
|
|
47
|
+
submit(prepared: PreparedBodyDelivery, options?: {
|
|
48
|
+
signal?: AbortSignal;
|
|
49
|
+
}): Promise<BodyDeliveryOutcome>;
|
|
50
|
+
/** null positively means never recorded; unavailable evidence must be unknown or throw. */
|
|
51
|
+
lookup(prepared: PreparedBodyDelivery): Promise<BodyDeliveryOutcome | null>;
|
|
52
|
+
}
|
|
53
|
+
export interface BodyDeliveryResult {
|
|
54
|
+
readonly prepared: PreparedBodyDelivery;
|
|
55
|
+
readonly attempts: number;
|
|
56
|
+
readonly state: OperationState;
|
|
57
|
+
readonly lookups: number;
|
|
58
|
+
readonly outcome: BodyDeliveryOutcome;
|
|
59
|
+
readonly diagnostic?: string;
|
|
60
|
+
}
|
|
61
|
+
/** Capture a serialized envelope without changing its request identity or original history. */
|
|
62
|
+
export declare function validatePreparedBodyDelivery(value: unknown): PreparedBodyDelivery;
|
|
63
|
+
export type BodyDeliveryInput = Omit<PreparedBodyDelivery, "schema" | "expectedVersion" | "predecessor">;
|
|
64
|
+
export type BodyDeliveryPremise = {
|
|
65
|
+
expectedVersion: Version;
|
|
66
|
+
} | {
|
|
67
|
+
prepared: PreparedBodyDelivery;
|
|
68
|
+
receipt: CommittedBodyReceipt;
|
|
69
|
+
};
|
|
70
|
+
/** Successors derive their premise only from a fully bound predecessor receipt. */
|
|
71
|
+
export declare function prepareBodyDelivery(input: BodyDeliveryInput, premise: BodyDeliveryPremise): PreparedBodyDelivery;
|
|
72
|
+
export declare function assertSameBodyDelivery(recorded: unknown, candidate: unknown): void;
|
|
73
|
+
/** Content/version association is asserted by the trusted authority, not inferred from a later head. */
|
|
74
|
+
export declare function validateBodyReceipt(prepared: PreparedBodyDelivery, value: unknown): CommittedBodyReceipt;
|
|
75
|
+
/** Persist the envelope and attempted claim atomically BEFORE calling; this function does no persistence. */
|
|
76
|
+
export declare function performBodyDelivery(transport: BodyDeliveryTransport, prepared: PreparedBodyDelivery, attempts: number, options?: Omit<UncertainWriteOptions, "settlement">): Promise<BodyDeliveryResult>;
|
|
77
|
+
export interface BodyLocalSnapshot {
|
|
78
|
+
readonly version: Version | null;
|
|
79
|
+
readonly intents: readonly IntentRecord[];
|
|
80
|
+
readonly shared: Readonly<{
|
|
81
|
+
version: Version;
|
|
82
|
+
content: string;
|
|
83
|
+
}> | null;
|
|
84
|
+
}
|
|
85
|
+
export interface BodyReconciliationProposal {
|
|
86
|
+
readonly action: "preserve-local" | "replace-local-under-CAS";
|
|
87
|
+
readonly receipt: CommittedBodyReceipt;
|
|
88
|
+
readonly shared: Readonly<{
|
|
89
|
+
action: "preserve-shared";
|
|
90
|
+
} | {
|
|
91
|
+
action: "replace-shared-under-CAS";
|
|
92
|
+
version: Version;
|
|
93
|
+
content: string;
|
|
94
|
+
}>;
|
|
95
|
+
readonly expected: BodyLocalSnapshot;
|
|
96
|
+
}
|
|
97
|
+
/** Pure proposal only. Replacement requires an atomic full-journal, document AND shared-base CAS. */
|
|
98
|
+
export declare function reconcileBodyReceipt(prepared: PreparedBodyDelivery, receipt: CommittedBodyReceipt, snapshot: BodyLocalSnapshot): BodyReconciliationProposal;
|
|
99
|
+
//# sourceMappingURL=governed-body-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-body-write.d.ts","sourceRoot":"","sources":["../src/governed-body-write.ts"],"names":[],"mappings":"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"}
|