@ibgib/core-gib 0.1.57 → 0.1.58

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 (132) 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 +18 -0
  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-v1.d.mts +12 -0
  52. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
  53. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +34 -0
  54. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
  55. package/dist/sync/sync-peer/sync-peer-types.d.mts +69 -1
  56. package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
  57. package/dist/sync/sync-peer/sync-peer-v1.d.mts +30 -0
  58. package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
  59. package/dist/sync/sync-peer/sync-peer-v1.mjs +88 -1
  60. package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
  61. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.d.mts +30 -0
  62. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.d.mts.map +1 -0
  63. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mjs +2 -0
  64. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mjs.map +1 -0
  65. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts +66 -0
  66. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts.map +1 -0
  67. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs +280 -0
  68. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs.map +1 -0
  69. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts +85 -0
  70. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts.map +1 -0
  71. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs +332 -0
  72. package/dist/sync/sync-peer/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs.map +1 -0
  73. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-types.d.mts +29 -0
  74. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-types.d.mts.map +1 -0
  75. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mjs +2 -0
  76. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mjs.map +1 -0
  77. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.d.mts +42 -0
  78. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.d.mts.map +1 -0
  79. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mjs +282 -0
  80. package/dist/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mjs.map +1 -0
  81. package/dist/sync/sync-saga-coordinator.d.mts +35 -1
  82. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  83. package/dist/sync/sync-saga-coordinator.mjs +62 -1
  84. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  85. package/dist/sync/sync-withid.connect.respec.d.mts +12 -0
  86. package/dist/sync/sync-withid.connect.respec.d.mts.map +1 -0
  87. package/dist/sync/sync-withid.connect.respec.mjs +205 -0
  88. package/dist/sync/sync-withid.connect.respec.mjs.map +1 -0
  89. package/dist/sync/sync-withid.establish.respec.d.mts +19 -0
  90. package/dist/sync/sync-withid.establish.respec.d.mts.map +1 -0
  91. package/dist/sync/sync-withid.establish.respec.mjs +322 -0
  92. package/dist/sync/sync-withid.establish.respec.mjs.map +1 -0
  93. package/package.json +4 -4
  94. package/src/keystone/keystone-config-builder.mts +73 -4
  95. package/src/keystone/keystone-constants.mts +42 -6
  96. package/src/keystone/keystone-helpers.mts +44 -2
  97. package/src/keystone/keystone-policy-types.mts +25 -0
  98. package/src/keystone/keystone-policy.schema.json +51 -0
  99. package/src/keystone/keystone-service-v1.mts +3 -3
  100. package/src/sync/docs/architecture.md +20 -0
  101. package/src/sync/docs/security.md +207 -3
  102. package/src/sync/graft-info/graft-info-helpers.respec.mts +7 -7
  103. package/src/sync/sync-conflict-adv-multitimelines.respec.mts +21 -21
  104. package/src/sync/sync-conflict-basic-divergence.respec.mts +2 -2
  105. package/src/sync/sync-conflict-basic-multitimelines.respec.mts +5 -5
  106. package/src/sync/sync-conflict-text-merge.respec.mts +25 -25
  107. package/src/sync/sync-helpers.mts +51 -1
  108. package/src/sync/sync-innerspace-constants.respec.mts +1 -1
  109. package/src/sync/sync-innerspace-deep-updates.respec.mts +1 -1
  110. package/src/sync/sync-innerspace-dest-ahead.respec.mts +3 -3
  111. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +1 -1
  112. package/src/sync/sync-innerspace-partial-update.respec.mts +2 -2
  113. package/src/sync/sync-innerspace.respec.mts +3 -3
  114. package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mts +20 -0
  115. package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mts +23 -3
  116. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +38 -1
  117. package/src/sync/sync-peer/sync-peer-types.mts +70 -1
  118. package/src/sync/sync-peer/sync-peer-v1.mts +94 -1
  119. package/src/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mts +36 -0
  120. package/src/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mts +337 -0
  121. package/src/sync/sync-peer/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mts +388 -0
  122. package/src/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-types.mts +35 -0
  123. package/src/sync/sync-peer/sync-peer-websocket-sender/sync-peer-websocket-sender-v1.mts +321 -0
  124. package/src/sync/sync-saga-coordinator.mts +84 -0
  125. package/src/sync/sync-withid.connect.respec.mts +243 -0
  126. package/src/sync/sync-withid.establish.respec.mts +361 -0
  127. package/src/sync/unused-identity-backup.mts.md +1 -1
  128. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.d.mts +0 -2
  129. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.d.mts.map +0 -1
  130. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs +0 -310
  131. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs.map +0 -1
  132. package/src/sync/sync-innerspace-dest-ahead-withid.respec.mts +0 -364
