@ibgib/core-gib 0.1.57 → 0.1.59

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 (162) hide show
  1. package/dist/keystone/keystone-config-builder.d.mts +12 -1
  2. package/dist/keystone/keystone-config-builder.d.mts.map +1 -1
  3. package/dist/keystone/keystone-config-builder.mjs +58 -4
  4. package/dist/keystone/keystone-config-builder.mjs.map +1 -1
  5. package/dist/keystone/keystone-constants.d.mts +40 -5
  6. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  7. package/dist/keystone/keystone-constants.mjs +39 -5
  8. package/dist/keystone/keystone-constants.mjs.map +1 -1
  9. package/dist/keystone/keystone-helpers.d.mts +11 -1
  10. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  11. package/dist/keystone/keystone-helpers.mjs +37 -1
  12. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  13. package/dist/keystone/keystone-policy-types.d.mts +23 -0
  14. package/dist/keystone/keystone-policy-types.d.mts.map +1 -0
  15. package/dist/keystone/keystone-policy-types.mjs +2 -0
  16. package/dist/keystone/keystone-policy-types.mjs.map +1 -0
  17. package/dist/sync/graft-info/graft-info-helpers.respec.mjs +8 -8
  18. package/dist/sync/graft-info/graft-info-helpers.respec.mjs.map +1 -1
  19. package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs +22 -22
  20. package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs.map +1 -1
  21. package/dist/sync/sync-conflict-basic-divergence.respec.mjs +3 -3
  22. package/dist/sync/sync-conflict-basic-divergence.respec.mjs.map +1 -1
  23. package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs +6 -6
  24. package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs.map +1 -1
  25. package/dist/sync/sync-conflict-text-merge.respec.mjs +26 -26
  26. package/dist/sync/sync-conflict-text-merge.respec.mjs.map +1 -1
  27. package/dist/sync/sync-helpers.d.mts +19 -0
  28. package/dist/sync/sync-helpers.d.mts.map +1 -1
  29. package/dist/sync/sync-helpers.mjs +51 -1
  30. package/dist/sync/sync-helpers.mjs.map +1 -1
  31. package/dist/sync/sync-innerspace-constants.respec.mjs +2 -2
  32. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
  33. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +2 -2
  34. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  35. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +4 -4
  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.mjs +3 -3
  40. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
  41. package/dist/sync/sync-innerspace.respec.mjs +4 -4
  42. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  43. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts +5 -0
  44. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts.map +1 -1
  45. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs +24 -2
  46. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs.map +1 -1
  47. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts +5 -0
  48. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts.map +1 -1
  49. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs +21 -3
  50. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs.map +1 -1
  51. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +1 -1
  52. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +13 -1
  53. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
  54. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +40 -10
  55. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
  56. package/dist/sync/sync-peer/sync-peer-types.d.mts +81 -1
  57. package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
  58. package/dist/sync/sync-peer/sync-peer-v1.d.mts +37 -3
  59. package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
  60. package/dist/sync/sync-peer/sync-peer-v1.mjs +163 -23
  61. package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
  62. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-constants.d.mts +46 -0
  63. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-constants.d.mts.map +1 -0
  64. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-constants.mjs +45 -0
  65. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-constants.mjs.map +1 -0
  66. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.d.mts +30 -0
  67. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.d.mts.map +1 -0
  68. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mjs +2 -0
  69. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mjs.map +1 -0
  70. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts +68 -0
  71. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts.map +1 -0
  72. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs +324 -0
  73. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs.map +1 -0
  74. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts +85 -0
  75. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts.map +1 -0
  76. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs +332 -0
  77. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs.map +1 -0
  78. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-types.d.mts +29 -0
  79. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-types.d.mts.map +1 -0
  80. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mjs +2 -0
  81. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mjs.map +1 -0
  82. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.d.mts +44 -0
  83. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.d.mts.map +1 -0
  84. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mjs +303 -0
  85. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mjs.map +1 -0
  86. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +22 -5
  87. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
  88. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +223 -27
  89. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
  90. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +9 -0
  91. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
  92. package/dist/sync/sync-saga-coordinator.d.mts +41 -2
  93. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  94. package/dist/sync/sync-saga-coordinator.mjs +110 -11
  95. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  96. package/dist/sync/sync-types.d.mts +24 -0
  97. package/dist/sync/sync-types.d.mts.map +1 -1
  98. package/dist/sync/sync-types.mjs +0 -1
  99. package/dist/sync/sync-types.mjs.map +1 -1
  100. package/dist/sync/sync-withid.connect.respec.d.mts +12 -0
  101. package/dist/sync/sync-withid.connect.respec.d.mts.map +1 -0
  102. package/dist/sync/sync-withid.connect.respec.mjs +205 -0
  103. package/dist/sync/sync-withid.connect.respec.mjs.map +1 -0
  104. package/dist/sync/sync-withid.establish.respec.d.mts +19 -0
  105. package/dist/sync/sync-withid.establish.respec.d.mts.map +1 -0
  106. package/dist/sync/sync-withid.establish.respec.mjs +322 -0
  107. package/dist/sync/sync-withid.establish.respec.mjs.map +1 -0
  108. package/dist/sync/sync-withid.pingpong.respec.d.mts +11 -0
  109. package/dist/sync/sync-withid.pingpong.respec.d.mts.map +1 -0
  110. package/dist/sync/sync-withid.pingpong.respec.mjs +131 -0
  111. package/dist/sync/sync-withid.pingpong.respec.mjs.map +1 -0
  112. package/dist/witness/space/inner-space/inner-space-v1.d.mts.map +1 -1
  113. package/dist/witness/space/inner-space/inner-space-v1.mjs +1 -1
  114. package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -1
  115. package/package.json +4 -4
  116. package/src/keystone/keystone-config-builder.mts +73 -4
  117. package/src/keystone/keystone-constants.mts +42 -6
  118. package/src/keystone/keystone-helpers.mts +44 -2
  119. package/src/keystone/keystone-policy-types.mts +25 -0
  120. package/src/keystone/keystone-policy.schema.json +51 -0
  121. package/src/keystone/keystone-service-v1.mts +3 -3
  122. package/src/sync/docs/architecture.md +20 -0
  123. package/src/sync/docs/ping_pong_plan.md +147 -0
  124. package/src/sync/docs/security.md +207 -3
  125. package/src/sync/graft-info/graft-info-helpers.respec.mts +7 -7
  126. package/src/sync/sync-conflict-adv-multitimelines.respec.mts +21 -21
  127. package/src/sync/sync-conflict-basic-divergence.respec.mts +2 -2
  128. package/src/sync/sync-conflict-basic-multitimelines.respec.mts +5 -5
  129. package/src/sync/sync-conflict-text-merge.respec.mts +25 -25
  130. package/src/sync/sync-helpers.mts +51 -1
  131. package/src/sync/sync-innerspace-constants.respec.mts +1 -1
  132. package/src/sync/sync-innerspace-deep-updates.respec.mts +1 -1
  133. package/src/sync/sync-innerspace-dest-ahead.respec.mts +3 -3
  134. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +1 -1
  135. package/src/sync/sync-innerspace-partial-update.respec.mts +2 -2
  136. package/src/sync/sync-innerspace.respec.mts +3 -3
  137. package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mts +26 -2
  138. package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mts +23 -3
  139. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +1 -1
  140. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +47 -13
  141. package/src/sync/sync-peer/sync-peer-types.mts +87 -1
  142. package/src/sync/sync-peer/sync-peer-v1.mts +171 -32
  143. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-constants.mts +68 -0
  144. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mts +36 -0
  145. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mts +385 -0
  146. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mts +388 -0
  147. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mts +35 -0
  148. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mts +345 -0
  149. package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +223 -34
  150. package/src/sync/sync-saga-context/sync-saga-context-types.mts +9 -0
  151. package/src/sync/sync-saga-coordinator.mts +162 -6
  152. package/src/sync/sync-types.mts +28 -4
  153. package/src/sync/sync-withid.connect.respec.mts +243 -0
  154. package/src/sync/sync-withid.establish.respec.mts +361 -0
  155. package/src/sync/sync-withid.pingpong.respec.mts +161 -0
  156. package/src/sync/unused-identity-backup.mts.md +1 -1
  157. package/src/witness/space/inner-space/inner-space-v1.mts +4 -5
  158. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.d.mts +0 -2
  159. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.d.mts.map +0 -1
  160. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs +0 -310
  161. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs.map +0 -1
  162. package/src/sync/sync-innerspace-dest-ahead-withid.respec.mts +0 -364
