sealkeep 0.9.0 → 0.11.1
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/ARCHITECTURE.md +163 -14
- package/CHANGELOG.md +252 -1
- package/CONTROL_PLANE.md +2 -2
- package/LICENSE +1 -1
- package/README.md +108 -22
- package/THIRD_PARTY.md +2 -2
- package/THREAT_MODEL.md +23 -4
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/chunk-access.d.ts +26 -4
- package/dist/packages/sealkeep-crypto/src/chunk-access.js +219 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/envelope.d.ts +11 -1
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/envelope.js +58 -21
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/format.d.ts +2 -2
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/index.d.ts +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/index.js +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/recipients.d.ts +1 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/recipients.js +53 -13
- package/dist/packages/sealkeep-crypto/src/squeeze.d.ts +6 -0
- package/dist/packages/sealkeep-crypto/src/squeeze.js +39 -0
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/stream.d.ts +36 -3
- package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/stream.js +196 -37
- package/dist/site/index.html +1808 -1904
- package/dist/site/llms.txt +67 -0
- package/dist/site/trust/architecture-data-flow.html +53 -0
- package/dist/site/trust/audit-roadmap.html +37 -0
- package/dist/site/trust/deployment-responsibility.html +11 -0
- package/dist/site/trust/dpa-sample.html +30 -0
- package/dist/site/trust/release-provenance.html +21 -0
- package/dist/site/trust/subprocessors.html +15 -0
- package/dist/site/trust/threat-model.html +34 -0
- package/dist/site/trust/toms.html +41 -0
- package/dist/site/trust-document.css +32 -0
- package/dist/site/trust.html +73 -0
- package/dist/site/visual/assets/index-8Nxnkc7o.js +207 -0
- package/dist/site/visual/assets/index-oxLy1bpy.css +1 -0
- package/dist/site/visual/index.html +18 -0
- package/dist/site.zip +0 -0
- package/dist/src/activity.d.ts +9 -0
- package/dist/src/activity.js +90 -1
- package/dist/src/adapters.d.ts +175 -5
- package/dist/src/adapters.js +961 -73
- package/dist/src/agent-context.d.ts +135 -0
- package/dist/src/agent-context.js +1059 -0
- package/dist/src/archive-copies.d.ts +47 -0
- package/dist/src/archive-copies.js +179 -0
- package/dist/src/audit.d.ts +1 -1
- package/dist/src/audit.js +29 -4
- package/dist/src/autopilot.d.ts +52 -7
- package/dist/src/autopilot.js +143 -25
- package/dist/src/background-bandwidth.d.ts +46 -0
- package/dist/src/background-bandwidth.js +301 -0
- package/dist/src/background-cpu.d.ts +82 -0
- package/dist/src/background-cpu.js +212 -0
- package/dist/src/background-worker-error.d.ts +12 -0
- package/dist/src/background-worker-error.js +18 -0
- package/dist/src/branding.d.ts +24 -1
- package/dist/src/branding.js +31 -1
- package/dist/src/bridge.d.ts +233 -0
- package/dist/src/bridge.js +604 -0
- package/dist/src/byte-stream.d.ts +91 -0
- package/dist/src/byte-stream.js +385 -0
- package/dist/src/chunk-store.d.ts +41 -8
- package/dist/src/chunk-store.js +161 -65
- package/dist/src/cli.js +1698 -163
- package/dist/src/cloud.d.ts +841 -31
- package/dist/src/cloud.js +3196 -277
- package/dist/src/context-background.d.ts +37 -0
- package/dist/src/context-background.js +309 -0
- package/dist/src/context-drain-child.d.ts +1 -0
- package/dist/src/context-drain-child.js +98 -0
- package/dist/src/context-reader.d.ts +118 -0
- package/dist/src/context-reader.js +447 -0
- package/dist/src/control-plane/auth.d.ts +32 -4
- package/dist/src/control-plane/auth.js +85 -24
- package/dist/src/control-plane/server.js +19 -6
- package/dist/src/control-plane.d.ts +17 -1
- package/dist/src/control-plane.js +32 -6
- package/dist/src/crypto.d.ts +1 -1
- package/dist/src/crypto.js +5 -5
- package/dist/src/daemon-lease.d.ts +70 -0
- package/dist/src/daemon-lease.js +420 -0
- package/dist/src/daemon.d.ts +94 -1
- package/dist/src/daemon.js +1082 -105
- package/dist/src/darwin-service-policy.d.ts +41 -0
- package/dist/src/darwin-service-policy.js +60 -0
- package/dist/src/dashboard-cli.js +15 -15
- package/dist/src/device-authorization.d.ts +37 -0
- package/dist/src/device-authorization.js +199 -0
- package/dist/src/device-enrollment.d.ts +91 -0
- package/dist/src/device-enrollment.js +349 -0
- package/dist/src/disk.d.ts +17 -12
- package/dist/src/disk.js +43 -17
- package/dist/src/doctor.d.ts +35 -1
- package/dist/src/doctor.js +332 -41
- package/dist/src/durable-ticket-lock.d.ts +24 -0
- package/dist/src/durable-ticket-lock.js +232 -0
- package/dist/src/enroll.d.ts +1 -1
- package/dist/src/enroll.js +13 -7
- package/dist/src/env.d.ts +10 -1
- package/dist/src/env.js +11 -3
- package/dist/src/errors.d.ts +8 -8
- package/dist/src/errors.js +6 -6
- package/dist/src/flush.d.ts +12 -0
- package/dist/src/flush.js +37 -0
- package/dist/src/heartbeat.d.ts +86 -12
- package/dist/src/heartbeat.js +415 -29
- package/dist/src/index-background-watchdog.d.ts +1 -0
- package/dist/src/index-background-watchdog.js +94 -0
- package/dist/src/index-background-work.d.ts +21 -0
- package/dist/src/index-background-work.js +25 -0
- package/dist/src/index-background.d.ts +64 -0
- package/dist/src/index-background.js +394 -0
- package/dist/src/index-build-child.d.ts +1 -0
- package/dist/src/index-build-child.js +109 -0
- package/dist/src/index-manifest.d.ts +52 -0
- package/dist/src/index-manifest.js +444 -0
- package/dist/src/index-publication-proof.d.ts +84 -0
- package/dist/src/index-publication-proof.js +380 -0
- package/dist/src/index-publication-state.d.ts +149 -0
- package/dist/src/index-publication-state.js +696 -0
- package/dist/src/index-publication-verifier.d.ts +89 -0
- package/dist/src/index-publication-verifier.js +341 -0
- package/dist/src/index-publish.d.ts +62 -0
- package/dist/src/index-publish.js +540 -0
- package/dist/src/index-scratch-cleanup.d.ts +19 -0
- package/dist/src/index-scratch-cleanup.js +166 -0
- package/dist/src/index-segment-types.d.ts +132 -0
- package/dist/src/index-segment-types.js +21 -0
- package/dist/src/index-segments.d.ts +9 -0
- package/dist/src/index-segments.js +516 -0
- package/dist/src/index-store.d.ts +123 -0
- package/dist/src/index-store.js +495 -0
- package/dist/src/index-sync.d.ts +91 -15
- package/dist/src/index-sync.js +286 -53
- package/dist/src/index-upgrade-publication.d.ts +30 -0
- package/dist/src/index-upgrade-publication.js +179 -0
- package/dist/src/integration-manager.d.ts +32 -0
- package/dist/src/integration-manager.js +394 -0
- package/dist/src/leakscan.js +1 -1
- package/dist/src/local-api.d.ts +56 -15
- package/dist/src/local-api.js +4979 -541
- package/dist/src/machine-settings.d.ts +51 -0
- package/dist/src/machine-settings.js +166 -0
- package/dist/src/managed-chunks.d.ts +5 -2
- package/dist/src/managed-chunks.js +14 -14
- package/dist/src/mcp-install.d.ts +11 -9
- package/dist/src/mcp-install.js +73 -28
- package/dist/src/mcp-workspace.d.ts +18 -0
- package/dist/src/mcp-workspace.js +50 -0
- package/dist/src/mcp.js +294 -25
- package/dist/src/migrate.js +27 -21
- package/dist/src/notify.d.ts +1 -1
- package/dist/src/notify.js +5 -5
- package/dist/src/offload.d.ts +201 -14
- package/dist/src/offload.js +1848 -140
- package/dist/src/onboarding.d.ts +8 -1
- package/dist/src/onboarding.js +4 -4
- package/dist/src/packages.d.ts +2 -2
- package/dist/src/packages.js +10 -2
- package/dist/src/passkey.d.ts +0 -1
- package/dist/src/passkey.js +2 -7
- package/dist/src/password-lock.d.ts +2 -2
- package/dist/src/password-lock.js +6 -6
- package/dist/src/paths.d.ts +2 -0
- package/dist/src/paths.js +2 -0
- package/dist/src/presence.d.ts +86 -0
- package/dist/src/presence.js +240 -0
- package/dist/src/progress-deadline.d.ts +21 -0
- package/dist/src/progress-deadline.js +91 -0
- package/dist/src/project-repair.d.ts +55 -0
- package/dist/src/project-repair.js +131 -0
- package/dist/src/providers/gcs.d.ts +28 -7
- package/dist/src/providers/gcs.js +35 -24
- package/dist/src/providers/gdrive.d.ts +71 -8
- package/dist/src/providers/gdrive.js +223 -50
- package/dist/src/providers/index.d.ts +11 -3
- package/dist/src/providers/index.js +30 -10
- package/dist/src/providers/s3.d.ts +30 -8
- package/dist/src/providers/s3.js +41 -30
- package/dist/src/providers/safe-storage-fetch.d.ts +12 -0
- package/dist/src/providers/safe-storage-fetch.js +72 -0
- package/dist/src/queue.d.ts +136 -19
- package/dist/src/queue.js +862 -96
- package/dist/src/reclaim-transaction.d.ts +156 -0
- package/dist/src/reclaim-transaction.js +1027 -0
- package/dist/src/recovery-codes.d.ts +32 -0
- package/dist/src/recovery-codes.js +338 -0
- package/dist/src/recovery.js +12 -9
- package/dist/src/rehydrate.d.ts +25 -22
- package/dist/src/rehydrate.js +319 -23
- package/dist/src/restore.d.ts +57 -4
- package/dist/src/restore.js +272 -36
- package/dist/src/resume-stub.d.ts +92 -0
- package/dist/src/resume-stub.js +417 -0
- package/dist/src/retention.d.ts +98 -7
- package/dist/src/retention.js +1066 -62
- package/dist/src/rotate.js +3 -3
- package/dist/src/search.d.ts +566 -8
- package/dist/src/search.js +5940 -297
- package/dist/src/secrets.d.ts +51 -7
- package/dist/src/secrets.js +316 -24
- package/dist/src/service.d.ts +49 -11
- package/dist/src/service.js +776 -35
- package/dist/src/share.js +3 -3
- package/dist/src/shared-spaces.d.ts +98 -0
- package/dist/src/shared-spaces.js +214 -0
- package/dist/src/source-reader.d.ts +73 -0
- package/dist/src/source-reader.js +715 -0
- package/dist/src/spool.d.ts +1 -1
- package/dist/src/spool.js +1 -1
- package/dist/src/start-tui.js +2 -1
- package/dist/src/start.js +2 -2
- package/dist/src/storage-endpoint.d.ts +21 -0
- package/dist/src/storage-endpoint.js +122 -0
- package/dist/src/storage-setup.js +12 -12
- package/dist/src/storage-targets.d.ts +109 -6
- package/dist/src/storage-targets.js +975 -67
- package/dist/src/stream-to-cloud.d.ts +5 -1
- package/dist/src/stream-to-cloud.js +34 -14
- package/dist/src/sync-rules.d.ts +31 -6
- package/dist/src/sync-rules.js +153 -14
- package/dist/src/team-backfill-scheduling.d.ts +8 -0
- package/dist/src/team-backfill-scheduling.js +33 -0
- package/dist/src/team-backfill.d.ts +116 -0
- package/dist/src/team-backfill.js +1429 -0
- package/dist/src/team-index-cache.d.ts +16 -0
- package/dist/src/team-index-cache.js +152 -0
- package/dist/src/team-offboarding.d.ts +38 -0
- package/dist/src/team-offboarding.js +1043 -0
- package/dist/src/team-presence.d.ts +127 -0
- package/dist/src/team-presence.js +904 -0
- package/dist/src/team-publication-policy.d.ts +20 -0
- package/dist/src/team-publication-policy.js +140 -0
- package/dist/src/team-realtime.d.ts +68 -0
- package/dist/src/team-realtime.js +816 -0
- package/dist/src/team-source-facts-cache.d.ts +23 -0
- package/dist/src/team-source-facts-cache.js +255 -0
- package/dist/src/trash.d.ts +1 -1
- package/dist/src/trash.js +2 -2
- package/dist/src/tui.js +11 -12
- package/dist/src/types.d.ts +173 -7
- package/dist/src/types.js +20 -0
- package/dist/src/ui-server.d.ts +163 -35
- package/dist/src/ui-server.js +712 -72
- package/dist/src/ui.d.ts +1 -2
- package/dist/src/ui.js +1 -2
- package/dist/src/upload.d.ts +27 -0
- package/dist/src/upload.js +383 -43
- package/dist/src/vault.d.ts +226 -30
- package/dist/src/vault.js +1776 -192
- package/dist/src/watcher.d.ts +7 -1
- package/dist/src/watcher.js +198 -55
- package/dist/src/worker.d.ts +27 -3
- package/dist/src/worker.js +274 -55
- package/package.json +33 -12
- package/scripts/native-reboot-rehearsal.mjs +90 -0
- package/web/app.js +6032 -343
- package/web/bootstrap.js +17 -0
- package/web/index.html +255 -57
- package/web/rail.js +317 -40
- package/web/retention.html +2 -2
- package/web/rules-view.js +188 -16
- package/web/sessions-view.js +485 -62
- package/web/sessions.html +2 -2
- package/web/setup-api.js +152 -29
- package/web/setup-logic.js +68 -9
- package/web/setup.html +113 -44
- package/web/setup.js +604 -71
- package/web/style.css +513 -98
- package/dist/packages/vaultline-crypto/src/chunk-access.js +0 -93
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/aead.d.ts +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/aead.js +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/format.js +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/sha256-stream.d.ts +0 -0
- /package/dist/packages/{vaultline-crypto → sealkeep-crypto}/src/sha256-stream.js +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
export interface ExpectedFile {
|
|
2
|
+
bytes: number;
|
|
3
|
+
sha256: string;
|
|
4
|
+
}
|
|
5
|
+
export interface FileFingerprint extends ExpectedFile {
|
|
6
|
+
dev: string;
|
|
7
|
+
ino: string;
|
|
8
|
+
/** Filesystem blocks attributed to this inode (st_blocks * 512). */
|
|
9
|
+
allocatedBytes: number;
|
|
10
|
+
/** Link count at the instant of the fingerprint. */
|
|
11
|
+
links: number;
|
|
12
|
+
mtimeNs: string;
|
|
13
|
+
ctimeNs: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ReclaimSourceLock {
|
|
16
|
+
readonly dataDir: string;
|
|
17
|
+
readonly sourcePath: string;
|
|
18
|
+
readonly lockPath: string;
|
|
19
|
+
readonly token: string;
|
|
20
|
+
assertOwned(): Promise<void>;
|
|
21
|
+
release(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export interface AcquireReclaimSourceLockOptions {
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
pollMs?: number;
|
|
26
|
+
malformedStaleMs?: number;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
}
|
|
29
|
+
/** Cooperative checkpoint used by unattended reclaim while hashing large files. */
|
|
30
|
+
export interface ReclaimIoOptions {
|
|
31
|
+
onYield?: () => void | Promise<void>;
|
|
32
|
+
/** Test-only ordering seam invoked while the synced inode is still open. */
|
|
33
|
+
afterFileSync?: (path: string) => void | Promise<void>;
|
|
34
|
+
/** Test-only race seam after the final staged-inode snapshot, before unlink. */
|
|
35
|
+
afterPurgeSnapshot?: (path: string) => void | Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export type ReclaimTransactionStage = "prepared" | "source-moved" | "replacement-installed" | "metadata-committed" | "purge-authorized";
|
|
38
|
+
interface ReclaimJournalWire {
|
|
39
|
+
version: 1;
|
|
40
|
+
id: string;
|
|
41
|
+
sourcePath: string;
|
|
42
|
+
trashPath: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
45
|
+
stage: ReclaimTransactionStage;
|
|
46
|
+
original: FileFingerprint;
|
|
47
|
+
/** Codex keeps a tiny same-id resume pointer; other agents need no replacement. */
|
|
48
|
+
replacement: (FileFingerprint & {
|
|
49
|
+
tempPath: string;
|
|
50
|
+
}) | null;
|
|
51
|
+
}
|
|
52
|
+
export interface ReclaimTransaction extends ReclaimJournalWire {
|
|
53
|
+
dataDir: string;
|
|
54
|
+
journalPath: string;
|
|
55
|
+
}
|
|
56
|
+
export interface BeginReclaimTransactionInput {
|
|
57
|
+
sourcePath: string;
|
|
58
|
+
original: ExpectedFile;
|
|
59
|
+
replacement?: (ExpectedFile & {
|
|
60
|
+
tempPath: string;
|
|
61
|
+
}) | null;
|
|
62
|
+
transactionId?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface ReconcileReclaimTransactionsOptions {
|
|
65
|
+
/**
|
|
66
|
+
* Required trust-boundary check for the journal's source and temp paths.
|
|
67
|
+
* Callers should validate sourcePath against their native session roots with
|
|
68
|
+
* validateNoFollowPath(..., { leaf: "missing-or-file" }).
|
|
69
|
+
*/
|
|
70
|
+
validateTransaction(transaction: ReclaimTransaction): void | Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Upgrade-sensitive source-format gate, evaluated only after structural path
|
|
73
|
+
* validation. A rejection while original bytes still survive rolls the
|
|
74
|
+
* transaction back instead of letting an older prepared decision purge.
|
|
75
|
+
*/
|
|
76
|
+
validatePurgeCandidate?(transaction: ReclaimTransaction): void | Promise<void>;
|
|
77
|
+
isMetadataCommitted(transaction: ReclaimTransaction): boolean | Promise<boolean>;
|
|
78
|
+
clearMetadataCommit?(transaction: ReclaimTransaction): void | Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Persist the append-only audit decision before irreversible deletion. This
|
|
81
|
+
* may be called again after a crash, so the audit payload must carry the
|
|
82
|
+
* transaction id and consumers must tolerate a duplicate decision record.
|
|
83
|
+
*/
|
|
84
|
+
ensureAuditCommitted?(transaction: ReclaimTransaction): void | Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Repeat the external durability proof immediately before unlinking a staged
|
|
87
|
+
* original. This is required even for an already purge-authorized journal:
|
|
88
|
+
* authorization may have survived a power loss for days while the remote
|
|
89
|
+
* object was deleted in the meantime.
|
|
90
|
+
*/
|
|
91
|
+
verifyPurgeStillSafe?(transaction: ReclaimTransaction): void | Promise<void>;
|
|
92
|
+
/** Persist the final, truthful "bytes purged" metadata before the journal leaves. */
|
|
93
|
+
onPurged?(transaction: ReclaimTransaction, freedBytes: number): void | Promise<void>;
|
|
94
|
+
lock?: AcquireReclaimSourceLockOptions;
|
|
95
|
+
io?: ReclaimIoOptions;
|
|
96
|
+
}
|
|
97
|
+
export interface ReconcileReclaimOutcome {
|
|
98
|
+
id: string;
|
|
99
|
+
sourcePath?: string;
|
|
100
|
+
status: "cleaned" | "rolled-back" | "completed" | "conflict";
|
|
101
|
+
detail: string;
|
|
102
|
+
}
|
|
103
|
+
export interface ValidateNoFollowPathOptions {
|
|
104
|
+
leaf?: "file" | "missing-or-file";
|
|
105
|
+
}
|
|
106
|
+
export declare class ReclaimConflictError extends Error {
|
|
107
|
+
readonly code = "RECLAIM_CONFLICT";
|
|
108
|
+
constructor(message: string);
|
|
109
|
+
}
|
|
110
|
+
export declare function reclaimSourceLockPath(dataDir: string, sourcePath: string): string;
|
|
111
|
+
export declare function acquireReclaimSourceLock(dataDir: string, sourcePath: string, options?: AcquireReclaimSourceLockOptions): Promise<ReclaimSourceLock>;
|
|
112
|
+
/**
|
|
113
|
+
* Publish a private, complete temp file at destination using create-if-absent
|
|
114
|
+
* semantics. Both paths must be on the same filesystem. EEXIST never removes
|
|
115
|
+
* or overwrites the destination.
|
|
116
|
+
*/
|
|
117
|
+
export declare function publishTempCreateIfAbsent(tempPath: string, destinationPath: string, expected: ExpectedFile, io?: ReclaimIoOptions): Promise<FileFingerprint>;
|
|
118
|
+
/**
|
|
119
|
+
* Move an existing file to a unique park path without overwriting either name,
|
|
120
|
+
* then validate its content. On a digest mismatch the function restores the
|
|
121
|
+
* source name when possible and otherwise leaves the parked bytes intact.
|
|
122
|
+
*/
|
|
123
|
+
export declare function parkExistingPathNoClobber(sourcePath: string, parkPath: string, expected: ExpectedFile, io?: ReclaimIoOptions): Promise<FileFingerprint>;
|
|
124
|
+
/** Restore a parked regular file at destination with create-if-absent semantics. */
|
|
125
|
+
export declare function restoreParkedCreateIfAbsent(parkPath: string, destinationPath: string, expected?: ExpectedFile, io?: ReclaimIoOptions): Promise<FileFingerprint>;
|
|
126
|
+
export declare function reclaimJournalPath(dataDir: string, transactionId: string): string;
|
|
127
|
+
export declare function reclaimTrashPath(dataDir: string, transactionId: string, sourcePath: string): string;
|
|
128
|
+
export declare function beginReclaimTransaction(dataDir: string, lock: ReclaimSourceLock, input: BeginReclaimTransactionInput, io?: ReclaimIoOptions): Promise<ReclaimTransaction>;
|
|
129
|
+
export declare function moveReclaimSource(transaction: ReclaimTransaction, lock: ReclaimSourceLock, io?: ReclaimIoOptions): Promise<ReclaimTransaction>;
|
|
130
|
+
export declare function installReclaimReplacement(transaction: ReclaimTransaction, lock: ReclaimSourceLock, io?: ReclaimIoOptions): Promise<ReclaimTransaction>;
|
|
131
|
+
export declare function markReclaimMetadataCommitted(transaction: ReclaimTransaction, lock: ReclaimSourceLock): Promise<ReclaimTransaction>;
|
|
132
|
+
/**
|
|
133
|
+
* Durable point of no return. Call this only after record metadata and the
|
|
134
|
+
* append-only audit decision have both committed successfully.
|
|
135
|
+
*/
|
|
136
|
+
export declare function markReclaimPurgeAuthorized(transaction: ReclaimTransaction, lock: ReclaimSourceLock): Promise<ReclaimTransaction>;
|
|
137
|
+
export declare function finalizeReclaimTransaction(transaction: ReclaimTransaction, lock: ReclaimSourceLock, options?: {
|
|
138
|
+
onPurged?: (transaction: ReclaimTransaction, freedBytes: number) => void | Promise<void>;
|
|
139
|
+
verifyPurgeStillSafe?: (transaction: ReclaimTransaction) => void | Promise<void>;
|
|
140
|
+
io?: ReclaimIoOptions;
|
|
141
|
+
}): Promise<{
|
|
142
|
+
freedBytes: number;
|
|
143
|
+
}>;
|
|
144
|
+
export declare function rollbackReclaimTransaction(transaction: ReclaimTransaction, lock: ReclaimSourceLock, options?: {
|
|
145
|
+
io?: ReclaimIoOptions;
|
|
146
|
+
/** Test seam for an append through an fd opened before pointer parking. */
|
|
147
|
+
afterReplacementParked?: (parkPath: string) => void | Promise<void>;
|
|
148
|
+
}): Promise<void>;
|
|
149
|
+
export declare function reconcileReclaimTransactions(dataDir: string, options: ReconcileReclaimTransactionsOptions): Promise<ReconcileReclaimOutcome[]>;
|
|
150
|
+
/**
|
|
151
|
+
* Resolve a native-session path beneath an allowed root while rejecting
|
|
152
|
+
* symlinks in the root or any existing descendant component. The canonical
|
|
153
|
+
* root must equal its lexical path, so a symlinked native root is not trusted.
|
|
154
|
+
*/
|
|
155
|
+
export declare function validateNoFollowPath(candidatePath: string, roots: readonly string[], options?: ValidateNoFollowPathOptions): Promise<string>;
|
|
156
|
+
export {};
|