@ibgib/core-gib 0.1.18 → 0.1.20

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 (83) hide show
  1. package/dist/common/other/ibgib-helper.d.mts +13 -0
  2. package/dist/common/other/ibgib-helper.d.mts.map +1 -1
  3. package/dist/common/other/ibgib-helper.mjs +44 -0
  4. package/dist/common/other/ibgib-helper.mjs.map +1 -1
  5. package/dist/sync/merge-info/merge-info-constants.d.mts +2 -0
  6. package/dist/sync/merge-info/merge-info-constants.d.mts.map +1 -0
  7. package/dist/sync/merge-info/merge-info-constants.mjs +2 -0
  8. package/dist/sync/merge-info/merge-info-constants.mjs.map +1 -0
  9. package/dist/sync/merge-info/merge-info-helpers.d.mts +51 -0
  10. package/dist/sync/merge-info/merge-info-helpers.d.mts.map +1 -0
  11. package/dist/sync/merge-info/merge-info-helpers.mjs +92 -0
  12. package/dist/sync/merge-info/merge-info-helpers.mjs.map +1 -0
  13. package/dist/sync/merge-info/merge-info-helpers.respec.d.mts +2 -0
  14. package/dist/sync/merge-info/merge-info-helpers.respec.d.mts.map +1 -0
  15. package/dist/sync/merge-info/merge-info-helpers.respec.mjs +32 -0
  16. package/dist/sync/merge-info/merge-info-helpers.respec.mjs.map +1 -0
  17. package/dist/sync/merge-info/merge-info-types.d.mts +26 -0
  18. package/dist/sync/merge-info/merge-info-types.d.mts.map +1 -0
  19. package/dist/sync/merge-info/merge-info-types.mjs +2 -0
  20. package/dist/sync/merge-info/merge-info-types.mjs.map +1 -0
  21. package/dist/sync/strategies/conflict-optimistic.d.mts +37 -0
  22. package/dist/sync/strategies/conflict-optimistic.d.mts.map +1 -0
  23. package/dist/sync/strategies/conflict-optimistic.mjs +162 -0
  24. package/dist/sync/strategies/conflict-optimistic.mjs.map +1 -0
  25. package/dist/sync/sync-conflict.respec.d.mts +8 -0
  26. package/dist/sync/sync-conflict.respec.d.mts.map +1 -0
  27. package/dist/sync/sync-conflict.respec.mjs +158 -0
  28. package/dist/sync/sync-conflict.respec.mjs.map +1 -0
  29. package/dist/sync/sync-innerspace-constants.respec.d.mts +8 -0
  30. package/dist/sync/sync-innerspace-constants.respec.d.mts.map +1 -0
  31. package/dist/sync/sync-innerspace-constants.respec.mjs +116 -0
  32. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -0
  33. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +2 -3
  34. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  35. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +3 -3
  36. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
  37. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +2 -2
  38. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  39. package/dist/sync/sync-innerspace-partial-update.respec.d.mts +7 -0
  40. package/dist/sync/sync-innerspace-partial-update.respec.d.mts.map +1 -0
  41. package/dist/sync/sync-innerspace-partial-update.respec.mjs +116 -0
  42. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -0
  43. package/dist/sync/sync-innerspace.respec.mjs +5 -5
  44. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  45. package/dist/sync/sync-saga-coordinator.d.mts +23 -12
  46. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  47. package/dist/sync/sync-saga-coordinator.mjs +612 -95
  48. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  49. package/dist/sync/sync-saga-message/sync-saga-message-helpers.d.mts +11 -0
  50. package/dist/sync/sync-saga-message/sync-saga-message-helpers.d.mts.map +1 -1
  51. package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs +24 -0
  52. package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs.map +1 -1
  53. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +30 -0
  54. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
  55. package/dist/sync/sync-types.d.mts +31 -4
  56. package/dist/sync/sync-types.d.mts.map +1 -1
  57. package/dist/sync/sync-types.mjs.map +1 -1
  58. package/ibgib-foundations.md +129 -0
  59. package/package.json +1 -1
  60. package/roadmap.md +59 -0
  61. package/src/common/other/ibgib-helper.mts +52 -0
  62. package/src/keystone/README.md +13 -155
  63. package/src/keystone/docs/architecture.md +55 -0
  64. package/src/sync/README.md +37 -42
  65. package/src/sync/docs/architecture.md +69 -0
  66. package/src/sync/docs/verification.md +43 -0
  67. package/src/sync/merge-info/merge-info-constants.mts +1 -0
  68. package/src/sync/merge-info/merge-info-helpers.mts +134 -0
  69. package/src/sync/merge-info/merge-info-helpers.respec.mts +41 -0
  70. package/src/sync/merge-info/merge-info-types.mts +28 -0
  71. package/src/sync/strategies/conflict-optimistic.mts +208 -0
  72. package/src/sync/sync-conflict.respec.mts +194 -0
  73. package/src/sync/sync-innerspace-constants.respec.mts +133 -0
  74. package/src/sync/sync-innerspace-deep-updates.respec.mts +1 -2
  75. package/src/sync/sync-innerspace-dest-ahead.respec.mts +2 -2
  76. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +1 -1
  77. package/src/sync/sync-innerspace-partial-update.respec.mts +150 -0
  78. package/src/sync/sync-innerspace.respec.mts +4 -4
  79. package/src/sync/sync-saga-coordinator.mts +673 -103
  80. package/src/sync/sync-saga-message/sync-saga-message-helpers.mts +41 -0
  81. package/src/sync/sync-saga-message/sync-saga-message-types.mts +28 -0
  82. package/src/sync/sync-types.mts +33 -4
  83. package/tmp.md +2 -374
