@ultipa-graph/ultipa-driver 6.0.9 → 6.0.11
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.d.ts +111 -63
- package/dist/client.js +364 -144
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/types/convenience.d.ts +40 -2
- package/dist/types/convenience.js +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { GqldbConfig } from './config';
|
|
|
6
6
|
import { Response, InsertNodesResult, InsertEdgesResult, DeleteResult, ExportNodesResult, ExportEdgesResult, ExportConfig, ExportChunk } from './response';
|
|
7
7
|
import { Session } from './session';
|
|
8
8
|
import { Transaction } from './transaction';
|
|
9
|
-
import { GraphInfo, GraphType, HealthStatus, CacheStats, CacheType, Statistics, CompactResult, ComputeTopologyResult, SystemMetrics, NodeData, EdgeData, BulkCreateNodesOptions, BulkCreateEdgesOptions, BulkImportOptions, BulkImportSession, CheckpointResult, EndBulkImportResult, AbortBulkImportResult, BulkImportStatus, TransactionInfo, DBType, InsertType, LabelInfo, NodeTypeInfo, EdgeTypeInfo, ConvPropertyDef, IndexProperty, IndexInfo, FulltextInfo, TaskInfo, ProcessInfo, GraphStats, AlgoInfo } from './types';
|
|
9
|
+
import { GraphInfo, GraphType, HealthStatus, CacheStats, CacheType, Statistics, CompactResult, ComputeTopologyResult, SystemMetrics, NodeData, EdgeData, BulkCreateNodesOptions, BulkCreateEdgesOptions, BulkImportOptions, BulkImportSession, CheckpointResult, EndBulkImportResult, AbortBulkImportResult, BulkImportStatus, TransactionInfo, DBType, InsertType, LabelInfo, NodeTypeInfo, EdgeTypeInfo, ConvPropertyDef, IndexProperty, IndexInfo, FulltextInfo, TaskInfo, ProcessInfo, GraphStats, AlgoInfo, AiReadResult } from './types';
|
|
10
10
|
/** Configuration for a query */
|
|
11
11
|
export interface QueryConfig {
|
|
12
12
|
graphName?: string;
|
|
@@ -17,6 +17,14 @@ export interface QueryConfig {
|
|
|
17
17
|
/** Max paths to return from path queries (0 = unlimited) */
|
|
18
18
|
maxPathResults?: number;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for insertNodes / insertEdges convenience methods.
|
|
22
|
+
* Extends QueryConfig with insert-specific options.
|
|
23
|
+
*/
|
|
24
|
+
export interface InsertConfig extends QueryConfig {
|
|
25
|
+
/** Insert mode. Defaults to InsertType.Normal when omitted. */
|
|
26
|
+
insertType?: InsertType;
|
|
27
|
+
}
|
|
20
28
|
/** Configuration for insert nodes */
|
|
21
29
|
export interface InsertNodesConfig {
|
|
22
30
|
options?: BulkCreateNodesOptions;
|
|
@@ -210,10 +218,14 @@ export declare class GqldbClient {
|
|
|
210
218
|
private static quoteLabels;
|
|
211
219
|
/** Join names with ", " without backtick wrapping */
|
|
212
220
|
private static joinNames;
|
|
213
|
-
/** Create a new open (schema-less) graph
|
|
214
|
-
|
|
221
|
+
/** Create a new open (schema-less) graph
|
|
222
|
+
*
|
|
223
|
+
* v6 GQL: `CREATE GRAPH g` -> OPEN; `CREATE GRAPH g {}` -> CLOSED. The
|
|
224
|
+
* brace-less form is required to actually get an OPEN graph.
|
|
225
|
+
*/
|
|
226
|
+
createOpenGraph(name: string, config?: QueryConfig): Promise<Response>;
|
|
215
227
|
/** Create a new closed (schema-enforced) graph with node and edge label definitions */
|
|
216
|
-
createClosedGraph(name: string): Promise<Response>;
|
|
228
|
+
createClosedGraph(name: string, config?: QueryConfig): Promise<Response>;
|
|
217
229
|
/**
|
|
218
230
|
* Create a graph if it does not already exist.
|
|
219
231
|
* Returns true if the graph was created, false if it already existed.
|
|
@@ -222,137 +234,173 @@ export declare class GqldbClient {
|
|
|
222
234
|
/** Check whether a graph with the given name exists */
|
|
223
235
|
hasGraph(name: string): Promise<boolean>;
|
|
224
236
|
/** Rename a graph */
|
|
225
|
-
alterGraph(graphName: string, newName: string): Promise<Response>;
|
|
237
|
+
alterGraph(graphName: string, newName: string, config?: QueryConfig): Promise<Response>;
|
|
226
238
|
/** Remove all data from a graph while keeping its structure */
|
|
227
|
-
truncate(graphName: string): Promise<Response>;
|
|
239
|
+
truncate(graphName: string, config?: QueryConfig): Promise<Response>;
|
|
228
240
|
/** Return all labels (node and edge) in the current graph */
|
|
229
|
-
showLabels(): Promise<LabelInfo[]>;
|
|
241
|
+
showLabels(config?: QueryConfig): Promise<LabelInfo[]>;
|
|
230
242
|
/** Return all node labels in the current graph */
|
|
231
|
-
showNodeLabels(): Promise<LabelInfo[]>;
|
|
243
|
+
showNodeLabels(config?: QueryConfig): Promise<LabelInfo[]>;
|
|
232
244
|
/** Return all edge labels in the current graph */
|
|
233
|
-
showEdgeLabels(): Promise<LabelInfo[]>;
|
|
245
|
+
showEdgeLabels(config?: QueryConfig): Promise<LabelInfo[]>;
|
|
234
246
|
/** Return all node types with their properties */
|
|
235
|
-
showNodeTypes(): Promise<NodeTypeInfo[]>;
|
|
247
|
+
showNodeTypes(config?: QueryConfig): Promise<NodeTypeInfo[]>;
|
|
236
248
|
/** Return all edge types with their properties */
|
|
237
|
-
showEdgeTypes(): Promise<EdgeTypeInfo[]>;
|
|
238
|
-
/**
|
|
239
|
-
|
|
249
|
+
showEdgeTypes(config?: QueryConfig): Promise<EdgeTypeInfo[]>;
|
|
250
|
+
/**
|
|
251
|
+
* Return a specific label by name from the current graph, or null if not found.
|
|
252
|
+
* Matches entries where `name` is one of the .labels (supports multi-label groups).
|
|
253
|
+
*/
|
|
254
|
+
getLabel(name: string, config?: QueryConfig): Promise<LabelInfo | null>;
|
|
240
255
|
/** Return a specific node type by name, or null if not found */
|
|
241
|
-
getNodeLabel(name: string): Promise<NodeTypeInfo | null>;
|
|
256
|
+
getNodeLabel(name: string, config?: QueryConfig): Promise<NodeTypeInfo | null>;
|
|
242
257
|
/** Return a specific edge type by name, or null if not found */
|
|
243
|
-
getEdgeLabel(name: string): Promise<EdgeTypeInfo | null>;
|
|
258
|
+
getEdgeLabel(name: string, config?: QueryConfig): Promise<EdgeTypeInfo | null>;
|
|
244
259
|
/** Create a node label in the current graph (closed graph) */
|
|
245
|
-
createNodeLabel(name: string, props?: ConvPropertyDef[]): Promise<Response>;
|
|
260
|
+
createNodeLabel(name: string, props?: ConvPropertyDef[], config?: QueryConfig): Promise<Response>;
|
|
246
261
|
/** Create an edge label in the current graph (closed graph) */
|
|
247
|
-
createEdgeLabel(name: string, props?: ConvPropertyDef[]): Promise<Response>;
|
|
262
|
+
createEdgeLabel(name: string, props?: ConvPropertyDef[], config?: QueryConfig): Promise<Response>;
|
|
248
263
|
/** Drop a node label from the current graph (closed graph) */
|
|
249
|
-
dropNodeLabel(name: string): Promise<Response>;
|
|
264
|
+
dropNodeLabel(name: string, config?: QueryConfig): Promise<Response>;
|
|
250
265
|
/** Drop one or more edge labels from the current graph (closed graph) */
|
|
251
|
-
dropEdgeLabel(...
|
|
266
|
+
dropEdgeLabel(...namesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
252
267
|
/**
|
|
253
268
|
* Create a label if it does not already exist.
|
|
254
269
|
* Returns true if created, false if it already existed.
|
|
255
270
|
*/
|
|
256
|
-
createLabelIfNotExist(nodeOrEdge: DBType, name: string, props?: ConvPropertyDef[]): Promise<boolean>;
|
|
271
|
+
createLabelIfNotExist(nodeOrEdge: DBType, name: string, props?: ConvPropertyDef[], config?: QueryConfig): Promise<boolean>;
|
|
257
272
|
/** Rename a node label */
|
|
258
|
-
alterNodeLabel(oldName: string, newName: string): Promise<Response>;
|
|
273
|
+
alterNodeLabel(oldName: string, newName: string, config?: QueryConfig): Promise<Response>;
|
|
259
274
|
/** Rename an edge label */
|
|
260
|
-
alterEdgeLabel(oldName: string, newName: string): Promise<Response>;
|
|
275
|
+
alterEdgeLabel(oldName: string, newName: string, config?: QueryConfig): Promise<Response>;
|
|
261
276
|
/** Return all available algorithms */
|
|
262
|
-
showAlgos(): Promise<AlgoInfo[]>;
|
|
277
|
+
showAlgos(config?: QueryConfig): Promise<AlgoInfo[]>;
|
|
263
278
|
/** Return properties for a label (node or edge) in the current graph */
|
|
264
|
-
showProperty(nodeOrEdge: DBType, labelName: string): Promise<ConvPropertyDef[]>;
|
|
279
|
+
showProperty(nodeOrEdge: DBType, labelName: string, config?: QueryConfig): Promise<ConvPropertyDef[]>;
|
|
265
280
|
/** Return properties for a node label */
|
|
266
|
-
showNodeProperty(labelName: string): Promise<ConvPropertyDef[]>;
|
|
281
|
+
showNodeProperty(labelName: string, config?: QueryConfig): Promise<ConvPropertyDef[]>;
|
|
267
282
|
/** Return properties for an edge label */
|
|
268
|
-
showEdgeProperty(labelName: string): Promise<ConvPropertyDef[]>;
|
|
283
|
+
showEdgeProperty(labelName: string, config?: QueryConfig): Promise<ConvPropertyDef[]>;
|
|
269
284
|
/** Return a specific property definition for a label, or null if not found */
|
|
270
|
-
getProperty(nodeOrEdge: DBType, labelName: string, propName: string): Promise<ConvPropertyDef | null>;
|
|
285
|
+
getProperty(nodeOrEdge: DBType, labelName: string, propName: string, config?: QueryConfig): Promise<ConvPropertyDef | null>;
|
|
271
286
|
/** Return a specific property definition for a node label, or null if not found */
|
|
272
|
-
getNodeProperty(labelName: string, propName: string): Promise<ConvPropertyDef | null>;
|
|
287
|
+
getNodeProperty(labelName: string, propName: string, config?: QueryConfig): Promise<ConvPropertyDef | null>;
|
|
273
288
|
/** Return a specific property definition for an edge label, or null if not found */
|
|
274
|
-
getEdgeProperty(labelName: string, propName: string): Promise<ConvPropertyDef | null>;
|
|
289
|
+
getEdgeProperty(labelName: string, propName: string, config?: QueryConfig): Promise<ConvPropertyDef | null>;
|
|
275
290
|
/** Add properties to a label (node or edge) */
|
|
276
|
-
createProperty(nodeOrEdge: DBType, labelName: string, props: ConvPropertyDef[]): Promise<Response>;
|
|
291
|
+
createProperty(nodeOrEdge: DBType, labelName: string, props: ConvPropertyDef[], config?: QueryConfig): Promise<Response>;
|
|
277
292
|
/** Add properties to a node label */
|
|
278
|
-
createNodeProperty(labelName: string, props: ConvPropertyDef[]): Promise<Response>;
|
|
293
|
+
createNodeProperty(labelName: string, props: ConvPropertyDef[], config?: QueryConfig): Promise<Response>;
|
|
279
294
|
/** Add properties to an edge label */
|
|
280
|
-
createEdgeProperty(labelName: string, props: ConvPropertyDef[]): Promise<Response>;
|
|
295
|
+
createEdgeProperty(labelName: string, props: ConvPropertyDef[], config?: QueryConfig): Promise<Response>;
|
|
281
296
|
/** Drop properties from a label (node or edge) */
|
|
282
|
-
dropProperty(nodeOrEdge: DBType, labelName: string, ...
|
|
297
|
+
dropProperty(nodeOrEdge: DBType, labelName: string, ...propNamesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
283
298
|
/** Drop properties from a node label */
|
|
284
|
-
dropNodeProperty(labelName: string, ...
|
|
299
|
+
dropNodeProperty(labelName: string, ...propNamesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
285
300
|
/** Drop properties from an edge label */
|
|
286
|
-
dropEdgeProperty(labelName: string, ...
|
|
301
|
+
dropEdgeProperty(labelName: string, ...propNamesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
287
302
|
/**
|
|
288
303
|
* Create properties on a label if they do not already exist.
|
|
289
304
|
* Returns true if any properties were created, false if all already existed.
|
|
290
305
|
*/
|
|
291
|
-
createPropertyIfNotExist(nodeOrEdge: DBType, labelName: string, props: ConvPropertyDef[]): Promise<boolean>;
|
|
306
|
+
createPropertyIfNotExist(nodeOrEdge: DBType, labelName: string, props: ConvPropertyDef[], config?: QueryConfig): Promise<boolean>;
|
|
292
307
|
/** Create a NOT NULL constraint on a property */
|
|
293
|
-
createNotNullConstraint(nodeOrEdge: DBType, labelName: string, propName: string): Promise<Response>;
|
|
308
|
+
createNotNullConstraint(nodeOrEdge: DBType, labelName: string, propName: string, config?: QueryConfig): Promise<Response>;
|
|
294
309
|
/** Create a UNIQUE constraint on one or more properties */
|
|
295
|
-
createUniqueConstraint(nodeOrEdge: DBType, labelName: string, ...
|
|
310
|
+
createUniqueConstraint(nodeOrEdge: DBType, labelName: string, ...propNamesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
296
311
|
/** Remove a NOT NULL constraint from a property */
|
|
297
|
-
dropNotNullConstraint(nodeOrEdge: DBType, labelName: string, propName: string): Promise<Response>;
|
|
312
|
+
dropNotNullConstraint(nodeOrEdge: DBType, labelName: string, propName: string, config?: QueryConfig): Promise<Response>;
|
|
298
313
|
/** Remove a UNIQUE constraint from one or more properties */
|
|
299
|
-
dropUniqueConstraint(nodeOrEdge: DBType, labelName: string, ...
|
|
314
|
+
dropUniqueConstraint(nodeOrEdge: DBType, labelName: string, ...propNamesOrConfig: Array<string | QueryConfig | undefined>): Promise<Response>;
|
|
300
315
|
/** Return all indexes in the current graph */
|
|
301
|
-
showIndex(): Promise<IndexInfo[]>;
|
|
316
|
+
showIndex(config?: QueryConfig): Promise<IndexInfo[]>;
|
|
302
317
|
/** Return all node indexes in the current graph */
|
|
303
|
-
showNodeIndex(): Promise<IndexInfo[]>;
|
|
318
|
+
showNodeIndex(config?: QueryConfig): Promise<IndexInfo[]>;
|
|
304
319
|
/** Return all edge indexes in the current graph */
|
|
305
|
-
showEdgeIndex(): Promise<IndexInfo[]>;
|
|
320
|
+
showEdgeIndex(config?: QueryConfig): Promise<IndexInfo[]>;
|
|
306
321
|
/** Create an index on a node label */
|
|
307
|
-
createNodeIndex(indexName: string, labelName: string, props: IndexProperty[]): Promise<Response>;
|
|
322
|
+
createNodeIndex(indexName: string, labelName: string, props: IndexProperty[], config?: QueryConfig): Promise<Response>;
|
|
308
323
|
/** Create an index on an edge label */
|
|
309
|
-
createEdgeIndex(indexName: string, labelName: string, props: IndexProperty[]): Promise<Response>;
|
|
324
|
+
createEdgeIndex(indexName: string, labelName: string, props: IndexProperty[], config?: QueryConfig): Promise<Response>;
|
|
310
325
|
/** Drop a node index by name */
|
|
311
|
-
dropNodeIndex(indexName: string): Promise<Response>;
|
|
326
|
+
dropNodeIndex(indexName: string, config?: QueryConfig): Promise<Response>;
|
|
312
327
|
/** Drop an edge index by name */
|
|
313
|
-
dropEdgeIndex(indexName: string): Promise<Response>;
|
|
328
|
+
dropEdgeIndex(indexName: string, config?: QueryConfig): Promise<Response>;
|
|
314
329
|
/** Return all fulltext indexes in the current graph */
|
|
315
|
-
showFulltext(): Promise<FulltextInfo[]>;
|
|
330
|
+
showFulltext(config?: QueryConfig): Promise<FulltextInfo[]>;
|
|
316
331
|
/** Return all node fulltext indexes */
|
|
317
|
-
showNodeFulltext(): Promise<FulltextInfo[]>;
|
|
332
|
+
showNodeFulltext(config?: QueryConfig): Promise<FulltextInfo[]>;
|
|
318
333
|
/** Return all edge fulltext indexes */
|
|
319
|
-
showEdgeFulltext(): Promise<FulltextInfo[]>;
|
|
334
|
+
showEdgeFulltext(config?: QueryConfig): Promise<FulltextInfo[]>;
|
|
320
335
|
/** Create a fulltext index on a node label */
|
|
321
|
-
createNodeFulltext(indexName: string, labelName: string, props: string[]): Promise<Response>;
|
|
336
|
+
createNodeFulltext(indexName: string, labelName: string, props: string[], config?: QueryConfig): Promise<Response>;
|
|
322
337
|
/** Create a fulltext index on an edge label */
|
|
323
|
-
createEdgeFulltext(indexName: string, labelName: string, props: string[]): Promise<Response>;
|
|
338
|
+
createEdgeFulltext(indexName: string, labelName: string, props: string[], config?: QueryConfig): Promise<Response>;
|
|
324
339
|
/** Drop a node fulltext index by name */
|
|
325
|
-
dropNodeFulltext(indexName: string): Promise<Response>;
|
|
340
|
+
dropNodeFulltext(indexName: string, config?: QueryConfig): Promise<Response>;
|
|
326
341
|
/** Drop an edge fulltext index by name */
|
|
327
|
-
dropEdgeFulltext(indexName: string): Promise<Response>;
|
|
342
|
+
dropEdgeFulltext(indexName: string, config?: QueryConfig): Promise<Response>;
|
|
328
343
|
/** Return all tasks in the current graph */
|
|
329
|
-
showTasks(): Promise<TaskInfo[]>;
|
|
344
|
+
showTasks(config?: QueryConfig): Promise<TaskInfo[]>;
|
|
330
345
|
/** Delete a task by ID */
|
|
331
|
-
deleteTask(taskId: string): Promise<Response>;
|
|
346
|
+
deleteTask(taskId: string, config?: QueryConfig): Promise<Response>;
|
|
332
347
|
/** Stop a running task by ID */
|
|
333
|
-
stopTask(taskId: string): Promise<Response>;
|
|
334
|
-
/** Insert nodes using GQL INSERT syntax */
|
|
348
|
+
stopTask(taskId: string, config?: QueryConfig): Promise<Response>;
|
|
335
349
|
/**
|
|
336
350
|
* Insert nodes using GQL INSERT syntax with RETURN clause.
|
|
337
351
|
* GQL: INSERT (n0:Label {p1: v1}), (n1:Label {p2: v2}) RETURN n0, n1
|
|
352
|
+
* When config.insertType is InsertType.Overwrite, uses INSERT OVERWRITE syntax.
|
|
338
353
|
* If NodeData.id is set (non-empty), includes it as _id property in the GQL.
|
|
339
354
|
* Returns the raw Response containing the inserted nodes in columns n0, n1, etc.
|
|
355
|
+
*
|
|
356
|
+
* @param nodes Nodes to insert.
|
|
357
|
+
* @param config Optional InsertConfig. Supports per-call graphName and insertType.
|
|
340
358
|
*/
|
|
341
|
-
insertNodes(nodes: NodeData[],
|
|
359
|
+
insertNodes(nodes: NodeData[], config?: InsertConfig): Promise<Response>;
|
|
342
360
|
/**
|
|
343
361
|
* Insert edges using GQL INSERT syntax with RETURN clause.
|
|
344
362
|
* Each edge is inserted individually using MATCH + INSERT to resolve node IDs.
|
|
345
363
|
* GQL: MATCH (src WHERE id(src) = 'from'), (dst WHERE id(dst) = 'to')
|
|
346
364
|
* INSERT (src)-[e0:Label {p1: v1}]->(dst) RETURN e0
|
|
365
|
+
* When config.insertType is InsertType.Overwrite, uses INSERT OVERWRITE syntax.
|
|
347
366
|
* Returns a merged Response containing all inserted edges in columns e0, e1, etc.
|
|
367
|
+
*
|
|
368
|
+
* @param edges Edges to insert.
|
|
369
|
+
* @param config Optional InsertConfig. Supports per-call graphName and insertType.
|
|
348
370
|
*/
|
|
349
|
-
insertEdges(edges: EdgeData[],
|
|
371
|
+
insertEdges(edges: EdgeData[], config?: InsertConfig): Promise<Response>;
|
|
350
372
|
/** Return currently running processes (queries) */
|
|
351
|
-
top(): Promise<ProcessInfo[]>;
|
|
373
|
+
top(config?: QueryConfig): Promise<ProcessInfo[]>;
|
|
352
374
|
/** Terminate a running query by its query ID */
|
|
353
|
-
kill(queryId: string): Promise<Response>;
|
|
375
|
+
kill(queryId: string, config?: QueryConfig): Promise<Response>;
|
|
354
376
|
/** Return statistics for the current graph using db.stats() */
|
|
355
|
-
stats(): Promise<GraphStats>;
|
|
377
|
+
stats(config?: QueryConfig): Promise<GraphStats>;
|
|
356
378
|
/** Send a ping to the server and return the latency in nanoseconds */
|
|
357
379
|
test(): Promise<number>;
|
|
380
|
+
/** YIELD columns emitted by CALL ai.read / ai.gql (kept in sync with server). */
|
|
381
|
+
private static readonly AI_YIELD_COLS;
|
|
382
|
+
/**
|
|
383
|
+
* Ask the AI to generate a GQL statement and auto-execute it.
|
|
384
|
+
*
|
|
385
|
+
* Wraps `CALL ai.read("<prompt>") YIELD ...`, streams stage rows from the
|
|
386
|
+
* server, and re-runs the synthesized GQL so `AiReadResult.data` holds the
|
|
387
|
+
* real query {@link Response} (rows / columns) — matching what Manager UI
|
|
388
|
+
* displays.
|
|
389
|
+
*
|
|
390
|
+
* Only transport-level errors reject the Promise. AI-side errors set
|
|
391
|
+
* `success=false` and populate `error`, with `data=null`.
|
|
392
|
+
*/
|
|
393
|
+
aiRead(prompt: string, config?: QueryConfig): Promise<AiReadResult>;
|
|
394
|
+
/**
|
|
395
|
+
* Ask the AI to generate a GQL statement *without* executing it.
|
|
396
|
+
*
|
|
397
|
+
* The generated GQL is exposed via `AiReadResult.generatedGql` so the
|
|
398
|
+
* caller can review / edit it before running it manually via `client.gql()`.
|
|
399
|
+
* `AiReadResult.data` is always null for `aiGql`.
|
|
400
|
+
*/
|
|
401
|
+
aiGql(prompt: string, config?: QueryConfig): Promise<AiReadResult>;
|
|
402
|
+
/** Escape a prompt so it can be safely embedded in a double-quoted GQL string. */
|
|
403
|
+
private static escapeAiPrompt;
|
|
404
|
+
/** Parse a CALL ai.read / ai.gql YIELD response into an AiReadResult. */
|
|
405
|
+
private parseAiResult;
|
|
358
406
|
}
|