@@ -7,6 +7,7 @@ import { SyncSagaContextData_V1, SyncSagaContextIbGib_V1, SyncSagaContextRel8ns_
7
7
  import { Witness_V1 } from '../../witness/witness-types.mjs';
8
8
  import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
9
9
  import { MetaspaceService } from '../../witness/space/metaspace/metaspace-types.mjs';
10
+ import { KeystoneIbGib_V1, KeystonePoolConfig } from '../../keystone/keystone-types.mjs';
10
11
  /**
11
12
  * Data for the SyncPeer witness.
12
13
  */
@@ -30,12 +31,28 @@ export interface SyncPeerIbGib_V1 extends IbGib_V1<SyncPeerData_V1, SyncPeerRel8
30
31
  * opts used in `connect(opts)`
31
32
  */
32
33
  export interface ConnectSyncPeerOpts {
34
+ /**
35
+ * TODO: sagaId is now also on {@link InitializeSyncPeerOpts} since a peer
36
+ * is scoped to a single sync saga. Evaluate whether this duplicate is still
37
+ * needed when implementing the connect phase (Phase 2).
38
+ */
33
39
  sagaId: string;
34
40
  }
35
41
  /**
36
- * base initialization opts
42
+ * base initialization opts.
43
+ *
44
+ * A sync peer is scoped to exactly one sync saga. A new peer instance must be
45
+ * created for each `sync(...)` call. Reusing a peer across multiple sagas is
46
+ * not supported and would compromise the identity security model.
37
47
  */
38
48
  export interface InitializeSyncPeerOpts {
49
+ /**
50
+ * Unique id for the sync saga this peer is servicing.
51
+ * Generated by `SyncSagaCoordinator.sync()` and passed here so that
52
+ * `establishSessionIdentity` can derive the session secret via
53
+ * `KDF(senderSecret, sagaId)`.
54
+ */
55
+ sagaId?: string;
39
56
  /**
40
57
  * reference to the local metaspace
41
58
  */
@@ -55,6 +72,44 @@ export interface InitializeSyncPeerOpts {
55
72
  * received/created throughout the transaction until commit.
56
73
  */
57
74
  localTempSpace?: IbGibSpaceAny;
75
+ /**
76
+ * The sender's long-lived Domain Keystone (I) — Alice's identity.
77
+ * Optional; if omitted the sync runs without identity (anonymous).
78
+ * Must be the current tip frame of I's timeline.
79
+ *
80
+ * Both {@link senderIdentity} and {@link fnSenderSecret} must be provided
81
+ * together or omitted together.
82
+ */
83
+ senderIdentity?: KeystoneIbGib_V1;
84
+ /**
85
+ * Returns the plaintext secret corresponding to {@link senderIdentity}.
86
+ * Wrapped in a function to avoid holding the secret in memory longer than needed.
87
+ *
88
+ * Both {@link senderIdentity} and {@link fnSenderSecret} must be provided
89
+ * together or omitted together.
90
+ */
91
+ fnSenderSecret?: () => Promise<string>;
92
+ /**
93
+ * Pool config for the session keystone's transport connect handshake pool.
94
+ * Required when {@link senderIdentity} is provided.
95
+ *
96
+ * @see {@link POOL_ID_CONNECT}
97
+ */
98
+ sessionConnectPoolConfig?: KeystonePoolConfig;
99
+ /**
100
+ * Pool config for the session keystone's per-turn signing pool (`sync`).
101
+ * Required when {@link senderIdentity} is provided.
102
+ *
103
+ * @see {@link POOL_ID_SYNC}
104
+ */
105
+ sessionSyncPoolConfig?: KeystonePoolConfig;
106
+ /**
107
+ * Addresses of the synced domains (ibgibs).
108
+ * Used during `establishSessionIdentity` to bind the session keystone (S)
109
+ * strictly to these domains, preventing S from acting as a "blank check"
110
+ * for unauthorized domains.
111
+ */
112
+ targetAddrs?: string[];
58
113
  }
59
114
  /**
60
115
  * The interface for the SyncPeer witness class.
@@ -88,6 +143,19 @@ SyncPeerData_V1, SyncPeerRel8ns_V1> {
88
143
  * The handling code (e.g. SyncSagaCoordinator) will subscribe to this.
89
144
  */
90
145
  payloadIbGibsDomainReceived$: SubjectWitness<IbGib_V1>;
146
+ /**
147
+ * Pre-connect phase: creates the session keystone (S) locally, evolves
148
+ * `senderIdentity` (I → I1) with a `sync` claim targeting S, and posts
149
+ * both to the receiver's domain registry.
150
+ *
151
+ * Must be called before `connect()`. No-op if `senderIdentity` was not
152
+ * provided in {@link InitializeSyncPeerOpts}.
153
+ *
154
+ * @returns The session keystone genesis (S^Stjp). The coordinator holds
155
+ * this reference for the remainder of the saga. The name `newSenderIdentity`
156
+ * (I1) is intentionally scoped only within this method to avoid confusion.
157
+ */
158
+ establishSessionIdentity(): Promise<KeystoneIbGib_V1 | undefined>;
91
159
  /**
92
160
  * Establishes the connection context.
93
161
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;CAAI;AAG1F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,cAAc,EAAE,gBAAgB,CAAC;IACjC;;;;;OAKG;IACH,UAAU,EAAE,aAAa,CAAC;IAC1B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,eAAe,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,UAAU,CACxH,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,QAAQ;AACjC,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,SAAS;AAClC,eAAe,EACf,iBAAiB,CACpB;IACG,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAElC;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAErD;;;;;OAKG;IACH,4BAA4B,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEvD;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
1
+ {"version":3,"file":"sync-peer-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;CAAI;AAG1F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACnC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,cAAc,EAAE,gBAAgB,CAAC;IACjC;;;;;OAKG;IACH,UAAU,EAAE,aAAa,CAAC;IAC1B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAC;IAC9C;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAC3C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,eAAe,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,UAAU,CACxH,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,QAAQ;AACjC,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,SAAS;AAClC,eAAe,EACf,iBAAiB,CACpB;IACG,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAElC;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAErD;;;;;OAKG;IACH,4BAA4B,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEvD;;;;;;;;;;;OAWG;IACH,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAElE;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -9,6 +9,7 @@ import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-
9
9
  import { ConnectSyncPeerOpts, InitializeSyncPeerOpts, SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness } from './sync-peer-types.mjs';
10
10
  import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
11
11
  import { SyncSagaFrameDependencyGraph } from '../sync-types.mjs';
12
+ import { KeystoneIbGib_V1 } from '../../keystone/keystone-types.mjs';
12
13
  /**
13
14
  * Abstract witness for talking to a Sync Peer (e.g. Remote Node or Local Simulator).
14
15
  *
@@ -51,6 +52,35 @@ export declare abstract class SyncPeer_V1<TConnectOpts extends ConnectSyncPeerOp
51
52
  * negotiation (e.g., WebSocket upgrade)
52
53
  */
53
54
  protected abstract connectImpl(opts: TConnectOpts): Promise<void>;
55
+ /**
56
+ * Pre-connect phase: establishes session identity.
57
+ *
58
+ * Shared base implementation:
59
+ * 1. Derives `sessionSecret = KDF(senderSecret, sagaId)`.
60
+ * 2. Creates session keystone genesis S (connect + sync pools) in `localSpace`.
61
+ * 3. Evolves `senderIdentity` → `newSenderIdentity` (I1) with a `sync`
62
+ * claim targeting S^Stjp, stored in `localSpace`.
63
+ * 4. Delegates posting of both keystones to the receiver via the abstract
64
+ * hook {@link postEstablishToReceiver} (peer-specific transport).
65
+ *
66
+ * Returns `undefined` (no-op) if no `senderIdentity` was provided in opts.
67
+ *
68
+ * @returns The session keystone genesis (S^Stjp) so the coordinator can
69
+ * hold a reference for subsequent per-turn signing. The name
70
+ * `newSenderIdentity` (I1) is scoped only within this method.
71
+ */
72
+ establishSessionIdentity(): Promise<KeystoneIbGib_V1 | undefined>;
73
+ /**
74
+ * Peer-specific hook: transmits `newSenderIdentity` (I1) and
75
+ * `sessionIdentity` (S) to the receiver's domain registry.
76
+ *
77
+ * - **Innerspace**: puts both into `receiverMetaspace` / `receiverSpace`.
78
+ * - **WebSocket**: HTTP POST to the domain provider's keystone endpoint.
79
+ */
80
+ protected abstract postEstablishToReceiver(opts: {
81
+ newSenderIdentity: KeystoneIbGib_V1;
82
+ sessionIdentity: KeystoneIbGib_V1;
83
+ }): Promise<void>;
54
84
  /**
55
85
  * base implementation just sets the opts property.
56
86
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EACH,mBAAmB,EAAE,sBAAsB,EAAE,eAAe,EAC5D,iBAAiB,EAAE,eAAe,EACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAM9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAOjE;;;;;;;;;GASG;AACH,8BAAsB,WAAW,CAC7B,YAAY,SAAS,mBAAmB,GAAG,mBAAmB,EAC9D,eAAe,SAAS,sBAAsB,GAAG,sBAAsB,CACzE,SAAQ,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAC5D,YAAW,eAAe,CAAC,eAAe,CAAC;IAE3C,SAAS,CAAC,EAAE,EAAE,MAAM,CAA2B;IAExC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,4BAA4B,EAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,SAAS,IAAI,MAAM,CAItB;gBAEW,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAI9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;OAKG;IACU,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAErE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE;;;;;;;OAOG;IACU,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;cAsC3C,6BAA6B,CAAC,EAC1C,OAAO,EACP,eAAe,GAClB,EAAE;QACC,OAAO,EAAE,uBAAuB,CAAC;QACjC,eAAe,EAAE,4BAA4B,EAAE,CAAC;KACnD,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjB;;;;;;;;OAQG;IACY,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAkGtG;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAErH;;;;;OAKG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAuB7E"}
1
+ {"version":3,"file":"sync-peer-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EACH,mBAAmB,EAAE,sBAAsB,EAAE,eAAe,EAC5D,iBAAiB,EAAE,eAAe,EACrC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAM9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQrE;;;;;;;;;GASG;AACH,8BAAsB,WAAW,CAC7B,YAAY,SAAS,mBAAmB,GAAG,mBAAmB,EAC9D,eAAe,SAAS,sBAAsB,GAAG,sBAAsB,CACzE,SAAQ,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAC5D,YAAW,eAAe,CAAC,eAAe,CAAC;IAE3C,SAAS,CAAC,EAAE,EAAE,MAAM,CAA2B;IAExC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,4BAA4B,EAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,SAAS,IAAI,MAAM,CAItB;gBAEW,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAI9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;OAKG;IACU,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAErE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE;;;;;;;;;;;;;;;;OAgBG;IACU,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA6D9E;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,EAAE;QAC7C,iBAAiB,EAAE,gBAAgB,CAAC;QACpC,eAAe,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjB;;;;;;;OAOG;IACU,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;cAsC3C,6BAA6B,CAAC,EAC1C,OAAO,EACP,eAAe,GAClB,EAAE;QACC,OAAO,EAAE,uBAAuB,CAAC;QACjC,eAAe,EAAE,4BAA4B,EAAE,CAAC;KACnD,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjB;;;;;;;;OAQG;IACY,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAkGtG;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAErH;;;;;OAKG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAuB7E"}
@@ -4,12 +4,15 @@
4
4
  * You are expected to implement concrete peer classes for concrete architecture.
5
5
  */
6
6
  import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
7
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
7
8
  import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
8
9
  import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
9
10
  import { newupSubject } from '../../common/pubsub/subject/subject-helper.mjs';
10
11
  import { authenticateContext, authorizeContext, validateContextAndSagaFrame } from '../sync-saga-context/sync-saga-context-helpers.mjs';
11
12
  import { getFromSpace } from '../../witness/space/space-helper.mjs';
12
- import { getFullSyncSagaHistory } from '../sync-helpers.mjs';
13
+ import { getFullSyncSagaHistory, deriveSessionSecret } from '../sync-helpers.mjs';
14
+ import { KeystoneService_V1 } from '../../keystone/keystone-service-v1.mjs';
15
+ import { KEYSTONE_VERB_SYNC } from '../../keystone/keystone-constants.mjs';
13
16
  const logalot = GLOBAL_LOG_A_LOT;
14
17
  const logalotControlDomain = false;
15
18
  const lcControlDomain = '[ControlDomain]';
@@ -67,6 +70,90 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
67
70
  }
68
71
  }
