@paradigma-inc/flywheel 0.2.61 → 0.2.66

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.
Files changed (50) hide show
  1. package/package.json +1 -1
  2. package/skills/flywheel-repo/references/repository-commands.md +2 -2
  3. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js +19 -2
  4. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js.map +1 -1
  5. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js +94 -42
  6. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js.map +1 -1
  7. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +21 -13
  8. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
  9. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js +20 -27
  10. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js.map +1 -1
  11. package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -1
  12. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +55 -49
  13. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
  14. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +140 -8
  15. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
  16. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +141 -0
  17. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -0
  18. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js +351 -0
  19. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js.map +1 -0
  20. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +25 -11
  21. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
  22. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +128 -39
  23. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
  24. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +11 -4
  25. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
  26. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js +33 -3
  27. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js.map +1 -1
  28. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +14 -15
  29. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
  30. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js +52 -9
  31. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js.map +1 -1
  32. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js +12 -19
  33. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js.map +1 -1
  34. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +6 -5
  35. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
  36. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js +7 -1
  37. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js.map +1 -1
  38. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js +5 -0
  39. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js.map +1 -1
  40. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +5 -0
  41. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
  42. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +29 -9
  43. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
  44. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js +1 -4
  45. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js.map +1 -1
  46. package/src/runtime/vendor/flywheel-cli-dist/main.js +1 -3
  47. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
  48. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
  49. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
  50. package/src/runtime/vendor/manifest.json +5 -1
@@ -1,4 +1,4 @@
1
- import { randomUUID } from "node:crypto";
1
+ import { createHash, randomUUID } from "node:crypto";
2
2
  import path from "node:path";
3
3
  import { CliApprovalPendingError, CliLocalError, CliUsageError } from "../errors.js";
4
4
  import { CliHttpError } from "../http/client.js";
@@ -24,36 +24,37 @@ export class LocalRepositoryAdapter {
24
24
  const command = localCommand(method, suffix, options);
25
25
  return await this.dispatch(path.resolve(this.cwd(), repositoryPath), command.operation, command.arguments);
26
26
  };
27
- async installObject(repositoryPath, digest, bytes) {
28
- if (bytes.byteLength > MAX_OBJECT_BYTES) {
29
- throw new CliUsageError("local object install exceeds 10 MiB");
30
- }
31
- return await this.dispatch(path.resolve(this.cwd(), repositoryPath), "object_install", { digest, byte_length: bytes.byteLength }, bytes);
32
- }
33
27
  async downloadArtifact(repositoryPath, artifactId) {
34
28
  return this.dispatch(path.resolve(this.cwd(), repositoryPath), "artifact_download", { artifact_id: artifactId });
35
29
  }
