meridian-sdk 1.0.1 → 1.2.0

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 (89) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +48 -0
  3. package/dist/agents.d.ts +60 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/agents.js +200 -0
  6. package/dist/agents.js.map +1 -0
  7. package/dist/client.d.ts +30 -1
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +43 -1
  10. package/dist/client.js.map +1 -1
  11. package/dist/crdt/awareness.d.ts +3 -0
  12. package/dist/crdt/awareness.d.ts.map +1 -1
  13. package/dist/crdt/awareness.js +8 -4
  14. package/dist/crdt/awareness.js.map +1 -1
  15. package/dist/crdt/crdtmap.d.ts +3 -0
  16. package/dist/crdt/crdtmap.d.ts.map +1 -1
  17. package/dist/crdt/crdtmap.js +8 -0
  18. package/dist/crdt/crdtmap.js.map +1 -1
  19. package/dist/crdt/gcounter.d.ts +3 -0
  20. package/dist/crdt/gcounter.d.ts.map +1 -1
  21. package/dist/crdt/gcounter.js +8 -0
  22. package/dist/crdt/gcounter.js.map +1 -1
  23. package/dist/crdt/lwwregister.d.ts +3 -1
  24. package/dist/crdt/lwwregister.d.ts.map +1 -1
  25. package/dist/crdt/lwwregister.js +8 -1
  26. package/dist/crdt/lwwregister.js.map +1 -1
  27. package/dist/crdt/orset.d.ts +3 -1
  28. package/dist/crdt/orset.d.ts.map +1 -1
  29. package/dist/crdt/orset.js +8 -1
  30. package/dist/crdt/orset.js.map +1 -1
  31. package/dist/crdt/pncounter.d.ts +3 -0
  32. package/dist/crdt/pncounter.d.ts.map +1 -1
  33. package/dist/crdt/pncounter.js +8 -0
  34. package/dist/crdt/pncounter.js.map +1 -1
  35. package/dist/crdt/presence.d.ts +3 -1
  36. package/dist/crdt/presence.d.ts.map +1 -1
  37. package/dist/crdt/presence.js +8 -1
  38. package/dist/crdt/presence.js.map +1 -1
  39. package/dist/crdt/rga.d.ts +54 -0
  40. package/dist/crdt/rga.d.ts.map +1 -0
  41. package/dist/crdt/rga.js +122 -0
  42. package/dist/crdt/rga.js.map +1 -0
  43. package/dist/errors.d.ts +6 -6
  44. package/dist/index.d.ts +6 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +5 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/layer.d.ts +34 -0
  49. package/dist/layer.d.ts.map +1 -0
  50. package/dist/layer.js +31 -0
  51. package/dist/layer.js.map +1 -0
  52. package/dist/schema.d.ts +2 -0
  53. package/dist/schema.d.ts.map +1 -1
  54. package/dist/schema.js +2 -1
  55. package/dist/schema.js.map +1 -1
  56. package/dist/sync/delta.d.ts +6 -0
  57. package/dist/sync/delta.d.ts.map +1 -1
  58. package/dist/sync/delta.js +4 -0
  59. package/dist/sync/delta.js.map +1 -1
  60. package/dist/transport/http.d.ts +12 -1
  61. package/dist/transport/http.d.ts.map +1 -1
  62. package/dist/transport/http.js +4 -0
  63. package/dist/transport/http.js.map +1 -1
  64. package/dist/transport/websocket.d.ts +22 -7
  65. package/dist/transport/websocket.d.ts.map +1 -1
  66. package/dist/transport/websocket.js +173 -98
  67. package/dist/transport/websocket.js.map +1 -1
  68. package/package.json +2 -2
  69. package/src/agents.ts +277 -0
  70. package/src/client.ts +49 -1
  71. package/src/crdt/awareness.ts +9 -9
  72. package/src/crdt/crdtmap.ts +9 -0
  73. package/src/crdt/gcounter.ts +9 -0
  74. package/src/crdt/lwwregister.ts +9 -1
  75. package/src/crdt/orset.ts +9 -1
  76. package/src/crdt/pncounter.ts +9 -0
  77. package/src/crdt/presence.ts +9 -1
  78. package/src/crdt/rga.ts +136 -0
  79. package/src/index.ts +17 -1
  80. package/src/layer.ts +44 -0
  81. package/src/schema.ts +2 -1
  82. package/src/sync/delta.ts +11 -1
  83. package/src/transport/http.ts +18 -1
  84. package/src/transport/websocket.ts +220 -96
  85. package/test/agents.test.ts +104 -0
  86. package/test/crdt.test.ts +0 -28
  87. package/test/integration.test.ts +0 -7
  88. package/test/offline-queue.test.ts +0 -8
  89. package/test/sync.test.ts +0 -12