69
72
  }
73
+ /**
74
+ * Pre-connect phase: establishes session identity.
75
+ *
76
+ * Shared base implementation:
77
+ * 1. Derives `sessionSecret = KDF(senderSecret, sagaId)`.
78
+ * 2. Creates session keystone genesis S (connect + sync pools) in `localSpace`.
79
+ * 3. Evolves `senderIdentity` → `newSenderIdentity` (I1) with a `sync`
80
+ * claim targeting S^Stjp, stored in `localSpace`.
81
+ * 4. Delegates posting of both keystones to the receiver via the abstract
82
+ * hook {@link postEstablishToReceiver} (peer-specific transport).
83
+ *
84
+ * Returns `undefined` (no-op) if no `senderIdentity` was provided in opts.
85
+ *
86
+ * @returns The session keystone genesis (S^Stjp) so the coordinator can
87
+ * hold a reference for subsequent per-turn signing. The name
88
+ * `newSenderIdentity` (I1) is scoped only within this method.
89
+ */
90
+ async establishSessionIdentity() {
91
+ const lc = `${this.lc}[${this.establishSessionIdentity.name}]`;
92
+ try {
93
+ if (logalot) {
94
+ console.log(`${lc} starting... (I: f2a1b3c4d5e6f7a8b9c0d1e2f3a4b526)`);
95
+ }
96
+ if (!this.opts) {
97
+ throw new Error(`(UNEXPECTED) this.opts falsy? Call initializeOpts first. (E: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c526)`);
98
+ }
99
+ const { senderIdentity, fnSenderSecret, sagaId, localMetaspace, localSpace } = this.opts;
100
+ // No identity provided — anonymous sync, nothing to establish.
101
+ if (!senderIdentity || !fnSenderSecret) {
102
+ if (logalot) {
103
+ console.log(`${lc} no senderIdentity/fnSenderSecret — skipping establish (I: f29348a77d1542326d14043ea4b69126)`);
104
+ }
105
+ return undefined;
106
+ }
107
+ if (!sagaId) {
108
+ throw new Error(`(UNEXPECTED) sagaId falsy? Must be set in initializeOpts before calling establishSessionIdentity. (E: c6ba389d51b8af07d82458f875cf9826)`);
109
+ }
110
+ const senderSecret = await fnSenderSecret();
111
+ if (!senderSecret) {
112
+ throw new Error(`senderSecret falsy. senderSecret required. (E: 1a8b0298bf78cbdf284b7988983b9826)`);
113
+ }
114
+ const sessionSecret = await deriveSessionSecret({ senderSecret, sagaId });
115
+ const keystoneSvc = new KeystoneService_V1();
116
+ // Step 1: Create S genesis in localSpace.
117
+ // Pool configs must be provided via opts (set by coordinator before calling establish).
118
+ if (!this.opts.sessionConnectPoolConfig) {
119
+ throw new Error(`(UNEXPECTED) opts.sessionConnectPoolConfig falsy? (E: 3351fd566eb8bbd2f821bb08c4419826)`);
120
+ }
121
+ if (!this.opts.sessionSyncPoolConfig) {
122
+ throw new Error(`(UNEXPECTED) opts.sessionSyncPoolConfig falsy? (E: dbffa810d9e7ff6079088deb5b8e7826)`);
123
+ }
124
+ const sessionIdentity = await keystoneSvc.genesis({
125
+ masterSecret: sessionSecret,
126
+ configs: [this.opts.sessionConnectPoolConfig, this.opts.sessionSyncPoolConfig],
127
+ frameDetails: this.opts.targetAddrs ? { targetAddrs: this.opts.targetAddrs } : undefined,
128
+ metaspace: localMetaspace,
129
+ space: localSpace,
130
+ });
131
+ const sessionIdentityAddr = getIbGibAddr({ ibGib: sessionIdentity });
132
+ // Step 2: Evolve senderIdentity → newSenderIdentity (I1) with sync claim.
133
+ const newSenderIdentity = await keystoneSvc.sign({
134
+ latestKeystone: senderIdentity,
135
+ masterSecret: senderSecret,
136
+ claim: {
137
+ verb: KEYSTONE_VERB_SYNC,
138
+ target: sessionIdentityAddr,
139
+ },
140
+ metaspace: localMetaspace,
141
+ space: localSpace,
142
+ });
143
+ // Step 3: Post both to the receiver (peer-specific).
144
+ await this.postEstablishToReceiver({ newSenderIdentity, sessionIdentity });
145
+ return sessionIdentity;
146
+ }
147
+ catch (error) {
148
+ console.error(`${lc} ${extractErrorMsg(error)}`);
149
+ throw error;
150
+ }
151
+ finally {
152
+ if (logalot) {
153
+ console.log(`${lc} complete.`);
154
+ }
155
+ }
156
+ }
70
157
  /**
71
158
  * base implementation just sets the opts property.
72
159
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAMlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACxI,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,MAAM,OAAO,GAAG,gBAAgB,CAAC;AACjC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAG1C;;;;;;;;;GASG;AACH,MAAM,OAAgB,WAGpB,SAAQ,mBAAuD;IAGnD,EAAE,GAAW,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;IAExC,IAAI,CAA8B;IAClC,4BAA4B,CAA4B;IAE/D,IAAI,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAAC,CAAC;QAC3G,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAAC,CAAC;QAClI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,YAAY,WAA4B,EAAE,aAAiC;QACvE,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,IAAI,CAAC,4BAA4B,GAAG,MAAM,YAAY,EAAY,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,IAAkB;QACnC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAC9C,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YAAC,CAAC;YAExF,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAsBD;;;;;;;OAOG;IACI,KAAK,CAAC,cAAc,CAAC,IAAqB;QAC7C,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC;QACrD,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YAAC,CAAC;YACxF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,GAA6B;QAChD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YAAC,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAAC,CAAC;YAE3G,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAAC,CAAC;YAEzH,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,uBAAuB;IACvB,OAAO;IACP,sCAAsC;IACtC,aAAa;IACb,6DAA6D;IAC7D,YAAY;IACZ,mGAAmG;IACnG,sHAAsH;IAEtH,uDAAuD;IACvD,wBAAwB;IACxB,4DAA4D;IAC5D,uBAAuB;IACvB,kBAAkB;IAClB,2DAA2D;IAC3D,QAAQ;IACR,IAAI;IAIM,KAAK,CAAC,6BAA6B,CAAC,EAC1C,OAAO,EACP,eAAe,GAIlB;QACG,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,6BAA6B,CAAC,IAAI,GAAG,CAAC;QACpE,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;YAAC,CAAC;YACtI,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAEjC,6DAA6D;YAC7D,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,CAAC;gBACnD,OAAO;gBACP,KAAK,EAAE,UAAU;aACpB,CAAC,CAAC;YACH,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,yDAAyD,oBAAoB,wCAAwC,CAAC,CAAC;YAC3I,CAAC;YACD,yDAAyD;YACzD,oEAAoE;YACpE,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YACzE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,gBAAgB,wCAAwC,CAAC,CAAC;YAC7H,CAAC;YACD,iEAAiE;YACjE,mCAAmC;YACnC,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACjF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,uDAAuD,mBAAmB,wCAAwC,CAAC,CAAC;YACxI,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;IACD;;;;;;;;OAQG;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC;QACnD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAC9C,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAC,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gIAAgI,CAAC,CAAC;YAAC,CAAC;YAEtK,8CAA8C;YAC9C,eAAe;YACf,6CAA6C;YAC7C,kDAAkD;YAClD,0BAA0B;YAC1B,6CAA6C;YAC7C,2DAA2D;YAC3D,yDAAyD;YACzD,yCAAyC;YACzC,uCAAuC;YACvC,kDAAkD;YAClD,6CAA6C;YAC7C,wCAAwC;YACxC,uCAAuC;YACvC,0CAA0C;YAC1C,mEAAmE;YACnE,0CAA0C;YAC1C,mEAAmE;YACnE,iBAAiB;YACjB,iEAAiE;YACjE,eAAe;YACf,+DAA+D;YAE/D,8FAA8F;YAC9F,8BAA8B;YAC9B,4CAA4C;YAC5C,6EAA6E;YAC7E,+DAA+D;YAC/D,oFAAoF;YACpF,+BAA+B;YAC/B,mCAAmC;YACnC,mFAAmF;YACnF,yCAAyC;YACzC,gBAAgB;YAChB,6CAA6C;YAC7C,0CAA0C;YAC1C,4EAA4E;YAC5E,6GAA6G;YAE7G,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAAC,CAAC;YAE9G,iEAAiE;YACjE,yCAAyC;YAEzC,MAAM,sBAAsB,GAAG,MAAM,sBAAsB,CAAC;gBACxD,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,6BAA6B,CAAC;gBACrC,OAAO,EAAE,eAAe,EAAE,sBAAsB;aACnD,CAAC,CAAC;YAEH,oEAAoE;YAEpE,mEAAmE;YACnE,YAAY;YACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAExD,IAAI,QAAQ,EAAE,CAAC;gBACX,oEAAoE;gBACpE,+DAA+D;gBAC/D,kDAAkD;gBAClD,gEAAgE;gBAChE,mEAAmE;gBACnE,uCAAuC;gBAEvC,MAAM,qBAAqB,GAAG,MAAM,sBAAsB,CAAC;oBACvD,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;gBAEH,MAAM,IAAI,CAAC,6BAA6B,CAAC;oBACrC,OAAO,EAAE,eAAe,EAAE,qBAAqB;iBAClD,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACJ,+DAA+D;gBAC/D,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,8HAA8H,CAAC,CAAC;gBAAC,CAAC;gBAElK,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;IA4BD;;;;;OAKG;IACO,KAAK,CAAC,aAAa,CAAC,IAAY;QACtC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;QACpD,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;YAAC,CAAC;YAExF,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,8GAA8G,CAAC,CAAC;YAClI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAAC,CAAC;YAE3G,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,MAAM,CAAC,QAAQ,IAAI,qDAAqD,wCAAwC,CAAC,CAAC;YACvN,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"sync-peer-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module sync-peer-websocket-receiver-types
3
+ */
4
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
+ import { SyncPeerData_V1, SyncPeerRel8ns_V1, InitializeSyncPeerOpts, ConnectSyncPeerOpts } from '../sync-peer-types.mjs';
6
+ import { SyncSagaCoordinator } from '../../sync-saga-coordinator.mjs';
7
+ /**
8
+ * Data for the SyncPeerWebSocketReceiver witness.
9
+ */
10
+ export interface SyncPeerWebSocketReceiverData_V1 extends SyncPeerData_V1 {
11
+ }
12
+ /**
13
+ * Relations for the SyncPeerWebSocketReceiver witness.
14
+ */
15
+ export interface SyncPeerWebSocketReceiverRel8ns_V1 extends SyncPeerRel8ns_V1 {
16
+ }
17
+ /**
18
+ * The SyncPeerWebSocketReceiver witness IbGib.
19
+ */
20
+ export interface SyncPeerWebSocketReceiverIbGib_V1 extends IbGib_V1<SyncPeerWebSocketReceiverData_V1, SyncPeerWebSocketReceiverRel8ns_V1> {
21
+ }
22
+ export interface ConnectSyncPeerWebSocketReceiverOpts extends ConnectSyncPeerOpts {
23
+ }
24
+ export interface InitializeSyncPeerWebSocketReceiverOpts extends InitializeSyncPeerOpts {
25
+ /**
26
+ * The local SyncSagaCoordinator instance running on the receiver/server.
27
+ */
28
+ localCoordinator: SyncSagaCoordinator;
29
+ }
30
+ //# sourceMappingURL=sync-peer-websocket-receiver-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-peer-websocket-receiver-types.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EACH,eAAe,EAAE,iBAAiB,EAClC,sBAAsB,EAAE,mBAAmB,EAC9C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,eAAe;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,iBAAiB;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,iCAAkC,SAAQ,QAAQ,CAAC,gCAAgC,EAAE,kCAAkC,CAAC;CAAI;AAE7I,MAAM,WAAW,oCAAqC,SAAQ,mBAAmB;CAChF;AAED,MAAM,WAAW,uCAAwC,SAAQ,sBAAsB;IACnF;;OAEG;IACH,gBAAgB,EAAE,mBAAmB,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-peer-websocket-receiver-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-peer-websocket-receiver-types.mjs","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-types.mts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @module sync-peer-websocket-receiver-v1
3
+ */
4
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
+ import { SyncPeer_V1 } from '../sync-peer-v1.mjs';
6
+ import { SyncSagaContextIbGib_V1 } from '../../sync-saga-context/sync-saga-context-types.mjs';
7
+ import { IbGibSpaceAny } from '../../../witness/space/space-base-v1.mjs';
8
+ import { ConnectSyncPeerWebSocketReceiverOpts, InitializeSyncPeerWebSocketReceiverOpts, SyncPeerWebSocketReceiverData_V1, SyncPeerWebSocketReceiverRel8ns_V1, SyncPeerWebSocketReceiverIbGib_V1 } from './sync-peer-websocket-receiver-types.mjs';
9
+ import { KeystoneIbGib_V1 } from '../../../keystone/keystone-types.mjs';
10
+ /**
11
+ * A platform-agnostic interface wrapping runtime-specific WebSocket stream operations.
12
+ */
13
+ export interface IWebSocketWrapper {
14
+ send(data: string): void;
15
+ onMessage(callback: (data: string) => void): void;
16
+ onClose(callback: () => void): void;
17
+ }
18
+ /**
19
+ * Platform-agnostic WebSocket Receiver Peer.
20
+ *
21
+ * Fully encapsulates the multi-turn cryptographic challenge connect and runtime
22
+ * turn routing.
23
+ */
24
+ export declare class SyncPeerWebSocketReceiver_V1 extends SyncPeer_V1<ConnectSyncPeerWebSocketReceiverOpts, InitializeSyncPeerWebSocketReceiverOpts> implements SyncPeerWebSocketReceiverIbGib_V1 {
25
+ protected lc: string;
26
+ get classname(): string;
27
+ data: SyncPeerWebSocketReceiverData_V1 | undefined;
28
+ rel8ns: SyncPeerWebSocketReceiverRel8ns_V1 | undefined;
29
+ protected socketWrapper?: IWebSocketWrapper;
30
+ protected isAuthenticated: boolean;
31
+ protected challengeUuid?: string;
32
+ protected demandedIds?: string[];
33
+ protected sessionS_tjpAddr?: string;
34
+ constructor(initialData: SyncPeerWebSocketReceiverData_V1, initialRel8ns?: SyncPeerWebSocketReceiverRel8ns_V1);
35
+ /**
36
+ * Wires the peer receiver to the platform-specific socket stream and
37
+ * triggers the connect.
38
+ */
39
+ bindSocket(socketWrapper: IWebSocketWrapper): Promise<void>;
40
+ protected preConnectCheck(opts: ConnectSyncPeerWebSocketReceiverOpts): Promise<void>;
41
+ protected connectImpl(opts: ConnectSyncPeerWebSocketReceiverOpts): Promise<void>;
42
+ protected postEstablishToReceiver(opts: {
43
+ newSenderIdentity: KeystoneIbGib_V1;
44
+ sessionIdentity: KeystoneIbGib_V1;
45
+ }): Promise<void>;
46
+ protected sendContextRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
47
+ /** Helper to load a Session Keystone from storage */
48
+ protected getSessionKeystone(sAddr: string): Promise<KeystoneIbGib_V1>;
49
+ protected ensureLocalTempSpace(): Promise<IbGibSpaceAny>;
50
+ /**
51
+ * Entry point for processing raw text frames received over the active WebSocket connection.
52
+ */
53
+ handleIncomingMessage(messageText: string): Promise<void>;
54
+ /**
55
+ * Handles the multi-turn cryptographic challenge connect messages.
56
+ */
57
+ protected handleConnectFrame(msg: any): Promise<void>;
58
+ /**
59
+ * Executes the transaction turn through the local SyncSagaCoordinator.
60
+ */
61
+ handleIncomingSyncRequest({ context, payloadIbGibsControl, }: {
62
+ context: SyncSagaContextIbGib_V1;
63
+ payloadIbGibsControl?: IbGib_V1[];
64
+ }): Promise<SyncSagaContextIbGib_V1 | undefined>;
65
+ }
66
+ //# sourceMappingURL=sync-peer-websocket-receiver-v1.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-peer-websocket-receiver-v1.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EACH,oCAAoC,EACpC,uCAAuC,EACvC,gCAAgC,EAAE,kCAAkC,EACpE,iCAAiC,EACpC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAKxE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAClD,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACvC;AAED;;;;;GAKG;AACH,qBAAa,4BACT,SAAQ,WAAW,CAAC,oCAAoC,EAAE,uCAAuC,CACjG,YAAW,iCAAiC;IAE5C,UAAmB,EAAE,EAAE,MAAM,CAA4C;IAEzE,IAAa,SAAS,IAAI,MAAM,CAE/B;IAEO,IAAI,EAAE,gCAAgC,GAAG,SAAS,CAAC;IACnD,MAAM,EAAE,kCAAkC,GAAG,SAAS,CAAC;IAE/D,SAAS,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAG5C,SAAS,CAAC,eAAe,UAAS;IAClC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAGhC,WAAW,EAAE,gCAAgC,EAC7C,aAAa,CAAC,EAAE,kCAAkC;IAKtD;;;OAGG;IACU,UAAU,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;cAqB/C,eAAe,CAAC,IAAI,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;cAI1E,WAAW,CAAC,IAAI,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;cAItE,uBAAuB,CAAC,IAAI,EAAE;QACnD,iBAAiB,EAAE,gBAAgB,CAAC;QACpC,eAAe,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,IAAI,CAAC;cAIQ,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAI3H,qDAAqD;cACrC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAU5D,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC;IA8B9D;;OAEG;IACU,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDtE;;OAEG;cACa,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE3D;;OAEG;IACU,yBAAyB,CAAC,EACnC,OAAO,EACP,oBAAyB,GAC5B,EAAE;QACC,OAAO,EAAE,uBAAuB,CAAC;QACjC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;KACrC,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;CA8CnD"}