@@ -0,0 +1,162 @@
1
+ /**
2
+ * @module conflict-optimistic
3
+ *
4
+ * Implements the Optimistic Conflict Resolution Strategy.
5
+ *
6
+ * Logic:
7
+ * 1. findLCA: Traverses `past` to find common ancestor.
8
+ * 2. mergeDivergentTimelines: Replays DNA to create a merged tip.
9
+ */
10
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
11
+ import { getFromSpace } from '../../witness/space/space-helper.mjs';
12
+ import { mut8Timeline } from '../../timeline/timeline-api.mjs';
13
+ const lc = `[conflict-optimistic]`;
14
+ /**
15
+ * Finds the Last Common Ancestor (LCA) between two divergent timelines.
16
+ *
17
+ * Note: simplistic implementation assuming simple linear divergence.
18
+ * Complex DAGs might require more robust graph traversal.
19
+ */
20
+ export async function findLCA({ tipA, tipB, space, }) {
21
+ // 1. Load history for both
22
+ // Optimization: Just load 'past' array if available.
23
+ // Ideally we assume 'past' is full history for V1.
24
+ // Check if one is ancestor of another first?
25
+ const pastA = tipA.rel8ns?.past || [];
26
+ const pastB = tipB.rel8ns?.past || [];
27
+ const addrA = getIbGibAddr({ ibGib: tipA });
28
+ const addrB = getIbGibAddr({ ibGib: tipB });
29
+ // Is B in A's past?
30
+ if (pastA.includes(addrB)) {
31
+ return { lcaAddr: addrB, branchA: [], branchB: [] };
32
+ } // Not a divergence, just an update.
33
+ // Is A in B's past?
34
+ if (pastB.includes(addrA)) {
35
+ return { lcaAddr: addrA, branchA: [], branchB: [] };
36
+ }
37
+ // Find intersection
38
+ let lcaAddr;
39
+ // Iterate backwards through A's past
40
+ // The *latest* entry in A's past that is also in B's past (or is B itself, but we checked that)
41
+ // Actually, 'past' is usually ordered? V1 convention is accretive, so order matches evolution.
42
+ // But 'past' array order isn't strictly guaranteed by schema to be chronological, but robust implementations do so.
43
+ // Let's assume Set intersection.
44
+ const setPastB = new Set(pastB);
45
+ // Find the *latest* item in pastA that is in setPastB.
46
+ // We assume pastA is ordered [older -> newer].
47
+ for (let i = pastA.length - 1; i >= 0; i--) {
48
+ const candidate = pastA[i];
49
+ if (setPastB.has(candidate)) {
50
+ lcaAddr = candidate;
51
+ break;
52
+ }
53
+ }
54
+ if (!lcaAddr) {
55
+ // Fallback: check if they share the SAME TJP (they should if they are same timeline).
56
+ // If they share TJP but no common past, the TJP itself is the LCA.
57
+ const tjpA = tipA.rel8ns?.tjp?.[0];
58
+ const tjpB = tipB.rel8ns?.tjp?.[0];
59
+ if (tjpA && tjpA === tjpB) {
60
+ lcaAddr = tjpA;
61
+ }
62
+ else {
63
+ throw new Error(`No LCA found for divergences. Are they the same timeline? (E: 81aa17f0e34b4138ad1743a60a76f27b)`);
64
+ }
65
+ }
66
+ // 2. Reconstruct Branches
67
+ // We need the actual ibGib objects from LCA to Tips to inspect DNA.
68
+ // This requires fetching from Space.
69
+ // Helper to get path from LCA to Tip
70
+ const getPath = async (tip, past, lca) => {
71
+ const pathAddrs = [];
72
+ let foundLca = false;
73
+ for (const addr of past) {
74
+ if (foundLca) {
75
+ pathAddrs.push(addr);
76
+ }
77
+ else if (addr === lca) {
78
+ foundLca = true;
79
+ }
80
+ }
81
+ pathAddrs.push(getIbGibAddr({ ibGib: tip }));
82
+ // Fetch all
83
+ const res = await getFromSpace({ space, addrs: pathAddrs });
84
+ if (!res.success || !res.ibGibs) {
85
+ throw new Error(`Failed to fetch history branch. (E: 7904097405be4a27b871c5031631553c)`);
86
+ }
87
+ return res.ibGibs;
88
+ };
89
+ const branchA = await getPath(tipA, pastA, lcaAddr);
90
+ const branchB = await getPath(tipB, pastB, lcaAddr);
91
+ return { lcaAddr, branchA, branchB };
92
+ }
93
+ /**
94
+ * Optimistically merges two divergent timelines by inspecting DNA.
95
+ */
96
+ export async function mergeDivergentTimelines({ tipA, tipB, space, metaspace, }) {
97
+ // 1. Find LCA & Branches
98
+ const { lcaAddr, branchA, branchB } = await findLCA({ tipA, tipB, space });
99
+ // 2. DNA Analysis & Reducing
100
+ // We need to accumulate the "changes" from A and "changes" from B.
101
+ // For V1 simple objects, this means extracting the `dataToAddOrPatch` from each DNA transform.
102
+ const extractChanges = async (branch) => {
103
+ let accumulatedData = {};
104
+ for (const ibGib of branch) {
105
+ // Check DNA
106
+ const dnaRel = ibGib.rel8ns?.dna;
107
+ if (!dnaRel || dnaRel.length === 0)
108
+ continue;
109
+ // Load DNA (usually optimized to be in-memory if we just loaded the timeline?
110
+ // no, DNA is a separate stone. we might need to fetch it.)
111
+ const dnaRes = await getFromSpace({ space, addrs: dnaRel });
112
+ const dnaIbGibs = dnaRes.ibGibs || [];
113
+ for (const dna of dnaIbGibs) {
114
+ // Inspect DNA data.
115
+ // We expect 'mut8' transform DNA.
116
+ // The DNA *data* contains the args used in the transform.
117
+ if (dna.data && dna.data.dataToAddOrPatch) {
118
+ Object.assign(accumulatedData, dna.data.dataToAddOrPatch);
119
+ }
120
+ }
121
+ }
122
+ return accumulatedData;
123
+ };
124
+ const changesA = await extractChanges(branchA);
125
+ const changesB = await extractChanges(branchB);
126
+ // 3. Conflict Resolution Strategy (Optimistic: Merge All)
127
+ // Conflict collision: If A and B changed the SAME field.
128
+ // Strategy: Last Write Wins? Or deterministic tie-break?
129
+ // Let's default to: Apply A, then Apply B. B wins collisions.
130
+ // (Ideally we flag this for user review, but "Optimistic" means we presume it's fine).
131
+ const mergedChanges = { ...changesA, ...changesB };
132
+ // 4. Create Merge Transform
133
+ // We create a NEW mut8 on top of tipA (or tipB).
134
+ // Let's pick tipA as the "base" to apply the merge to.
135
+ // But we must also link tipB as an ancestor?
136
+ // Standard mut8Timeline only supports linear ancestry.
137
+ // We need a "Merge" transform that rel8s both.
138
+ // Use mut8Timeline on tipA, applying the *missing* changes from B,
139
+ // AND explicitly adding tipB to the 'ancestor' (or 'merge_ancestor'?) rel8n.
140
+ // Actually, simply applying 'mergedChanges' to tipA might be redundant for the parts A already did.
141
+ // We only need to apply 'changesB' to tipA?
142
+ // Wait, if B changed field-X to 'foo' and A touched field-Y.
143
+ // We apply changesB (foo) to tipA. Result has both.
144
+ // What if B changed field-X to 'foo' and A changed field-X to 'bar'.
145
+ // changesB overwrites. Result is 'foo'.
146
+ // So: Apply changesB to tipA.
147
+ const result = await mut8Timeline({
148
+ timeline: tipA,
149
+ mut8Opts: {
150
+ dataToAddOrPatch: changesB, // Apply B's changes onto A
151
+ // We want to record that B is also a parent.
152
+ // mut8Timeline might not expose 'otherAncestors'.
153
+ // required to verify this API capabilities.
154
+ },
155
+ space,
156
+ metaspace,
157
+ });
158
+ // Ideally we'd modify the result to add 'past' link to tipB.
159
+ // But for now, let's just achieve data convergence.
160
+ return result;
161
+ }
162
+ //# sourceMappingURL=conflict-optimistic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-optimistic.mjs","sourceRoot":"","sources":["../../../src/sync/strategies/conflict-optimistic.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module sync-conflict.respec
3
+ *
4
+ * Verifies Conflict Resolution strategies in SyncSagaCoordinator.
5
+ * Reproduces divergence scenarios and asserts resolution behavior.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=sync-conflict.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-conflict.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-conflict.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @module sync-conflict.respec
3
+ *
4
+ * Verifies Conflict Resolution strategies in SyncSagaCoordinator.
5
+ * Reproduces divergence scenarios and asserts resolution behavior.
6
+ */
7
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
8
+ const maam = `[${import.meta.url}]`, sir = maam;
9
+ import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
10
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
11
+ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
12
+ import { getFromSpace } from '../witness/space/space-helper.mjs';
13
+ import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
14
+ import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
15
+ import { createTimelineRootHelper, getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
16
+ import { mut8Timeline } from '../timeline/timeline-api.mjs';
17
+ import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
18
+ import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
19
+ import { SyncConflictStrategy } from './sync-types.mjs';
20
+ const logalot = true;
21
+ const lc = `[sync-conflict.respec]`;
22
+ await respecfully(sir, `Sync Conflict Resolution`, async () => {
23
+ let metaspace;
24
+ let sourceSpace;
25
+ let destSpace;
26
+ await respecfully(sir, `Scenario: Simple Divergence (Field A vs Field B)`, async () => {
27
+ // 1. Setup Spaces
28
+ metaspace = new Metaspace_Innerspace(undefined);
29
+ await metaspace.initialize({
30
+ getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
31
+ getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
32
+ getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
33
+ });
34
+ while (!metaspace.initialized) {
35
+ await delay(10);
36
+ }
37
+ const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
38
+ await defaultLocalUserSpace.initialized;
39
+ sourceSpace = new InnerSpace_V1({
40
+ ...DEFAULT_INNER_SPACE_DATA_V1,
41
+ name: 'source',
42
+ uuid: 'source_uuid',
43
+ description: 'source test space',
44
+ });
45
+ await sourceSpace.initialized;
46
+ destSpace = new InnerSpace_V1({
47
+ ...DEFAULT_INNER_SPACE_DATA_V1,
48
+ name: 'dest',
49
+ uuid: 'dest_uuid',
50
+ description: 'dest test space',
51
+ });
52
+ await destSpace.initialized;
53
+ // 2. Seed Common History (V0 -> V1)
54
+ console.log(`${lc} Creating Common History...`);
55
+ const root = await createTimelineRootHelper({
56
+ ib: 'timeline_root',
57
+ data: { type: 'root', text: 'v0' },
58
+ space: sourceSpace,
59
+ });
60
+ // Sync root to dest immediately so they start synced
61
+ await metaspace.put({ ibGib: root, space: destSpace });
62
+ await metaspace.registerNewIbGib({ ibGib: root, space: destSpace });
63
+ // Create V1 (Common)
64
+ const v1_Source = await mut8Timeline({
65
+ timeline: root,
66
+ mut8Opts: { dataToAddOrPatch: { text: 'v1_common' } },
67
+ metaspace,
68
+ space: sourceSpace,
69
+ });
70
+ // Sync V1 to dest
71
+ await metaspace.put({ ibGib: v1_Source, space: destSpace });
72
+ await metaspace.registerNewIbGib({ ibGib: v1_Source, space: destSpace });
73
+ const resGetDest = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: v1_Source }) });
74
+ if (!resGetDest.success || !resGetDest.ibGibs || resGetDest.ibGibs.length === 0) {
75
+ throw new Error(`Failed to retrieve v1_Dest from destSpace. (E: a1b2c3d4e5f6g7h8i9j0)`);
76
+ }
77
+ const v1_Dest = resGetDest.ibGibs[0];
78
+ // 3. Create Divergence (V2a vs V2b)
79
+ console.log(`${lc} Creating Divergence...`);
80
+ // Source: V1 -> V2a (Edit Field A)
81
+ const v2a = await mut8Timeline({
82
+ timeline: v1_Source,
83
+ mut8Opts: { dataToAddOrPatch: { fieldA: 'source_edit' } },
84
+ metaspace,
85
+ space: sourceSpace,
86
+ });
87
+ // Dest: V1 -> V2b (Edit Field B)
88
+ const v2b = await mut8Timeline({
89
+ timeline: v1_Dest,
90
+ mut8Opts: { dataToAddOrPatch: { fieldB: 'dest_edit' } },
91
+ metaspace,
92
+ space: destSpace,
93
+ });
94
+ // Verify Divergence
95
+ const tjpAddr = root.rel8ns.tjp[0]; // wait, root IS tjp, so no tjp rel8n...
96
+ // Actually root frame has isTjp: true.
97
+ // v1 has tjp: [v0_gib].
98
+ console.log(`${lc} Divergence created.`);
99
+ // 4. Run Sync (Optimistic)
100
+ console.log(`${lc} Setting up Coordinators...`);
101
+ const mockKeystone = await getTestKeystoneServiceHelper();
102
+ const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
103
+ const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
104
+ const peer = new SyncPeerInnerspace_V1({
105
+ senderSpace: sourceSpace,
106
+ receiverSpace: destSpace,
107
+ receiverCoordinator,
108
+ receiverMetaspace: metaspace,
109
+ });
110
+ // Verify Receiver has correct KV (Pre-Sync Check)
111
+ // This ensures the conflict precondition exists.
112
+ await ifWe(sir, 'verify receiver KV pre-sync', async () => {
113
+ const destKV = await receiverCoordinator.getKnowledgeVector({
114
+ space: destSpace,
115
+ metaspace,
116
+ domainIbGibs: [v1_Dest]
117
+ });
118
+ const v1TjpAddr = v1_Dest.rel8ns?.tjp?.[0] || getIbGibAddr({ ibGib: v1_Dest }); // v1 might be tjp if it was root, but here v1 is child of root
119
+ // Actually v1 has tjp rel8n.
120
+ const destTip = destKV[v1TjpAddr];
121
+ iReckon(sir, !!destTip).asTo(`Dest KV has timeline tip for ${v1TjpAddr}`).isGonnaBeTruthy();
122
+ if (!destTip) {
123
+ throw new Error(`Test Setup Fail: Dest Space does not have index for timeline ${v1TjpAddr}. Seeding failed. (E: 8a9b0c1d)`);
124
+ }
125
+ });
126
+ console.log(`${lc} Running Sync (ConflictStrategy: optimistic)...`);
127
+ let resSync;
128
+ try {
129
+ resSync = await senderCoordinator.sync({
130
+ peer,
131
+ source: sourceSpace,
132
+ dest: destSpace,
133
+ metaspace,
134
+ domainIbGibs: [v2a],
135
+ conflictStrategy: SyncConflictStrategy.optimistic,
136
+ // identity: undefined as any, // Not needed? If removed, it uses session identity.
137
+ // identitySecret: undefined as any,
138
+ // explicit useSessionIdentity: true is default
139
+ });
140
+ await resSync.done;
141
+ console.log(`${lc} Sync Complete.`);
142
+ }
143
+ catch (e) {
144
+ console.error(`${lc} Sync Failed with Error:`, e);
145
+ iReckon(sir, false).asTo(`Sync failed with error: ${e}`).isGonnaBeTruthy();
146
+ return; // Exit test early
147
+ }
148
+ // 5. Verification
149
+ // Expectation: Both Spaces should now have a NEW tip (V3) that merges V2a and V2b.
150
+ const resSourceTip = await getFromSpace({ space: sourceSpace, addr: getIbGibAddr({ ibGib: v2a }) });
151
+ await ifWe(sir, `verify merge happened`, async () => {
152
+ // We expect a new tip that is NOT v2a or v2b
153
+ // For now, valid failure is that this code doesn't start or completes without merge.
154
+ iReckon(sir, true).asTo('Merge Verification Not Yet Implemented').isGonnaBeFalse();
155
+ });
156
+ });
157
+ });
158
+ //# sourceMappingURL=sync-conflict.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-conflict.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-conflict.respec.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module sync-innerspace-constants.respec
3
+ *
4
+ * Verifies syncing "Constants" (ibGibs without timelines/TJPs).
5
+ * Also verifies Smart Diff behavior (Constants shouldn't be re-sent).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=sync-innerspace-constants.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace-constants.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-constants.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @module sync-innerspace-constants.respec
3
+ *
4
+ * Verifies syncing "Constants" (ibGibs without timelines/TJPs).
5
+ * Also verifies Smart Diff behavior (Constants shouldn't be re-sent).
6
+ */
7
+ import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
8
+ const maam = `[${import.meta.url}]`, sir = maam;
9
+ import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
10
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
11
+ import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
12
+ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
13
+ import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
14
+ import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
15
+ import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
16
+ import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
17
+ import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
18
+ import { getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
19
+ const lc = `[sync-innerspace-constants.respec]`;
20
+ await respecfully(sir, `Sync Constants (No TJP)`, async () => {
21
+ await ifWe(sir, `Verify Constants Sync`, async () => {
22
+ // 1. Setup Spaces
23
+ const metaspace = new Metaspace_Innerspace(undefined);
24
+ await metaspace.initialize({
25
+ getFnAlert: () => async ({ title, msg }) => { },
26
+ getFnPrompt: () => async ({ title, msg }) => { return ''; },
27
+ getFnPromptPassword: () => async (title, msg) => { return null; },
28
+ });
29
+ while (!metaspace.initialized) {
30
+ await delay(10);
31
+ }
32
+ const sourceSpace = new InnerSpace_V1({
33
+ ...DEFAULT_INNER_SPACE_DATA_V1,
34
+ name: 'source',
35
+ uuid: 'source_uuid',
36
+ description: 'source test space',
37
+ });
38
+ await sourceSpace.initialized;
39
+ const destSpace = new InnerSpace_V1({
40
+ ...DEFAULT_INNER_SPACE_DATA_V1,
41
+ name: 'dest',
42
+ uuid: 'dest_uuid',
43
+ description: 'dest test space',
44
+ });
45
+ await destSpace.initialized;
46
+ // 2. Create Constant (C1) in Source
47
+ // Factory_V1.constant returns Promise<IbGib_V1>, not { newIbGib: ... }
48
+ const c1 = await Factory_V1.constant({
49
+ ib: 'constant_c1',
50
+ parentPrimitiveIb: 'root',
51
+ data: { some: 'data' },
52
+ });
53
+ const addrC1 = getIbGibAddr({ ibGib: c1 });
54
+ await putInSpace({ space: sourceSpace, ibGibs: [c1] });
55
+ const checkDest1 = await getFromSpace({ space: destSpace, addr: addrC1 });
56
+ iReckon(sir, checkDest1.success).asTo('Dest initially does not have C1').isGonnaBeFalse();
57
+ // 3. Setup Coordinator
58
+ const mockKeystone = await getTestKeystoneServiceHelper();
59
+ const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
60
+ const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
61
+ const peer = new SyncPeerInnerspace_V1({
62
+ senderSpace: sourceSpace,
63
+ receiverSpace: destSpace,
64
+ receiverCoordinator: receiverCoordinator,
65
+ receiverMetaspace: metaspace,
66
+ });
67
+ // 4. Sync C1 (First Pass)
68
+ let resSync = await senderCoordinator.sync({
69
+ peer: peer,
70
+ localSpace: sourceSpace,
71
+ metaspace: metaspace,
72
+ domainIbGibs: [c1],
73
+ useSessionIdentity: false,
74
+ });
75
+ await resSync.done;
76
+ iReckon(sir, true).asTo('Sync execution 1 completes').isGonnaBeTrue();
77
+ // Verify C1 in Dest
78
+ const getC1Dest = await getFromSpace({ space: destSpace, addr: addrC1 });
79
+ iReckon(sir, getC1Dest.success && !!getC1Dest.ibGibs[0]).asTo('Dest has C1 after sync').isGonnaBeTrue();
80
+ // 5. Sync C1 (Second Pass - Idempotency / Smart Diff)
81
+ // Should NOT send payload again.
82
+ resSync = await senderCoordinator.sync({
83
+ peer: peer,
84
+ localSpace: sourceSpace,
85
+ metaspace: metaspace,
86
+ domainIbGibs: [c1],
87
+ useSessionIdentity: false,
88
+ });
89
+ await resSync.done;
90
+ iReckon(sir, true).asTo('Sync execution 2 (idempotent) completes').isGonnaBeTrue();
91
+ // 6. Create "Constant with Dependency" (C2 -> C1)
92
+ const c2 = await Factory_V1.constant({
93
+ ib: 'constant_c2',
94
+ parentPrimitiveIb: 'root',
95
+ rel8ns: {
96
+ link: [addrC1], // C2 links to C1
97
+ },
98
+ });
99
+ const addrC2 = getIbGibAddr({ ibGib: c2 });
100
+ await putInSpace({ space: sourceSpace, ibGibs: [c2] });
101
+ // Sync C2
102
+ resSync = await senderCoordinator.sync({
103
+ peer: peer,
104
+ localSpace: sourceSpace,
105
+ metaspace: metaspace,
106
+ domainIbGibs: [c2],
107
+ useSessionIdentity: false,
108
+ });
109
+ await resSync.done;
110
+ iReckon(sir, true).asTo('Sync C2 completes').isGonnaBeTrue();
111
+ // Verify C2 in Dest
112
+ const getC2Dest = await getFromSpace({ space: destSpace, addr: addrC2 });
113
+ iReckon(sir, getC2Dest.success).asTo('Dest has C2').isGonnaBeTrue();
114
+ });
115
+ });
116
+ //# sourceMappingURL=sync-innerspace-constants.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace-constants.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-constants.respec.mts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Verifies Complex Sync Scenarios using InnerSpace.
5
5
  */
6
- import { respecfully, iReckon, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
6
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
7
  const maam = `[${import.meta.url}]`, sir = maam;
8
8
  import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
9
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
@@ -92,12 +92,11 @@ await respecfully(sir, `Sync InnerSpaces (Deep Updates)`, async () => {
92
92
  localSpace: sourceSpace,
93
93
  metaspace: metaspace,
94
94
  domainIbGibs: [commentV2], // Sync the TIP
95
- useSessionIdentity: false,
96
95
  });
97
96
  await resSync.done;
98
97
  // 5. Verify Dest
99
98
  console.log(`${lc} Verifying Destination...`);
100
- await ifWeMight(sir, `verify deep timeline present`, async () => {
99
+ await ifWe(sir, `verify deep timeline present`, async () => {
101
100
  // Verify Tip (V2)
102
101
  const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
103
102
  iReckon(sir, getV2.success).asTo('Tip V2 present').isGonnaBeTrue();
@@ -1 +1 @@
1
- {"version":3,"file":"sync-innerspace-deep-updates.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-deep-updates.respec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-innerspace-deep-updates.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-deep-updates.respec.mts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Verifies Complex Sync Scenarios using InnerSpace.
5
5
  */
6
- import { respecfully, iReckon, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
6
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
7
  const maam = `[${import.meta.url}]`, sir = maam;
8
8
  import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
9
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
@@ -73,7 +73,7 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
73
73
  space: destSpace, // Mutate in Dest
74
74
  });
75
75
  const addrV2 = getIbGibAddr({ ibGib: v2 });
76
- await ifWeMight(sir, 'verify setup', async () => {
76
+ await ifWe(sir, 'verify setup', async () => {
77
77
  // Ensure V2 is ONLY in Dest (it is, per `space: destSpace`)
78
78
  // Ensure Source does NOT have V2
79
79
  const checkV2InSource = await getFromSpace({ space: sourceSpace, addr: addrV2 });
@@ -101,7 +101,7 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
101
101
  await resSync.done;
102
102
  // 5. Verify Dest (Should still have V2 as latest)
103
103
  console.log(`${lc} Verifying Destination...`);
104
- await ifWeMight(sir, `verify dest stays ahead`, async () => {
104
+ await ifWe(sir, `verify dest stays ahead`, async () => {
105
105
  // Verify Tip (V2)
106
106
  const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
107
107
  iReckon(sir, getV2.success).asTo('V2 still present in Dest').isGonnaBeTrue();
@@ -1 +1 @@
1
- {"version":3,"file":"sync-innerspace-dest-ahead.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-dest-ahead.respec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-innerspace-dest-ahead.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-dest-ahead.respec.mts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Verifies Complex Sync Scenarios using InnerSpace.
5
5
  */
6
- import { respecfully, iReckon, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
6
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
7
  const maam = `[${import.meta.url}]`, sir = maam;
8
8
  import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
9
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
@@ -106,7 +106,7 @@ await respecfully(sir, `Sync InnerSpaces (Multiple Timelines)`, async () => {
106
106
  // await delay(100); // Wait for flush?
107
107
  // 5. Verify Dest
108
108
  console.log(`${lc} Verifying Destination...`);
109
- await ifWeMight(sir, `verify timelines present`, async () => {
109
+ await ifWe(sir, `verify timelines present`, async () => {
110
110
  // Verify A
111
111
  const getA = await getFromSpace({ space: destSpace, addr: addrA });
112
112
  iReckon(sir, getA.success).asTo('Timeline A present').isGonnaBeTrue();