@amalgm/shell 0.1.36 → 0.1.38
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/PURPOSE.md +82 -31
- package/README.md +8 -1
- package/dist/boot.js +8 -0
- package/dist/boot.js.map +1 -1
- package/dist/cli.js +4 -7
- package/dist/cli.js.map +1 -1
- package/dist/compose.js +9 -4
- package/dist/compose.js.map +1 -1
- package/dist/content-cache-host.d.ts +27 -1
- package/dist/content-cache-host.js +114 -5
- package/dist/content-cache-host.js.map +1 -1
- package/dist/external-proxy-host.js +1 -0
- package/dist/external-proxy-host.js.map +1 -1
- package/dist/files-register-host.d.ts +10 -2
- package/dist/files-register-host.js +11 -5
- package/dist/files-register-host.js.map +1 -1
- package/dist/git-repository-host.js +8 -2
- package/dist/git-repository-host.js.map +1 -1
- package/dist/machine-host.d.ts +5 -6
- package/dist/machine-host.js +17 -28
- package/dist/machine-host.js.map +1 -1
- package/dist/pty-host.js +33 -3
- package/dist/pty-host.js.map +1 -1
- package/dist/runtime-command-host.d.ts +1 -1
- package/dist/runtime-command-host.js +1 -0
- package/dist/runtime-command-host.js.map +1 -1
- package/dist/user-ground-host.d.ts +9 -0
- package/dist/user-ground-host.js +234 -95
- package/dist/user-ground-host.js.map +1 -1
- package/dist/watching/host.d.ts +3 -0
- package/dist/watching/host.js +158 -3
- package/dist/watching/host.js.map +1 -1
- package/dist/wire-client.d.ts +9 -0
- package/dist/wire-client.js +52 -3
- package/dist/wire-client.js.map +1 -1
- package/package.json +3 -3
package/PURPOSE.md
CHANGED
|
@@ -87,11 +87,11 @@ shell only assembles.
|
|
|
87
87
|
|
|
88
88
|
16. **The process that owns Watch owns its shutdown.** A running host flushes
|
|
89
89
|
every filesystem event Watch observed, closes coverage, checks once more
|
|
90
|
-
for queued events, and only then tears down its wire.
|
|
91
|
-
`files
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
for queued events, and only then tears down its wire. `files register` and
|
|
91
|
+
`files add` execute inside that same running host, so declaration, SQLite,
|
|
92
|
+
cloud, and Watch work use the established owners rather than constructing a
|
|
93
|
+
second lifecycle. Register waits through graph reconciliation, healthy
|
|
94
|
+
coverage, immutable upload, and graph-head commit before it returns. The
|
|
95
95
|
watcher established after authoritative materialization remains the one
|
|
96
96
|
ongoing watcher; the CLI never creates and immediately closes a second
|
|
97
97
|
Watch lifecycle. Closing an unchanged watcher does not invent a full scan. A
|
|
@@ -99,14 +99,15 @@ shell only assembles.
|
|
|
99
99
|
that source closes first, the late response is discarded cleanly rather
|
|
100
100
|
than sent through a replacement or closed wire. Closing is a one-way
|
|
101
101
|
lifecycle boundary: an in-flight rescan may finish its durable work, but it
|
|
102
|
-
can never recreate watcher handles afterward.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
can never recreate watcher handles afterward. One logical content watcher
|
|
103
|
+
covers each outermost materialized tree: macOS and Windows use the native
|
|
104
|
+
recursive primitive, while Linux expands it to exactly one inotify handle
|
|
105
|
+
per directory. Enclosed logical roots share it, and one non-recursive
|
|
106
|
+
watcher on the outer root's parent guards the root address itself. Roots
|
|
107
|
+
with the same parent share that address
|
|
106
108
|
watcher. Initialization failure or handle death is reported as degraded,
|
|
107
109
|
retains full-root suspicion, and retries independently of Detect; it can
|
|
108
|
-
never be reported as active coverage.
|
|
109
|
-
recursive primitive on macOS, Linux, and Windows.
|
|
110
|
+
never be reported as active coverage.
|
|
110
111
|
|
|
111
112
|
17. **Independent content may travel concurrently; authority remains atomic.**
|
|
112
113
|
The host bounds parallel uploads for small immutable objects and processes
|
|
@@ -180,14 +181,17 @@ shell only assembles.
|
|
|
180
181
|
compatibility requirement and never prevent the machine from resuming.
|
|
181
182
|
|
|
182
183
|
25. **Cold transfer performs each byte operation once.** Registration stores
|
|
183
|
-
capture-derived block evidence beside the sealed source
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
184
|
+
capture-derived block evidence beside the sealed source. Every ordinary
|
|
185
|
+
text or binary file is read through the same bounded block stream, which
|
|
186
|
+
simultaneously classifies, hashes, derives the manifest, and seals the
|
|
187
|
+
cache artifact; a complete-file Buffer is never part of capture. Upload
|
|
188
|
+
then reads that sealed source once to send it. Download places verified
|
|
189
|
+
network blocks directly into one resumable artifact, derives the whole
|
|
190
|
+
hash from those in-flight buffers, and then hands the sealed file to the
|
|
191
|
+
registered type's adapter. The binary rail exposes its received payload as
|
|
192
|
+
a view and Live performs the one manifest block check; a host-side copy or
|
|
193
|
+
duplicate hash, like per-block files followed by a second assembled file,
|
|
194
|
+
is redundant work rather than additional correctness.
|
|
191
195
|
|
|
192
196
|
26. **A Files effect command is not a second login.** `files add` proves the
|
|
193
197
|
selected ready machine, authenticates to its already-running loopback
|
|
@@ -207,13 +211,16 @@ shell only assembles.
|
|
|
207
211
|
window so the combined cold byte window remains bounded.
|
|
208
212
|
|
|
209
213
|
30. **Files commands converge on one watching runtime.** `amalgm files
|
|
210
|
-
register <workspace>`
|
|
211
|
-
declaration
|
|
212
|
-
|
|
214
|
+
register <workspace>` asks the already-running runtime to create or reuse
|
|
215
|
+
the durable declaration, reconcile the entity graph by UUID and
|
|
216
|
+
containment, establish healthy Watch coverage, upload immutable content,
|
|
217
|
+
and commit the cloud head before returning success.
|
|
213
218
|
`amalgm files add <workspace>` asks that runtime to materialize the selected
|
|
214
219
|
cloud graph, refresh the exact durable reference inventory in core ground,
|
|
215
220
|
and extend its existing Watch coverage before returning. References to
|
|
216
|
-
unselected
|
|
221
|
+
unselected boundaries stay dangling and create no workspace rows or bytes.
|
|
222
|
+
Add refuses any destination that overlaps the user's own Amalgm ground, so
|
|
223
|
+
one physical tree can never acquire two graph roles.
|
|
217
224
|
The refreshed references and their parent container's derived membership
|
|
218
225
|
version enter machine SQLite in one transaction, so the authoritative
|
|
219
226
|
install is already internally consistent before Watch opens it.
|
|
@@ -224,14 +231,22 @@ shell only assembles.
|
|
|
224
231
|
downloader's own writes as user edits; every later OS notification remains
|
|
225
232
|
ordinary suspicion. Register and Watch enumerate the same durable binding
|
|
226
233
|
inventory, so a missed notification for rendering the portable reference
|
|
227
|
-
cannot make either the reference row or its declared external
|
|
228
|
-
disappear from registration.
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
content
|
|
233
|
-
|
|
234
|
-
|
|
234
|
+
cannot make either the reference row or its declared external boundary
|
|
235
|
+
disappear from registration. Registering an enclosing parent reuses every
|
|
236
|
+
known descendant UUID and rewrites containment/root projection atomically;
|
|
237
|
+
overlapping registrations never create a second identity family.
|
|
238
|
+
Register success is scoped to the selected workspace's SQLite row,
|
|
239
|
+
immutable content, cloud-head membership, and healthy coverage; it never
|
|
240
|
+
waits for unrelated Watch traffic across the machine to become silent.
|
|
241
|
+
Any unrelated suspicion remains ordinary ongoing work of the same host.
|
|
242
|
+
31. **A machine uploads only entities it locally materializes.** A replacement
|
|
243
|
+
cloud snapshot preserves untouched cloud-only ground, but its presence in
|
|
244
|
+
that portable graph never makes this machine responsible for those content
|
|
245
|
+
bytes. Before advancing the head, the machine uploads artifacts only for
|
|
246
|
+
UUIDs represented in its machine-local entity projection; other content is
|
|
247
|
+
already owned by the prior authoritative cloud head. This remains true when
|
|
248
|
+
the local materialization boundary has a portable parent outside the local
|
|
249
|
+
projection.
|
|
235
250
|
|
|
236
251
|
32. **Coverage precedes recovery, and coverage is not currency.** On process
|
|
237
252
|
start Watch first opens the same durable root topology, then Detect closes
|
|
@@ -257,6 +272,42 @@ shell only assembles.
|
|
|
257
272
|
one large recovery walk cannot erase Watch events or hide the readiness of
|
|
258
273
|
unrelated coverage. The portable registry head remains one atomic graph.
|
|
259
274
|
|
|
275
|
+
35. **Portable path grammar becomes a native path only at the host boundary.**
|
|
276
|
+
Core and Live may describe paths with `/`; before Shell performs a
|
|
277
|
+
filesystem effect it resolves that grammar with the host platform's path
|
|
278
|
+
semantics. Durable records may never mix separators accidentally.
|
|
279
|
+
|
|
280
|
+
36. **Git materialization reproduces Card bytes independently of machine
|
|
281
|
+
preferences.** A repository created by Add disables receiver-global line
|
|
282
|
+
ending conversion before checkout. Platform Git configuration cannot
|
|
283
|
+
silently rewrite the committed object truth carried by the Card.
|
|
284
|
+
|
|
285
|
+
37. **The effect owner closes every native resource it opens.** Shell shutdown,
|
|
286
|
+
completed downloads, and examination teardown release their SQLite,
|
|
287
|
+
process, socket, and watcher handles before ground may be moved, deleted,
|
|
288
|
+
or reopened. Unix permission to unlink an open file is never used as proof
|
|
289
|
+
of a complete lifecycle.
|
|
290
|
+
|
|
291
|
+
38. **A finite CLI command leaves no transport alive after its result.** The
|
|
292
|
+
running runtime alone owns persistent connections; register and add close
|
|
293
|
+
their short loopback request before the command process exits.
|
|
294
|
+
|
|
295
|
+
39. **Interactive processes use the host's declared shell.** Unix reads
|
|
296
|
+
`SHELL`; Windows reads `ComSpec`; a test or deployment may override that
|
|
297
|
+
declaration, but Shell never assumes one platform's executable on another.
|
|
298
|
+
|
|
299
|
+
40. **Runtime admission and Files currency are independent boundaries.** Files
|
|
300
|
+
convergence and the ongoing Watch → Detect path alone decide whether ground
|
|
301
|
+
is current. Starting a runtime advertises its already-listening gateway and
|
|
302
|
+
waits for the authority's acknowledgement; it never forces another scan or
|
|
303
|
+
waits for watcher silence.
|
|
304
|
+
|
|
305
|
+
41. **Finite shutdown has one explicit observation cutoff.** Shell first marks
|
|
306
|
+
every covered root suspect, retires native Watch handles, and then performs
|
|
307
|
+
one final Detect/Record pass. Native events cannot make shutdown unbounded;
|
|
308
|
+
changes after the cutoff remain inside the blind interval that startup
|
|
309
|
+
catch-up is required to close.
|
|
310
|
+
|
|
260
311
|
## Relationship to amalgm-engine
|
|
261
312
|
|
|
262
313
|
Stage 1 cut the bricks out of the engine. Stage 2 proves them here, composed.
|
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ injects the real filesystem, SQLite, watcher, and authenticated cloud wire.
|
|
|
25
25
|
npm install
|
|
26
26
|
npm test
|
|
27
27
|
|
|
28
|
-
# Isolated real-kernel Watch certification (macOS/Linux)
|
|
28
|
+
# Isolated real-kernel Watch certification (macOS/Linux/Windows)
|
|
29
29
|
AMALGM_NATIVE_WATCH=1 node --test tests/watching/native.test.js
|
|
30
30
|
|
|
31
31
|
# PowerShell: $env:AMALGM_NATIVE_WATCH=1; node --test tests/watching/native.test.js
|
|
@@ -44,3 +44,10 @@ npx --package @amalgm/shell amalgm files add <workspace-id> --user person@exampl
|
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Requires Node ≥ 20.19 (native `require(esm)` support; all bricks are ESM).
|
|
47
|
+
|
|
48
|
+
Every push to `main` and every pull request runs the complete suite plus the
|
|
49
|
+
isolated real-kernel Watch examination on GitHub-hosted Linux, macOS, and
|
|
50
|
+
Windows machines. This certifies the same create, change, rename, move, delete,
|
|
51
|
+
`.git` appearance/disappearance, and root-address mutations on every supported
|
|
52
|
+
watcher backend. Production Fly/R2 examinations remain separate: CI proves the
|
|
53
|
+
platform adapter, while the deployed examination proves the real cloud path.
|
package/dist/boot.js
CHANGED
|
@@ -231,9 +231,17 @@ export async function bootShell(config = {}) {
|
|
|
231
231
|
await agentsService.close();
|
|
232
232
|
await apps.apps.close();
|
|
233
233
|
tools.toolbox.close();
|
|
234
|
+
await Promise.all(browserService.listSessions()
|
|
235
|
+
.map((session) => browserService.closeSession(session.id)));
|
|
236
|
+
closeOptionalDatabase(browserService.productOptions.registry);
|
|
234
237
|
},
|
|
235
238
|
};
|
|
236
239
|
}
|
|
240
|
+
function closeOptionalDatabase(value) {
|
|
241
|
+
const close = value?.close;
|
|
242
|
+
if (typeof close === "function")
|
|
243
|
+
close.call(value);
|
|
244
|
+
}
|
|
237
245
|
function optionalPort(value) {
|
|
238
246
|
const raw = String(value || "").trim();
|
|
239
247
|
if (!raw)
|
package/dist/boot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { MachineSetupError } from "@amalgm/core/identity";
|
|
4
|
-
import { registerFilesWorkspace } from "@amalgm/live/files";
|
|
5
4
|
import { MachineHost, defaultMachineName } from "./machine-host.js";
|
|
6
5
|
const VERSION = String(JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version);
|
|
7
6
|
export async function runCli(argv = process.argv) {
|
|
@@ -65,11 +64,9 @@ export async function runCli(argv = process.argv) {
|
|
|
65
64
|
throw new Error(`Usage: amalgm files ${filesCommand} <${filesCommand === "register" ? "path" : "workspace-id"}>`);
|
|
66
65
|
}
|
|
67
66
|
const result = filesCommand === "register"
|
|
68
|
-
? await (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return { ...declared, watch };
|
|
72
|
-
})()
|
|
67
|
+
? await host.callFilesRuntime("/entities/register", {
|
|
68
|
+
path: parsed.positionals[1],
|
|
69
|
+
})
|
|
73
70
|
: await host.callFilesRuntime("/entities/add", {
|
|
74
71
|
uuid: parsed.positionals[1],
|
|
75
72
|
path: process.cwd(),
|
|
@@ -178,6 +175,6 @@ function waitForShutdown() {
|
|
|
178
175
|
});
|
|
179
176
|
}
|
|
180
177
|
function helpText() {
|
|
181
|
-
return `amalgm ${VERSION}\n\nUsage:\n amalgm login [--setup-code CODE] [--no-open]\n amalgm run --user EMAIL\n amalgm status --user EMAIL\n amalgm files register <path> --user EMAIL\n amalgm files add <workspace-id> --user EMAIL\n\nFiles:\n register
|
|
178
|
+
return `amalgm ${VERSION}\n\nUsage:\n amalgm login [--setup-code CODE] [--no-open]\n amalgm run --user EMAIL\n amalgm status --user EMAIL\n amalgm files register <path> --user EMAIL\n amalgm files add <workspace-id> --user EMAIL\n\nFiles:\n register Register, watch, upload, and commit one external workspace\n add Materialize one owned cloud workspace through the running Watch host\n\nOptions:\n --app-url URL Amalgm control plane (default: https://amalgm.ai)\n --amalgm-root PATH Visible installation root (default: ~/amalgm)\n --home PATH OS home override\n --user EMAIL Select one of multiple local users\n --name NAME Computer display name\n --exit-after-ready Examination-only: prove readiness, then stop\n`;
|
|
182
179
|
}
|
|
183
180
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAC/B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAClE,CAAC,OAAO,CAAC,CAAC;AAQX,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;WAC5D,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,OAAO,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,mBAAmB,CAAC;IAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS;QAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,SAAS;QACtD,SAAS;QACT,MAAM;QACN,cAAc,EAAE,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,MAAM;QACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM;QAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,SAAS;QAClD,WAAW,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1C,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,EAAE;YAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,EAAE;gBACF,6CAA6C;gBAC7C,eAAe;gBACf,EAAE;gBACF,eAAe,SAAS,EAAE;gBAC1B,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,WAAW,CAAC,eAAe,CAAC,CAAC;QAC/D,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;IACH,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;gBACrC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,GAAG,KAAK,CAAC,UAAU,mBAAmB;aACjD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,KAAK,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;YACpH,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,KAAK,UAAU;gBACxC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;oBAClD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAW;iBACtC,CAAC;gBACF,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;oBAC7C,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAW;oBACrC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;iBACpB,CAAC,CAAC;YACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/F,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,OAAO;YACtC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,kBAAkB,EAAE;gBACpD,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrF,CAAC;YACF,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC;YAClD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACpC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACrC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;YAChC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW;YACtC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY;YACvC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;SACtC,CAAC,IAAI,CAAC,CAAC;QACR,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,eAAe,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB;IAC7C,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC;IAC5C,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAW,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,MAAM,CAAC,MAAuB,EAAE,GAAW;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,UAAU,OAAO,yvBAAyvB,CAAC;AACpxB,CAAC"}
|
package/dist/compose.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { timingSafeEqual } from "node:crypto";
|
|
2
2
|
import { homedir as osHomedir } from "node:os";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
import { PRIMITIVE_DIRS, resolveProductStateDir, scopedAmalgmDir, } from "@amalgm/core/identity";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
import { PRIMITIVE_DIRS, productStateDirEnvVar, resolveProductStateDir, scopedAmalgmDir, } from "@amalgm/core/identity";
|
|
5
5
|
import { guardBearerRequest } from "@amalgm/core/transport";
|
|
6
6
|
/**
|
|
7
7
|
* Assemble the shell: one identity resolution and one auth guard, both owned
|
|
@@ -12,17 +12,22 @@ export function composeShell(config = {}) {
|
|
|
12
12
|
const home = config.homedir ?? osHomedir();
|
|
13
13
|
const amalgmRoot = config.amalgmRoot ?? env.AMALGM_ROOT ?? join(home, "amalgm");
|
|
14
14
|
const userScope = config.userEmail ?? config.scope ?? env.AMALGM_USER_EMAIL ?? "local";
|
|
15
|
-
|
|
15
|
+
// Core owns the portable `/` grammar; Shell turns it into a physical host
|
|
16
|
+
// path at the filesystem-effect boundary.
|
|
17
|
+
const userDir = resolve(scopedAmalgmDir(amalgmRoot, userScope));
|
|
16
18
|
const deviceId = config.deviceId ?? env.AMALGM_DEVICE_ID ?? "local-device";
|
|
17
19
|
const stateDirs = {};
|
|
18
20
|
for (const primitive of PRIMITIVE_DIRS) {
|
|
19
|
-
|
|
21
|
+
const described = resolveProductStateDir({
|
|
20
22
|
product: primitive,
|
|
21
23
|
primitive,
|
|
22
24
|
env,
|
|
23
25
|
homedir: amalgmRoot,
|
|
24
26
|
scope: userScope,
|
|
25
27
|
});
|
|
28
|
+
stateDirs[primitive] = env[productStateDirEnvVar(primitive)]
|
|
29
|
+
? described
|
|
30
|
+
: resolve(described);
|
|
26
31
|
}
|
|
27
32
|
const guard = (headers) => guardBearerRequest({
|
|
28
33
|
// Kernel law is fail-closed: an unconfigured token ("") matches nothing.
|
package/dist/compose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AA8B5D;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,SAAsB,EAAE;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;IACvF,0EAA0E;IAC1E,0CAA0C;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,gBAAgB,IAAI,cAAc,CAAC;IAE3E,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACvC,OAAO,EAAE,SAAS;YAClB,SAAS;YACT,GAAG;YACH,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAA2B,CAAC,OAAO,EAAE,EAAE,CAChD,kBAAkB,CAAC;QACjB,yEAAyE;QACzE,OAAO;QACP,aAAa,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACxC,eAAe;KAChB,CAAC,CAAC;IAEL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Machine-local immutable content cache.
|
|
2
|
+
* Machine-local immutable content capture and cache.
|
|
3
3
|
*
|
|
4
4
|
* Network blocks land directly at their final offset in one partial artifact.
|
|
5
5
|
* One machine-local SQLite index makes interrupted writes resumable and lets
|
|
@@ -7,12 +7,38 @@
|
|
|
7
7
|
* files. The portable transfer law remains in @amalgm/live; this module owns
|
|
8
8
|
* only Node filesystem effects.
|
|
9
9
|
*/
|
|
10
|
+
import { type Stats } from "node:fs";
|
|
10
11
|
import { type ContentManifest, type TransferArtifact } from "@amalgm/live";
|
|
11
12
|
export interface SealedContentFile {
|
|
12
13
|
readonly file: string;
|
|
13
14
|
readonly bytes: number;
|
|
14
15
|
readonly contentHash: string;
|
|
15
16
|
}
|
|
17
|
+
export interface CapturedFileContent {
|
|
18
|
+
readonly bytes: number;
|
|
19
|
+
readonly contentHash: string;
|
|
20
|
+
readonly manifest: ContentManifest;
|
|
21
|
+
readonly binary: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface ContentBlockSource {
|
|
24
|
+
readonly bytes: number;
|
|
25
|
+
read(offset: number, bytes: number): Promise<Uint8Array>;
|
|
26
|
+
}
|
|
27
|
+
export interface ContentBlockSink {
|
|
28
|
+
write(offset: number, bytes: Uint8Array): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Capture an ordinary file in bounded blocks. The same bytes feed whole-file
|
|
32
|
+
* identity, block identity, text/binary evidence, and the optional immutable
|
|
33
|
+
* cache sink. No caller may need a complete-file Buffer.
|
|
34
|
+
*/
|
|
35
|
+
export declare function captureContentBlocks(source: ContentBlockSource, sink: ContentBlockSink | null): Promise<CapturedFileContent>;
|
|
36
|
+
/**
|
|
37
|
+
* Stream one stable filesystem file. Non-repository files are sealed directly
|
|
38
|
+
* into the immutable cache during that read; repository-owned leaves use the
|
|
39
|
+
* same capture primitive without a redundant second cache artifact.
|
|
40
|
+
*/
|
|
41
|
+
export declare function captureContentFile(sourceFile: string, expected: Stats, cacheDir: string | null): Promise<CapturedFileContent>;
|
|
16
42
|
/** One artifact download. Calls may write different block indexes in
|
|
17
43
|
* parallel; sealing is legal only after the portable download operation has
|
|
18
44
|
* awaited them all. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Machine-local immutable content cache.
|
|
2
|
+
* Machine-local immutable content capture and cache.
|
|
3
3
|
*
|
|
4
4
|
* Network blocks land directly at their final offset in one partial artifact.
|
|
5
5
|
* One machine-local SQLite index makes interrupted writes resumable and lets
|
|
@@ -7,17 +7,124 @@
|
|
|
7
7
|
* files. The portable transfer law remains in @amalgm/live; this module owns
|
|
8
8
|
* only Node filesystem effects.
|
|
9
9
|
*/
|
|
10
|
-
import { createHash } from "node:crypto";
|
|
11
|
-
import { chmodSync, createReadStream, existsSync, renameSync, statSync, } from "node:fs";
|
|
12
|
-
import { open } from "node:fs/promises";
|
|
10
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
11
|
+
import { chmodSync, createReadStream, existsSync, renameSync, rmSync, statSync, } from "node:fs";
|
|
12
|
+
import { lstat, open } from "node:fs/promises";
|
|
13
13
|
import { join } from "node:path";
|
|
14
|
-
import { stableJson, } from "@amalgm/live";
|
|
14
|
+
import { chunkSizes, manifestFromChunks, stableJson, } from "@amalgm/live";
|
|
15
15
|
import { atomicWrite, ensurePrivateDir } from "./filesystem.js";
|
|
16
16
|
import { ContentCacheIndex } from "./content-cache-index.js";
|
|
17
17
|
const sha256Hex = (bytes) => createHash("sha256").update(bytes).digest("hex");
|
|
18
18
|
const contentFile = (cacheDir, contentHash) => join(cacheDir, `${contentHash}.bin`);
|
|
19
19
|
const manifestFile = (cacheDir, contentHash) => join(cacheDir, "manifests", `${contentHash}.json`);
|
|
20
20
|
const partialFile = (cacheDir, contentHash) => join(cacheDir, "partials", `${contentHash}.bin`);
|
|
21
|
+
/**
|
|
22
|
+
* Capture an ordinary file in bounded blocks. The same bytes feed whole-file
|
|
23
|
+
* identity, block identity, text/binary evidence, and the optional immutable
|
|
24
|
+
* cache sink. No caller may need a complete-file Buffer.
|
|
25
|
+
*/
|
|
26
|
+
export async function captureContentBlocks(source, sink) {
|
|
27
|
+
if (!Number.isSafeInteger(source.bytes) || source.bytes < 0) {
|
|
28
|
+
throw new Error("captured file byte count is invalid");
|
|
29
|
+
}
|
|
30
|
+
const wholeHash = createHash("sha256");
|
|
31
|
+
const chunks = [];
|
|
32
|
+
let binary = false;
|
|
33
|
+
let offset = 0;
|
|
34
|
+
for (const bytes of chunkSizes(source.bytes)) {
|
|
35
|
+
const block = await source.read(offset, bytes);
|
|
36
|
+
if (!(block instanceof Uint8Array) || block.byteLength !== bytes) {
|
|
37
|
+
throw new Error(`captured file returned the wrong byte count at offset ${offset}`);
|
|
38
|
+
}
|
|
39
|
+
wholeHash.update(block);
|
|
40
|
+
chunks.push({ sha256: sha256Hex(block), bytes: block.byteLength });
|
|
41
|
+
if (!binary) {
|
|
42
|
+
binary = Buffer.from(block.buffer, block.byteOffset, block.byteLength).includes(0);
|
|
43
|
+
}
|
|
44
|
+
if (sink)
|
|
45
|
+
await sink.write(offset, block);
|
|
46
|
+
offset += block.byteLength;
|
|
47
|
+
}
|
|
48
|
+
const contentHash = wholeHash.digest("hex");
|
|
49
|
+
const checked = manifestFromChunks(contentHash, chunks);
|
|
50
|
+
if (!checked.ok)
|
|
51
|
+
throw new Error(checked.error);
|
|
52
|
+
return {
|
|
53
|
+
bytes: source.bytes,
|
|
54
|
+
contentHash,
|
|
55
|
+
manifest: checked.value,
|
|
56
|
+
binary,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const sameCaptureFingerprint = (left, right) => left.isFile() && right.isFile()
|
|
60
|
+
&& left.dev === right.dev
|
|
61
|
+
&& left.ino === right.ino
|
|
62
|
+
&& left.size === right.size
|
|
63
|
+
&& left.mtimeMs === right.mtimeMs
|
|
64
|
+
&& left.ctimeMs === right.ctimeMs
|
|
65
|
+
&& left.mode === right.mode;
|
|
66
|
+
async function readHandleRange(handle, offset, bytes) {
|
|
67
|
+
const output = Buffer.allocUnsafe(bytes);
|
|
68
|
+
let cursor = 0;
|
|
69
|
+
while (cursor < bytes) {
|
|
70
|
+
const result = await handle.read(output, cursor, bytes - cursor, offset + cursor);
|
|
71
|
+
if (result.bytesRead === 0)
|
|
72
|
+
throw new Error("captured file ended before its declared byte count");
|
|
73
|
+
cursor += result.bytesRead;
|
|
74
|
+
}
|
|
75
|
+
return output;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Stream one stable filesystem file. Non-repository files are sealed directly
|
|
79
|
+
* into the immutable cache during that read; repository-owned leaves use the
|
|
80
|
+
* same capture primitive without a redundant second cache artifact.
|
|
81
|
+
*/
|
|
82
|
+
export async function captureContentFile(sourceFile, expected, cacheDir) {
|
|
83
|
+
const source = await open(sourceFile, "r");
|
|
84
|
+
let output = null;
|
|
85
|
+
let temporary = null;
|
|
86
|
+
try {
|
|
87
|
+
const before = await source.stat();
|
|
88
|
+
if (!sameCaptureFingerprint(expected, before)) {
|
|
89
|
+
throw new Error(`file changed before cold capture: ${sourceFile}`);
|
|
90
|
+
}
|
|
91
|
+
if (cacheDir) {
|
|
92
|
+
const captures = join(cacheDir, "captures");
|
|
93
|
+
ensurePrivateDir(captures);
|
|
94
|
+
temporary = join(captures, `${randomUUID()}.bin`);
|
|
95
|
+
output = await open(temporary, "wx", 0o600);
|
|
96
|
+
}
|
|
97
|
+
const captured = await captureContentBlocks({
|
|
98
|
+
bytes: before.size,
|
|
99
|
+
read: (offset, bytes) => readHandleRange(source, offset, bytes),
|
|
100
|
+
}, output ? {
|
|
101
|
+
write: (offset, bytes) => writeRange(output, offset, bytes),
|
|
102
|
+
} : null);
|
|
103
|
+
const after = await source.stat();
|
|
104
|
+
const current = await lstat(sourceFile);
|
|
105
|
+
if (!sameCaptureFingerprint(before, after) || !sameCaptureFingerprint(after, current)) {
|
|
106
|
+
throw new Error(`file changed during cold capture: ${sourceFile}`);
|
|
107
|
+
}
|
|
108
|
+
if (!output || !temporary || !cacheDir)
|
|
109
|
+
return captured;
|
|
110
|
+
await output.sync();
|
|
111
|
+
await output.close();
|
|
112
|
+
output = null;
|
|
113
|
+
const file = contentFile(cacheDir, captured.contentHash);
|
|
114
|
+
renameSync(temporary, file);
|
|
115
|
+
temporary = null;
|
|
116
|
+
chmodSync(file, 0o600);
|
|
117
|
+
atomicWrite(manifestFile(cacheDir, captured.contentHash), stableJson(captured.manifest));
|
|
118
|
+
return captured;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
if (output)
|
|
122
|
+
await output.close();
|
|
123
|
+
await source.close();
|
|
124
|
+
if (temporary)
|
|
125
|
+
rmSync(temporary, { force: true });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
21
128
|
async function readRange(file, offset, bytes) {
|
|
22
129
|
const handle = await open(file, "r");
|
|
23
130
|
const output = Buffer.allocUnsafe(bytes);
|
|
@@ -198,6 +305,7 @@ export class ContentCacheDownload {
|
|
|
198
305
|
...chunk,
|
|
199
306
|
offset: this.offsets[index],
|
|
200
307
|
})));
|
|
308
|
+
this.index.close();
|
|
201
309
|
return {
|
|
202
310
|
file: this.finalFile,
|
|
203
311
|
bytes: this.manifest.bytes,
|
|
@@ -221,6 +329,7 @@ export class ContentCacheDownload {
|
|
|
221
329
|
...chunk,
|
|
222
330
|
offset: this.offsets[index],
|
|
223
331
|
})));
|
|
332
|
+
this.index.close();
|
|
224
333
|
return {
|
|
225
334
|
file: this.finalFile,
|
|
226
335
|
bytes: this.manifest.bytes,
|