@paradigma-inc/flywheel 0.2.51 → 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 (121) hide show
  1. package/package.json +1 -1
  2. package/skills/flywheel-repo/SKILL.md +1 -1
  3. package/skills/flywheel-repo/references/repository-commands.md +7 -6
  4. package/src/runtime/required-runtime-commands.json +1 -0
  5. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js +19 -2
  6. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js.map +1 -1
  7. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js +94 -42
  8. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js.map +1 -1
  9. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/hosted.js +2 -1
  10. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/hosted.js.map +1 -1
  11. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +108 -32
  12. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
  13. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js +1 -1
  14. package/src/runtime/vendor/flywheel-cli-dist/commands/registry.js.map +1 -1
  15. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js +20 -27
  16. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js.map +1 -1
  17. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js +7 -0
  18. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js.map +1 -1
  19. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js +20 -0
  20. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js.map +1 -1
  21. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-projection.js +5 -2
  22. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-projection.js.map +1 -1
  23. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-refusal-hints.js +20 -17
  24. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-refusal-hints.js.map +1 -1
  25. package/src/runtime/vendor/flywheel-cli-dist/commands/tombstone-recovery.js +17 -0
  26. package/src/runtime/vendor/flywheel-cli-dist/commands/tombstone-recovery.js.map +1 -0
  27. package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -1
  28. package/src/runtime/vendor/flywheel-cli-dist/errors.js +16 -0
  29. package/src/runtime/vendor/flywheel-cli-dist/errors.js.map +1 -1
  30. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +118 -60
  31. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
  32. package/src/runtime/vendor/flywheel-cli-dist/local/domain/errors.js +9 -0
  33. package/src/runtime/vendor/flywheel-cli-dist/local/domain/errors.js.map +1 -1
  34. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +140 -8
  35. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
  36. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +141 -0
  37. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -0
  38. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js +351 -0
  39. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js.map +1 -0
  40. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +25 -11
  41. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
  42. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +129 -40
  43. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
  44. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +11 -4
  45. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
  46. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/revert.js +16 -16
  47. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/revert.js.map +1 -1
  48. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/staging.js +9 -2
  49. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/staging.js.map +1 -1
  50. package/src/runtime/vendor/flywheel-cli-dist/local/errors.js +21 -0
  51. package/src/runtime/vendor/flywheel-cli-dist/local/errors.js.map +1 -0
  52. package/src/runtime/vendor/flywheel-cli-dist/local/fs/state.js +9 -11
  53. package/src/runtime/vendor/flywheel-cli-dist/local/fs/state.js.map +1 -1
  54. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js +38 -13
  55. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js.map +1 -1
  56. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/bootstrap.js +2 -1
  57. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/bootstrap.js.map +1 -1
  58. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +16 -16
  59. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
  60. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/core.js +3 -3
  61. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/core.js.map +1 -1
  62. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/maintenance.js +7 -0
  63. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/maintenance.js.map +1 -1
  64. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/projections.js +1 -0
  65. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/projections.js.map +1 -1
  66. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/projection.js +44 -8
  67. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/projection.js.map +1 -1
  68. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js +60 -11
  69. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js.map +1 -1
  70. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/purge.js +100 -5
  71. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/purge.js.map +1 -1
  72. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/push.js +8 -4
  73. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/push.js.map +1 -1
  74. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js +14 -24
  75. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js.map +1 -1
  76. package/src/runtime/vendor/flywheel-cli-dist/local/store/apply.js +6 -2
  77. package/src/runtime/vendor/flywheel-cli-dist/local/store/apply.js.map +1 -1
  78. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/archive.js +1 -8
  79. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/archive.js.map +1 -1
  80. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/backup.js +2 -1
  81. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/backup.js.map +1 -1
  82. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/restore.js +2 -1
  83. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/restore.js.map +1 -1
  84. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/retained-directory.js +1 -1
  85. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/retained-directory.js.map +1 -1
  86. package/src/runtime/vendor/flywheel-cli-dist/local/store/migrate.js +4 -4
  87. package/src/runtime/vendor/flywheel-cli-dist/local/store/migrate.js.map +1 -1
  88. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/steps.js +8 -3
  89. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/steps.js.map +1 -1
  90. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/versions.js +2 -2
  91. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/versions.js.map +1 -1
  92. package/src/runtime/vendor/flywheel-cli-dist/local/store/migrations/009_repository_backup_state.sql +8 -0
  93. package/src/runtime/vendor/flywheel-cli-dist/local/store/migrations.js +1 -0
  94. package/src/runtime/vendor/flywheel-cli-dist/local/store/migrations.js.map +1 -1
  95. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +10 -5
  96. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
  97. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/nodes.js +33 -16
  98. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/nodes.js.map +1 -1
  99. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/rules.js +87 -1
  100. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/rules.js.map +1 -1
  101. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js +7 -1
  102. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js.map +1 -1
  103. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/replace.js +6 -13
  104. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/replace.js.map +1 -1
  105. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js +5 -0
  106. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js.map +1 -1
  107. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +29 -0
  108. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
  109. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/schema.js +1 -0
  110. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/schema.js.map +1 -1
  111. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/store.js +38 -1
  112. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/store.js.map +1 -1
  113. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +33 -9
  114. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
  115. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js +8 -5
  116. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js.map +1 -1
  117. package/src/runtime/vendor/flywheel-cli-dist/main.js +84 -85
  118. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
  119. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
  120. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
  121. package/src/runtime/vendor/manifest.json +10 -1
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEjG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAuBlD,SAAS,KAAK,CAAC,GAAiB;IAC9B,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,KAAmB;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,OAAoC;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoE,CAAC;IAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,OAAO;gBAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;gBAC3C,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,GAAiB;IAClE,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC7B,MAAM,CAAC,+BAA+B,CAAC;SACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SACxD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SAC3B,MAAM,EAAE;SACR,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,SAAS,eAAe,CAAC,QAAwB;IAC/C,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,mBAAmB,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,qBAAqB,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC7F,OAAO,CAAC,MAAM,KAAK,iCAAiC;QACpD,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,QAAQ;QACtF,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qBAAqB,CAAC,gCAAgC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAQ,OAAO,CAAC,GAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;SACzC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB;gBACvC,SAAS,CAAC,OAAO,CAAC,oBAAoB,KAAK,KAAK,CAAC,YAAY;gBAC7D,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC7C,OAAO,SAAS,CAAC,OAAO,CAAC,oBAAoB,KAAK,QAAQ;gBAAE,SAAS;YACvE,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB;iBAC7C,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;iBAC9C,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC,CAAC;YACjH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5H,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;IACH,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,gBAAgB,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;aAC/C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;aACjD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG;YACd,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACrC,GAAG;YACH,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACtE,SAAS,EAAE,KAAK,CAAC,QAAQ;YACzB,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC7E,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,iCAAiC;SAC1C,CAAC;QACF,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,MAAe;YACtB,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAwB,EAAE,QAAgB,EAAE,WAA0B;IACzG,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3E,MAAM,IAAI,qBAAqB,CAAC,yCAAyC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAgB,CAAC;IACrC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,qBAAqB,CAC7B,gGAAgG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wCAAwC,CACvJ,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;YAChF,MAAM,IAAI,qBAAqB,CAAC,kCAAkC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,qBAAqB,CAAC,kCAAkC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAoC;IAClE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,IAAI,qBAAqB,CAAC,sCAAsC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAoC;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC;YAC1E,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,qBAAqB,CAAC,2CAA2C,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjE,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACpE,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC;oBACpC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAoC;IACnE,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChH,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACjH,CAAC"}
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-restoration.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/edge-restoration.ts"],"names":[],"mappings":"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"}