@@ -1 +1 @@
1
- {"version":3,"file":"inner-space-v1.mjs","sourceRoot":"","sources":["../../../../src/witness/space/inner-space/inner-space-v1.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inner-space-v1.mjs","sourceRoot":"","sources":["../../../../src/witness/space/inner-space/inner-space-v1.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibgib/core-gib",
3
- "version": "0.1.57",
3
+ "version": "0.1.59",
4
4
  "description": "ibgib core functionality, including base architecture for witnesses, spaces, apps, robbots, etc., as well as shared utility functions. Node v19+ needed for heavily-used isomorphic webcrypto hashing consumed in both node and browsers.",
5
5
  "funding": {
6
6
  "type": "individual",
@@ -26,9 +26,9 @@
26
26
  "author": "William Raiford",
27
27
  "license": "ISC",
28
28
  "dependencies": {
29
- "@ibgib/encrypt-gib": "*",
30
- "@ibgib/helper-gib": "*",
31
- "@ibgib/ts-gib": "*"
29
+ "@ibgib/encrypt-gib": "^0.2.37",
30
+ "@ibgib/helper-gib": "^0.0.36",
31
+ "@ibgib/ts-gib": "^0.5.32"
32
32
  },
33
33
  "devDependencies": {},
34
34
  "engines": {
@@ -5,7 +5,10 @@ import {
5
5
  KeystonePoolConfig, KeystonePoolConfig_HashV1, KeystonePoolBehavior,
6
6
  KeystoneReplenishStrategy, KeystonePoolConfigBase, KeystoneChallengeType,
7
7
  } from './keystone-types.mjs';
8
- import { POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_CONFIG_DEFAULT_SIZE, KEYSTONE_CONFIG_DEFAULT_BINDING, KEYSTONE_CONFIG_DEFAULT_REPLENISH_STRATEGY, KEYSTONE_CONFIG_DEFAULT_SEQUENTIAL, KEYSTONE_CONFIG_DEFAULT_RANDOM, KEYSTONE_CONFIG_DEFAULT_SIZE_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_SEQUENTIAL_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_RANDOM_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_BINDING_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_REPLENISH_STRATEGY_HIGHSECURITY, KeystoneVerb, KEYSTONE_CONFIG_DEFAULT_HASH_ALGORITHM, KEYSTONE_CONFIG_DEFAULT_HASH_ROUNDS, KEYSTONE_CONFIG_DEFAULT_HASH_ALGORITHM_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_HASH_ROUNDS_HIGHSECURITY } from './keystone-constants.mjs';
8
+ import { POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_CONFIG_DEFAULT_SIZE, KEYSTONE_CONFIG_DEFAULT_BINDING, KEYSTONE_CONFIG_DEFAULT_REPLENISH_STRATEGY, KEYSTONE_CONFIG_DEFAULT_SEQUENTIAL, KEYSTONE_CONFIG_DEFAULT_RANDOM, KEYSTONE_CONFIG_DEFAULT_SIZE_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_SEQUENTIAL_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_RANDOM_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_BINDING_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_REPLENISH_STRATEGY_HIGHSECURITY, KeystoneVerb, KEYSTONE_CONFIG_DEFAULT_HASH_ALGORITHM, KEYSTONE_CONFIG_DEFAULT_HASH_ROUNDS, KEYSTONE_CONFIG_DEFAULT_HASH_ALGORITHM_HIGHSECURITY, KEYSTONE_CONFIG_DEFAULT_HASH_ROUNDS_HIGHSECURITY, POOL_ID_SYNC, POOL_ID_CONNECT, POOL_ID_MANAGE } from './keystone-constants.mjs';
9
+ import { KeystoneBehaviorProfileTemplate, KeystonePoolTemplate } from './keystone-policy-types.mjs';
10
+
11
+ export { KeystoneBehaviorProfileTemplate, KeystonePoolTemplate };
9
12
 
10
13
  const logalot = GLOBAL_LOG_A_LOT;
11
14
 
@@ -308,14 +311,80 @@ export function createHighSecurityPoolConfig(opts: KeystoneConfigFactoryOptions_
308
311
  export function createManagePoolConfig(opts: KeystoneConfigFactoryOptions_Standard): KeystonePoolConfig {
309
312
  return createHighSecurityPoolConfig({
310
313
  ...opts,
311
- verbs: [KeystoneVerb.MANAGE],
314
+ id: opts.id ?? POOL_ID_MANAGE,
315
+ verbs: opts.verbs ?? [KeystoneVerb.MANAGE],
312
316
  });
313
317
  }
314
318
 
315
319
  export function createRevocationPoolConfig(opts: KeystoneConfigFactoryOptions_Standard): KeystonePoolConfig {
316
320
  return createHighSecurityPoolConfig({
317
321
  ...opts,
318
- verbs: [KeystoneVerb.REVOKE],
319
- replenishStrategy: KeystoneReplenishStrategy.deleteAll,
322
+ id: opts.id ?? POOL_ID_REVOKE,
323
+ verbs: opts.verbs ?? [KeystoneVerb.REVOKE],
324
+ replenishStrategy: opts.replenishStrategy ?? KeystoneReplenishStrategy.deleteAll,
320
325
  });
321
326
  }
327
+
328
+ export function createSyncPoolConfig(opts: KeystoneConfigFactoryOptions_Standard): KeystonePoolConfig {
329
+ return createStandardPoolConfig({
330
+ ...opts,
331
+ id: opts.id ?? POOL_ID_SYNC,
332
+ verbs: opts.verbs ?? [KeystoneVerb.SYNC],
333
+ });
334
+ }
335
+
336
+ export function createConnectPoolConfig(opts: KeystoneConfigFactoryOptions_Standard): KeystonePoolConfig {
337
+ return createStandardPoolConfig({
338
+ ...opts,
339
+ id: opts.id ?? POOL_ID_CONNECT,
340
+ verbs: opts.verbs ?? [KeystoneVerb.CONNECT],
341
+ replenishStrategy: opts.replenishStrategy ?? KeystoneReplenishStrategy.deleteAll,
342
+ });
343
+ }
344
+
345
+ /**
346
+ * Builds a KeystonePoolConfig from a JSON-sourced KeystonePoolTemplate.
347
+ */
348
+ export function createPoolConfigFromJson({
349
+ template,
350
+ behaviorProfiles,
351
+ salt
352
+ }: {
353
+ template: KeystonePoolTemplate;
354
+ behaviorProfiles?: Record<string, KeystoneBehaviorProfileTemplate>;
355
+ salt: string;
356
+ }): KeystonePoolConfig {
357
+ let behavior: KeystoneBehaviorProfileTemplate | undefined;
358
+ if (template.behaviorProfile && behaviorProfiles) {
359
+ behavior = behaviorProfiles[template.behaviorProfile];
360
+ }
361
+ if (!behavior) {
362
+ behavior = template.behaviorInline;
363
+ }
364
+ if (!behavior) {
365
+ behavior = {
366
+ size: KEYSTONE_CONFIG_DEFAULT_SIZE,
367
+ replenish: KEYSTONE_CONFIG_DEFAULT_REPLENISH_STRATEGY,
368
+ selectSequentially: KEYSTONE_CONFIG_DEFAULT_SEQUENTIAL,
369
+ selectRandomly: KEYSTONE_CONFIG_DEFAULT_RANDOM,
370
+ targetBindingChars: KEYSTONE_CONFIG_DEFAULT_BINDING
371
+ };
372
+ }
373
+
374
+ return KeystoneConfig.hash()
375
+ .withId(template.id)
376
+ .withSalt(salt)
377
+ .withSize(behavior.size)
378
+ .withHybrid({
379
+ seqCount: behavior.selectSequentially,
380
+ randCount: behavior.selectRandomly,
381
+ })
382
+ .withTargetBinding(behavior.targetBindingChars)
383
+ .withReplenishStrategy(behavior.replenish)
384
+ .withHash({
385
+ algo: template.algo,
386
+ rounds: template.rounds
387
+ })
388
+ .forVerbs(template.allowedVerbs)
389
+ .build();
390
+ }
@@ -3,16 +3,12 @@ import { KeystoneReplenishStrategy } from "./keystone-types.mjs";
3
3
 
4
4
  export const KEYSTONE_ATOM = "keystone";
5
5
  export const KEYSTONE_POOL_ID_REGEXP = /^\w[\w\-.]*$/;
6
- /**
7
- * arbitrary 64 limit? only letters characters good
8
- */
9
- export const KEYSTONE_SALT_REGEXP = /^[a-zA-Z0-9]{1,64}$/;
6
+ export const KEYSTONE_SALT_REGEXP = /^[a-zA-Z0-9\-_]{1,64}$/;
10
7
  /**
11
8
  * arbitrary right now. don't want an easy DoS. this may still be too high.
12
9
  */
13
10
  export const KEYSTONE_HASH_MAX_ROUNDS = 1_000;
14
11
 
15
- // #region KeystoneVerb enum
16
12
  /**
17
13
  * @see {@link KeystoneVerb.REVOKE}
18
14
  */
@@ -25,10 +21,28 @@ export const KEYSTONE_VERB_MANAGE = "manage";
25
21
  * @see {@link KeystoneVerb.SIGN}
26
22
  */
27
23
  export const KEYSTONE_VERB_SIGN = "sign";
24
+ /**
25
+ * Used when a senderIdentity keystone authorizes a session keystone for a sync
26
+ * operation. The senderIdentity is evolved with a claim whose verb is `sync`,
27
+ * pointing to the session keystone genesis address.
28
+ *
29
+ * @see {@link KeystoneVerb.SYNC}
30
+ */
31
+ export const KEYSTONE_VERB_SYNC = "sync";
32
+ /**
33
+ * Used by the session keystone's `connect` pool to authorize the transport
34
+ * connect (e.g. WebSocket challenge/response). Consumed exactly once per
35
+ * sync session during `peer.connect()`.
36
+ *
37
+ * @see {@link KeystoneVerb.CONNECT}
38
+ */
39
+ export const KEYSTONE_VERB_CONNECT = "connect";
28
40
  export type KeystoneVerb =
29
41
  | typeof KEYSTONE_VERB_REVOKE
30
42
  | typeof KEYSTONE_VERB_MANAGE
31
- | typeof KEYSTONE_VERB_SIGN;
43
+ | typeof KEYSTONE_VERB_SIGN
44
+ | typeof KEYSTONE_VERB_SYNC
45
+ | typeof KEYSTONE_VERB_CONNECT;
32
46
 
33
47
  /**
34
48
  * Verbs that describe actions that can be authorized by a Keystone.
@@ -55,6 +69,16 @@ export const KeystoneVerb = {
55
69
  * This is the least of all privileges that can actually evolve a keystone.
56
70
  */
57
71
  SIGN: KEYSTONE_VERB_SIGN,
72
+ /**
73
+ * Used when a senderIdentity keystone authorizes a session keystone.
74
+ * The senderIdentity is evolved with a `sync` claim targeting S^Stjp.
75
+ */
76
+ SYNC: KEYSTONE_VERB_SYNC,
77
+ /**
78
+ * Used by the session keystone's `connect` pool for the transport
79
+ * connect (proof-of-possession). Consumed once per session.
80
+ */
81
+ CONNECT: KEYSTONE_VERB_CONNECT,
58
82
  } satisfies { [key: string]: KeystoneVerb };
59
83
  export const KEYSTONE_VERB_VALID_VALUES = Object.values(KeystoneVerb);
60
84
  export function isKeystoneVerb(value: string): value is KeystoneVerb {
@@ -70,6 +94,18 @@ export const POOL_ID_REVOKE = KEYSTONE_VERB_REVOKE;
70
94
  export const POOL_ID_MANAGE = KEYSTONE_VERB_MANAGE;
71
95
  export const POOL_ID_DEFAULT = "default";
72
96
  export const POOL_ID_DELEGATE = "delegate";
97
+ /**
98
+ * Pool ID for the session keystone's transport connect pool.
99
+ * Paired with {@link KEYSTONE_VERB_CONNECT}. Consumed once per sync session
100
+ * during `peer.connect()`.
101
+ */
102
+ export const POOL_ID_CONNECT = KEYSTONE_VERB_CONNECT;
103
+ /**
104
+ * Pool ID for the session keystone's per-turn signing pool.
105
+ * Paired with {@link KEYSTONE_VERB_SYNC}. Consumed once per outgoing sync
106
+ * context frame (Init, Delta, Commit, etc.).
107
+ */
108
+ export const POOL_ID_SYNC = KEYSTONE_VERB_SYNC;
73
109
  /**
74
110
  * **THESE SHOULD ONLY BE USED IN TEMPORARY/SESSION KEYSTONES.**
75
111
  * _this is because a receiver could intercept the stone, DoS participants and
@@ -1,6 +1,6 @@
1
1
  import { extractErrorMsg, hash, HashAlgorithm, pretty } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
2
2
  import { GIB } from "@ibgib/ts-gib/dist/V1/constants.mjs";
3
- import { Ib, TransformResult } from "@ibgib/ts-gib/dist/types.mjs";
3
+ import { Ib, IbGibAddr, TransformResult } from "@ibgib/ts-gib/dist/types.mjs";
4
4
  import { getIbAndGib, getIbGibAddr } from "@ibgib/ts-gib/dist/helper.mjs";
5
5
  import { validateIbGibIntrinsically } from "@ibgib/ts-gib/dist/V1/validate-helper.mjs";
6
6
  import { mut8 } from "@ibgib/ts-gib/dist/V1/transforms/mut8.mjs";
@@ -543,7 +543,7 @@ export async function validateChallengePool_typeHashRevealV1({ pool }: {
543
543
 
544
544
  const { algo, rounds, salt, } = pool.config as KeystonePoolConfig_HashV1;
545
545
 
546
- const validAlgos: HashAlgorithm[] = [HashAlgorithm.sha_256];
546
+ const validAlgos: HashAlgorithm[] = [HashAlgorithm.sha_256, HashAlgorithm.sha_512];
547
547
  if (algo) {
548
548
  if (!validAlgos.includes(algo)) {
549
549
  errors.push(`${lc} invalid hash algorithm (${algo}). Must be one of ${validAlgos}. (E: a22399ca3a68e63ffcc7507699be5826)`);
@@ -1116,3 +1116,45 @@ export async function validateKeystoneGraph({
1116
1116
  }
1117
1117
  }
1118
1118
 
1119
+ export async function getIdentity({
1120
+ addr,
1121
+ metaspace,
1122
+ space,
1123
+ }: {
1124
+ addr: IbGibAddr,
1125
+ metaspace: MetaspaceService,
1126
+ space: IbGibSpaceAny,
1127
+ }): Promise<KeystoneIbGib_V1 | undefined> {
1128
+ const lc = `[${getIdentity.name}]`;
1129
+ try {
1130
+ if (logalot) { console.log(`${lc} starting... (I: 7f1dac53ff4691cb08cd267bf75f4326)`); }
1131
+ const resGet = await metaspace.get({ addr, space });
1132
+ const identityIbGib = resGet.ibGibs?.at(0) as KeystoneIbGib_V1;
1133
+ if (identityIbGib) {
1134
+ if (!identityIbGib.data) { throw new Error(`(UNEXPECTED) identityIbGib.data falsy? (E: d2f188232cd3bafb873b89e3a25a4826)`); }
1135
+ // should actually be a `isKeystone` guard, but hey...
1136
+ if (!identityIbGib.ib.startsWith(KEYSTONE_ATOM)) {
1137
+ throw new Error(`invalid. does not start with ${KEYSTONE_ATOM} (E: 4523f8647cc139f8c49597fb86329426)`);
1138
+ }
1139
+ }
1140
+ return identityIbGib;
1141
+ } catch (error) {
1142
+ console.error(`${lc} ${extractErrorMsg(error)}`);
1143
+ throw error;
1144
+ } finally {
1145
+ if (logalot) { console.log(`${lc} complete.`); }
1146
+ }
1147
+ }
1148
+ export async function getIdentity_throwIfUndefined({
1149
+ addr,
1150
+ metaspace,
1151
+ space,
1152
+ }: {
1153
+ addr: IbGibAddr,
1154
+ metaspace: MetaspaceService,
1155
+ space: IbGibSpaceAny,
1156
+ }): Promise<KeystoneIbGib_V1> {
1157
+ const identityIbGib = await getIdentity({ metaspace, addr, space });
1158
+ if (!identityIbGib) { throw new Error(`addr (${addr}) not found in space: ${space.ib} (E: 7533682e805819cc78bdb0d8960be826)`); }
1159
+ return identityIbGib;
1160
+ }
@@ -0,0 +1,25 @@
1
+ import { HashAlgorithm } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
2
+ import { KeystoneReplenishStrategy, KeystoneChallengeType } from "./keystone-types.mjs";
3
+
4
+ export interface KeystoneBehaviorProfileTemplate {
5
+ size: number;
6
+ replenish: KeystoneReplenishStrategy;
7
+ selectSequentially: number;
8
+ selectRandomly: number;
9
+ targetBindingChars: number;
10
+ }
11
+
12
+ export interface KeystonePoolTemplate {
13
+ id: string;
14
+ allowedVerbs: string[];
15
+ behaviorProfile?: string; // Reference to a behavior profile key
16
+ behaviorInline?: KeystoneBehaviorProfileTemplate; // Or specify behavior inline
17
+ algo: HashAlgorithm;
18
+ rounds: number;
19
+ type?: KeystoneChallengeType;
20
+ }
21
+
22
+ export interface KeystonePolicyConfigTemplate {
23
+ behaviorProfiles?: Record<string, KeystoneBehaviorProfileTemplate>;
24
+ pools: Record<string, KeystonePoolTemplate>;
25
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "KeystonePolicyConfigTemplate",
4
+ "type": "object",
5
+ "properties": {
6
+ "behaviorProfiles": {
7
+ "type": "object",
8
+ "additionalProperties": {
9
+ "type": "object",
10
+ "properties": {
11
+ "size": { "type": "integer", "minimum": 1 },
12
+ "replenish": { "type": "string", "enum": ["top-up", "replace-all", "consume", "delete-all"] },
13
+ "selectSequentially": { "type": "integer", "minimum": 0 },
14
+ "selectRandomly": { "type": "integer", "minimum": 0 },
15
+ "targetBindingChars": { "type": "integer", "minimum": 0 }
16
+ },
17
+ "required": ["size", "replenish", "selectSequentially", "selectRandomly", "targetBindingChars"]
18
+ }
19
+ },
20
+ "pools": {
21
+ "type": "object",
22
+ "additionalProperties": {
23
+ "type": "object",
24
+ "properties": {
25
+ "id": { "type": "string" },
26
+ "allowedVerbs": {
27
+ "type": "array",
28
+ "items": { "type": "string" }
29
+ },
30
+ "behaviorProfile": { "type": "string" },
31
+ "behaviorInline": {
32
+ "type": "object",
33
+ "properties": {
34
+ "size": { "type": "integer", "minimum": 1 },
35
+ "replenish": { "type": "string", "enum": ["top-up", "replace-all", "consume", "delete-all"] },
36
+ "selectSequentially": { "type": "integer", "minimum": 0 },
37
+ "selectRandomly": { "type": "integer", "minimum": 0 },
38
+ "targetBindingChars": { "type": "integer", "minimum": 0 }
39
+ },
40
+ "required": ["size", "replenish", "selectSequentially", "selectRandomly", "targetBindingChars"]
41
+ },
42
+ "algo": { "type": "string", "enum": ["SHA-256", "SHA-512"] },
43
+ "rounds": { "type": "integer", "minimum": 1 },
44
+ "type": { "type": "string", "enum": ["hash-reveal-v1"] }
45
+ },
46
+ "required": ["id", "allowedVerbs", "algo", "rounds"]
47
+ }
48
+ }
49
+ },
50
+ "required": ["pools"]
51
+ }
@@ -256,10 +256,10 @@ export class KeystoneService_V1 {
256
256
 
257
257
  /**
258
258
  * Retrieves the latest keystone frame for the given address.
259
- *
259
+ *
260
260
  * Uses `metaspace.getLatestAddr` to find the actual tip instead of trusting
261
261
  * an incoming payload's `past` rel8n.
262
- *
262
+ *
263
263
  * @see `ibgib-get-pattern` SKILL.md
264
264
  */
265
265
  async getLatestKeystone({
@@ -274,7 +274,7 @@ export class KeystoneService_V1 {
274
274
  const lc = `${this.lc}[${this.getLatestKeystone.name}]`;
275
275
  try {
276
276
  if (logalot) { console.log(`${lc} starting...`); }
277
-
277
+
278
278
  const latestAddr = await metaspace.getLatestAddr({ tjpAddr: addr, space });
279
279
  if (!latestAddr) {
280
280
  throw new Error(`could not find latest addr for ${addr}`);
@@ -68,6 +68,17 @@ The protocol supports two types of data:
68
68
 
69
69
  See [Security](./security.md) documentation.
70
70
 
71
+ ### 4.1 Ephemeral Session Domain-Binding
72
+ To prevent an ephemeral session keystone `S` from acting as a "blank check" that could authorize operations on arbitrary timelines, the protocol implements strict domain-binding:
73
+ * **Genesis Binding**: The first frame of the session keystone ($S^{Stjp}$) must explicitly contain a `targetAddrs` array inside its `frameDetails` mapping to the exact addresses of the ibgibs being synchronized.
74
+ * **Verification Boundary**: During the initial turn-based synchronization (e.g., `handleInitFrame`), the validating peer (Receiver) must extract this `targetAddrs` array from $S^{Stjp}$'s genesis `frameDetails` and verify it contains the synchronizing domain's target address, rejecting the handshake on any mismatch.
75
+
76
+ ## 5. Sync Peer Lifetime
77
+
78
+ A `SyncPeer` is **single-saga scoped**. One peer instance services exactly one `sync(...)` call from creation through saga completion. The coordinator's `newTestPeer()` factory pattern (or equivalent in production) must create a fresh peer per saga.
79
+
80
+ **Rationale**: The session keystone `S` is derived from `KDF(senderSecret, sagaId)`. Since `sagaId` is unique per saga, `S` is inherently saga-bound. A peer that outlived its saga would hold stale identity state, violating the security model.
81
+
71
82
  > [!WARNING]
72
83
  > ## 5. Sync Storage & Persistence Rules (Critical Security)
73
84
  >
@@ -88,3 +99,12 @@ See [Security](./security.md) documentation.
88
99
  > * **First step:** Intrinsically validate ibgibs (hashes, basic structure).
89
100
  > * **Second step:** Perform AuthN/AuthZ checks (using the session keystone).
90
101
  > * **Final step:** Once verified, saga "control" ibgibs (which only contain "soft" links to domain ibgibs) can be safely persisted to durable spaces.
102
+
103
+ ## 6. Transport & Framing (Naive WebSocket Implementation)
104
+
105
+ > [!NOTE]
106
+ > ### TODO: Robust WebSocket Framing & TCP Reassembly
107
+ > The current custom WebSocket integration on the node server (`ws-helper.mts`) relies on a naive framing implementation. It assumes each socket `data` event emitted by Node's TCP stream contains exactly one complete WebSocket frame.
108
+ >
109
+ > * **TCP Fragmentation Risk**: When payload sizes grow (e.g. sending larger cryptographic proofs or domain datasets), TCP will split the frame across multiple packets or buffers. The naive decoder will decode a partial frame, causing parse errors (e.g., `Unterminated string in JSON`).
110
+ > * **Future Action**: Replace the custom, naive WebSocket framing code with a robust stateful accumulator that aggregates incoming TCP chunks until the entire frame length (indicated in the frame header) is present in memory, or transition to a fully tested, production-grade library (such as the NPM `ws` package).
@@ -0,0 +1,147 @@
1
+ # Phase 3: Ping Pong Sync with Identity Plan
2
+
3
+ This document details the step-by-step execution flow, space-routing rules, and verification requirements for implementing Phase 3 (Basic Single-Timeline Sync with Identity).
4
+
5
+ ## Core Concepts & Terms
6
+ * **Durable Space**: Persistent local database/filesystem storage (`localSpace`).
7
+ * **Temporary Space**: In-memory or transient storage (`tempSpace`) used during the sync saga to accumulate uncommitted domain data.
8
+ * **Control/Saga IbGibs**: The sync saga timeline, saga message stones, context envelopes, and session identity evolutions. These represent the protocol communication and auditing trail.
9
+ * **Domain IbGibs**: The actual user timelines, files, or payload data being synchronized.
10
+ * **Sender (Alice / Initiator)**: The node that generates and signs all request turns using the ephemeral Session Keystone ($S$).
11
+ * **Receiver (Bob / Sovereign Broker / Reactor)**: The node that validates the sender's cryptographic turns and replies with unsigned contexts echoing the same session identity.
12
+
13
+ ### Note on "Domain" Overloaded Term
14
+
15
+ The term "domain" is overloaded at this point WRT sync and identity contexts. In this sync context, "domain" refers to ibgibs in the business logic domain, i.e., the actual data we're working with. This is in contrast to the identity context, in which "domain" means the identity boundary created with a main identity keystone. Neither usage is easily refactorable in code, hence the term overloading.
16
+
17
+ **TL;DR - Sync: "domain" vs "control". Identity: "domain" keystone vs. "session" keystone**
18
+
19
+ ---
20
+
21
+ ## Storage & Routing Rules (Security Boundary)
22
+
23
+ | IbGib Category | Target Space (Validation Phase) | Target Space (Commit Phase) | Rationale |
24
+ | :--- | :--- | :--- | :--- |
25
+ | **Control / Saga** | Durable Space (`localSpace`) | Durable Space (`localSpace`) | Must be persisted ASAP after authentication/validation per exchange between endpoints to maintain a tamper-evident audit trail, even if the sync fails midway. |
26
+ | **Domain Payloads** | Temporary Space (`tempSpace`) | Durable Space (`localSpace`) | Avoids polluting the durable space with unverified or partial data before a transaction successfully commits. |
27
+
28
+ ---
29
+
30
+ ## Detailed Leg-by-Leg Execution Flow
31
+
32
+ ```mermaid
33
+ sequenceDiagram
34
+ autonumber
35
+ actor Alice as Sender (Alice)
36
+ actor Bob as Receiver (Bob)
37
+
38
+ Note over Alice: Leg 1: Init (Sign & Post)
39
+ Alice->>Alice: Sign/Evolve S -> S_init
40
+ Alice->>Alice: Bind context.rel8ns.sessionIdentity = S_genesis
41
+ Alice->>Alice: Bind context.signedSessionIdentity = S_init
42
+ Alice->>Bob: Send Context (with S_init frame)
43
+ Note over Bob: Authenticate S_init independently
44
+ Bob->>Bob: Save Context & S_init to Durable Space
45
+
46
+ Note over Bob: Leg 2: Ack (Passive Validation)
47
+ Bob->>Bob: Prepare Ack context
48
+ Bob->>Bob: Bind context.rel8ns.sessionIdentity = S_init
49
+ Note over Bob: (No new evolution / signedSessionIdentity = undefined)
50
+ Bob->>Alice: Return Ack Context
51
+
52
+ Note over Alice: Leg 3: Delta (Sign & Payload)
53
+ Alice->>Alice: Process Ack requests
54
+ Alice->>Alice: Sign/Evolve S_init -> S_delta
55
+ Alice->>Alice: Bind context.rel8ns.sessionIdentity = S_init
56
+ Alice->>Alice: Bind context.signedSessionIdentity = S_delta
57
+ Alice->>Bob: Send Delta Context + Domain Payloads
58
+ Note over Bob: Authenticate S_delta independently
59
+ Bob->>Bob: Save Context & S_delta to Durable Space
60
+ Bob->>Bob: Save Domain Payloads to Temp Space
61
+
62
+ Note over Bob: Leg 4: Commit (Passive Verification)
63
+ Bob->>Bob: Prepare Commit context
64
+ Bob->>Bob: Bind context.rel8ns.sessionIdentity = S_delta
65
+ Bob->>Alice: Return Commit Context
66
+ Bob->>Bob: Move Domain Payloads (Temp -> Durable)
67
+ Alice->>Alice: Move Domain Payloads (Temp -> Durable)
68
+ ```
69
+
70
+ ### Leg 1: Init (Sender $\to$ Receiver)
71
+ 1. **Sender (Alice)**:
72
+ * [ ] Generates the `Init` message frame.
73
+ * [ ] Signs and evolves the session identity from $S_{genesis}$ to $S_{init}$ using the `sync` pool, targeting the `Init` context ibgib.
74
+ * [ ] Wraps the saga in a context:
75
+ * `context.rel8ns.sessionIdentity = [S_genesis_addr]`
76
+ * `context.signedSessionIdentity = S_init`
77
+ * [ ] Transmits the context to the peer. Note: We only transmit the single evolved `S_init` frame inside `signedSessionIdentity`.
78
+ 2. **Receiver (Bob)**:
79
+ * [ ] Receives the context.
80
+ * [ ] **Authentication**: Run `authenticateContext`.
81
+ * [ ] Retrieve the previous keystone frame ($S_{genesis}$) independently from Bob's own local registry (using the session identity address obtained via $I_1$'s claim), rather than trusting any path/history Alice sends.
82
+ * [ ] Validate the cryptographic evolution from $S_{genesis}$ to the incoming $S_{init}$ (sequential counters, signature verification).
83
+ * [ ] Verify the signature in $S_{init}$ targets the exact context address.
84
+ * [ ] **Persistence**: Ensure $S_{init}$ is saved to the durable space alongside the context/saga control ibgibs (already handled by the coordinator's sync state saving mechanism, but needs to include the new session identity frame).
85
+
86
+ ### Leg 2: Ack (Receiver $\to$ Sender)
87
+ 1. **Receiver (Bob)**:
88
+ * [ ] Creates the `Ack` message frame.
89
+ * [ ] Wraps it in an `Ack` context:
90
+ * `context.rel8ns.sessionIdentity = [S_init_addr]`
91
+ * `context.signedSessionIdentity = undefined` (Bob does *not* sign or evolve $S$).
92
+ * [ ] Transmits the `Ack` context to Alice.
93
+ 2. **Sender (Alice)**:
94
+ * [ ] Receives the `Ack` context.
95
+ * [ ] Processes the gap requests and prepares domain payloads.
96
+
97
+ ### Leg 3: Delta (Sender $\to$ Receiver)
98
+ 1. **Sender (Alice)**:
99
+ * [ ] Creates the `Delta` message frame.
100
+ * [ ] Signs and evolves the session identity from $S_{init}$ to $S_{delta}$, targeting the `Delta` context ibgib.
101
+ * [ ] Wraps it in a `Delta` context:
102
+ * `context.rel8ns.sessionIdentity = [S_init_addr]`
103
+ * `context.signedSessionIdentity = S_delta`
104
+ * [ ] Transmits the `Delta` context and the domain payloads.
105
+ 2. **Receiver (Bob)**:
106
+ * [ ] Receives the context and domain payloads.
107
+ * [ ] **Authentication**: Run `authenticateContext`.
108
+ * [ ] Retrieve $S_{init}$ independently from Bob's own local registry.
109
+ * [ ] Validate transition from $S_{init}$ to $S_{delta}$.
110
+ * [ ] Verify signature targets the `Delta` context address.
111
+ * [ ] **Persistence**:
112
+ * [ ] Ensure $S_{delta}$ is saved to the durable space alongside the control ibgibs.
113
+ * [ ] Save incoming domain payloads to **Temporary Space** (`tempSpace`).
114
+
115
+ ### Leg 4: Commit (Receiver $\to$ Sender)
116
+ 1. **Receiver (Bob)**:
117
+ * [ ] Creates the `Commit` message frame and context.
118
+ * [ ] Returns the `Commit` context to Alice.
119
+ * [ ] Commits the sync session: transfers all domain payloads from `tempSpace` to `localSpace` (Durable).
120
+ 2. **Sender (Alice)**:
121
+ * [ ] Receives the `Commit` context.
122
+ * [ ] Commits the sync session: transfers accumulated domain payloads from `tempSpace` to `localSpace` (Durable).
123
+
124
+ ---
125
+
126
+ ## Phase 3A: Step-by-Step Testing Plan
127
+
128
+ To prevent complexity explosion, we will implement this incrementally using a new test file: `libs/core-gib/src/sync/sync-withid.pingpong.respec.mts`.
129
+
130
+ ### Step 1: Scaffold & Establish
131
+ * [ ] Initialize a basic sync saga setup (two spaces, two coordinators, custom in-memory peer).
132
+ * [ ] Perform Phase 1 establish to load the sender identity $I$ and session identity $S_{genesis}$ into the spaces.
133
+ * [ ] Trigger `sync(...)`. Assert that the saga fails on Leg 1 due to unimplemented identity checks on the receiver.
134
+
135
+ ### Step 2: Implement Leg 1 Validation
136
+ * [ ] Implement `authenticateContext` on the sync peer receiver (or as a helper).
137
+ * [ ] Wire `authenticateContext` into the coordinator/peer incoming frame handler.
138
+ * [ ] Verify that Leg 1 completes without error and that the receiver successfully writes the saga/session frames to durable space.
139
+
140
+ ### Step 3: Implement Leg 2 & Leg 3 Validation
141
+ * [ ] Verify Alice processes the Ack and produces a Delta.
142
+ * [ ] Implement Alice's second evolution to $S_{delta}$ and verification of it by Bob.
143
+ * [ ] Verify domain payloads are successfully written to `tempSpace` during the Delta stage.
144
+
145
+ ### Step 4: Transactional Commit
146
+ * [ ] Implement the commit phase logic that transfers domain payloads from `tempSpace` to `localSpace` upon receipt/emission of the `Commit` frame.
147
+ * [ ] Assert that the final domain graphs on both sides are completely equivalent.