@amalgm/shell 0.1.133 → 0.1.135

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.
@@ -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
- }, output ? {
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,aAAa,GAEd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,YAAY,GAIb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAwB7D;;2DAE2D;AAC3D,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,wBAAwB,CAAC;CAC1C;AAED,MAAM,SAAS,GAAG,CAAC,KAA0B,EAAU,EAAE,CACvD,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAU,EAAE,CACpE,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;AAEvC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAU,EAAE,CACrE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,OAAO,CAAC,CAAC;AAErD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAU,EAAE,CACpE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;AAEnD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,qBAA0C;IAE1C,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAQ,EAAE;QACpE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO;QACnC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YACrE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IACF,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACvE,CAAC;AAED;;sDAEsD;AACtD,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,WAAmB,EACnB,KAAa;IAEb,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC3D,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,QAA0B,EAC1B,KAAiB;IAEjB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAClE,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA0B,EAC1B,IAA6B;IAE7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,yDAAyD,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IACD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW;QACX,QAAQ,EAAE,OAAO,CAAC,KAAK;QACvB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAW,EAAE,KAAY,EAAW,EAAE,CAC3E,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;OAC5B,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;OACtB,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;OACtB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;OACxB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;OAC9B,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;OAC9B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;AAE9B,KAAK,UAAU,eAAe,CAAC,MAAkB,EAAE,MAAc,EAAE,KAAa;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,yBAAyB,CAAC,oDAAoD,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,QAAe,EACf,QAAuB,EACvB,OAAiC;IAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC5C,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,SAAS,GAA4B,MAAM,CAAC,CAAC,CAAC;YAClD,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAoB,EAAE,MAAM,EAAE,KAAK,CAAC;SAC1E,CAAC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO;YAC/B,CAAC,CAAC;gBACA,KAAK,EAAE,KAAK,EAAE,MAAc,EAAE,KAAiB,EAAE,EAAE;oBACjD,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACrC,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrC,CAAC;aACF;YACD,CAAC,CAAC,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC1C,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;SAChE,EAAE,IAAI,CAAC,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACxD,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,IAAI,CAAC;QACd,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,SAAS,GAAG,IAAI,CAAC;QACjB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvB,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,MAAM;YAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO;QACL,SAAS;QACT,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK;YACvB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,QAAe,EACf,SAAiC;IAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC;YACtC,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM;oBAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;SACF,EAAE;YACD,SAAS;YACT,YAAY,EAAE,GAAG,EAAE;gBACjB,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAClC,OAAO;oBACL,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE;wBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;oBACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;iBACpC,CAAC;YACJ,CAAC;YACD,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;YAChE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;gBACxC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;oBACtF,MAAM,IAAI,yBAAyB,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACrF,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa;IAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,MAAM,GAAG,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAChF,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,MAAkB,EAClB,MAAc,EACd,KAAiB;IAEjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC7F,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACvF,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;iFAEiF;AACjF,MAAM,OAAO,oBAAoB;IAWZ;IACR;IACA;IAZM,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,KAAK,CAAoB;IACzB,OAAO,CAAoB;IAC3B,QAAQ,CAAU;IAC3B,YAAY,GAAyB,IAAI,CAAC;IAC1C,MAAM,GAAG,KAAK,CAAC;IACN,SAAS,CAAU;IAEpC,YACmB,QAAgB,EACxB,QAA0B,EAC1B,QAAyB,EAClC,KAAyB;QAHR,aAAQ,GAAR,QAAQ,CAAQ;QACxB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,aAAQ,GAAR,QAAQ,CAAiB;QAGlC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC;QACrC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;eACrC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC;IACxD,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC9B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;gBAClD,IAAI,MAAkB,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;wBAAE,MAAM,KAAK,CAAC;oBACpE,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7C,CAAC;wBAAS,CAAC;oBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,KAAiB;QAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;oCACgC;IAChC,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACjG,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC5E,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1E,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACvD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;4DACwD;IACxD,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,KAAiB;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACjG,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAChG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;6DAEyD;IACzD,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrF,GAAG,KAAK;gBACR,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAW;aACtC,CAAC,CAAC,CAAC,CAAC;YACL,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC1B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;aACvC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,WAAW,aAAa,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrF,GAAG,KAAK;YACR,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAW;SACtC,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC1B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;SACvC,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,CAAC,YAAY,CAAC;QAC/C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACF;AAED;kEACkE;AAClE,MAAM,OAAO,uBAAuB;IAIL;IAHZ,KAAK,CAAoB;IAClC,MAAM,GAAG,KAAK,CAAC;IAEvB,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,QAA0B,EAAE,QAAyB;QAC1D,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzE,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAED;4BAC4B;AAC5B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -3,14 +3,15 @@
3
3
  *
4
4
  * Downloads no longer relay bytes through the gateway. This plane asks the
5
5
  * gateway for two control facts only — the per-resource content key, handed
6
- * once per resource over the authenticated wire, and content refs, batched by
7
- * Live's refs broker: a short-lived storage URL per object plus, for objects
8
- * packed inside one immutable pack, the exact byte range holding their sealed
9
- * envelope. Same-turn range requests against one pack merge into minimal
10
- * spans — one ranged GET each — and every envelope is opened locally. Bytes
11
- * travel storage → this machine; the gateway signs and revokes, nothing more.
6
+ * once per resource over the authenticated wire, and content refs: a
7
+ * short-lived storage URL per object plus, for objects packed inside one
8
+ * immutable pack, the exact byte range holding their sealed envelope. The
9
+ * download engine plans whole waves against these primitives — one refs
10
+ * frame per batch of the want-list, one ranged GET per planned pack span —
11
+ * and every envelope is opened locally. Bytes travel storage → this
12
+ * machine; the gateway signs and revokes, nothing more.
12
13
  */
13
- import { type ContentObjectName } from "@amalgm/live";
14
+ import { type ByteSpan, type ContentObjectName, type ContentRef } from "@amalgm/live";
14
15
  interface DirectContentWire {
15
16
  request(frame: Record<string, unknown> & {
16
17
  type: string;
@@ -31,17 +32,24 @@ export declare class DirectContentPlane {
31
32
  /** Key material is stable for a resource's lifetime, so one handoff per
32
33
  * process is enough; it lives only in memory, never at rest. */
33
34
  private readonly keys;
34
- private readonly brokers;
35
- private readonly spans;
36
35
  private readonly wire;
37
36
  private readonly counters;
38
37
  constructor(wire: DirectContentWire);
39
38
  metrics(): DirectContentMetrics;
40
- /** Fetch one sealed storage object and open it. Every attempt asks for a
41
- * fresh ref — URL expiry is the gateway's revocation lever, so URLs are
42
- * used immediately and never reused. */
39
+ /** Resolve one batch of named objects to storage locations, aligned by
40
+ * index — one wire frame per call; the download engine owns batching. */
41
+ requestRefs(resourceId: string, objects: readonly ContentObjectName[]): Promise<readonly ContentRef[]>;
42
+ /** One storage read: the whole object, or exactly one pack span. Counts
43
+ * physical attempts, including failures that retry; successful bytes are
44
+ * counted once storage answers. */
45
+ fetchSpan(url: string, span: ByteSpan | null): Promise<Uint8Array>;
46
+ /** Open one sealed envelope with the resource's content key. */
47
+ openEnvelope(resourceId: string, sealed: Uint8Array): Promise<Buffer>;
48
+ /** Fetch one sealed storage object and open it — a planned wave of one,
49
+ * for single-object reads like registry graph pages. Every attempt asks
50
+ * for a fresh ref — URL expiry is the gateway's revocation lever, so URLs
51
+ * are used immediately and never reused. */
43
52
  fetchObject(resourceId: string, object: ContentObjectName): Promise<Buffer>;
44
53
  private contentKey;
45
- private broker;
46
54
  }
47
55
  export {};
@@ -3,14 +3,15 @@
3
3
  *
4
4
  * Downloads no longer relay bytes through the gateway. This plane asks the
5
5
  * gateway for two control facts only — the per-resource content key, handed
6
- * once per resource over the authenticated wire, and content refs, batched by
7
- * Live's refs broker: a short-lived storage URL per object plus, for objects
8
- * packed inside one immutable pack, the exact byte range holding their sealed
9
- * envelope. Same-turn range requests against one pack merge into minimal
10
- * spans — one ranged GET each — and every envelope is opened locally. Bytes
11
- * travel storage → this machine; the gateway signs and revokes, nothing more.
6
+ * once per resource over the authenticated wire, and content refs: a
7
+ * short-lived storage URL per object plus, for objects packed inside one
8
+ * immutable pack, the exact byte range holding their sealed envelope. The
9
+ * download engine plans whole waves against these primitives — one refs
10
+ * frame per batch of the want-list, one ranged GET per planned pack span —
11
+ * and every envelope is opened locally. Bytes travel storage → this
12
+ * machine; the gateway signs and revokes, nothing more.
12
13
  */
13
- import { createRefsBroker, createSpanFetcher, openProtectedEnvelopeBytes, } from "@amalgm/live";
14
+ import { openProtectedEnvelopeBytes, } from "@amalgm/live";
14
15
  import { WireRequestError } from "./wire-client.js";
15
16
  function decodeRefs(frame) {
16
17
  const urls = frame.urls;
@@ -39,45 +40,78 @@ export class DirectContentPlane {
39
40
  /** Key material is stable for a resource's lifetime, so one handoff per
40
41
  * process is enough; it lives only in memory, never at rest. */
41
42
  keys = new Map();
42
- brokers = new Map();
43
- spans;
44
43
  wire;
45
44
  counters = {
46
45
  rangedGets: 0, wholeGets: 0, fetchedBytes: 0, refsFrames: 0, refsMs: 0, decryptMs: 0,
47
46
  };
48
47
  constructor(wire) {
49
48
  this.wire = wire;
50
- this.spans = createSpanFetcher({
51
- fetchSpan: async (url, span) => {
52
- // Count physical attempts, including failures that retry. Successful
53
- // bytes are counted separately once storage answers.
54
- if (span)
55
- this.counters.rangedGets += 1;
56
- else
57
- this.counters.wholeGets += 1;
58
- const bytes = await fetchStorageSpan(url, span);
59
- this.counters.fetchedBytes += bytes.byteLength;
60
- return bytes;
61
- },
62
- });
63
49
  }
64
50
  metrics() {
65
51
  return { ...this.counters };
66
52
  }
67
- /** Fetch one sealed storage object and open it. Every attempt asks for a
68
- * fresh ref — URL expiry is the gateway's revocation lever, so URLs are
69
- * used immediately and never reused. */
53
+ /** Resolve one batch of named objects to storage locations, aligned by
54
+ * index — one wire frame per call; the download engine owns batching. */
55
+ async requestRefs(resourceId, objects) {
56
+ const refsStarted = performance.now();
57
+ this.counters.refsFrames += 1;
58
+ try {
59
+ const frame = await this.wire.request({
60
+ type: "private.entity-content.refs",
61
+ resource_id: resourceId,
62
+ objects: objects.map((object) => ({ kind: object.kind, sha256: object.sha256 })),
63
+ }, ["private.entity-content.refs-result"]);
64
+ return decodeRefs(frame);
65
+ }
66
+ finally {
67
+ this.counters.refsMs += performance.now() - refsStarted;
68
+ }
69
+ }
70
+ /** One storage read: the whole object, or exactly one pack span. Counts
71
+ * physical attempts, including failures that retry; successful bytes are
72
+ * counted once storage answers. */
73
+ async fetchSpan(url, span) {
74
+ if (span)
75
+ this.counters.rangedGets += 1;
76
+ else
77
+ this.counters.wholeGets += 1;
78
+ const bytes = await fetchStorageSpan(url, span);
79
+ this.counters.fetchedBytes += bytes.byteLength;
80
+ return bytes;
81
+ }
82
+ /** Open one sealed envelope with the resource's content key. */
83
+ async openEnvelope(resourceId, sealed) {
84
+ const { key, contract } = await this.contentKey(resourceId);
85
+ const decryptStarted = performance.now();
86
+ try {
87
+ const opened = await openProtectedEnvelopeBytes(key, sealed, {
88
+ resourceId,
89
+ contract,
90
+ purpose: "entity-content",
91
+ });
92
+ return Buffer.from(opened.buffer, opened.byteOffset, opened.byteLength);
93
+ }
94
+ finally {
95
+ this.counters.decryptMs += performance.now() - decryptStarted;
96
+ }
97
+ }
98
+ /** Fetch one sealed storage object and open it — a planned wave of one,
99
+ * for single-object reads like registry graph pages. Every attempt asks
100
+ * for a fresh ref — URL expiry is the gateway's revocation lever, so URLs
101
+ * are used immediately and never reused. */
70
102
  async fetchObject(resourceId, object) {
71
- const [{ key, contract }, ref] = await Promise.all([
72
- this.contentKey(resourceId),
73
- this.broker(resourceId).ref(object),
74
- ]);
103
+ const [ref] = await this.requestRefs(resourceId, [object]);
104
+ if (ref === undefined)
105
+ throw new Error("content authority answered an invalid refs reply");
106
+ const span = ref.offset !== undefined && ref.length !== undefined
107
+ ? { offset: ref.offset, length: ref.length }
108
+ : null;
75
109
  let sealed;
76
110
  try {
77
- sealed = await this.spans.fetch(ref);
111
+ sealed = await this.fetchSpan(ref.url, span);
78
112
  }
79
113
  catch (error) {
80
- // The span fetch cannot name the object it served; restore the
114
+ // The storage fetch cannot name the object it served; restore the
81
115
  // caller-facing identity on the authority's established missing code.
82
116
  if (error instanceof WireRequestError && error.code === "entity_content_not_found") {
83
117
  throw new WireRequestError({
@@ -90,18 +124,10 @@ export class DirectContentPlane {
90
124
  }
91
125
  throw error;
92
126
  }
93
- const decryptStarted = performance.now();
94
- try {
95
- const opened = await openProtectedEnvelopeBytes(key, sealed, {
96
- resourceId,
97
- contract,
98
- purpose: "entity-content",
99
- });
100
- return Buffer.from(opened.buffer, opened.byteOffset, opened.byteLength);
101
- }
102
- finally {
103
- this.counters.decryptMs += performance.now() - decryptStarted;
127
+ if (span !== null && sealed.byteLength !== span.length) {
128
+ throw new Error("content storage answered the wrong byte count for a pack span");
104
129
  }
130
+ return this.openEnvelope(resourceId, sealed);
105
131
  }
106
132
  contentKey(resourceId) {
107
133
  let pending = this.keys.get(resourceId);
@@ -128,35 +154,11 @@ export class DirectContentPlane {
128
154
  }
129
155
  return pending;
130
156
  }
131
- broker(resourceId) {
132
- let broker = this.brokers.get(resourceId);
133
- if (!broker) {
134
- broker = createRefsBroker({
135
- requestRefs: async (objects) => {
136
- const refsStarted = performance.now();
137
- this.counters.refsFrames += 1;
138
- try {
139
- const frame = await this.wire.request({
140
- type: "private.entity-content.refs",
141
- resource_id: resourceId,
142
- objects: objects.map((object) => ({ kind: object.kind, sha256: object.sha256 })),
143
- }, ["private.entity-content.refs-result"]);
144
- return decodeRefs(frame);
145
- }
146
- finally {
147
- this.counters.refsMs += performance.now() - refsStarted;
148
- }
149
- },
150
- });
151
- this.brokers.set(resourceId, broker);
152
- }
153
- return broker;
154
- }
155
157
  }
156
158
  /** One HTTP GET against content storage: the whole object, or exactly one
157
159
  * pack span. A server that ignores the Range header and answers the full
158
- * object is sliced here — the span fetcher's length law rejects anything
159
- * short or shifted. */
160
+ * object is sliced here — the engine's length law rejects anything short
161
+ * or shifted. */
160
162
  async function fetchStorageSpan(url, span) {
161
163
  const response = await fetch(url, span ? {
162
164
  headers: { range: `bytes=${span.offset}-${span.offset + span.length - 1}` },
@@ -1 +1 @@
1
- {"version":3,"file":"content-direct.js","sourceRoot":"","sources":["../src/content-direct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-direct.js","sourceRoot":"","sources":["../src/content-direct.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
+ }