@amalgm/shell 0.1.10 → 0.1.11

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 CHANGED
@@ -96,6 +96,12 @@ shell only assembles.
96
96
  memory. The registry head advances only after every referenced object is
97
97
  durably acknowledged.
98
98
 
99
+ 18. **A Git repository travels as one repository parcel.** The host uses Git
100
+ itself to capture and restore the repository's Card + Checkpoint transport.
101
+ `.git` is transport metadata rather than entity ground; worktree children
102
+ keep their UUID rows locally and ride as an identity map inside the parcel,
103
+ while the cloud registry carries the one `repo.git` record.
104
+
99
105
  ## Relationship to amalgm-engine
100
106
 
101
107
  Stage 1 cut the bricks out of the engine. Stage 2 proves them here, composed.
@@ -0,0 +1,20 @@
1
+ import { type LocalRepoState, type RepoIdentityEntry, type RepoState } from "@amalgm/live";
2
+ /** A `.git` directory or linked-worktree file is evidence only when Git says
3
+ * this exact directory is the worktree root. Stale marker files remain
4
+ * ordinary folder ground. */
5
+ export declare function isRepository(directory: string): boolean;
6
+ export interface PriorRepositoryTransport {
7
+ readonly stateId: string;
8
+ readonly transportVersion: string;
9
+ readonly bytes: Uint8Array;
10
+ }
11
+ export interface CapturedRepositoryTransport extends PriorRepositoryTransport {
12
+ readonly state: RepoState;
13
+ }
14
+ /** Capture one semantic repository state. An unchanged state and identity map
15
+ * reuse their prior immutable transport head; a new state creates one Git
16
+ * bundle parcel, never one cloud object per worktree file. */
17
+ export declare function captureRepository(repository: string, identity: readonly RepoIdentityEntry[], prior: PriorRepositoryTransport | null): CapturedRepositoryTransport;
18
+ /** Materialize and then re-derive the semantic ids. Only a proved return is
19
+ * accepted as the repository state described by the transport. */
20
+ export declare function applyRepository(repository: string, bytes: Uint8Array): LocalRepoState;
@@ -0,0 +1,282 @@
1
+ import { createHash } from "node:crypto";
2
+ import { execFileSync } from "node:child_process";
3
+ import { chmodSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, realpathSync, rmSync, symlinkSync, writeFileSync, } from "node:fs";
4
+ import { tmpdir } from "node:os";
5
+ import { dirname, join, resolve } from "node:path";
6
+ import { deriveCardId, deriveCheckpointId, deriveStateId, transportBytes, unpack, } from "@amalgm/live";
7
+ const MAX_GIT_BUFFER = 512 * 1024 * 1024;
8
+ const EMPTY_TREE = "4b825dc642cb6eb9a060e54bf8d69288fbee4904";
9
+ const BUSY_MARKERS = [
10
+ "MERGE_HEAD",
11
+ "rebase-merge",
12
+ "rebase-apply",
13
+ "CHERRY_PICK_HEAD",
14
+ "REVERT_HEAD",
15
+ ];
16
+ const sha256Hex = (input) => createHash("sha256").update(input).digest("hex");
17
+ function runGit(cwd, args, input) {
18
+ try {
19
+ return execFileSync("git", [...args], {
20
+ cwd,
21
+ input,
22
+ maxBuffer: MAX_GIT_BUFFER,
23
+ stdio: ["pipe", "pipe", "pipe"],
24
+ env: { ...process.env, GIT_TERMINAL_PROMPT: "0" },
25
+ });
26
+ }
27
+ catch (error) {
28
+ const failure = error;
29
+ const stderr = failure.stderr?.toString("utf8").trim();
30
+ failure.message = `git ${args.join(" ")} failed${stderr ? `: ${stderr}` : ""}`;
31
+ throw failure;
32
+ }
33
+ }
34
+ function tryGit(cwd, args) {
35
+ try {
36
+ return runGit(cwd, args);
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ const gitText = (cwd, args) => runGit(cwd, args).toString("utf8").trim();
43
+ function tryGitText(cwd, args) {
44
+ const value = tryGit(cwd, args);
45
+ return value === null ? null : value.toString("utf8").trim();
46
+ }
47
+ /** A `.git` directory or linked-worktree file is evidence only when Git says
48
+ * this exact directory is the worktree root. Stale marker files remain
49
+ * ordinary folder ground. */
50
+ export function isRepository(directory) {
51
+ if (!existsSync(join(directory, ".git")))
52
+ return false;
53
+ const top = tryGitText(directory, ["rev-parse", "--show-toplevel"]);
54
+ if (!top)
55
+ return false;
56
+ try {
57
+ return realpathSync(top) === realpathSync(directory);
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ function refList(repository, prefix) {
64
+ const output = tryGitText(repository, ["for-each-ref", "--format=%(refname:short) %(objectname)", prefix]);
65
+ if (!output)
66
+ return [];
67
+ return output.split("\n").map((line) => {
68
+ const separator = line.lastIndexOf(" ");
69
+ return { name: line.slice(0, separator), commit: line.slice(separator + 1) };
70
+ }).sort((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0);
71
+ }
72
+ function remoteList(repository) {
73
+ const output = tryGitText(repository, ["config", "--get-regexp", "^remote\\..*\\.url$"]);
74
+ if (!output)
75
+ return [];
76
+ return output.split("\n").map((line) => {
77
+ const separator = line.indexOf(" ");
78
+ return { name: line.slice(7, separator - 4), url: line.slice(separator + 1) };
79
+ }).sort((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0);
80
+ }
81
+ function untrackedFiles(repository) {
82
+ const output = runGit(repository, ["ls-files", "--others", "--exclude-standard", "-z"])
83
+ .toString("utf8");
84
+ return output.split("\0").filter(Boolean).sort().flatMap((relativePath) => {
85
+ if (relativePath.endsWith("/"))
86
+ return [];
87
+ const absolutePath = join(repository, relativePath);
88
+ try {
89
+ const stats = lstatSync(absolutePath);
90
+ if (stats.isSymbolicLink()) {
91
+ const content = Buffer.from(readlinkSync(absolutePath), "utf8");
92
+ return [{ path: relativePath, mode: "120000", content, sha256: sha256Hex(content) }];
93
+ }
94
+ if (stats.isDirectory())
95
+ return [];
96
+ const content = readFileSync(absolutePath);
97
+ return [{
98
+ path: relativePath,
99
+ mode: stats.mode & 0o111 ? "100755" : "100644",
100
+ content,
101
+ sha256: sha256Hex(content),
102
+ }];
103
+ }
104
+ catch (error) {
105
+ if (error.code === "ENOENT")
106
+ return [];
107
+ throw error;
108
+ }
109
+ });
110
+ }
111
+ function bundle(repository) {
112
+ const commit = tryGitText(repository, ["rev-parse", "-q", "--verify", "HEAD"]);
113
+ if (!commit)
114
+ return null;
115
+ const scratch = mkdtempSync(join(tmpdir(), "amalgm-repo-bundle-"));
116
+ const file = join(scratch, "repository.bundle");
117
+ try {
118
+ runGit(repository, ["bundle", "create", file, "--all", "HEAD"]);
119
+ const bytes = readFileSync(file);
120
+ return { bytes, sha256: sha256Hex(bytes) };
121
+ }
122
+ finally {
123
+ rmSync(scratch, { recursive: true, force: true });
124
+ }
125
+ }
126
+ function busyMarker(repository) {
127
+ const gitDirectory = resolve(repository, gitText(repository, ["rev-parse", "--git-dir"]));
128
+ return BUSY_MARKERS.find((marker) => existsSync(join(gitDirectory, marker))) ?? null;
129
+ }
130
+ function captureState(repository, withBundle) {
131
+ const busy = busyMarker(repository);
132
+ if (busy)
133
+ throw new Error(`repository is busy: ${busy}`);
134
+ const branch = tryGitText(repository, ["symbolic-ref", "-q", "--short", "HEAD"]);
135
+ const commit = tryGitText(repository, ["rev-parse", "-q", "--verify", "HEAD"]);
136
+ const card = {
137
+ version: 1,
138
+ head: { branch, commit, detached: branch === null && commit !== null },
139
+ branches: refList(repository, "refs/heads"),
140
+ tags: refList(repository, "refs/tags"),
141
+ remotes: remoteList(repository),
142
+ bundle: withBundle ? bundle(repository) : null,
143
+ };
144
+ const checkpoint = {
145
+ baseCommit: commit,
146
+ branch,
147
+ stagedPatch: runGit(repository, [
148
+ "diff", "--cached", "--binary", "--full-index", commit ? "HEAD" : EMPTY_TREE,
149
+ ]),
150
+ unstagedPatch: runGit(repository, ["diff", "--binary", "--full-index"]),
151
+ untracked: untrackedFiles(repository),
152
+ };
153
+ const cardId = deriveCardId(card, sha256Hex);
154
+ const checkpointId = deriveCheckpointId(checkpoint, sha256Hex);
155
+ return {
156
+ stateId: deriveStateId(cardId, checkpointId, sha256Hex),
157
+ cardId,
158
+ checkpointId,
159
+ card,
160
+ checkpoint,
161
+ };
162
+ }
163
+ /** Capture one semantic repository state. An unchanged state and identity map
164
+ * reuse their prior immutable transport head; a new state creates one Git
165
+ * bundle parcel, never one cloud object per worktree file. */
166
+ export function captureRepository(repository, identity, prior) {
167
+ if (prior) {
168
+ const state = captureState(repository, false);
169
+ const previous = unpack(Buffer.from(prior.bytes).toString("utf8"));
170
+ if (state.stateId === prior.stateId
171
+ && previous.stateId === prior.stateId
172
+ && JSON.stringify(previous.identity ?? []) === JSON.stringify(identity)) {
173
+ return { ...prior, state };
174
+ }
175
+ }
176
+ const state = captureState(repository, true);
177
+ const bytes = Buffer.from(transportBytes(state, identity));
178
+ return {
179
+ state,
180
+ stateId: state.stateId,
181
+ transportVersion: sha256Hex(bytes),
182
+ bytes,
183
+ };
184
+ }
185
+ function fetchBundle(repository, state) {
186
+ const packed = state.card.bundle;
187
+ if (!packed)
188
+ return;
189
+ if (sha256Hex(packed.bytes) !== packed.sha256)
190
+ throw new Error("repository bundle checksum mismatch");
191
+ const scratch = mkdtempSync(join(tmpdir(), "amalgm-repo-apply-"));
192
+ const file = join(scratch, "repository.bundle");
193
+ writeFileSync(file, packed.bytes);
194
+ try {
195
+ runGit(repository, [
196
+ "fetch", "--quiet", file,
197
+ "+HEAD:refs/amalgm-import/HEAD",
198
+ "+refs/heads/*:refs/amalgm-import/heads/*",
199
+ "+refs/tags/*:refs/amalgm-import/tags/*",
200
+ ]);
201
+ }
202
+ finally {
203
+ rmSync(scratch, { recursive: true, force: true });
204
+ }
205
+ }
206
+ function forceRefs(repository, state) {
207
+ for (const ref of state.card.branches)
208
+ runGit(repository, ["update-ref", `refs/heads/${ref.name}`, ref.commit]);
209
+ for (const ref of state.card.tags)
210
+ runGit(repository, ["update-ref", `refs/tags/${ref.name}`, ref.commit]);
211
+ const keep = new Set([
212
+ ...state.card.branches.map((ref) => `refs/heads/${ref.name}`),
213
+ ...state.card.tags.map((ref) => `refs/tags/${ref.name}`),
214
+ ]);
215
+ const existing = tryGitText(repository, [
216
+ "for-each-ref", "--format=%(refname)", "refs/heads", "refs/tags", "refs/amalgm-import",
217
+ ]);
218
+ for (const ref of (existing ?? "").split("\n").filter(Boolean)) {
219
+ if (!keep.has(ref))
220
+ runGit(repository, ["update-ref", "-d", ref]);
221
+ }
222
+ }
223
+ function forceHead(repository, state) {
224
+ const { head } = state.card;
225
+ if (head.commit === null) {
226
+ if (!head.branch)
227
+ throw new Error("unborn repository state has no branch");
228
+ runGit(repository, ["symbolic-ref", "HEAD", `refs/heads/${head.branch}`]);
229
+ runGit(repository, ["read-tree", "--empty"]);
230
+ runGit(repository, ["clean", "-fdq"]);
231
+ return;
232
+ }
233
+ if (head.branch === null) {
234
+ runGit(repository, ["-c", "advice.detachedHead=false", "checkout", "--force", "--quiet", "--detach", head.commit]);
235
+ }
236
+ else {
237
+ runGit(repository, ["symbolic-ref", "HEAD", `refs/heads/${head.branch}`]);
238
+ runGit(repository, ["reset", "--hard", "--quiet"]);
239
+ }
240
+ runGit(repository, ["clean", "-fdq"]);
241
+ }
242
+ function applyCheckpoint(repository, state) {
243
+ if (state.checkpoint.stagedPatch.length > 0) {
244
+ runGit(repository, ["apply", "--index", "--binary", "--whitespace=nowarn"], state.checkpoint.stagedPatch);
245
+ }
246
+ if (state.checkpoint.unstagedPatch.length > 0) {
247
+ runGit(repository, ["apply", "--binary", "--whitespace=nowarn"], state.checkpoint.unstagedPatch);
248
+ }
249
+ for (const file of state.checkpoint.untracked) {
250
+ if (file.content === null)
251
+ throw new Error(`repository transport omitted untracked content for ${file.path}`);
252
+ const absolutePath = join(repository, file.path);
253
+ mkdirSync(dirname(absolutePath), { recursive: true });
254
+ if (file.mode === "120000") {
255
+ rmSync(absolutePath, { force: true });
256
+ symlinkSync(Buffer.from(file.content).toString("utf8"), absolutePath);
257
+ }
258
+ else {
259
+ writeFileSync(absolutePath, file.content);
260
+ chmodSync(absolutePath, file.mode === "100755" ? 0o755 : 0o644);
261
+ }
262
+ }
263
+ }
264
+ /** Materialize and then re-derive the semantic ids. Only a proved return is
265
+ * accepted as the repository state described by the transport. */
266
+ export function applyRepository(repository, bytes) {
267
+ const state = unpack(Buffer.from(bytes).toString("utf8"));
268
+ mkdirSync(repository, { recursive: true });
269
+ runGit(repository, ["init", "--quiet"]);
270
+ for (const remote of state.card.remotes)
271
+ runGit(repository, ["remote", "add", remote.name, remote.url]);
272
+ fetchBundle(repository, state);
273
+ forceRefs(repository, state);
274
+ forceHead(repository, state);
275
+ applyCheckpoint(repository, state);
276
+ const proof = captureState(repository, false);
277
+ if (proof.cardId !== state.cardId || proof.checkpointId !== state.checkpointId) {
278
+ throw new Error("materialized repository does not reproduce its declared state");
279
+ }
280
+ return state;
281
+ }
282
+ //# sourceMappingURL=git-repository-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-repository-host.js","sourceRoot":"","sources":["../src/git-repository-host.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,16 @@ import { createHash, randomUUID } from "node:crypto";
2
2
  import { existsSync, lstatSync, realpathSync, readFileSync, readdirSync, readlinkSync, rmSync, statSync, symlinkSync, watch, writeFileSync, } from "node:fs";
3
3
  import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
4
4
  import { buildUserHomeManifest, buildUserManifest, liveMachineStateDir, scopedAmalgmDir, shippedUserHomeDeclaration, } from "@amalgm/core/identity";
5
- import { CHUNK_BYTES, ENTITY_CLOUD_CONTRACT, ENTITY_CLOUD_SCHEMA_VERSION, canonicalVersion, checkContentManifest, classifyFile, convergeUserGround, createUserGroundEnrollmentPolicy, manifestFromChunks, membershipHash, parseSnapshot, privateEntityResourceId, sameRecords, snapshotFromRecords, stableJson, userGroundRecords, } from "@amalgm/live";
5
+ import { CHUNK_BYTES, ENTITY_CLOUD_CONTRACT, ENTITY_CLOUD_SCHEMA_VERSION, canonicalVersion, checkContentManifest, classifyDirectory, classifyFile, classifyRegisteredRoot, convergeUserGround, createUserGroundEnrollmentPolicy, isRepositoryMetadataEntry, manifestFromChunks, membershipHash, parseSnapshot, privateEntityResourceId, sameRecords, snapshotFromRecords, stableJson, travelingRecords, unpack, userGroundRecords, } from "@amalgm/live";
6
6
  import Database from "better-sqlite3";
7
7
  import { atomicWrite, ensurePrivateDir } from "./filesystem.js";
8
+ import { applyRepository, captureRepository, isRepository, } from "./git-repository-host.js";
8
9
  import { WireClient, WireRequestError } from "./wire-client.js";
9
10
  const PORTABLE_FIELDS = [
10
11
  "uuid", "type", "parentUUID", "name", "status", "version",
11
12
  "payloadVersion", "transportVersion",
12
13
  ];
13
- const SMALL_CONTENT_UPLOAD_CONCURRENCY = 128;
14
+ const SMALL_CONTENT_UPLOAD_CONCURRENCY = 16;
14
15
  /** The production Files port injected into Core. Portable identity remains in
15
16
  * Live; this class owns only Node filesystem, SQLite, Watch, and wire effects. */
16
17
  export class UserGroundHost {
@@ -283,8 +284,8 @@ export class UserGroundHost {
283
284
  async uploadSnapshotContent(identity, resourceId, records) {
284
285
  const cache = this.cacheDir(identity);
285
286
  const contentHeads = [...new Set(records
286
- .filter((record) => ["file.text", "file.binary", "link"].includes(record.type))
287
- .map((record) => record.payloadVersion)
287
+ .map((record) => record.type === "repo.git" ? record.transportVersion
288
+ : ["file.text", "file.binary", "link"].includes(record.type) ? record.payloadVersion : null)
288
289
  .filter((head) => typeof head === "string"))];
289
290
  const small = contentHeads.filter((contentHash) => statSync(join(cache, `${contentHash}.bin`)).size <= CHUNK_BYTES);
290
291
  const large = contentHeads.filter((contentHash) => statSync(join(cache, `${contentHash}.bin`)).size > CHUNK_BYTES);
@@ -440,7 +441,7 @@ export class UserGroundHost {
440
441
  database: this.databasePath(identity),
441
442
  cacheDir: this.cacheDir(identity),
442
443
  });
443
- const snapshot = snapshotFromRecords(mergeMaterializedRoots(state.records, localRecords));
444
+ const snapshot = snapshotFromRecords(travelingRecords(mergeMaterializedRoots(state.records, localRecords)));
444
445
  const checksum = sha256Hex(stableJson(snapshot));
445
446
  if (checksum === state.checksum)
446
447
  return;
@@ -775,6 +776,7 @@ function scanAndRegister(input) {
775
776
  rootUUID: coreUUID,
776
777
  rootName: identity.userEmail,
777
778
  rootPath: userRoot,
779
+ rootType: "workspace",
778
780
  database,
779
781
  cacheDir,
780
782
  policy,
@@ -806,6 +808,7 @@ function scanAndRegister(input) {
806
808
  rootUUID: workspaceId,
807
809
  rootName: existingRoot?.name || basename(rootPath),
808
810
  rootPath,
811
+ rootType: classifyRegisteredRoot({ repository: isRepository(rootPath) }),
809
812
  database,
810
813
  cacheDir,
811
814
  policy: () => true,
@@ -815,16 +818,16 @@ function scanAndRegister(input) {
815
818
  return portableRecords(database);
816
819
  }
817
820
  function scanRoot(input) {
818
- const { identity, resourceId, rootUUID, rootName, rootPath, database, cacheDir, policy, bindingDir, } = input;
821
+ const { identity, resourceId, rootUUID, rootName, rootPath, rootType, database, cacheDir, policy, bindingDir, seedByPath = new Map(), repositoryHeads = new Map(), persist = true, } = input;
819
822
  const existingByPath = new Map(readRows(database)
820
823
  .filter((row) => row.resourceId === resourceId && row.rootUUID === rootUUID)
821
- .map((row) => [row.relativePath, row.uuid]));
824
+ .map((row) => [row.relativePath, row]));
822
825
  const entries = [];
823
826
  const referenceWorkspaceIds = new Set();
824
827
  const rootStats = lstatSync(rootPath);
825
828
  entries.push({
826
829
  uuid: rootUUID,
827
- type: "workspace",
830
+ type: rootType,
828
831
  parentUUID: null,
829
832
  name: rootName,
830
833
  relativePath: "",
@@ -834,16 +837,20 @@ function scanRoot(input) {
834
837
  deviceNumber: rootStats.dev,
835
838
  inode: rootStats.ino,
836
839
  });
837
- const visit = (directory, parentUUID, base = "") => {
840
+ const visit = (directory, parentUUID, parentType, base = "") => {
838
841
  const children = readdirSync(directory, { withFileTypes: true })
839
842
  .sort((left, right) => left.name < right.name ? -1 : left.name > right.name ? 1 : 0);
840
843
  for (const child of children) {
844
+ if (isRepositoryMetadataEntry(parentType, child.name))
845
+ continue;
841
846
  const relativePath = base ? `${base}/${child.name}` : child.name;
842
847
  if (!policy(relativePath))
843
848
  continue;
844
849
  const absolutePath = join(directory, child.name);
845
850
  const stats = lstatSync(absolutePath);
846
- const uuid = existingByPath.get(relativePath) || randomUUID();
851
+ const existing = existingByPath.get(relativePath);
852
+ const seeded = seedByPath.get(relativePath);
853
+ const uuid = existing?.uuid || seeded?.uuid || randomUUID();
847
854
  let type;
848
855
  let payloadVersion = null;
849
856
  if (stats.isSymbolicLink()) {
@@ -861,7 +868,7 @@ function scanRoot(input) {
861
868
  }
862
869
  }
863
870
  else if (stats.isDirectory()) {
864
- type = existsSync(join(absolutePath, ".git")) ? "repo.git" : "folder";
871
+ type = classifyDirectory({ repository: isRepository(absolutePath) });
865
872
  }
866
873
  else if (stats.isFile()) {
867
874
  const bytes = readFileSync(absolutePath);
@@ -872,6 +879,11 @@ function scanRoot(input) {
872
879
  else {
873
880
  continue;
874
881
  }
882
+ if (seeded && seeded.type !== type
883
+ && !(["file.text", "file.binary"].includes(seeded.type)
884
+ && ["file.text", "file.binary"].includes(type))) {
885
+ throw new Error(`materialized entity ${relativePath} is ${type}, expected ${seeded.type}`);
886
+ }
875
887
  entries.push({
876
888
  uuid,
877
889
  type,
@@ -884,11 +896,64 @@ function scanRoot(input) {
884
896
  deviceNumber: stats.dev,
885
897
  inode: stats.ino,
886
898
  });
887
- if (stats.isDirectory() && !stats.isSymbolicLink())
888
- visit(absolutePath, uuid, relativePath);
899
+ if (stats.isDirectory() && !stats.isSymbolicLink()) {
900
+ visit(absolutePath, uuid, type, relativePath);
901
+ }
889
902
  }
890
903
  };
891
- visit(rootPath, rootUUID);
904
+ visit(rootPath, rootUUID, rootType);
905
+ const repositories = entries.filter((entry) => entry.type === "repo.git");
906
+ const properDescendantOf = (candidate, ancestor) => ancestor === "" ? candidate !== "" : candidate.startsWith(`${ancestor}/`);
907
+ const repositoryOwner = (entry) => repositories
908
+ .filter((repository) => repository.uuid !== entry.uuid
909
+ && properDescendantOf(entry.relativePath, repository.relativePath))
910
+ .sort((left, right) => right.relativePath.length - left.relativePath.length)[0] ?? null;
911
+ for (const repository of repositories) {
912
+ const repoIdentity = entries
913
+ .filter((entry) => repositoryOwner(entry)?.uuid === repository.uuid)
914
+ .map((entry) => ({
915
+ path: repository.relativePath
916
+ ? entry.relativePath.slice(repository.relativePath.length + 1)
917
+ : entry.relativePath,
918
+ uuid: entry.uuid,
919
+ type: entry.type,
920
+ }))
921
+ .sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0);
922
+ const seededHead = repositoryHeads.get(repository.uuid);
923
+ if (seededHead) {
924
+ if (sha256Hex(seededHead.bytes) !== seededHead.transportVersion) {
925
+ throw new Error(`repository transport ${repository.uuid} is corrupt`);
926
+ }
927
+ const state = unpack(Buffer.from(seededHead.bytes).toString("utf8"));
928
+ if (state.stateId !== seededHead.stateId
929
+ || JSON.stringify(state.identity ?? []) !== JSON.stringify(repoIdentity)) {
930
+ throw new Error(`repository transport ${repository.uuid} does not match its materialized identity`);
931
+ }
932
+ repository.payloadVersion = seededHead.stateId;
933
+ repository.transportVersion = seededHead.transportVersion;
934
+ immutableWrite(join(cacheDir, `${seededHead.transportVersion}.bin`), seededHead.bytes);
935
+ continue;
936
+ }
937
+ const priorRow = existingByPath.get(repository.relativePath);
938
+ let prior = null;
939
+ if (priorRow?.type === "repo.git" && priorRow.payloadVersion && priorRow.transportVersion) {
940
+ const priorPath = join(cacheDir, `${priorRow.transportVersion}.bin`);
941
+ if (existsSync(priorPath)) {
942
+ const bytes = readFileSync(priorPath);
943
+ if (sha256Hex(bytes) === priorRow.transportVersion) {
944
+ prior = {
945
+ stateId: priorRow.payloadVersion,
946
+ transportVersion: priorRow.transportVersion,
947
+ bytes,
948
+ };
949
+ }
950
+ }
951
+ }
952
+ const captured = captureRepository(repository.absolutePath, repoIdentity, prior);
953
+ repository.payloadVersion = captured.stateId;
954
+ repository.transportVersion = captured.transportVersion;
955
+ immutableWrite(join(cacheDir, `${captured.transportVersion}.bin`), captured.bytes);
956
+ }
892
957
  const children = new Map();
893
958
  for (const entry of entries) {
894
959
  if (entry.parentUUID === null)
@@ -925,8 +990,9 @@ function scanRoot(input) {
925
990
  inode: entry.inode,
926
991
  };
927
992
  });
928
- persistRows(database, identity, resourceId, rootUUID, rows);
929
- return { records: rows.map((row) => row.record), referenceWorkspaceIds: [...referenceWorkspaceIds] };
993
+ if (persist)
994
+ persistRows(database, identity, resourceId, rootUUID, rows);
995
+ return { records: rows.map((row) => row.record), rows, referenceWorkspaceIds: [...referenceWorkspaceIds] };
930
996
  }
931
997
  function portablePaths(records) {
932
998
  const byUuid = new Map(records.map((record) => [record.uuid, record]));
@@ -1018,13 +1084,26 @@ function installCloudGround(input) {
1018
1084
  }
1019
1085
  clearCoreMaterialization(userRoot);
1020
1086
  try {
1021
- const rows = await materializeRecords({
1087
+ const materialized = await materializeRecords({
1022
1088
  records,
1023
1089
  rootPath: userRoot,
1024
1090
  cacheDir,
1025
1091
  bindingDir: workspaceBindingDir(userRoot, identity.deviceId),
1026
1092
  readContent,
1027
1093
  });
1094
+ const rows = materialized.repositories.length > 0
1095
+ ? captureMaterializedGraph({
1096
+ identity,
1097
+ resourceId: cloud.resourceId,
1098
+ root: roots[0],
1099
+ records,
1100
+ repositories: materialized.repositories,
1101
+ rootPath: userRoot,
1102
+ database,
1103
+ cacheDir,
1104
+ bindingDir: workspaceBindingDir(userRoot, identity.deviceId),
1105
+ })
1106
+ : materialized.rows;
1028
1107
  persistRows(database, identity, cloud.resourceId, roots[0].uuid, rows);
1029
1108
  }
1030
1109
  catch (error) {
@@ -1037,6 +1116,23 @@ function installCloudGround(input) {
1037
1116
  }
1038
1117
  async function materializeRecords(input) {
1039
1118
  const { records, rootPath, cacheDir, bindingDir, readContent } = input;
1119
+ const repositories = [];
1120
+ const materializeRepository = async (record, destination) => {
1121
+ if (!record.payloadVersion || !record.transportVersion) {
1122
+ throw new Error(`cloud repository ${record.uuid} has no state transport`);
1123
+ }
1124
+ const bytes = await readContent(record.transportVersion);
1125
+ if (sha256Hex(bytes) !== record.transportVersion) {
1126
+ throw new Error(`cloud repository ${record.uuid} transport is corrupt`);
1127
+ }
1128
+ const state = unpack(bytes.toString("utf8"));
1129
+ if (state.stateId !== record.payloadVersion) {
1130
+ throw new Error(`cloud repository ${record.uuid} transport does not name its declared state`);
1131
+ }
1132
+ immutableWrite(join(cacheDir, `${record.transportVersion}.bin`), bytes);
1133
+ const applied = applyRepository(destination, bytes);
1134
+ repositories.push({ record, state: applied, bytes });
1135
+ };
1040
1136
  const paths = portablePaths(records);
1041
1137
  const ordered = [...records].sort((left, right) => {
1042
1138
  const leftPath = paths.get(left.uuid);
@@ -1051,13 +1147,21 @@ async function materializeRecords(input) {
1051
1147
  throw new Error(`cloud entity path escapes its workspace: ${relativePath}`);
1052
1148
  }
1053
1149
  if (record.parentUUID === null) {
1054
- ensurePrivateDir(destination);
1150
+ if (record.type === "repo.git")
1151
+ await materializeRepository(record, destination);
1152
+ else
1153
+ ensurePrivateDir(destination);
1055
1154
  }
1056
- else if (record.type === "folder" || record.type === "repo.git") {
1155
+ else if (record.type === "folder") {
1057
1156
  if (pathExists(destination))
1058
1157
  throw new Error(`cloud materialization conflicts with ${relativePath}`);
1059
1158
  ensurePrivateDir(destination);
1060
1159
  }
1160
+ else if (record.type === "repo.git") {
1161
+ if (pathExists(destination))
1162
+ throw new Error(`cloud materialization conflicts with ${relativePath}`);
1163
+ await materializeRepository(record, destination);
1164
+ }
1061
1165
  else if (record.type === "reference") {
1062
1166
  if (!record.payloadVersion || !UUID.test(record.payloadVersion)) {
1063
1167
  throw new Error(`cloud reference ${record.uuid} has no workspace identity`);
@@ -1085,7 +1189,7 @@ async function materializeRecords(input) {
1085
1189
  throw new Error(`materialization for ${record.type} requires its dedicated adapter`);
1086
1190
  }
1087
1191
  }
1088
- return records.map((record) => {
1192
+ const rows = records.map((record) => {
1089
1193
  const relativePath = paths.get(record.uuid);
1090
1194
  const absolutePath = relativePath ? join(rootPath, ...relativePath.split("/")) : rootPath;
1091
1195
  const stats = lstatSync(absolutePath);
@@ -1097,6 +1201,51 @@ async function materializeRecords(input) {
1097
1201
  inode: stats.ino,
1098
1202
  };
1099
1203
  });
1204
+ return { rows, repositories };
1205
+ }
1206
+ function captureMaterializedGraph(input) {
1207
+ const { identity, resourceId, root, records, repositories, rootPath, database, cacheDir, bindingDir, } = input;
1208
+ if (root.type !== "workspace" && root.type !== "repo.git") {
1209
+ throw new Error(`cloud root ${root.uuid} cannot be scanned as a workspace`);
1210
+ }
1211
+ const paths = portablePaths(records);
1212
+ const seedByPath = new Map();
1213
+ for (const record of records) {
1214
+ const path = paths.get(record.uuid);
1215
+ if (path)
1216
+ seedByPath.set(path, { uuid: record.uuid, type: record.type });
1217
+ }
1218
+ const repositoryHeads = new Map();
1219
+ for (const repository of repositories) {
1220
+ if (!repository.record.transportVersion || !repository.record.payloadVersion) {
1221
+ throw new Error(`cloud repository ${repository.record.uuid} has no transport identity`);
1222
+ }
1223
+ const base = paths.get(repository.record.uuid);
1224
+ for (const entry of repository.state.identity ?? []) {
1225
+ const path = [base, entry.path].filter(Boolean).join("/");
1226
+ seedByPath.set(path, { uuid: entry.uuid, type: entry.type });
1227
+ }
1228
+ repositoryHeads.set(repository.record.uuid, {
1229
+ stateId: repository.record.payloadVersion,
1230
+ transportVersion: repository.record.transportVersion,
1231
+ bytes: repository.bytes,
1232
+ });
1233
+ }
1234
+ return scanRoot({
1235
+ identity,
1236
+ resourceId,
1237
+ rootUUID: root.uuid,
1238
+ rootName: root.name,
1239
+ rootPath,
1240
+ rootType: root.type,
1241
+ database,
1242
+ cacheDir,
1243
+ policy: () => true,
1244
+ bindingDir,
1245
+ seedByPath,
1246
+ repositoryHeads,
1247
+ persist: false,
1248
+ }).rows;
1100
1249
  }
1101
1250
  async function installCloudWorkspace(input) {
1102
1251
  const { identity, database, cacheDir, bindingDir, resourceId, workspace, records, destinationParent, readContent, } = input;
@@ -1107,10 +1256,15 @@ async function installCloudWorkspace(input) {
1107
1256
  throw new Error(`local workspace ${workspace.uuid} has unresolved placement`);
1108
1257
  }
1109
1258
  const localRecords = existing.map((row) => Object.fromEntries(PORTABLE_FIELDS.map((field) => [field, row[field]])));
1110
- if (!sameRecords(localRecords, records)) {
1259
+ if (!sameRecords(travelingRecords(localRecords), records)) {
1111
1260
  throw new Error(`local workspace ${workspace.uuid} differs from its cloud graph`);
1112
1261
  }
1113
- return { path: root.absolutePath, rows: existing.length, alreadyMaterialized: true };
1262
+ return {
1263
+ path: root.absolutePath,
1264
+ rows: existing.length,
1265
+ records: localRecords,
1266
+ alreadyMaterialized: true,
1267
+ };
1114
1268
  }
1115
1269
  const parent = realpathSync(resolve(destinationParent));
1116
1270
  if (!statSync(parent).isDirectory())
@@ -1123,10 +1277,30 @@ async function installCloudWorkspace(input) {
1123
1277
  if (pathExists(binding))
1124
1278
  throw new Error(`workspace ${workspace.uuid} already has a local binding`);
1125
1279
  try {
1126
- const rows = await materializeRecords({ records, rootPath: destination, cacheDir, bindingDir, readContent });
1280
+ const materialized = await materializeRecords({
1281
+ records, rootPath: destination, cacheDir, bindingDir, readContent,
1282
+ });
1283
+ const rows = materialized.repositories.length > 0
1284
+ ? captureMaterializedGraph({
1285
+ identity,
1286
+ resourceId,
1287
+ root: workspace,
1288
+ records,
1289
+ repositories: materialized.repositories,
1290
+ rootPath: destination,
1291
+ database,
1292
+ cacheDir,
1293
+ bindingDir,
1294
+ })
1295
+ : materialized.rows;
1127
1296
  symlinkSync(destination, binding, "dir");
1128
1297
  persistRows(database, identity, resourceId, workspace.uuid, rows);
1129
- return { path: destination, rows: rows.length, alreadyMaterialized: false };
1298
+ return {
1299
+ path: destination,
1300
+ rows: rows.length,
1301
+ records: rows.map((row) => row.record),
1302
+ alreadyMaterialized: false,
1303
+ };
1130
1304
  }
1131
1305
  catch (error) {
1132
1306
  if (pathExists(binding))
@@ -1 +1 @@
1
- {"version":3,"file":"user-ground-host.js","sourceRoot":"","sources":["../src/user-ground-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-ground-host.js","sourceRoot":"","sources":["../src/user-ground-host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amalgm/shell",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "The Amalgm boot shell — the runtime assembled from published @amalgm SDK bricks. Composition and parity ground for the lego-driven engine rewrite.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -40,7 +40,7 @@
40
40
  "@amalgm/browser": "0.1.0",
41
41
  "@amalgm/chat": "0.1.2",
42
42
  "@amalgm/core": "0.2.0",
43
- "@amalgm/live": "0.2.2",
43
+ "@amalgm/live": "0.2.4",
44
44
  "@amalgm/tools": "0.1.3",
45
45
  "@anthropic-ai/claude-agent-sdk": "^0.3.224",
46
46
  "@homebridge/node-pty-prebuilt-multiarch": "0.13.1",