@amalgm/shell 0.1.132 → 0.1.134
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/content-cache-host.d.ts +27 -3
- package/dist/content-cache-host.js +82 -7
- package/dist/content-cache-host.js.map +1 -1
- package/dist/register-upload-fusion.d.ts +83 -0
- package/dist/register-upload-fusion.js +169 -0
- package/dist/register-upload-fusion.js.map +1 -0
- package/dist/user-ground-host.d.ts +8 -0
- package/dist/user-ground-host.js +143 -60
- package/dist/user-ground-host.js.map +1 -1
- package/dist/wire-client.js +1 -1
- package/npm-shrinkwrap.json +6 -6
- package/package.json +2 -2
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* only Node filesystem effects.
|
|
9
9
|
*/
|
|
10
10
|
import { type Stats } from "node:fs";
|
|
11
|
-
import { type ContentManifest, type TransferArtifact } from "@amalgm/live";
|
|
11
|
+
import { type ContentChunk, type ContentManifest, type TransferArtifact } from "@amalgm/live";
|
|
12
12
|
import { ContentCacheIndex } from "./content-cache-index.js";
|
|
13
13
|
export interface SealedContentFile {
|
|
14
14
|
readonly file: string;
|
|
@@ -54,12 +54,36 @@ export declare function sealCapturedArtifact(cacheDir: string, artifact: Transfe
|
|
|
54
54
|
* cache sink. No caller may need a complete-file Buffer.
|
|
55
55
|
*/
|
|
56
56
|
export declare function captureContentBlocks(source: ContentBlockSource, sink: ContentBlockSink | null): Promise<CapturedFileContent>;
|
|
57
|
+
export declare const sameCaptureFingerprint: (left: Stats, right: Stats) => boolean;
|
|
57
58
|
/**
|
|
58
59
|
* Stream one stable filesystem file. Non-repository files are sealed directly
|
|
59
60
|
* into the immutable cache during that read; repository-owned leaves use the
|
|
60
|
-
* same capture primitive without a redundant second cache artifact.
|
|
61
|
+
* same capture primitive without a redundant second cache artifact. An
|
|
62
|
+
* optional collect sink receives the same blocks during the one read, valid
|
|
63
|
+
* only when capture succeeds — a churned capture throws and its blocks are
|
|
64
|
+
* discarded with it.
|
|
61
65
|
*/
|
|
62
|
-
export declare function captureContentFile(sourceFile: string, expected: Stats, cacheDir: string | null): Promise<CapturedFileContent>;
|
|
66
|
+
export declare function captureContentFile(sourceFile: string, expected: Stats, cacheDir: string | null, collect?: ContentBlockSink | null): Promise<CapturedFileContent>;
|
|
67
|
+
/** Collect a capture's blocks into one contiguous Buffer, so a fused caller
|
|
68
|
+
* owns the exact bytes the capture read without reading the file again. */
|
|
69
|
+
export declare function contentBlockCollector(bytes: number): ContentBlockSink & {
|
|
70
|
+
readonly collected: Buffer;
|
|
71
|
+
};
|
|
72
|
+
/** The wire half of a fused large capture; hashing stays local. */
|
|
73
|
+
export interface CaptureStreamTransport {
|
|
74
|
+
putBlocks(chunks: readonly ContentChunk[], bytes: Uint8Array): Promise<void>;
|
|
75
|
+
sealManifest(manifest: ContentManifest): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Capture one stable filesystem file while uploading it: the identity read
|
|
79
|
+
* and the transport read are the same single read. Blocks travel as they are
|
|
80
|
+
* hashed; the manifest — the only effect that makes the artifact visible —
|
|
81
|
+
* seals only after the last byte, behind the same fingerprint law as the
|
|
82
|
+
* classic capture. Churn mid-read therefore leaves unreferenced blocks at
|
|
83
|
+
* the authority, never a sealed identity, and surfaces as the walk's
|
|
84
|
+
* ordinary CaptureSourceChangedError.
|
|
85
|
+
*/
|
|
86
|
+
export declare function captureContentFileStream(sourceFile: string, expected: Stats, transport: CaptureStreamTransport): Promise<CapturedFileContent>;
|
|
63
87
|
/** One artifact download. Calls may write different block indexes in
|
|
64
88
|
* parallel; sealing is legal only after the portable download operation has
|
|
65
89
|
* awaited them all. Targets retain metadata, never OS handles or chunk bytes. */
|
|
@@ -11,7 +11,7 @@ import { createHash, randomUUID } from "node:crypto";
|
|
|
11
11
|
import { chmodSync, createReadStream, existsSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
12
12
|
import { lstat, open } from "node:fs/promises";
|
|
13
13
|
import { join } from "node:path";
|
|
14
|
-
import { chunkSizes, deriveUploadManifest, manifestFromChunks, stableJson, } from "@amalgm/live";
|
|
14
|
+
import { chunkSizes, deriveUploadManifest, manifestFromChunks, stableJson, uploadStream, } from "@amalgm/live";
|
|
15
15
|
import { atomicWrite, ensurePrivateDir } from "./filesystem.js";
|
|
16
16
|
import { ContentCacheIndex } from "./content-cache-index.js";
|
|
17
17
|
/** The file moved while its bytes were being captured. Callers classify by
|
|
@@ -109,7 +109,7 @@ export async function captureContentBlocks(source, sink) {
|
|
|
109
109
|
binary,
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
const sameCaptureFingerprint = (left, right) => left.isFile() && right.isFile()
|
|
112
|
+
export const sameCaptureFingerprint = (left, right) => left.isFile() && right.isFile()
|
|
113
113
|
&& left.dev === right.dev
|
|
114
114
|
&& left.ino === right.ino
|
|
115
115
|
&& left.size === right.size
|
|
@@ -131,9 +131,12 @@ async function readHandleRange(handle, offset, bytes) {
|
|
|
131
131
|
/**
|
|
132
132
|
* Stream one stable filesystem file. Non-repository files are sealed directly
|
|
133
133
|
* into the immutable cache during that read; repository-owned leaves use the
|
|
134
|
-
* same capture primitive without a redundant second cache artifact.
|
|
134
|
+
* same capture primitive without a redundant second cache artifact. An
|
|
135
|
+
* optional collect sink receives the same blocks during the one read, valid
|
|
136
|
+
* only when capture succeeds — a churned capture throws and its blocks are
|
|
137
|
+
* discarded with it.
|
|
135
138
|
*/
|
|
136
|
-
export async function captureContentFile(sourceFile, expected, cacheDir) {
|
|
139
|
+
export async function captureContentFile(sourceFile, expected, cacheDir, collect) {
|
|
137
140
|
const source = await open(sourceFile, "r");
|
|
138
141
|
let output = null;
|
|
139
142
|
let temporary = null;
|
|
@@ -148,12 +151,21 @@ export async function captureContentFile(sourceFile, expected, cacheDir) {
|
|
|
148
151
|
temporary = join(captures, `${randomUUID()}.bin`);
|
|
149
152
|
output = await open(temporary, "wx", 0o600);
|
|
150
153
|
}
|
|
154
|
+
const cacheSink = output ? {
|
|
155
|
+
write: (offset, bytes) => writeRange(output, offset, bytes),
|
|
156
|
+
} : null;
|
|
157
|
+
const sink = cacheSink && collect
|
|
158
|
+
? {
|
|
159
|
+
write: async (offset, bytes) => {
|
|
160
|
+
await cacheSink.write(offset, bytes);
|
|
161
|
+
await collect.write(offset, bytes);
|
|
162
|
+
},
|
|
163
|
+
}
|
|
164
|
+
: cacheSink ?? collect ?? null;
|
|
151
165
|
const captured = await captureContentBlocks({
|
|
152
166
|
bytes: before.size,
|
|
153
167
|
read: (offset, bytes) => readHandleRange(source, offset, bytes),
|
|
154
|
-
},
|
|
155
|
-
write: (offset, bytes) => writeRange(output, offset, bytes),
|
|
156
|
-
} : null);
|
|
168
|
+
}, sink);
|
|
157
169
|
const after = await source.stat();
|
|
158
170
|
const current = await lstat(sourceFile);
|
|
159
171
|
if (!sameCaptureFingerprint(before, after) || !sameCaptureFingerprint(after, current)) {
|
|
@@ -181,6 +193,69 @@ export async function captureContentFile(sourceFile, expected, cacheDir) {
|
|
|
181
193
|
rmSync(temporary, { force: true });
|
|
182
194
|
}
|
|
183
195
|
}
|
|
196
|
+
/** Collect a capture's blocks into one contiguous Buffer, so a fused caller
|
|
197
|
+
* owns the exact bytes the capture read without reading the file again. */
|
|
198
|
+
export function contentBlockCollector(bytes) {
|
|
199
|
+
const collected = Buffer.allocUnsafe(bytes);
|
|
200
|
+
return {
|
|
201
|
+
collected,
|
|
202
|
+
async write(offset, block) {
|
|
203
|
+
collected.set(block, offset);
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Capture one stable filesystem file while uploading it: the identity read
|
|
209
|
+
* and the transport read are the same single read. Blocks travel as they are
|
|
210
|
+
* hashed; the manifest — the only effect that makes the artifact visible —
|
|
211
|
+
* seals only after the last byte, behind the same fingerprint law as the
|
|
212
|
+
* classic capture. Churn mid-read therefore leaves unreferenced blocks at
|
|
213
|
+
* the authority, never a sealed identity, and surfaces as the walk's
|
|
214
|
+
* ordinary CaptureSourceChangedError.
|
|
215
|
+
*/
|
|
216
|
+
export async function captureContentFileStream(sourceFile, expected, transport) {
|
|
217
|
+
const source = await open(sourceFile, "r");
|
|
218
|
+
try {
|
|
219
|
+
const before = await source.stat();
|
|
220
|
+
if (!sameCaptureFingerprint(expected, before)) {
|
|
221
|
+
throw new CaptureSourceChangedError(`file changed before cold capture: ${sourceFile}`);
|
|
222
|
+
}
|
|
223
|
+
let binary = false;
|
|
224
|
+
const { manifest } = await uploadStream({
|
|
225
|
+
bytes: before.size,
|
|
226
|
+
read: async (offset, bytes) => {
|
|
227
|
+
const block = await readHandleRange(source, offset, bytes);
|
|
228
|
+
if (!binary)
|
|
229
|
+
binary = block.includes(0);
|
|
230
|
+
return block;
|
|
231
|
+
},
|
|
232
|
+
}, {
|
|
233
|
+
sha256Hex,
|
|
234
|
+
createSha256: () => {
|
|
235
|
+
const hash = createHash("sha256");
|
|
236
|
+
return {
|
|
237
|
+
update: (bytes) => {
|
|
238
|
+
hash.update(bytes);
|
|
239
|
+
},
|
|
240
|
+
digestHex: () => hash.digest("hex"),
|
|
241
|
+
};
|
|
242
|
+
},
|
|
243
|
+
putBlocks: (chunks, bytes) => transport.putBlocks(chunks, bytes),
|
|
244
|
+
sealManifest: async (manifest) => {
|
|
245
|
+
const after = await source.stat();
|
|
246
|
+
const current = await lstat(sourceFile);
|
|
247
|
+
if (!sameCaptureFingerprint(before, after) || !sameCaptureFingerprint(after, current)) {
|
|
248
|
+
throw new CaptureSourceChangedError(`file changed during cold capture: ${sourceFile}`);
|
|
249
|
+
}
|
|
250
|
+
await transport.sealManifest(manifest);
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
return { bytes: before.size, contentHash: manifest.contentHash, manifest, binary };
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
await source.close();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
184
259
|
async function readRange(file, offset, bytes) {
|
|
185
260
|
const handle = await open(file, "r");
|
|
186
261
|
const output = Buffer.allocUnsafe(bytes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-cache-host.js","sourceRoot":"","sources":["../src/content-cache-host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-cache-host.js","sourceRoot":"","sources":["../src/content-cache-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register's fused upload — the walk's one read is also the upload.
|
|
3
|
+
*
|
|
4
|
+
* A cold Register used to read every source byte twice: once for identity,
|
|
5
|
+
* once for transport. This rail rides the capture instead. Small files hand
|
|
6
|
+
* their already-read bytes to a bounded cargo stream; each segment asks the
|
|
7
|
+
* authority's seal inventory first, so a retried or crashed register ships
|
|
8
|
+
* only what is not yet sealed. Large files stream verified blocks during
|
|
9
|
+
* the single capture read and seal their manifest last, behind the same
|
|
10
|
+
* fingerprint law as the classic capture.
|
|
11
|
+
*
|
|
12
|
+
* Fusion is an opportunity, never a dependency. The upload stage still
|
|
13
|
+
* plans afterwards from the authority's seal inventory and remains the
|
|
14
|
+
* guarantor: anything this rail could not fuse — a churned file, a refused
|
|
15
|
+
* wave, a dead wire — uploads there exactly as before. Any transport
|
|
16
|
+
* failure disables fusion for the rest of the walk and is never a walk
|
|
17
|
+
* failure; ground failures keep the walk's own churn law. Git repositories
|
|
18
|
+
* stay on their Git-native rail and never enter this module.
|
|
19
|
+
*/
|
|
20
|
+
import type { Stats } from "node:fs";
|
|
21
|
+
import { type ContentChunk, type ContentManifest } from "@amalgm/live";
|
|
22
|
+
import { type CapturedFileContent } from "./content-cache-host.js";
|
|
23
|
+
export interface FusionWirePorts {
|
|
24
|
+
/** The authority's seal inventory for one segment's artifacts. */
|
|
25
|
+
sealedContentHashes(contentHashes: readonly string[]): Promise<ReadonlySet<string>>;
|
|
26
|
+
/** Ship one cargo segment of whole small artifacts; resolves to the
|
|
27
|
+
* content hashes the authority sealed. */
|
|
28
|
+
sendCargo(artifacts: readonly {
|
|
29
|
+
content_hash: string;
|
|
30
|
+
bytes: number;
|
|
31
|
+
chunks: readonly ContentChunk[];
|
|
32
|
+
}[], payload: Buffer): Promise<readonly string[]>;
|
|
33
|
+
/** Store provisional blocks addressed by their own digests. */
|
|
34
|
+
putBlocks(chunks: readonly ContentChunk[], bytes: Uint8Array): Promise<void>;
|
|
35
|
+
/** Seal one artifact whose blocks are all durable. */
|
|
36
|
+
sealManifest(manifest: ContentManifest): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export interface FusedUploadEvidence {
|
|
39
|
+
readonly smallArtifacts: number;
|
|
40
|
+
readonly smallBytes: number;
|
|
41
|
+
readonly cargoSegments: number;
|
|
42
|
+
readonly sealedSkipped: number;
|
|
43
|
+
readonly largeArtifacts: number;
|
|
44
|
+
readonly largeBytes: number;
|
|
45
|
+
readonly disabledReason: string | null;
|
|
46
|
+
}
|
|
47
|
+
export declare class RegisterUploadFusion {
|
|
48
|
+
private readonly ports;
|
|
49
|
+
private readonly stream;
|
|
50
|
+
private readonly admitted;
|
|
51
|
+
private readonly shipped;
|
|
52
|
+
private disabledBy;
|
|
53
|
+
private smallArtifacts;
|
|
54
|
+
private smallBytes;
|
|
55
|
+
private cargoSegments;
|
|
56
|
+
private sealedSkipped;
|
|
57
|
+
private largeArtifacts;
|
|
58
|
+
private largeBytes;
|
|
59
|
+
constructor(ports: FusionWirePorts);
|
|
60
|
+
get enabled(): boolean;
|
|
61
|
+
/** Hand one already-captured small artifact's bytes to the cargo rail.
|
|
62
|
+
* Waits only for window room — backpressure, never durability — and a
|
|
63
|
+
* failed stream disables fusion instead of failing the capture. */
|
|
64
|
+
addSmall(absolutePath: string, fingerprint: Stats, captured: CapturedFileContent, payload: Buffer): Promise<void>;
|
|
65
|
+
/** Capture one large file by streaming its single read to the authority.
|
|
66
|
+
* Ground churn propagates unchanged into the walk's retry law; a wire
|
|
67
|
+
* failure disables fusion and answers null so the caller captures the
|
|
68
|
+
* classic way and the upload stage ships it. */
|
|
69
|
+
captureLarge(sourceFile: string, expected: Stats): Promise<CapturedFileContent | null>;
|
|
70
|
+
/** Prove every fused source still stands exactly as it was captured — the
|
|
71
|
+
* proof the classic upload's re-read gave for free, at stat cost only.
|
|
72
|
+
* Answers the first moved path, or null while the fused ground stands.
|
|
73
|
+
* The caller turns a moved path into its ordinary stale-capture re-walk;
|
|
74
|
+
* sealed content stays harmlessly unreferenced until the re-walk names
|
|
75
|
+
* what stands there now. */
|
|
76
|
+
movedGround(): Promise<string | null>;
|
|
77
|
+
/** Settle the fused rail: every admitted segment ships or the failure is
|
|
78
|
+
* recorded as this fusion's disabling reason. Never throws — the upload
|
|
79
|
+
* stage re-plans from the seal inventory, so an incomplete fusion only
|
|
80
|
+
* means it uploads more. */
|
|
81
|
+
flush(): Promise<FusedUploadEvidence>;
|
|
82
|
+
private disable;
|
|
83
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register's fused upload — the walk's one read is also the upload.
|
|
3
|
+
*
|
|
4
|
+
* A cold Register used to read every source byte twice: once for identity,
|
|
5
|
+
* once for transport. This rail rides the capture instead. Small files hand
|
|
6
|
+
* their already-read bytes to a bounded cargo stream; each segment asks the
|
|
7
|
+
* authority's seal inventory first, so a retried or crashed register ships
|
|
8
|
+
* only what is not yet sealed. Large files stream verified blocks during
|
|
9
|
+
* the single capture read and seal their manifest last, behind the same
|
|
10
|
+
* fingerprint law as the classic capture.
|
|
11
|
+
*
|
|
12
|
+
* Fusion is an opportunity, never a dependency. The upload stage still
|
|
13
|
+
* plans afterwards from the authority's seal inventory and remains the
|
|
14
|
+
* guarantor: anything this rail could not fuse — a churned file, a refused
|
|
15
|
+
* wave, a dead wire — uploads there exactly as before. Any transport
|
|
16
|
+
* failure disables fusion for the rest of the walk and is never a walk
|
|
17
|
+
* failure; ground failures keep the walk's own churn law. Git repositories
|
|
18
|
+
* stay on their Git-native rail and never enter this module.
|
|
19
|
+
*/
|
|
20
|
+
import { lstat } from "node:fs/promises";
|
|
21
|
+
import { openCargoStream, } from "@amalgm/live";
|
|
22
|
+
import { captureContentFileStream, sameCaptureFingerprint, } from "./content-cache-host.js";
|
|
23
|
+
/** A wire refusal inside a fused capture. Distinguished from ground errors
|
|
24
|
+
* so the caller can disable fusion without disturbing the walk's churn law. */
|
|
25
|
+
class FusionTransportError extends Error {
|
|
26
|
+
constructor(cause) {
|
|
27
|
+
super(cause instanceof Error ? cause.message : String(cause), { cause });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class RegisterUploadFusion {
|
|
31
|
+
ports;
|
|
32
|
+
stream;
|
|
33
|
+
admitted = new Set();
|
|
34
|
+
shipped = [];
|
|
35
|
+
disabledBy = null;
|
|
36
|
+
smallArtifacts = 0;
|
|
37
|
+
smallBytes = 0;
|
|
38
|
+
cargoSegments = 0;
|
|
39
|
+
sealedSkipped = 0;
|
|
40
|
+
largeArtifacts = 0;
|
|
41
|
+
largeBytes = 0;
|
|
42
|
+
constructor(ports) {
|
|
43
|
+
this.ports = ports;
|
|
44
|
+
this.stream = openCargoStream({
|
|
45
|
+
send: async (segment) => {
|
|
46
|
+
// Ask before shipping: a re-walked or previously crashed register
|
|
47
|
+
// recaptures files whose artifacts may already be sealed whole.
|
|
48
|
+
const sealed = await ports.sealedContentHashes(segment.items.map((item) => item.contentHash));
|
|
49
|
+
const fresh = segment.items.filter((item) => !sealed.has(item.contentHash));
|
|
50
|
+
this.sealedSkipped += segment.items.length - fresh.length;
|
|
51
|
+
if (fresh.length === 0)
|
|
52
|
+
return [...sealed];
|
|
53
|
+
const answered = await ports.sendCargo(fresh.map((item) => ({
|
|
54
|
+
content_hash: item.contentHash,
|
|
55
|
+
bytes: item.bytes,
|
|
56
|
+
chunks: item.manifest.chunks,
|
|
57
|
+
})), Buffer.concat(fresh.map((item) => item.payload)));
|
|
58
|
+
this.cargoSegments += 1;
|
|
59
|
+
this.smallArtifacts += fresh.length;
|
|
60
|
+
for (const item of fresh)
|
|
61
|
+
this.smallBytes += item.bytes;
|
|
62
|
+
return [...answered, ...sealed];
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
get enabled() {
|
|
67
|
+
return this.disabledBy === null;
|
|
68
|
+
}
|
|
69
|
+
/** Hand one already-captured small artifact's bytes to the cargo rail.
|
|
70
|
+
* Waits only for window room — backpressure, never durability — and a
|
|
71
|
+
* failed stream disables fusion instead of failing the capture. */
|
|
72
|
+
async addSmall(absolutePath, fingerprint, captured, payload) {
|
|
73
|
+
if (this.disabledBy !== null)
|
|
74
|
+
return;
|
|
75
|
+
if (this.admitted.has(captured.contentHash)) {
|
|
76
|
+
// Equal bytes share one upload identity, but every physical path still
|
|
77
|
+
// owns its own capture fingerprint. A duplicate path moving after the
|
|
78
|
+
// read must invalidate the attempt just like the path that supplied the
|
|
79
|
+
// shared cargo.
|
|
80
|
+
this.shipped.push({ absolutePath, fingerprint });
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.admitted.add(captured.contentHash);
|
|
84
|
+
try {
|
|
85
|
+
await this.stream.add({
|
|
86
|
+
contentHash: captured.contentHash,
|
|
87
|
+
bytes: captured.bytes,
|
|
88
|
+
manifest: captured.manifest,
|
|
89
|
+
payload,
|
|
90
|
+
});
|
|
91
|
+
this.shipped.push({ absolutePath, fingerprint });
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
this.disable(error);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Capture one large file by streaming its single read to the authority.
|
|
98
|
+
* Ground churn propagates unchanged into the walk's retry law; a wire
|
|
99
|
+
* failure disables fusion and answers null so the caller captures the
|
|
100
|
+
* classic way and the upload stage ships it. */
|
|
101
|
+
async captureLarge(sourceFile, expected) {
|
|
102
|
+
if (this.disabledBy !== null)
|
|
103
|
+
return null;
|
|
104
|
+
const guard = (work) => work.catch((error) => {
|
|
105
|
+
throw new FusionTransportError(error);
|
|
106
|
+
});
|
|
107
|
+
try {
|
|
108
|
+
const captured = await captureContentFileStream(sourceFile, expected, {
|
|
109
|
+
putBlocks: (chunks, bytes) => guard(this.ports.putBlocks(chunks, bytes)),
|
|
110
|
+
sealManifest: (manifest) => guard(this.ports.sealManifest(manifest)),
|
|
111
|
+
});
|
|
112
|
+
this.largeArtifacts += 1;
|
|
113
|
+
this.largeBytes += captured.bytes;
|
|
114
|
+
this.shipped.push({ absolutePath: sourceFile, fingerprint: expected });
|
|
115
|
+
return captured;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (!(error instanceof FusionTransportError))
|
|
119
|
+
throw error;
|
|
120
|
+
this.disable(error.cause);
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Prove every fused source still stands exactly as it was captured — the
|
|
125
|
+
* proof the classic upload's re-read gave for free, at stat cost only.
|
|
126
|
+
* Answers the first moved path, or null while the fused ground stands.
|
|
127
|
+
* The caller turns a moved path into its ordinary stale-capture re-walk;
|
|
128
|
+
* sealed content stays harmlessly unreferenced until the re-walk names
|
|
129
|
+
* what stands there now. */
|
|
130
|
+
async movedGround() {
|
|
131
|
+
for (const { absolutePath, fingerprint } of this.shipped) {
|
|
132
|
+
let current;
|
|
133
|
+
try {
|
|
134
|
+
current = await lstat(absolutePath);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return absolutePath;
|
|
138
|
+
}
|
|
139
|
+
if (!sameCaptureFingerprint(fingerprint, current))
|
|
140
|
+
return absolutePath;
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
/** Settle the fused rail: every admitted segment ships or the failure is
|
|
145
|
+
* recorded as this fusion's disabling reason. Never throws — the upload
|
|
146
|
+
* stage re-plans from the seal inventory, so an incomplete fusion only
|
|
147
|
+
* means it uploads more. */
|
|
148
|
+
async flush() {
|
|
149
|
+
try {
|
|
150
|
+
await this.stream.flush();
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
this.disable(error);
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
smallArtifacts: this.smallArtifacts,
|
|
157
|
+
smallBytes: this.smallBytes,
|
|
158
|
+
cargoSegments: this.cargoSegments,
|
|
159
|
+
sealedSkipped: this.sealedSkipped,
|
|
160
|
+
largeArtifacts: this.largeArtifacts,
|
|
161
|
+
largeBytes: this.largeBytes,
|
|
162
|
+
disabledReason: this.disabledBy,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
disable(error) {
|
|
166
|
+
this.disabledBy ??= error instanceof Error ? error.message : String(error);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=register-upload-fusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-upload-fusion.js","sourceRoot":"","sources":["../src/register-upload-fusion.ts"],"names":[],"mappings":"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"}
|
|
@@ -225,6 +225,14 @@ export declare class UserGroundHost {
|
|
|
225
225
|
* timings — verification, storage, sealing — which fold into the ledger
|
|
226
226
|
* as a decomposition of this round trip's `wireMs`. */
|
|
227
227
|
private putCargo;
|
|
228
|
+
/** Store one wave of provisional content blocks, addressed by their own
|
|
229
|
+
* digests and bound to no artifact. Resolving means every block is
|
|
230
|
+
* durable at the authority. Answers the wire bytes actually sent. */
|
|
231
|
+
private putContentBlocks;
|
|
232
|
+
/** Seal one artifact's manifest. The authority re-proves every named
|
|
233
|
+
* block durable before anything becomes visible, so this frame is only
|
|
234
|
+
* lawful after the complete file went over the wire. */
|
|
235
|
+
private putContentManifest;
|
|
228
236
|
private uploadSnapshotContent;
|
|
229
237
|
/** Download a set of immutable artifacts straight from content storage.
|
|
230
238
|
* The set is the primitive: every storage object the set still needs —
|