@@ -1,41 +1,72 @@
1
- import { Effect } from "effect";
1
+ import { Effect, Fiber, Layer, ManagedRuntime, Option, Queue, Schedule, Duration, } from "effect";
2
2
  import { encodeClientMsg, decodeServerMsg, encodeVectorClock } from "../codec.js";
3
- import { BACKOFF_INITIAL_MS, BACKOFF_MAX_MS, BACKOFF_MULTIPLIER, JITTER_MULTIPLIER, DEFAULT_TIMEOUT_MS, OFFLINE_QUEUE_MAX, } from "../constants.js";
3
+ import { BACKOFF_INITIAL_MS, BACKOFF_MAX_MS, BACKOFF_MULTIPLIER, DEFAULT_TIMEOUT_MS, OFFLINE_QUEUE_MAX, } from "../constants.js";
4
+ import { TransportError } from "../errors.js";
4
5
  export class WsTransport {
5
6
  config;
6
7
  maxBackoffMs;
7
8
  ws = null;
8
9
  state = "DISCONNECTED";
9
- backoffMs = BACKOFF_INITIAL_MS;
10
- reconnectTimer = null;
11
10
  closed = false;
11
+ // Effect runtime owned by this transport
12
+ runtime = ManagedRuntime.make(Layer.empty);
13
+ lifecycleFiber = null;
14
+ // State change listeners (replacing fragile function-chain pattern)
15
+ stateListeners = new Set();
12
16
  subscriptions = new Map();
13
- pendingOps = [];
17
+ // Effect sliding queue — drops oldest when full (same behaviour as previous array)
18
+ pendingQueue;
19
+ // Latency tracking
20
+ nextClientSeq = 0;
21
+ /** Maps client_seq → `performance.now()` timestamp at send time. */
22
+ pendingAcks = new Map();
23
+ latencySamples = []; // rolling window of round-trip ms
24
+ static LATENCY_WINDOW = 128;
14
25
  constructor(config) {
15
26
  this.config = config;
16
27
  this.maxBackoffMs = config.maxBackoffMs ?? BACKOFF_MAX_MS;
28
+ // Queue creation is synchronous
29
+ this.pendingQueue = Effect.runSync(Queue.sliding(OFFLINE_QUEUE_MAX));
30
+ // Register initial onStateChange listener if provided
31
+ if (config.onStateChange) {
32
+ this.stateListeners.add(config.onStateChange);
33
+ }
17
34
  }
18
35
  connect() {
19
36
  if (this.closed)
20
37
  return;
21
38
  this.closed = false;
22
- this.doConnect();
39
+ this.transitionTo("CONNECTING");
40
+ const ws = this.makeWs();
41
+ this.lifecycleFiber = this.runtime.runFork(this.buildLifecycleEffect(ws));
23
42
  }
24
43
  close() {
25
44
  this.closed = true;
26
- this.pendingOps.length = 0;
27
- this.clearReconnectTimer();
45
+ // Drain synchronously so pendingOpCount returns 0 immediately after close()
46
+ Effect.runSync(Queue.takeAll(this.pendingQueue));
47
+ this.runtime.runFork(Queue.shutdown(this.pendingQueue));
28
48
  this.transitionTo("CLOSING");
49
+ if (this.lifecycleFiber !== null) {
50
+ const fiber = this.lifecycleFiber;
51
+ this.lifecycleFiber = null;
52
+ this.runtime.runFork(Fiber.interrupt(fiber));
53
+ }
29
54
  this.ws?.close(1000, "client close");
55
+ this.ws = null;
56
+ void this.runtime.dispose();
30
57
  }
31
58
  reopen() {
32
- // Disown the current ws before creating a new one so its close event
33
- // fires with ws !== this.ws and does not trigger scheduleReconnect.
59
+ if (this.lifecycleFiber !== null) {
60
+ const fiber = this.lifecycleFiber;
61
+ this.lifecycleFiber = null;
62
+ this.runtime.runFork(Fiber.interrupt(fiber));
63
+ }
34
64
  const old = this.ws;
35
65
  this.ws = null;
36
66
  old?.close(1000, "reopen");
37
67
  this.closed = false;
38
- this.doConnect();
68
+ this.transitionTo("CONNECTING");
69
+ this.lifecycleFiber = this.runtime.runFork(this.buildLifecycleEffect(this.makeWs()));
39
70
  }
40
71
  subscribe(crdtId, sinceVc = {}) {
41
72
  this.subscriptions.set(crdtId, sinceVc);
@@ -47,36 +78,56 @@ export class WsTransport {
47
78
  this.subscriptions.set(crdtId, vc);
48
79
  }
49
80
  send(msg) {
81
+ const tagged = this.tagOp(msg);
50
82
  if (this.state !== "CONNECTED" || this.ws === null) {
51
- if (this.pendingOps.length >= OFFLINE_QUEUE_MAX) {
52
- this.pendingOps.shift(); // drop oldest to make room
53
- }
54
- this.pendingOps.push(msg);
83
+ // sliding queue drops oldest automatically if full
84
+ this.runtime.runFork(Queue.offer(this.pendingQueue, tagged));
85
+ return;
86
+ }
87
+ this.ws.send(encodeClientMsg(tagged));
88
+ }
89
+ /** Returns P50 and P99 op round-trip latency in milliseconds, or null if not enough samples. */
90
+ getLatencyStats() {
91
+ if (this.latencySamples.length < 2)
92
+ return null;
93
+ const sorted = [...this.latencySamples].sort((a, b) => a - b);
94
+ const p50 = sorted[Math.floor(sorted.length * 0.5)] ?? 0;
95
+ const p99 = sorted[Math.floor(sorted.length * 0.99)] ?? 0;
96
+ return { p50, p99, count: sorted.length };
97
+ }
98
+ tagOp(msg) {
99
+ if (!("Op" in msg))
100
+ return msg;
101
+ const seq = this.nextClientSeq++;
102
+ this.pendingAcks.set(seq, performance.now());
103
+ return { Op: { ...msg.Op, client_seq: seq } };
104
+ }
105
+ recordAck(clientSeq) {
106
+ const sentAt = this.pendingAcks.get(clientSeq);
107
+ if (sentAt === undefined)
55
108
  return;
109
+ this.pendingAcks.delete(clientSeq);
110
+ const rtt = performance.now() - sentAt;
111
+ this.latencySamples.push(rtt);
112
+ if (this.latencySamples.length > WsTransport.LATENCY_WINDOW) {
113
+ this.latencySamples.shift();
56
114
  }
57
- this.ws.send(encodeClientMsg(msg));
58
115
  }
59
116
  get pendingOpCount() {
60
- return this.pendingOps.length;
117
+ try {
118
+ return Effect.runSync(Queue.size(this.pendingQueue));
119
+ }
120
+ catch {
121
+ return 0;
122
+ }
61
123
  }
62
124
  /**
63
125
  * Subscribe to connection state changes. Returns an unsubscribe function.
64
126
  * Compatible with React's `useSyncExternalStore` subscribe parameter.
65
127
  */
66
128
  onStateChange(listener) {
67
- const prev = this.config.onStateChange;
68
- this.config.onStateChange = (s) => {
69
- prev?.(s);
70
- listener(s);
71
- };
72
- return () => {
73
- if (prev !== undefined) {
74
- this.config.onStateChange = prev;
75
- }
76
- else {
77
- delete this.config.onStateChange;
78
- }
79
- };
129
+ this.stateListeners.add(listener);
130
+ return () => { this.stateListeners.delete(listener); };
80
131
  }
81
132
  get currentState() {
82
133
  return this.state;
@@ -85,85 +136,105 @@ export class WsTransport {
85
136
  if (this.state === "CONNECTED")
86
137
  return Promise.resolve();
87
138
  return new Promise((resolve, reject) => {
88
- const orig = this.config.onStateChange;
89
- const restore = () => {
90
- if (orig !== undefined) {
91
- this.config.onStateChange = orig;
92
- }
93
- else {
94
- delete this.config.onStateChange;
95
- }
96
- };
97
139
  const timer = setTimeout(() => {
98
- restore();
140
+ this.stateListeners.delete(listener);
99
141
  reject(new Error("WsTransport: connect timeout"));
100
142
  }, timeoutMs);
101
- this.config.onStateChange = (s) => {
102
- orig?.(s);
143
+ const listener = (s) => {
103
144
  if (s === "CONNECTED") {
104
145
  clearTimeout(timer);
105
- restore();
146
+ this.stateListeners.delete(listener);
106
147
  resolve();
107
148
  }
108
149
  };
150
+ this.stateListeners.add(listener);
109
151
  });
110
152
  }
111
- doConnect() {
112
- if (this.closed)
113
- return;
114
- this.transitionTo("CONNECTING");
153
+ // ---------------------------------------------------------------------------
154
+ // Effect lifecycle
155
+ // ---------------------------------------------------------------------------
156
+ makeWs() {
115
157
  const url = `${this.config.url}${this.config.url.includes("?") ? "&" : "?"}token=${encodeURIComponent(this.config.token)}`;
116
158
  const ws = new WebSocket(url);
117
159
  ws.binaryType = "arraybuffer";
118
- this.ws = ws;
119
- ws.addEventListener("open", () => {
120
- if (ws !== this.ws)
121
- return;
122
- this.backoffMs = BACKOFF_INITIAL_MS;
160
+ // Register open/error listeners synchronously so they fire even if the
161
+ // Fiber hasn't started yet (runFork is async).
162
+ let resolve;
163
+ let reject;
164
+ const connected = new Promise((res, rej) => { resolve = res; reject = rej; });
165
+ const onOpen = () => {
166
+ this.ws = ws;
123
167
  this.transitionTo("CONNECTED");
124
168
  this.resubscribeAll();
125
- });
126
- ws.addEventListener("message", (event) => {
127
- if (ws !== this.ws)
128
- return;
129
- const bytes = new Uint8Array(event.data);
130
- Effect.runPromise(decodeServerMsg(bytes)).then((msg) => { this.config.onMessage(msg); }, (e) => { console.warn("[meridian] failed to decode server message", e); });
131
- });
132
- ws.addEventListener("close", () => {
133
- if (ws !== this.ws)
134
- return;
135
- this.ws = null;
136
- if (!this.closed) {
137
- this.transitionTo("DISCONNECTED");
138
- this.scheduleReconnect();
169
+ resolve(ws);
170
+ };
171
+ const onError = () => {
172
+ reject(new TransportError({ message: "WebSocket connection failed" }));
173
+ };
174
+ ws.addEventListener("open", onOpen, { once: true });
175
+ ws.addEventListener("error", onError, { once: true });
176
+ const cancel = () => {
177
+ ws.removeEventListener("open", onOpen);
178
+ ws.removeEventListener("error", onError);
179
+ ws.close(1000, "fiber interrupt");
180
+ };
181
+ return { ws, connected, cancel };
182
+ }
183
+ buildLifecycleEffect(wsHandle) {
184
+ const { ws, connected, cancel } = wsHandle;
185
+ const connectOnce = Effect.async((resume) => {
186
+ if (this.closed) {
187
+ cancel();
188
+ resume(Effect.fail(new TransportError({ message: "transport closed" })));
189
+ return Effect.void;
139
190
  }
191
+ // connected already has the listeners; just await its outcome
192
+ connected.then((w) => resume(Effect.succeed(w)), () => resume(Effect.fail(new TransportError({ message: "WebSocket connection failed" }))));
193
+ // Finalizer — called if Fiber is interrupted before open
194
+ return Effect.sync(cancel);
140
195
  });
141
- ws.addEventListener("error", () => {
142
- // HACK: The "close" event fires right after an error — let that handler drive reconnect logic.
196
+ const handleConnection = (_ws) => Effect.async((resume) => {
197
+ const onMessage = (event) => {
198
+ const bytes = new Uint8Array(event.data);
199
+ Effect.runPromise(decodeServerMsg(bytes)).then((msg) => {
200
+ if ("Ack" in msg && msg.Ack.client_seq !== undefined) {
201
+ this.recordAck(msg.Ack.client_seq);
202
+ }
203
+ this.config.onMessage(msg);
204
+ }, (e) => { console.warn("[meridian] failed to decode server message", e); });
205
+ };
206
+ const onClose = () => {
207
+ this.ws = null;
208
+ resume(Effect.fail(new TransportError({ message: "WebSocket closed" })));
209
+ };
210
+ ws.addEventListener("message", onMessage);
211
+ ws.addEventListener("close", onClose, { once: true });
212
+ // Finalizer — clean up listeners if Fiber is interrupted
213
+ return Effect.sync(() => {
214
+ ws.removeEventListener("message", onMessage);
215
+ ws.removeEventListener("close", onClose);
216
+ ws.close(1000, "fiber interrupt");
217
+ });
143
218
  });
219
+ const reconnectSchedule = Schedule.exponential(Duration.millis(BACKOFF_INITIAL_MS), BACKOFF_MULTIPLIER).pipe(Schedule.map((d) => Duration.min(d, Duration.millis(this.maxBackoffMs))), Schedule.jittered);
220
+ return connectOnce.pipe(Effect.flatMap(handleConnection), Effect.tapError(() => Effect.sync(() => {
221
+ if (!this.closed)
222
+ this.transitionTo("DISCONNECTED");
223
+ })), Effect.retry(reconnectSchedule), Effect.catchAll(() => Effect.void));
144
224
  }
145
- scheduleReconnect() {
146
- if (this.closed)
147
- return;
148
- const jitter = this.backoffMs * JITTER_MULTIPLIER * (Math.random() * 2 - 1);
149
- const delay = Math.round(this.backoffMs + jitter);
150
- this.reconnectTimer = setTimeout(() => {
151
- this.reconnectTimer = null;
152
- this.doConnect();
153
- }, delay);
154
- this.backoffMs = Math.min(this.backoffMs * BACKOFF_MULTIPLIER, this.maxBackoffMs);
155
- }
156
- clearReconnectTimer() {
157
- if (this.reconnectTimer !== null) {
158
- clearTimeout(this.reconnectTimer);
159
- this.reconnectTimer = null;
160
- }
161
- }
225
+ // ---------------------------------------------------------------------------
226
+ // Internals
227
+ // ---------------------------------------------------------------------------
162
228
  transitionTo(next) {
163
229
  if (this.state === next)
164
230
  return;
165
231
  this.state = next;
232
+ // Notify initial listener from config (for backward compat with client.ts)
166
233
  this.config.onStateChange?.(next);
234
+ // Notify all registered listeners
235
+ for (const listener of this.stateListeners) {
236
+ listener(next);
237
+ }
167
238
  }
168
239
  resubscribeAll() {
169
240
  for (const [crdtId, vc] of this.subscriptions) {
@@ -172,20 +243,24 @@ export class WsTransport {
172
243
  this.flushPendingOps();
173
244
  }
174
245
  flushPendingOps() {
175
- const ops = this.pendingOps.splice(0);
176
- for (let i = 0; i < ops.length; i++) {
177
- const op = ops[i];
178
- if (op === undefined)
179
- continue;
180
- try {
181
- this.ws?.send(encodeClientMsg(op));
182
- }
183
- catch {
184
- // WebSocket closed between open and flush — re-queue remaining ops.
185
- this.pendingOps.unshift(...ops.slice(i));
186
- break;
246
+ this.runtime.runFork(Effect.gen((function* () {
247
+ for (;;) {
248
+ const next = yield* Queue.poll(this.pendingQueue);
249
+ if (Option.isNone(next))
250
+ break;
251
+ if (this.ws === null || this.state !== "CONNECTED") {
252
+ yield* Queue.offer(this.pendingQueue, next.value);
253
+ break;
254
+ }
255
+ try {
256
+ this.ws.send(encodeClientMsg(this.tagOp(next.value)));
257
+ }
258
+ catch {
259
+ yield* Queue.offer(this.pendingQueue, next.value);
260
+ break;
261
+ }
187
262
  }
188
- }
263
+ }).bind(this)));
189
264
  }
190
265
  sendSubscribe(crdtId, vc) {
191
266
  if (this.ws === null || this.state !== "CONNECTED")
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meridian-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "TypeScript SDK for Meridian CRDT server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "typescript": "^5.7.0"
26
26
  },
27
27
  "dependencies": {
28
- "effect": "^3.19.0",
28
+ "effect": "^3.21.0",
29
29
  "@msgpack/msgpack": "^3.0.0"
30
30
  },
31
31
  "peerDependencies": {