36
- async captureGraph(repositoryPath) {
37
- const result = await this.dispatch(path.resolve(this.cwd(), repositoryPath), "pending_capture", {});
38
- const capture = result.capture;
39
- return {
40
- capture,
41
- readPrecondition: async (suffix, query) => {
42
- const command = localCommand("GET", suffix, { query });
43
- try {
44
- return renderProjection(command.operation, capture.pendingSnapshot, command.arguments, capture.stagingDigest);
45
- }
46
- catch (error) {
47
- throw localCommandError(error);
48
- }
49
- },
50
- };
51
- }
52
- async stageOperations(repositoryPath, operations, latestValues, capture) {
53
- return await this.dispatch(path.resolve(this.cwd(), repositoryPath), "stage", {
54
- operations,
55
- latest_values: latestValues,
56
- }, undefined, capture);
30
+ /**
31
+ * Runs one graph edit under the repository writer lock: `build` reads the pending graph captured
32
+ * after the lock is acquired, installs any objects it needs, and returns the operations to stage.
33
+ */
34
+ async editGraph(repositoryPath, build) {
35
+ return await this.dispatch(path.resolve(this.cwd(), repositoryPath), "edit", {}, async ({ capture, installObject }) => {
36
+ const { operations, latestValues } = await build({
37
+ repositoryId: capture.repositoryId,
38
+ readPrecondition: async (suffix, query) => {
39
+ const command = localCommand("GET", suffix, { query });
40
+ try {
41
+ return renderProjection(command.operation, capture.pendingSnapshot, command.arguments, capture.stagingDigest);
42
+ }
43
+ catch (error) {
44
+ throw localCommandError(error);
45
+ }
46
+ },
47
+ installObject: async (bytes) => {
48
+ if (bytes.byteLength > MAX_OBJECT_BYTES) {
49
+ throw new CliUsageError("local object install exceeds 10 MiB");
50
+ }
51
+ const digest = `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
52
+ await installObject(digest, bytes);
53
+ return digest;
54
+ },
55
+ });
56
+ return { operations, latest_values: latestValues };
57
+ });
57
58
  }
58
59
  async bootstrap(operation, params) {
59
60
  assertNodeVersion();
@@ -75,7 +76,7 @@ export class LocalRepositoryAdapter {
75
76
  return response;
76
77
  }
77
78
  async recoverDeparted(sourcePath, currentRepositoryId, directory) {
78
- const { assertDepartedRecoveryTarget, recoverDepartedWork } = await import("./runtime/recover-departed.js");
79
+ const { assertDepartedRecoveryTarget, assertRecoverableWork, recoverDepartedWork } = await import("./runtime/recover-departed.js");
79
80
  try {
80
81
  await assertDepartedRecoveryTarget(sourcePath, currentRepositoryId);
81
82
  }
@@ -84,12 +85,13 @@ export class LocalRepositoryAdapter {
84
85
  pull_id: randomUUID(),
85
86
  object_mode: "lazy",
86
87
  });
87
- try {
88
- await assertDepartedRecoveryTarget(sourcePath, currentRepositoryId);
89
- }
90
- catch (error) {
91
- throw localCommandError(error);
92
- }
88
+ }
89
+ // Rechecks the departure target and refuses before the destination clone exists.
90
+ try {
91
+ await assertRecoverableWork(sourcePath, currentRepositoryId);
92
+ }
93
+ catch (error) {
94
+ throw localCommandError(error);
93
95
  }
94
96
  const clone = await this.bootstrap("clone", {
95
97
  repository_id: currentRepositoryId,
@@ -106,7 +108,7 @@ export class LocalRepositoryAdapter {
106
108
  throw localCommandError(error);
107
109
  }
108
110
  }
109
- async dispatch(repositoryPath, operation, args, objectBytes, pendingCapture) {
111
+ async dispatch(repositoryPath, operation, args, edit) {
110
112
  assertNodeVersion();
111
113
  assertLocalPlatform();
112
114
  // This literal import follows the support gate and avoids a static SQLite dependency.
@@ -116,9 +118,8 @@ export class LocalRepositoryAdapter {
116
118
  connection: this.connection,
117
119
  requestId: randomUUID(),
118
120
  diagnosticsPath: this.diagnosticsPath,
119
- objectBytes,
120
121
  connectionProvider: this.connectionProvider,
121
- pendingCapture,
122
+ edit,
122
123
  });
123
124
  }
124
125
  catch (error) {
@@ -150,18 +151,10 @@ function localCommandError(error) {
150
151
  });
151
152
  }
152
153
  if (error instanceof RepositoryNodeTombstoneBlockedError) {
153
- return new CliLocalError(`Node ${error.nodeId} cannot be tombstoned: ${error.links.length === 1 ? "a lineage link still references" : `${error.links.length} lineage links still reference`} it (operation ${error.operationId}). No pending work changed.`, {
154
+ return new CliLocalError(`${error.reason} No pending work changed.`, {
154
155
  code: "repository_node_tombstone_blocked",
155
156
  cause: error,
156
- details: {
157
- node_id: error.nodeId,
158
- operation_id: error.operationId,
159
- lineage_links: error.links.map(link => ({
160
- parent_repository_id: link.parentRepositoryId,
161
- parent_node_id: link.parentNodeId,
162
- child_node_id: link.childNodeId,
163
- })),
164
- },
157
+ details: tombstoneBlockedDetails(error),
165
158
  });
166
159
  }
167
160
  if (error instanceof RepositoryRuntimeStateError) {
@@ -190,10 +183,24 @@ function localCommandError(error) {
190
183
  return new CliLocalError(error.message, {
191
184
  code: error.code ?? "repository_error",
192
185
  cause: error,
186
+ nextAction: error.nextAction,
187
+ // A wrapping refusal, such as a pending tombstone that no longer applies after a rebase, keeps the blocked node's details.
188
+ ...(error.cause instanceof RepositoryNodeTombstoneBlockedError ? { details: tombstoneBlockedDetails(error.cause) } : {}),
193
189
  });
194
190
  }
195
191
  return new CliLocalError(error instanceof Error ? error.message : "Local repository operation failed", { code: "repository_error", cause: error });
196
192
  }
193
+ function tombstoneBlockedDetails(error) {
194
+ return {
195
+ node_id: error.nodeId,
196
+ operation_id: error.operationId,
197
+ lineage_links: error.links.map(link => ({
198
+ parent_repository_id: link.parentRepositoryId,
199
+ parent_node_id: link.parentNodeId,
200
+ child_node_id: link.childNodeId,
201
+ })),
202
+ };
203
+ }
197
204
  function localCommand(method, suffix, options) {
198
205
  const arguments_ = method === "GET" ? queryArguments(options.query) : bodyArguments(options.body);
199
206
  if (method === "GET") {
@@ -231,7 +238,6 @@ function localCommand(method, suffix, options) {
231
238
  "/sync/purges": "purge",
232
239
  "/backups": "backup",
233
240
  "/gc": "gc",
234
- "/staging/operations": "stage",
235
241
  "/staging/discard": "staging:discard",
236
242
  }[suffix];
237
243
  if (operation) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/local/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/local/adapter.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ import { keysConflict, operationKey } from "./keys.js";
4
4
  import { localOperationNodeIds } from "../models/operation-identity.js";
5
5
  import { canonicalBytes, compareCodePoints, parseRepositoryJson } from "../models/encoding.js";
6
6
  import { isRecord } from "../models/constants.js";
7
+ import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
8
+ import { snapshotTables } from "../../store/snapshot/validate.js";
9
+ import { GRAPH_MEMBERSHIP, graphMembershipConflicts, graphMembershipPlan, NO_GRAPH_MEMBERSHIP_PLAN, } from "./graph-membership.js";
7
10
  function keyId(key) {
8
11
  return canonicalBytes(key).toString("hex");
9
12
  }
@@ -62,11 +65,36 @@ function conflictMapping(conflict) {
62
65
  function conflictKey(payload) {
63
66
  return payload.key.map(String);
64
67
  }
68
+ export function conflictOperationKey(conflict) {
69
+ return conflictKey(conflictMapping(conflict));
70
+ }
71
+ function pulledOperations(context) {
72
+ let local;
73
+ let remote;
74
+ return {
75
+ localOperations: [...context.localCommits].reverse().flatMap(commit => commit.operations),
76
+ remoteOperations: context.remoteCommits.flatMap(commit => commit.operations),
77
+ localTables: () => local ??= snapshotTables(context.localSnapshot),
78
+ remoteTables: () => remote ??= pulledSnapshotTables(context.remoteSnapshot),
79
+ };
80
+ }
81
+ /** Graph membership conflicts between the pulled remote history and the local unpublished commits. */
82
+ function detectGraphMembershipConflicts(context) {
83
+ return graphMembershipConflicts(pulledOperations(context));
84
+ }
65
85
  export function buildConflicts(input) {
86
+ // A key overlap wholly inside a graph_membership conflict is decided by that conflict's single choice.
87
+ const claimed = new Set(input.graphMembership.flatMap(conflict => conflict.localOperations.map(operation => operation.operationId)));
66
88
  const localByKey = operationsByKey(input.localCommitsNewestFirst);
67
89
  const remoteByKey = operationsByKey(input.remoteCommits);
68
90
  const conflicting = [...localByKey.values()]
69
- .filter(({ key }) => [...remoteByKey.values()].some((remote) => keysConflict(key, remote.key)));
91
+ .filter(({ key, operations }) => !operations.every(operation => claimed.has(operation.operationId)) &&
92
+ [...remoteByKey.values()].some((remote) => keysConflict(key, remote.key)))
93
+ .map(({ key, operations }) => ({
94
+ key,
95
+ localOperations: operations,
96
+ remoteOperations: [...remoteByKey.values()].filter((remote) => keysConflict(key, remote.key)).flatMap((remote) => remote.operations),
97
+ }));
70
98
  for (const commit of input.remoteCommits) {
71
99
  for (const operation of commit.operations) {
72
100
  if (operation.type !== "node.relocate.v1" ||
@@ -78,22 +106,39 @@ export function buildConflicts(input) {
78
106
  .flatMap(localCommit => localCommit.operations)
79
107
  .filter(localOperation => localOperationNodeIds(localOperation).includes(operation.payload.node_id));
80
108
  if (operations.length > 0 && !conflicting.some(({ key }) => key[0] === "departure" && key[1] === operation.payload.node_id)) {
81
- conflicting.push({ key: ["departure", operation.payload.node_id, operation.payload.target_repository_id], operations });
109
+ conflicting.push({
110
+ key: ["departure", operation.payload.node_id, operation.payload.target_repository_id],
111
+ localOperations: operations,
112
+ remoteOperations: [],
113
+ });
82
114
  }
83
115
  }
84
116
  }
117
+ for (const conflict of input.graphMembership) {
118
+ conflicting.push({
119
+ key: conflict.key,
120
+ localOperations: conflict.localOperations,
121
+ remoteOperations: conflict.remoteOperations,
122
+ details: {
123
+ kind: GRAPH_MEMBERSHIP,
124
+ removal_side: conflict.removalSide,
125
+ graph_node_ids: conflict.graphNodeIds,
126
+ edge_ids: conflict.edgeIds,
127
+ node_ids: conflict.nodeIds,
128
+ containment_ids: conflict.containmentIds,
129
+ },
130
+ });
131
+ }
85
132
  conflicting.sort((left, right) => compareKeys(left.key, right.key));
86
133
  const context = serializeRebaseContext(input.context);
87
- return conflicting.map(({ key, operations }, index) => {
88
- const remoteOperations = [...remoteByKey.values()]
89
- .filter((remote) => keysConflict(key, remote.key))
90
- .flatMap((remote) => remote.operations);
134
+ return conflicting.map(({ key, localOperations, remoteOperations, details }, index) => {
91
135
  const conflictId = deterministicConflictId(input.rebaseId, key);
92
136
  const payload = {
137
+ ...details,
93
138
  conflict_id: conflictId,
94
139
  context: index === 0 ? context : null,
95
140
  key,
96
- local_operations: operations.map((operation) => operation.toMapping()),
141
+ local_operations: localOperations.map((operation) => operation.toMapping()),
97
142
  rebase_id: input.rebaseId,
98
143
  remote_operations: remoteOperations.map((operation) => operation.toMapping()),
99
144
  resolution: null,
@@ -108,12 +153,22 @@ export function buildConflicts(input) {
108
153
  };
109
154
  });
110
155
  }
156
+ /** The conflicts between a rebase context's local history and its pulled commits, including graph_membership conflicts. */
157
+ export function conflictsForContext(repositoryId, rebaseId, context) {
158
+ return buildConflicts({
159
+ repositoryId, rebaseId, localCommitsNewestFirst: context.localCommits, remoteCommits: context.remoteCommits, context,
160
+ graphMembership: detectGraphMembershipConflicts(context),
161
+ });
162
+ }
111
163
  export function resolveConflictBytes(conflict, strategy, manualValue) {
112
164
  const payload = conflictMapping(conflict);
113
165
  if (strategy !== "local" && strategy !== "remote" && strategy !== "manual") {
114
166
  throw new RepositoryRebaseError("repository conflict strategy is invalid");
115
167
  }
116
168
  const key = payload.key;
169
+ if (payload.kind === GRAPH_MEMBERSHIP && strategy === "manual") {
170
+ throw new RepositoryRebaseError("a graph_membership conflict is resolved with --strategy local or remote; manual values apply only to node field conflicts");
171
+ }
117
172
  if (key[0] === "departure" && strategy !== "remote") {
118
173
  throw new RepositoryRebaseError(`repository departure conflict requires remote resolution. Run flywheel repo:recover-departed ${String(key[2])} <directory> --repo <source-checkout>.`);
119
174
  }
@@ -125,7 +180,7 @@ export function resolveConflictBytes(conflict, strategy, manualValue) {
125
180
  else if (manualValue !== null) {
126
181
  throw new RepositoryRebaseError("manual conflict value is invalid");
127
182
  }
128
- return canonicalBytes({ ...payload, resolution: { manual_value: manualValue, strategy } });
183
+ return { key: conflictKey(payload), canonicalBytes: canonicalBytes({ ...payload, resolution: { manual_value: manualValue, strategy } }) };
129
184
  }
130
185
  export function conflictContext(conflicts) {
131
186
  for (const conflict of conflicts) {
@@ -162,8 +217,85 @@ export function conflictResolutionByKey(conflicts) {
162
217
  }
163
218
  return result;
164
219
  }
220
+ /**
221
+ * Compares conflicts rebuilt from the current local history with the saved
222
+ * ones. A saved choice carries over only while the same local and remote
223
+ * operations participate; otherwise the conflict is open again.
224
+ */
225
+ export function recheckConflicts(saved, rebuilt) {
226
+ const savedById = new Map(saved.map((conflict) => [conflict.conflictId, conflict]));
227
+ const rebuiltIds = new Set(rebuilt.map((conflict) => conflict.conflictId));
228
+ const dropped = saved.filter((conflict) => !rebuiltIds.has(conflict.conflictId));
229
+ let changed = dropped.length > 0;
230
+ const conflicts = rebuilt.map((conflict) => {
231
+ const previous = savedById.get(conflict.conflictId);
232
+ if (previous === undefined) {
233
+ changed = true;
234
+ return conflict;
235
+ }
236
+ const before = conflictMapping(previous);
237
+ const after = conflictMapping(conflict);
238
+ if (!canonicalBytes(before.local_operations).equals(canonicalBytes(after.local_operations)) ||
239
+ !canonicalBytes(before.remote_operations).equals(canonicalBytes(after.remote_operations))) {
240
+ changed = true;
241
+ return conflict;
242
+ }
243
+ if (previous.state !== "resolved")
244
+ return conflict;
245
+ return { ...conflict, state: "resolved", canonicalBytes: canonicalBytes({ ...after, resolution: before.resolution }) };
246
+ });
247
+ return { conflicts, changed, dropped };
248
+ }
165
249
  export function resolutionDigest(conflicts) {
166
250
  const bytes = canonicalBytes(conflicts.map((conflict) => Buffer.from(conflict.canonicalBytes).toString("hex")));
167
251
  return `sha256:${createHash("sha256").update("flywheel.rebase-resolutions.v1\0").update(bytes).digest("hex")}`;
168
252
  }
253
+ function stringList(value) {
254
+ if (!Array.isArray(value) || !value.every(item => typeof item === "string")) {
255
+ throw new RepositoryRebaseError("repository conflict is corrupt");
256
+ }
257
+ return value;
258
+ }
259
+ /**
260
+ * Replay plan of every resolved graph_membership conflict. Throws repository_conflict_choice_unavailable
261
+ * when a chosen edge cannot be kept, so resolution and continuation apply the same checks.
262
+ */
263
+ export function graphMembershipReplayPlan(conflicts, loadContext) {
264
+ let input;
265
+ const drop = new Set();
266
+ const insertBefore = new Map();
267
+ for (const conflict of conflicts) {
268
+ const payload = conflictMapping(conflict);
269
+ if (payload.kind !== GRAPH_MEMBERSHIP)
270
+ continue;
271
+ if (input === undefined) {
272
+ const context = loadContext();
273
+ input = { ...pulledOperations(context), repositoryId: context.remoteSnapshot.repositoryId };
274
+ }
275
+ const resolution = payload.resolution;
276
+ const strategy = isRecord(resolution) ? resolution.strategy : undefined;
277
+ const removalSide = payload.removal_side;
278
+ if (strategy !== "local" && strategy !== "remote")
279
+ throw new RepositoryRebaseError("repository conflicts are unresolved");
280
+ if ((removalSide !== "local" && removalSide !== "remote") || !Array.isArray(payload.local_operations) ||
281
+ !payload.local_operations.every(operation => isRecord(operation) && typeof operation.operation_id === "string")) {
282
+ throw new RepositoryRebaseError("repository conflict is corrupt");
283
+ }
284
+ const plan = graphMembershipPlan({
285
+ conflictId: conflict.conflictId,
286
+ rebaseId: conflict.rebaseId,
287
+ strategy,
288
+ removalSide,
289
+ edgeIds: stringList(payload.edge_ids),
290
+ containmentIds: stringList(payload.containment_ids),
291
+ localOperationIds: payload.local_operations.map(operation => operation.operation_id),
292
+ }, input);
293
+ for (const operationId of plan.drop)
294
+ drop.add(operationId);
295
+ for (const [operationId, operations] of plan.insertBefore) {
296
+ insertBefore.set(operationId, [...insertBefore.get(operationId) ?? [], ...operations]);
297
+ }
298
+ }
299
+ return drop.size === 0 && insertBefore.size === 0 ? NO_GRAPH_MEMBERSHIP_PLAN : { drop, insertBefore };
300
+ }
169
301
  //# sourceMappingURL=conflicts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/conflicts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/conflicts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { RepositoryServiceError } from "../errors.js";
2
+ import { isRecord } from "../models/constants.js";
3
+ import { RepositoryOperation } from "../models/operations.js";
4
+ import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
5
+ import { snapshotRows } from "../../store/snapshot/schema.js";
6
+ import { snapshotTables } from "../../store/snapshot/validate.js";
7
+ const NO_REMOVED_EDGES = { restorations: new Map(), discarded: new Set() };
8
+ function row(tables, table, idColumn, id) {
9
+ return snapshotRows(tables, table).find(candidate => candidate[idColumn] === id);
10
+ }
11
+ /** The edge an operation needs to exist: the edge it changes, or the edge that owns the artifact it changes. */
12
+ export function edgeDependency(operation) {
13
+ const payload = operation.payload;
14
+ if (operation.type.startsWith("edge."))
15
+ return payload.edge_id;
16
+ if (isRecord(payload.owner) && payload.owner.owner_type === "edge")
17
+ return payload.owner.owner_id;
18
+ return undefined;
19
+ }
20
+ function relationOf(values) {
21
+ return {
22
+ graph_node_id: values.graph_node_id,
23
+ source_node_id: values.source_node_id,
24
+ target_node_id: values.target_node_id,
25
+ relation_digest: values.relation_digest,
26
+ };
27
+ }
28
+ const REFUSED_HISTORY = {
29
+ removed_locally: "the local commits also remove it",
30
+ removed_and_readded_locally: "the local commits remove it and add it again",
31
+ };
32
+ function localEdgeHistory(localCommitsNewestFirst, localTables, edgeId) {
33
+ const edgeOperations = [...localCommitsNewestFirst].reverse().flatMap(commit => commit.operations
34
+ .filter(operation => operation.type.startsWith("edge.") && operation.payload.edge_id === edgeId)
35
+ .map(operation => ({ commit, operation })));
36
+ const [first] = edgeOperations;
37
+ // Local history that adds the edge itself re-creates it when that addition replays.
38
+ if (first?.operation.type === "edge.add.v1")
39
+ return { kind: "replayed", relation: relationOf(first.operation.payload) };
40
+ const edge = row(localTables, "repository_semantic_edges", "edge_id", edgeId);
41
+ if (edge === undefined)
42
+ return { kind: "refused", reason: "removed_locally" };
43
+ if (edgeOperations.some(({ operation }) => operation.type === "edge.remove.v1")) {
44
+ return { kind: "refused", reason: "removed_and_readded_locally" };
45
+ }
46
+ // Without additions or removals, every local operation on the edge is a content edit.
47
+ if (first === undefined)
48
+ throw new RepositoryServiceError(`repository edge ${edgeId} has no local operation`);
49
+ return { kind: "restored", restoration: { edgeId, relation: relationOf(edge), firstEdit: first } };
50
+ }
51
+ function restoreRefusal(edgeId, rebaseId, problem, details) {
52
+ return new RepositoryServiceError(`Edge ${edgeId} cannot be restored: ${problem}. The conflict remains open.`, {
53
+ code: "repository_edge_restore_unavailable",
54
+ details: { edge_id: edgeId, ...details },
55
+ nextAction: "Resolve this conflict with --strategy remote to keep the edge removed, or run " +
56
+ `flywheel repo:rebase:abort ${rebaseId} to return to the state before the pull.`,
57
+ });
58
+ }
59
+ /** Plans each resolved edge conflict whose edge is absent from the pinned remote snapshot. */
60
+ export function removedEdges(resolutions, remoteSnapshot, localTables, localCommitsNewestFirst, rebaseId) {
61
+ const edgeResolutions = [...resolutions]
62
+ .filter(([key]) => key.length === 2 && key[0] === "edge")
63
+ .map(([[, edgeId], [strategy]]) => ({ edgeId, strategy }));
64
+ if (edgeResolutions.length === 0)
65
+ return NO_REMOVED_EDGES;
66
+ const remoteTables = pulledSnapshotTables(remoteSnapshot);
67
+ const restorations = new Map();
68
+ const discarded = new Set();
69
+ for (const { edgeId, strategy } of edgeResolutions) {
70
+ if (row(remoteTables, "repository_semantic_edges", "edge_id", edgeId) !== undefined)
71
+ continue;
72
+ if (strategy !== "local") {
73
+ discarded.add(edgeId);
74
+ continue;
75
+ }
76
+ const history = localEdgeHistory(localCommitsNewestFirst, localTables(), edgeId);
77
+ if (history.kind === "refused") {
78
+ throw restoreRefusal(edgeId, rebaseId, REFUSED_HISTORY[history.reason], { reason: history.reason });
79
+ }
80
+ if (history.kind === "restored")
81
+ restorations.set(edgeId, history.restoration);
82
+ }
83
+ return { restorations, discarded };
84
+ }
85
+ /** The edge.add.v1 that re-creates a removed edge with the first local edit's content. */
86
+ export function restoredEdgeOperation(restoration, operationId) {
87
+ return RepositoryOperation.fromMapping({
88
+ type: "edge.add.v1",
89
+ operation_id: operationId,
90
+ repository_id: restoration.firstEdit.operation.repositoryId,
91
+ edge_id: restoration.edgeId,
92
+ ...restoration.relation,
93
+ expected_relation_state: "absent",
94
+ content_digest: restoration.firstEdit.operation.payload.new_digest,
95
+ artifact_reference_digests: [],
96
+ });
97
+ }
98
+ function unavailableEndpoint(context, remoteTables, nodeId) {
99
+ const node = row(remoteTables, "repository_nodes", "node_id", nodeId);
100
+ if (node !== undefined) {
101
+ return node.lifecycle_state === "live" ? undefined : { state: node.lifecycle_state };
102
+ }
103
+ // This pull's remote commits are enough: local history holds or adds the edge, and local edges
104
+ // require their endpoint nodes, so every endpoint was still here before this pull.
105
+ const departure = context.remoteCommits.flatMap(commit => commit.operations).findLast(operation => operation.type === "node.relocate.v1" && operation.payload.node_id === nodeId &&
106
+ operation.payload.source_repository_id === context.remoteSnapshot.repositoryId);
107
+ return departure === undefined
108
+ ? { state: "missing" }
109
+ : { state: "departed", currentRepositoryId: departure.payload.target_repository_id };
110
+ }
111
+ /**
112
+ * Refuses a local resolution that could not restore the remotely removed edge,
113
+ * before the choice is recorded, so the conflict stays open.
114
+ */
115
+ export function assertEdgeRestorable(context, edgeId, rebaseId) {
116
+ const remoteTables = pulledSnapshotTables(context.remoteSnapshot);
117
+ if (row(remoteTables, "repository_semantic_edges", "edge_id", edgeId) !== undefined)
118
+ return;
119
+ const history = localEdgeHistory(context.localCommits, snapshotTables(context.localSnapshot), edgeId);
120
+ if (history.kind === "refused") {
121
+ throw restoreRefusal(edgeId, rebaseId, REFUSED_HISTORY[history.reason], { reason: history.reason });
122
+ }
123
+ const relation = history.kind === "restored" ? history.restoration.relation : history.relation;
124
+ for (const endpoint of ["graph", "source", "target"]) {
125
+ const nodeId = relation[`${endpoint}_node_id`];
126
+ const unavailable = unavailableEndpoint(context, remoteTables, nodeId);
127
+ if (unavailable === undefined)
128
+ continue;
129
+ const where = unavailable.currentRepositoryId === undefined
130
+ ? `is ${unavailable.state} in the remote repository`
131
+ : `departed to repository ${unavailable.currentRepositoryId}`;
132
+ throw restoreRefusal(edgeId, rebaseId, `its ${endpoint} node ${nodeId} ${where}`, {
133
+ reason: "endpoint_unavailable",
134
+ endpoint,
135
+ node_id: nodeId,
136
+ node_state: unavailable.state,
137
+ ...(unavailable.currentRepositoryId === undefined ? {} : { current_repository_id: unavailable.currentRepositoryId }),
138
+ });
139
+ }
140
+ }
141
+ //# sourceMappingURL=edge-restoration.js.map