@grafema/rfdb-client 0.2.5-beta → 0.2.7

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.
package/dist/client.js CHANGED
@@ -7,6 +7,7 @@
7
7
  import { createConnection } from 'net';
8
8
  import { encode, decode } from '@msgpack/msgpack';
9
9
  import { EventEmitter } from 'events';
10
+ import { StreamQueue } from './stream-queue.js';
10
11
  export class RFDBClient extends EventEmitter {
11
12
  socketPath;
12
13
  socket;
@@ -14,6 +15,15 @@ export class RFDBClient extends EventEmitter {
14
15
  pending;
15
16
  reqId;
16
17
  buffer;
18
+ // Batch state
19
+ _batching = false;
20
+ _batchNodes = [];
21
+ _batchEdges = [];
22
+ _batchFiles = new Set();
23
+ // Streaming state
24
+ _supportsStreaming = false;
25
+ _pendingStreams = new Map();
26
+ _streamTimers = new Map();
17
27
  constructor(socketPath = '/tmp/rfdb.sock') {
18
28
  super();
19
29
  this.socketPath = socketPath;
@@ -23,6 +33,13 @@ export class RFDBClient extends EventEmitter {
23
33
  this.reqId = 0;
24
34
  this.buffer = Buffer.alloc(0);
25
35
  }
36
+ /**
37
+ * Whether the connected server supports streaming responses.
38
+ * Set after calling hello(). Defaults to false.
39
+ */
40
+ get supportsStreaming() {
41
+ return this._supportsStreaming;
42
+ }
26
43
  /**
27
44
  * Connect to RFDB server
28
45
  */
@@ -53,6 +70,15 @@ export class RFDBClient extends EventEmitter {
53
70
  reject(new Error('Connection closed'));
54
71
  }
55
72
  this.pending.clear();
73
+ // Fail all pending streams
74
+ for (const [, stream] of this._pendingStreams) {
75
+ stream.fail(new Error('Connection closed'));
76
+ }
77
+ this._pendingStreams.clear();
78
+ for (const [, timer] of this._streamTimers) {
79
+ clearTimeout(timer);
80
+ }
81
+ this._streamTimers.clear();
56
82
  });
57
83
  this.socket.on('data', (chunk) => {
58
84
  this._handleData(chunk);
@@ -108,15 +134,45 @@ export class RFDBClient extends EventEmitter {
108
134
  }
109
135
  }
110
136
  /**
111
- * Handle decoded response
137
+ * Handle decoded response — match by requestId, route streaming chunks
138
+ * to StreamQueue or resolve single-response Promise.
112
139
  */
113
140
  _handleResponse(response) {
114
- if (this.pending.size === 0) {
141
+ if (this.pending.size === 0 && this._pendingStreams.size === 0) {
115
142
  this.emit('error', new Error('Received response with no pending request'));
116
143
  return;
117
144
  }
118
- // Get the oldest pending request (FIFO)
119
- const [id, { resolve, reject }] = this.pending.entries().next().value;
145
+ let id;
146
+ if (response.requestId) {
147
+ const parsed = this._parseRequestId(response.requestId);
148
+ if (parsed === null) {
149
+ this.emit('error', new Error(`Received response for unknown requestId: ${response.requestId}`));
150
+ return;
151
+ }
152
+ id = parsed;
153
+ }
154
+ else {
155
+ // FIFO fallback for servers that don't echo requestId
156
+ if (this.pending.size > 0) {
157
+ id = this.pending.entries().next().value[0];
158
+ }
159
+ else {
160
+ this.emit('error', new Error('Received response with no pending request'));
161
+ return;
162
+ }
163
+ }
164
+ // Route to streaming handler if this requestId has a StreamQueue
165
+ const streamQueue = this._pendingStreams.get(id);
166
+ if (streamQueue) {
167
+ this._handleStreamingResponse(id, response, streamQueue);
168
+ return;
169
+ }
170
+ // Non-streaming response — existing behavior
171
+ if (!this.pending.has(id)) {
172
+ this.emit('error', new Error(`Received response for unknown requestId: ${response.requestId}`));
173
+ return;
174
+ }
175
+ const { resolve, reject } = this.pending.get(id);
120
176
  this.pending.delete(id);
121
177
  if (response.error) {
122
178
  reject(new Error(response.error));
@@ -125,6 +181,76 @@ export class RFDBClient extends EventEmitter {
125
181
  resolve(response);
126
182
  }
127
183
  }
184
+ /**
185
+ * Handle a response for a streaming request.
186
+ * Routes chunk data to StreamQueue and manages stream lifecycle.
187
+ * Resets per-chunk timeout on each successful chunk arrival.
188
+ */
189
+ _handleStreamingResponse(id, response, streamQueue) {
190
+ // Error response — fail the stream
191
+ if (response.error) {
192
+ this._cleanupStream(id);
193
+ streamQueue.fail(new Error(response.error));
194
+ return;
195
+ }
196
+ // Streaming chunk (has `done` field)
197
+ if ('done' in response) {
198
+ const chunk = response;
199
+ const nodes = chunk.nodes || [];
200
+ for (const node of nodes) {
201
+ streamQueue.push(node);
202
+ }
203
+ if (chunk.done) {
204
+ this._cleanupStream(id);
205
+ streamQueue.end();
206
+ }
207
+ else {
208
+ // Reset per-chunk timeout
209
+ this._resetStreamTimer(id, streamQueue);
210
+ }
211
+ return;
212
+ }
213
+ // Auto-fallback: server sent a non-streaming Nodes response
214
+ // (server doesn't support streaming or result was below threshold)
215
+ const nodesResponse = response;
216
+ const nodes = nodesResponse.nodes || [];
217
+ for (const node of nodes) {
218
+ streamQueue.push(node);
219
+ }
220
+ this._cleanupStream(id);
221
+ streamQueue.end();
222
+ }
223
+ /**
224
+ * Reset the per-chunk timeout for a streaming request.
225
+ */
226
+ _resetStreamTimer(id, streamQueue) {
227
+ const existing = this._streamTimers.get(id);
228
+ if (existing)
229
+ clearTimeout(existing);
230
+ const timer = setTimeout(() => {
231
+ this._cleanupStream(id);
232
+ streamQueue.fail(new Error(`RFDB queryNodesStream timed out after ${RFDBClient.DEFAULT_TIMEOUT_MS}ms (no chunk received)`));
233
+ }, RFDBClient.DEFAULT_TIMEOUT_MS);
234
+ this._streamTimers.set(id, timer);
235
+ }
236
+ /**
237
+ * Clean up all state for a completed/failed streaming request.
238
+ */
239
+ _cleanupStream(id) {
240
+ this._pendingStreams.delete(id);
241
+ this.pending.delete(id);
242
+ const timer = this._streamTimers.get(id);
243
+ if (timer) {
244
+ clearTimeout(timer);
245
+ this._streamTimers.delete(id);
246
+ }
247
+ }
248
+ _parseRequestId(requestId) {
249
+ if (!requestId.startsWith('r'))
250
+ return null;
251
+ const num = parseInt(requestId.slice(1), 10);
252
+ return Number.isNaN(num) ? null : num;
253
+ }
128
254
  /**
129
255
  * Default timeout for operations (60 seconds)
130
256
  * Flush/compact may take time for large graphs, but should not hang indefinitely
@@ -137,10 +263,10 @@ export class RFDBClient extends EventEmitter {
137
263
  if (!this.connected || !this.socket) {
138
264
  throw new Error('Not connected to RFDB server');
139
265
  }
140
- const request = { cmd, ...payload };
141
- const msgBytes = encode(request);
142
266
  return new Promise((resolve, reject) => {
143
267
  const id = this.reqId++;
268
+ const request = { requestId: `r${id}`, cmd, ...payload };
269
+ const msgBytes = encode(request);
144
270
  // Setup timeout
145
271
  const timer = setTimeout(() => {
146
272
  this.pending.delete(id);
@@ -183,11 +309,11 @@ export class RFDBClient extends EventEmitter {
183
309
  // Cast to Record to allow iteration over extra properties
184
310
  const nodeRecord = n;
185
311
  // Extract known wire format fields, rest goes to metadata
186
- const { id, type, node_type, nodeType, name, file, exported, metadata, ...rest } = nodeRecord;
312
+ const { id, type, node_type, nodeType, name, file, exported, metadata, semanticId, semantic_id, ...rest } = nodeRecord;
187
313
  // Merge explicit metadata with extra properties
188
314
  const existingMeta = typeof metadata === 'string' ? JSON.parse(metadata) : (metadata || {});
189
315
  const combinedMeta = { ...existingMeta, ...rest };
190
- return {
316
+ const wire = {
191
317
  id: String(id),
192
318
  nodeType: (node_type || nodeType || type || 'UNKNOWN'),
193
319
  name: name || '',
@@ -195,7 +321,21 @@ export class RFDBClient extends EventEmitter {
195
321
  exported: exported || false,
196
322
  metadata: JSON.stringify(combinedMeta),
197
323
  };
324
+ // Preserve semanticId as top-level field for v3 protocol
325
+ const sid = semanticId || semantic_id;
326
+ if (sid) {
327
+ wire.semanticId = String(sid);
328
+ }
329
+ return wire;
198
330
  });
331
+ if (this._batching) {
332
+ this._batchNodes.push(...wireNodes);
333
+ for (const node of wireNodes) {
334
+ if (node.file)
335
+ this._batchFiles.add(node.file);
336
+ }
337
+ return { ok: true };
338
+ }
199
339
  return this._send('addNodes', { nodes: wireNodes });
200
340
  }
201
341
  /**
@@ -218,6 +358,10 @@ export class RFDBClient extends EventEmitter {
218
358
  metadata: JSON.stringify(combinedMeta),
219
359
  };
220
360
  });
361
+ if (this._batching) {
362
+ this._batchEdges.push(...wireEdges);
363
+ return { ok: true };
364
+ }
221
365
  return this._send('addEdges', { edges: wireEdges, skipValidation });
222
366
  }
223
367
  /**
@@ -417,6 +561,23 @@ export class RFDBClient extends EventEmitter {
417
561
  * Query nodes (async generator)
418
562
  */
419
563
  async *queryNodes(query) {
564
+ // When server supports streaming (protocol v3+), delegate to streaming handler
565
+ // to correctly handle chunked NodesChunk responses for large result sets.
566
+ if (this._supportsStreaming) {
567
+ yield* this.queryNodesStream(query);
568
+ return;
569
+ }
570
+ const serverQuery = this._buildServerQuery(query);
571
+ const response = await this._send('queryNodes', { query: serverQuery });
572
+ const nodes = response.nodes || [];
573
+ for (const node of nodes) {
574
+ yield node;
575
+ }
576
+ }
577
+ /**
578
+ * Build a server query object from an AttrQuery.
579
+ */
580
+ _buildServerQuery(query) {
420
581
  const serverQuery = {};
421
582
  if (query.nodeType)
422
583
  serverQuery.nodeType = query.nodeType;
@@ -428,10 +589,54 @@ export class RFDBClient extends EventEmitter {
428
589
  serverQuery.file = query.file;
429
590
  if (query.exported !== undefined)
430
591
  serverQuery.exported = query.exported;
431
- const response = await this._send('queryNodes', { query: serverQuery });
432
- const nodes = response.nodes || [];
433
- for (const node of nodes) {
434
- yield node;
592
+ return serverQuery;
593
+ }
594
+ /**
595
+ * Stream nodes matching query with true streaming support.
596
+ *
597
+ * Behavior depends on server capabilities:
598
+ * - Server supports streaming (protocol v3): receives chunked NodesChunk
599
+ * responses via StreamQueue. Nodes are yielded as they arrive.
600
+ * - Server does NOT support streaming (fallback): delegates to queryNodes()
601
+ * which yields nodes one by one from bulk response.
602
+ *
603
+ * The generator can be aborted by breaking out of the loop or calling .return().
604
+ */
605
+ async *queryNodesStream(query) {
606
+ if (!this._supportsStreaming) {
607
+ yield* this.queryNodes(query);
608
+ return;
609
+ }
610
+ if (!this.connected || !this.socket) {
611
+ throw new Error('Not connected to RFDB server');
612
+ }
613
+ const serverQuery = this._buildServerQuery(query);
614
+ const id = this.reqId++;
615
+ const streamQueue = new StreamQueue();
616
+ this._pendingStreams.set(id, streamQueue);
617
+ // Build and send request manually (can't use _send which expects single response)
618
+ const request = { requestId: `r${id}`, cmd: 'queryNodes', query: serverQuery };
619
+ const msgBytes = encode(request);
620
+ const header = Buffer.alloc(4);
621
+ header.writeUInt32BE(msgBytes.length);
622
+ // Register in pending map for error routing
623
+ this.pending.set(id, {
624
+ resolve: () => { this._cleanupStream(id); },
625
+ reject: (error) => {
626
+ this._cleanupStream(id);
627
+ streamQueue.fail(error);
628
+ },
629
+ });
630
+ // Start per-chunk timeout (resets on each chunk in _handleStreamingResponse)
631
+ this._resetStreamTimer(id, streamQueue);
632
+ this.socket.write(Buffer.concat([header, Buffer.from(msgBytes)]));
633
+ try {
634
+ for await (const node of streamQueue) {
635
+ yield node;
636
+ }
637
+ }
638
+ finally {
639
+ this._cleanupStream(id);
435
640
  }
436
641
  }
437
642
  /**
@@ -525,6 +730,14 @@ export class RFDBClient extends EventEmitter {
525
730
  const response = await this._send('checkGuarantee', { ruleSource });
526
731
  return response.violations || [];
527
732
  }
733
+ /**
734
+ * Execute unified Datalog — handles both direct queries and rule-based programs.
735
+ * Auto-detects the head predicate instead of hardcoding violation(X).
736
+ */
737
+ async executeDatalog(source) {
738
+ const response = await this._send('executeDatalog', { source });
739
+ return response.results || [];
740
+ }
528
741
  /**
529
742
  * Ping the server
530
743
  */
@@ -540,9 +753,11 @@ export class RFDBClient extends EventEmitter {
540
753
  * @param protocolVersion - Protocol version to negotiate (default: 2)
541
754
  * @returns Server capabilities including protocolVersion, serverVersion, features
542
755
  */
543
- async hello(protocolVersion = 2) {
756
+ async hello(protocolVersion = 3) {
544
757
  const response = await this._send('hello', { protocolVersion });
545
- return response;
758
+ const hello = response;
759
+ this._supportsStreaming = hello.features?.includes('streaming') ?? false;
760
+ return hello;
546
761
  }
547
762
  /**
548
763
  * Create a new database
@@ -589,6 +804,141 @@ export class RFDBClient extends EventEmitter {
589
804
  const response = await this._send('currentDatabase');
590
805
  return response;
591
806
  }
807
+ // ===========================================================================
808
+ // Snapshot Operations
809
+ // ===========================================================================
810
+ /**
811
+ * Convert a SnapshotRef to wire format payload fields.
812
+ *
813
+ * - number -> { version: N }
814
+ * - { tag, value } -> { tagKey, tagValue }
815
+ */
816
+ _resolveSnapshotRef(ref) {
817
+ if (typeof ref === 'number')
818
+ return { version: ref };
819
+ return { tagKey: ref.tag, tagValue: ref.value };
820
+ }
821
+ /**
822
+ * Compute diff between two snapshots.
823
+ * @param from - Source snapshot (version number or tag reference)
824
+ * @param to - Target snapshot (version number or tag reference)
825
+ * @returns SnapshotDiff with added/removed segments and stats
826
+ */
827
+ async diffSnapshots(from, to) {
828
+ const response = await this._send('diffSnapshots', {
829
+ from: this._resolveSnapshotRef(from),
830
+ to: this._resolveSnapshotRef(to),
831
+ });
832
+ return response.diff;
833
+ }
834
+ /**
835
+ * Tag a snapshot with key-value metadata.
836
+ * @param version - Snapshot version to tag
837
+ * @param tags - Key-value pairs to apply (e.g. { "release": "v1.0" })
838
+ */
839
+ async tagSnapshot(version, tags) {
840
+ await this._send('tagSnapshot', { version, tags });
841
+ }
842
+ /**
843
+ * Find a snapshot by tag key/value pair.
844
+ * @param tagKey - Tag key to search for
845
+ * @param tagValue - Tag value to match
846
+ * @returns Snapshot version number, or null if not found
847
+ */
848
+ async findSnapshot(tagKey, tagValue) {
849
+ const response = await this._send('findSnapshot', { tagKey, tagValue });
850
+ return response.version;
851
+ }
852
+ /**
853
+ * List snapshots, optionally filtered by tag key.
854
+ * @param filterTag - Optional tag key to filter by (only snapshots with this tag)
855
+ * @returns Array of SnapshotInfo objects
856
+ */
857
+ async listSnapshots(filterTag) {
858
+ const payload = {};
859
+ if (filterTag !== undefined)
860
+ payload.filterTag = filterTag;
861
+ const response = await this._send('listSnapshots', payload);
862
+ return response.snapshots;
863
+ }
864
+ // ===========================================================================
865
+ // Batch Operations
866
+ // ===========================================================================
867
+ /**
868
+ * Begin a batch operation.
869
+ * While batching, addNodes/addEdges buffer locally instead of sending to server.
870
+ * Call commitBatch() to send all buffered data atomically.
871
+ */
872
+ beginBatch() {
873
+ if (this._batching)
874
+ throw new Error('Batch already in progress');
875
+ this._batching = true;
876
+ this._batchNodes = [];
877
+ this._batchEdges = [];
878
+ this._batchFiles = new Set();
879
+ }
880
+ /**
881
+ * Commit the current batch to the server.
882
+ * Sends all buffered nodes/edges with the list of changed files.
883
+ * Server atomically replaces old data for changed files with new data.
884
+ */
885
+ async commitBatch(tags) {
886
+ if (!this._batching)
887
+ throw new Error('No batch in progress');
888
+ const response = await this._send('commitBatch', {
889
+ changedFiles: [...this._batchFiles],
890
+ nodes: this._batchNodes,
891
+ edges: this._batchEdges,
892
+ tags,
893
+ });
894
+ this._batching = false;
895
+ this._batchNodes = [];
896
+ this._batchEdges = [];
897
+ this._batchFiles = new Set();
898
+ return response.delta;
899
+ }
900
+ /**
901
+ * Abort the current batch, discarding all buffered data.
902
+ */
903
+ abortBatch() {
904
+ this._batching = false;
905
+ this._batchNodes = [];
906
+ this._batchEdges = [];
907
+ this._batchFiles = new Set();
908
+ }
909
+ /**
910
+ * Check if a batch is currently in progress.
911
+ */
912
+ isBatching() {
913
+ return this._batching;
914
+ }
915
+ /**
916
+ * Find files that depend on the given changed files.
917
+ * Uses backward reachability to find dependent modules.
918
+ *
919
+ * Note: For large result sets, each reachable node requires a separate
920
+ * getNode RPC. A future server-side optimization could return file paths
921
+ * directly from the reachability query.
922
+ */
923
+ async findDependentFiles(changedFiles) {
924
+ const nodeIds = [];
925
+ for (const file of changedFiles) {
926
+ const ids = await this.findByAttr({ file });
927
+ nodeIds.push(...ids);
928
+ }
929
+ if (nodeIds.length === 0)
930
+ return [];
931
+ const reachable = await this.reachability(nodeIds, 2, ['IMPORTS_FROM', 'DEPENDS_ON', 'CALLS'], true);
932
+ const changedSet = new Set(changedFiles);
933
+ const files = new Set();
934
+ for (const id of reachable) {
935
+ const node = await this.getNode(id);
936
+ if (node?.file && !changedSet.has(node.file)) {
937
+ files.add(node.file);
938
+ }
939
+ }
940
+ return [...files];
941
+ }
592
942
  /**
593
943
  * Unref the socket so it doesn't keep the process alive.
594
944
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}