@grafema/util 0.3.0-beta
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/LICENSE +190 -0
- package/dist/api/GraphAPI.d.ts +87 -0
- package/dist/api/GraphAPI.d.ts.map +1 -0
- package/dist/api/GraphAPI.js +212 -0
- package/dist/api/GraphAPI.js.map +1 -0
- package/dist/api/GuaranteeAPI.d.ts +147 -0
- package/dist/api/GuaranteeAPI.d.ts.map +1 -0
- package/dist/api/GuaranteeAPI.js +290 -0
- package/dist/api/GuaranteeAPI.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +214 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +441 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/CoverageAnalyzer.d.ts +65 -0
- package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
- package/dist/core/CoverageAnalyzer.js +199 -0
- package/dist/core/CoverageAnalyzer.js.map +1 -0
- package/dist/core/FileExplainer.d.ts +101 -0
- package/dist/core/FileExplainer.d.ts.map +1 -0
- package/dist/core/FileExplainer.js +140 -0
- package/dist/core/FileExplainer.js.map +1 -0
- package/dist/core/FileOverview.d.ts +124 -0
- package/dist/core/FileOverview.d.ts.map +1 -0
- package/dist/core/FileOverview.js +279 -0
- package/dist/core/FileOverview.js.map +1 -0
- package/dist/core/GrafemaUri.d.ts +66 -0
- package/dist/core/GrafemaUri.d.ts.map +1 -0
- package/dist/core/GrafemaUri.js +191 -0
- package/dist/core/GrafemaUri.js.map +1 -0
- package/dist/core/GraphBackend.d.ts +158 -0
- package/dist/core/GraphBackend.d.ts.map +1 -0
- package/dist/core/GraphBackend.js +85 -0
- package/dist/core/GraphBackend.js.map +1 -0
- package/dist/core/GraphFreshnessChecker.d.ts +33 -0
- package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
- package/dist/core/GraphFreshnessChecker.js +104 -0
- package/dist/core/GraphFreshnessChecker.js.map +1 -0
- package/dist/core/GuaranteeManager.d.ts +254 -0
- package/dist/core/GuaranteeManager.d.ts.map +1 -0
- package/dist/core/GuaranteeManager.js +447 -0
- package/dist/core/GuaranteeManager.js.map +1 -0
- package/dist/core/HashUtils.d.ts +24 -0
- package/dist/core/HashUtils.d.ts.map +1 -0
- package/dist/core/HashUtils.js +46 -0
- package/dist/core/HashUtils.js.map +1 -0
- package/dist/core/IncrementalReanalyzer.d.ts +33 -0
- package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
- package/dist/core/IncrementalReanalyzer.js +67 -0
- package/dist/core/IncrementalReanalyzer.js.map +1 -0
- package/dist/core/ResourceRegistry.d.ts +17 -0
- package/dist/core/ResourceRegistry.d.ts.map +1 -0
- package/dist/core/ResourceRegistry.js +32 -0
- package/dist/core/ResourceRegistry.js.map +1 -0
- package/dist/core/SemanticId.d.ts +159 -0
- package/dist/core/SemanticId.d.ts.map +1 -0
- package/dist/core/SemanticId.js +291 -0
- package/dist/core/SemanticId.js.map +1 -0
- package/dist/core/VersionManager.d.ts +166 -0
- package/dist/core/VersionManager.d.ts.map +1 -0
- package/dist/core/VersionManager.js +239 -0
- package/dist/core/VersionManager.js.map +1 -0
- package/dist/core/brandNodeInternal.d.ts +14 -0
- package/dist/core/brandNodeInternal.d.ts.map +1 -0
- package/dist/core/brandNodeInternal.js +4 -0
- package/dist/core/brandNodeInternal.js.map +1 -0
- package/dist/core/nodes/GuaranteeNode.d.ts +76 -0
- package/dist/core/nodes/GuaranteeNode.d.ts.map +1 -0
- package/dist/core/nodes/GuaranteeNode.js +118 -0
- package/dist/core/nodes/GuaranteeNode.js.map +1 -0
- package/dist/core/nodes/IssueNode.d.ts +73 -0
- package/dist/core/nodes/IssueNode.d.ts.map +1 -0
- package/dist/core/nodes/IssueNode.js +130 -0
- package/dist/core/nodes/IssueNode.js.map +1 -0
- package/dist/core/nodes/NodeKind.d.ts +104 -0
- package/dist/core/nodes/NodeKind.d.ts.map +1 -0
- package/dist/core/nodes/NodeKind.js +166 -0
- package/dist/core/nodes/NodeKind.js.map +1 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts +103 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticCollector.js +133 -0
- package/dist/diagnostics/DiagnosticCollector.js.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts +122 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.js +300 -0
- package/dist/diagnostics/DiagnosticReporter.js.map +1 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticWriter.js +44 -0
- package/dist/diagnostics/DiagnosticWriter.js.map +1 -0
- package/dist/diagnostics/categories.d.ts +57 -0
- package/dist/diagnostics/categories.d.ts.map +1 -0
- package/dist/diagnostics/categories.js +71 -0
- package/dist/diagnostics/categories.js.map +1 -0
- package/dist/diagnostics/index.d.ts +17 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +15 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/errors/GrafemaError.d.ts +200 -0
- package/dist/errors/GrafemaError.d.ts.map +1 -0
- package/dist/errors/GrafemaError.js +209 -0
- package/dist/errors/GrafemaError.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/index.d.ts +8 -0
- package/dist/instructions/index.d.ts.map +1 -0
- package/dist/instructions/index.js +20 -0
- package/dist/instructions/index.js.map +1 -0
- package/dist/instructions/onboarding.md +133 -0
- package/dist/knowledge/KnowledgeBase.d.ts +113 -0
- package/dist/knowledge/KnowledgeBase.d.ts.map +1 -0
- package/dist/knowledge/KnowledgeBase.js +420 -0
- package/dist/knowledge/KnowledgeBase.js.map +1 -0
- package/dist/knowledge/SemanticAddressResolver.d.ts +59 -0
- package/dist/knowledge/SemanticAddressResolver.d.ts.map +1 -0
- package/dist/knowledge/SemanticAddressResolver.js +160 -0
- package/dist/knowledge/SemanticAddressResolver.js.map +1 -0
- package/dist/knowledge/git-ingest.d.ts +58 -0
- package/dist/knowledge/git-ingest.d.ts.map +1 -0
- package/dist/knowledge/git-ingest.js +301 -0
- package/dist/knowledge/git-ingest.js.map +1 -0
- package/dist/knowledge/git-queries.d.ts +86 -0
- package/dist/knowledge/git-queries.d.ts.map +1 -0
- package/dist/knowledge/git-queries.js +177 -0
- package/dist/knowledge/git-queries.js.map +1 -0
- package/dist/knowledge/index.d.ts +14 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +10 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/parser.d.ts +39 -0
- package/dist/knowledge/parser.d.ts.map +1 -0
- package/dist/knowledge/parser.js +292 -0
- package/dist/knowledge/parser.js.map +1 -0
- package/dist/knowledge/types.d.ts +133 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +8 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/logging/Logger.d.ts +98 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +274 -0
- package/dist/logging/Logger.js.map +1 -0
- package/dist/notation/archetypes.d.ts +36 -0
- package/dist/notation/archetypes.d.ts.map +1 -0
- package/dist/notation/archetypes.js +173 -0
- package/dist/notation/archetypes.js.map +1 -0
- package/dist/notation/fold.d.ts +25 -0
- package/dist/notation/fold.d.ts.map +1 -0
- package/dist/notation/fold.js +598 -0
- package/dist/notation/fold.js.map +1 -0
- package/dist/notation/index.d.ts +18 -0
- package/dist/notation/index.d.ts.map +1 -0
- package/dist/notation/index.js +16 -0
- package/dist/notation/index.js.map +1 -0
- package/dist/notation/lodExtractor.d.ts +32 -0
- package/dist/notation/lodExtractor.d.ts.map +1 -0
- package/dist/notation/lodExtractor.js +149 -0
- package/dist/notation/lodExtractor.js.map +1 -0
- package/dist/notation/nameShortener.d.ts +22 -0
- package/dist/notation/nameShortener.d.ts.map +1 -0
- package/dist/notation/nameShortener.js +24 -0
- package/dist/notation/nameShortener.js.map +1 -0
- package/dist/notation/perspectives.d.ts +11 -0
- package/dist/notation/perspectives.d.ts.map +1 -0
- package/dist/notation/perspectives.js +16 -0
- package/dist/notation/perspectives.js.map +1 -0
- package/dist/notation/renderer.d.ts +31 -0
- package/dist/notation/renderer.d.ts.map +1 -0
- package/dist/notation/renderer.js +315 -0
- package/dist/notation/renderer.js.map +1 -0
- package/dist/notation/traceRenderer.d.ts +39 -0
- package/dist/notation/traceRenderer.d.ts.map +1 -0
- package/dist/notation/traceRenderer.js +358 -0
- package/dist/notation/traceRenderer.js.map +1 -0
- package/dist/notation/types.d.ts +66 -0
- package/dist/notation/types.d.ts.map +1 -0
- package/dist/notation/types.js +10 -0
- package/dist/notation/types.js.map +1 -0
- package/dist/queries/NodeContext.d.ts +81 -0
- package/dist/queries/NodeContext.d.ts.map +1 -0
- package/dist/queries/NodeContext.js +196 -0
- package/dist/queries/NodeContext.js.map +1 -0
- package/dist/queries/findCallsInFunction.d.ts +62 -0
- package/dist/queries/findCallsInFunction.d.ts.map +1 -0
- package/dist/queries/findCallsInFunction.js +169 -0
- package/dist/queries/findCallsInFunction.js.map +1 -0
- package/dist/queries/findContainingFunction.d.ts +57 -0
- package/dist/queries/findContainingFunction.d.ts.map +1 -0
- package/dist/queries/findContainingFunction.js +91 -0
- package/dist/queries/findContainingFunction.js.map +1 -0
- package/dist/queries/index.d.ts +18 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +14 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/traceDataflow.d.ts +65 -0
- package/dist/queries/traceDataflow.d.ts.map +1 -0
- package/dist/queries/traceDataflow.js +754 -0
- package/dist/queries/traceDataflow.js.map +1 -0
- package/dist/queries/traceValues.d.ts +70 -0
- package/dist/queries/traceValues.d.ts.map +1 -0
- package/dist/queries/traceValues.js +373 -0
- package/dist/queries/traceValues.js.map +1 -0
- package/dist/queries/types.d.ts +166 -0
- package/dist/queries/types.d.ts.map +1 -0
- package/dist/queries/types.js +10 -0
- package/dist/queries/types.js.map +1 -0
- package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
- package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/GraphSchemaExtractor.js +125 -0
- package/dist/schema/GraphSchemaExtractor.js.map +1 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/InterfaceSchemaExtractor.js +113 -0
- package/dist/schema/InterfaceSchemaExtractor.js.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +3 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts +356 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.js +748 -0
- package/dist/storage/backends/RFDBServerBackend.js.map +1 -0
- package/dist/storage/backends/typeValidation.d.ts +47 -0
- package/dist/storage/backends/typeValidation.d.ts.map +1 -0
- package/dist/storage/backends/typeValidation.js +141 -0
- package/dist/storage/backends/typeValidation.js.map +1 -0
- package/dist/utils/findRfdbBinary.d.ts +67 -0
- package/dist/utils/findRfdbBinary.d.ts.map +1 -0
- package/dist/utils/findRfdbBinary.js +261 -0
- package/dist/utils/findRfdbBinary.js.map +1 -0
- package/dist/utils/lazyDownload.d.ts +43 -0
- package/dist/utils/lazyDownload.d.ts.map +1 -0
- package/dist/utils/lazyDownload.js +175 -0
- package/dist/utils/lazyDownload.js.map +1 -0
- package/dist/utils/moduleResolution.d.ts +134 -0
- package/dist/utils/moduleResolution.d.ts.map +1 -0
- package/dist/utils/moduleResolution.js +189 -0
- package/dist/utils/moduleResolution.js.map +1 -0
- package/dist/utils/resolveNodeFile.d.ts +13 -0
- package/dist/utils/resolveNodeFile.d.ts.map +1 -0
- package/dist/utils/resolveNodeFile.js +18 -0
- package/dist/utils/resolveNodeFile.js.map +1 -0
- package/dist/utils/startRfdbServer.d.ts +63 -0
- package/dist/utils/startRfdbServer.d.ts.map +1 -0
- package/dist/utils/startRfdbServer.js +142 -0
- package/dist/utils/startRfdbServer.js.map +1 -0
- package/dist/validation/PathValidator.d.ts +80 -0
- package/dist/validation/PathValidator.d.ts.map +1 -0
- package/dist/validation/PathValidator.js +252 -0
- package/dist/validation/PathValidator.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +26 -0
- package/dist/version.js.map +1 -0
- package/package.json +50 -0
- package/src/api/GraphAPI.ts +307 -0
- package/src/api/GuaranteeAPI.ts +402 -0
- package/src/config/ConfigLoader.ts +653 -0
- package/src/config/index.ts +13 -0
- package/src/core/CoverageAnalyzer.ts +243 -0
- package/src/core/FileExplainer.ts +179 -0
- package/src/core/FileOverview.ts +397 -0
- package/src/core/GrafemaUri.ts +216 -0
- package/src/core/GraphBackend.ts +266 -0
- package/src/core/GraphFreshnessChecker.ts +145 -0
- package/src/core/GuaranteeManager.ts +684 -0
- package/src/core/HashUtils.ts +48 -0
- package/src/core/IncrementalReanalyzer.ts +106 -0
- package/src/core/ResourceRegistry.ts +39 -0
- package/src/core/SemanticId.ts +423 -0
- package/src/core/VersionManager.ts +405 -0
- package/src/core/brandNodeInternal.ts +16 -0
- package/src/core/nodes/GuaranteeNode.ts +162 -0
- package/src/core/nodes/IssueNode.ts +177 -0
- package/src/core/nodes/NodeKind.ts +192 -0
- package/src/diagnostics/DiagnosticCollector.ts +170 -0
- package/src/diagnostics/DiagnosticReporter.ts +395 -0
- package/src/diagnostics/DiagnosticWriter.ts +50 -0
- package/src/diagnostics/categories.ts +104 -0
- package/src/diagnostics/index.ts +30 -0
- package/src/errors/GrafemaError.ts +297 -0
- package/src/index.ts +261 -0
- package/src/instructions/index.ts +21 -0
- package/src/instructions/onboarding.md +133 -0
- package/src/knowledge/KnowledgeBase.ts +486 -0
- package/src/knowledge/SemanticAddressResolver.ts +191 -0
- package/src/knowledge/git-ingest.ts +402 -0
- package/src/knowledge/git-queries.ts +269 -0
- package/src/knowledge/index.ts +29 -0
- package/src/knowledge/parser.ts +294 -0
- package/src/knowledge/types.ts +146 -0
- package/src/logging/Logger.ts +303 -0
- package/src/notation/archetypes.ts +189 -0
- package/src/notation/fold.ts +696 -0
- package/src/notation/index.ts +27 -0
- package/src/notation/lodExtractor.ts +177 -0
- package/src/notation/nameShortener.ts +24 -0
- package/src/notation/perspectives.ts +18 -0
- package/src/notation/renderer.ts +394 -0
- package/src/notation/traceRenderer.ts +458 -0
- package/src/notation/types.ts +79 -0
- package/src/queries/NodeContext.ts +280 -0
- package/src/queries/findCallsInFunction.ts +249 -0
- package/src/queries/findContainingFunction.ts +124 -0
- package/src/queries/index.ts +44 -0
- package/src/queries/traceDataflow.ts +838 -0
- package/src/queries/traceValues.ts +531 -0
- package/src/queries/types.ts +191 -0
- package/src/schema/GraphSchemaExtractor.ts +177 -0
- package/src/schema/InterfaceSchemaExtractor.ts +173 -0
- package/src/schema/index.ts +5 -0
- package/src/storage/backends/RFDBServerBackend.ts +895 -0
- package/src/storage/backends/typeValidation.ts +154 -0
- package/src/utils/findRfdbBinary.ts +288 -0
- package/src/utils/lazyDownload.ts +206 -0
- package/src/utils/moduleResolution.ts +271 -0
- package/src/utils/resolveNodeFile.ts +18 -0
- package/src/utils/startRfdbServer.ts +197 -0
- package/src/validation/PathValidator.ts +334 -0
- package/src/version.ts +28 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RFDBServerBackend - Graph backend using RFDB server via Unix socket
|
|
3
|
+
*
|
|
4
|
+
* Replaces ReginaFlowBackend's direct NAPI binding with socket-based
|
|
5
|
+
* communication to a shared RFDB server. This allows multiple processes
|
|
6
|
+
* (MCP server, analysis workers) to share the same graph database.
|
|
7
|
+
*
|
|
8
|
+
* Socket path defaults to `{dbPath}/../rfdb.sock` (e.g., .grafema/rfdb.sock),
|
|
9
|
+
* ensuring each project has its own socket and avoiding conflicts when
|
|
10
|
+
* multiple MCP instances run simultaneously.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* const backend = new RFDBServerBackend({
|
|
14
|
+
* dbPath: '/project/.grafema/graph.rfdb' // socket will be /project/.grafema/rfdb.sock
|
|
15
|
+
* });
|
|
16
|
+
* await backend.connect();
|
|
17
|
+
* await backend.addNodes([...]);
|
|
18
|
+
* await backend.flush();
|
|
19
|
+
*/
|
|
20
|
+
import { type BatchHandle } from '@grafema/rfdb-client';
|
|
21
|
+
import type { FieldDeclaration, CommitDelta, DatalogExplainResult, ServerStats, CypherResult } from '@grafema/types';
|
|
22
|
+
import type { NodeType, EdgeType } from '@grafema/types';
|
|
23
|
+
import type { BaseNodeRecord, EdgeRecord } from '@grafema/types';
|
|
24
|
+
import type { AttrQuery, GraphStats, GraphExport } from '../../core/GraphBackend.js';
|
|
25
|
+
/**
|
|
26
|
+
* Options for RFDBServerBackend
|
|
27
|
+
*/
|
|
28
|
+
export interface RFDBServerBackendOptions {
|
|
29
|
+
socketPath?: string;
|
|
30
|
+
dbPath?: string;
|
|
31
|
+
/**
|
|
32
|
+
* If true, automatically start the server if not running.
|
|
33
|
+
* If false, require explicit `grafema server start`.
|
|
34
|
+
* Default: true (for backwards compatibility)
|
|
35
|
+
*/
|
|
36
|
+
autoStart?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* If true, suppress all console output (for clean CLI progress).
|
|
39
|
+
* Default: false
|
|
40
|
+
*/
|
|
41
|
+
silent?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Name identifying this client in server logs (e.g. 'cli', 'mcp', 'core').
|
|
44
|
+
* Default: 'core'
|
|
45
|
+
*/
|
|
46
|
+
clientName?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Input node format (flexible)
|
|
50
|
+
*/
|
|
51
|
+
export interface InputNode {
|
|
52
|
+
id: string;
|
|
53
|
+
type?: string;
|
|
54
|
+
nodeType?: string;
|
|
55
|
+
node_type?: string;
|
|
56
|
+
name?: string;
|
|
57
|
+
file?: string;
|
|
58
|
+
exported?: boolean;
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Input edge format (flexible)
|
|
63
|
+
*/
|
|
64
|
+
export interface InputEdge {
|
|
65
|
+
src: string;
|
|
66
|
+
dst: string;
|
|
67
|
+
type?: string;
|
|
68
|
+
edgeType?: string;
|
|
69
|
+
edge_type?: string;
|
|
70
|
+
[key: string]: unknown;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Query for finding nodes
|
|
74
|
+
*/
|
|
75
|
+
export interface NodeQuery {
|
|
76
|
+
nodeType?: NodeType;
|
|
77
|
+
type?: NodeType;
|
|
78
|
+
name?: string;
|
|
79
|
+
file?: string;
|
|
80
|
+
substringMatch?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Backend statistics
|
|
84
|
+
*/
|
|
85
|
+
export interface BackendStats extends GraphStats {
|
|
86
|
+
nodesByType: Record<string, number>;
|
|
87
|
+
edgesByType: Record<string, number>;
|
|
88
|
+
}
|
|
89
|
+
export declare class RFDBServerBackend {
|
|
90
|
+
readonly socketPath: string;
|
|
91
|
+
readonly dbPath: string | undefined;
|
|
92
|
+
private readonly autoStart;
|
|
93
|
+
private readonly silent;
|
|
94
|
+
private readonly _clientName;
|
|
95
|
+
private client;
|
|
96
|
+
private serverProcess;
|
|
97
|
+
connected: boolean;
|
|
98
|
+
private protocolVersion;
|
|
99
|
+
private edgeTypes;
|
|
100
|
+
private _cachedNodeCounts;
|
|
101
|
+
private _cachedEdgeCounts;
|
|
102
|
+
constructor(options?: RFDBServerBackendOptions);
|
|
103
|
+
/**
|
|
104
|
+
* Log message if not in silent mode.
|
|
105
|
+
*/
|
|
106
|
+
private log;
|
|
107
|
+
/**
|
|
108
|
+
* Log error (always shown, even in silent mode).
|
|
109
|
+
*/
|
|
110
|
+
private logError;
|
|
111
|
+
/**
|
|
112
|
+
* Connect to RFDB server.
|
|
113
|
+
* If autoStart is true (default), starts the server if not running.
|
|
114
|
+
* If autoStart is false, requires explicit `grafema server start`.
|
|
115
|
+
*/
|
|
116
|
+
connect(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Alias for connect()
|
|
119
|
+
*/
|
|
120
|
+
initialize(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Start RFDB server process using shared utility.
|
|
123
|
+
*/
|
|
124
|
+
private _startServer;
|
|
125
|
+
/**
|
|
126
|
+
* Negotiate protocol version with server.
|
|
127
|
+
* Requests v3 (semantic IDs), falls back to v2 if server doesn't support it.
|
|
128
|
+
* Called after ping() confirmed connectivity, so failures here indicate
|
|
129
|
+
* the server doesn't support hello/v3, not network issues.
|
|
130
|
+
*/
|
|
131
|
+
private _negotiateProtocol;
|
|
132
|
+
/**
|
|
133
|
+
* Validate server version against expected client version.
|
|
134
|
+
* Warns on mismatch but never fails — version differences are informational.
|
|
135
|
+
*/
|
|
136
|
+
private _checkServerVersion;
|
|
137
|
+
/**
|
|
138
|
+
* Close client connection. Server continues running to serve other clients.
|
|
139
|
+
*/
|
|
140
|
+
close(): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Clear the database
|
|
143
|
+
*/
|
|
144
|
+
clear(): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Flush data to disk
|
|
147
|
+
*/
|
|
148
|
+
flush(): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Declare metadata fields for server-side indexing.
|
|
151
|
+
* Persisted in metadata.json — survives database reopen.
|
|
152
|
+
*/
|
|
153
|
+
declareFields(fields: FieldDeclaration[]): Promise<number>;
|
|
154
|
+
/**
|
|
155
|
+
* Add a single node
|
|
156
|
+
*/
|
|
157
|
+
addNode(node: InputNode): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Add multiple nodes
|
|
160
|
+
*/
|
|
161
|
+
addNodes(nodes: InputNode[]): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Add a single edge
|
|
164
|
+
*/
|
|
165
|
+
addEdge(edge: InputEdge): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Add multiple edges
|
|
168
|
+
*/
|
|
169
|
+
addEdges(edges: InputEdge[], skipValidation?: boolean): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Get a node by ID
|
|
172
|
+
*/
|
|
173
|
+
getNode(id: string): Promise<BaseNodeRecord | null>;
|
|
174
|
+
/**
|
|
175
|
+
* Check if node exists
|
|
176
|
+
*/
|
|
177
|
+
nodeExists(id: string): Promise<boolean>;
|
|
178
|
+
/**
|
|
179
|
+
* Delete a node
|
|
180
|
+
*/
|
|
181
|
+
deleteNode(id: string): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* Find nodes by attributes
|
|
184
|
+
*/
|
|
185
|
+
findByAttr(query: AttrQuery): Promise<string[]>;
|
|
186
|
+
/**
|
|
187
|
+
* Parse a node from wire format to JS format
|
|
188
|
+
*/
|
|
189
|
+
private _parseNode;
|
|
190
|
+
/**
|
|
191
|
+
* Parse an edge from wire format to EdgeRecord
|
|
192
|
+
*/
|
|
193
|
+
private _parseEdge;
|
|
194
|
+
/**
|
|
195
|
+
* Async generator for querying nodes
|
|
196
|
+
*/
|
|
197
|
+
queryNodes(query: NodeQuery): AsyncGenerator<BaseNodeRecord, void, unknown>;
|
|
198
|
+
/**
|
|
199
|
+
* Get ALL nodes matching query (collects from queryNodes into array)
|
|
200
|
+
*/
|
|
201
|
+
getAllNodes(query?: NodeQuery): Promise<BaseNodeRecord[]>;
|
|
202
|
+
/**
|
|
203
|
+
* Delete an edge
|
|
204
|
+
*/
|
|
205
|
+
deleteEdge(src: string, dst: string, type: string): Promise<void>;
|
|
206
|
+
/**
|
|
207
|
+
* Get all edges
|
|
208
|
+
*/
|
|
209
|
+
getAllEdges(): Promise<EdgeRecord[]>;
|
|
210
|
+
/**
|
|
211
|
+
* Get all edges (async version)
|
|
212
|
+
*/
|
|
213
|
+
getAllEdgesAsync(): Promise<EdgeRecord[]>;
|
|
214
|
+
/**
|
|
215
|
+
* Get outgoing edges from a node
|
|
216
|
+
*/
|
|
217
|
+
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
218
|
+
/**
|
|
219
|
+
* Get incoming edges to a node
|
|
220
|
+
*/
|
|
221
|
+
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
222
|
+
/**
|
|
223
|
+
* BFS traversal
|
|
224
|
+
*/
|
|
225
|
+
bfs(startIds: string[], maxDepth: number, edgeTypes: EdgeType[]): Promise<string[]>;
|
|
226
|
+
/**
|
|
227
|
+
* DFS traversal
|
|
228
|
+
*/
|
|
229
|
+
dfs(startIds: string[], maxDepth: number, edgeTypes?: EdgeType[]): Promise<string[]>;
|
|
230
|
+
/**
|
|
231
|
+
* Reachability query - find all nodes reachable from start nodes
|
|
232
|
+
*/
|
|
233
|
+
reachability(startIds: string[], maxDepth: number, edgeTypes?: EdgeType[], backward?: boolean): Promise<string[]>;
|
|
234
|
+
/**
|
|
235
|
+
* Get node count
|
|
236
|
+
*/
|
|
237
|
+
nodeCount(): Promise<number>;
|
|
238
|
+
/**
|
|
239
|
+
* Get edge count
|
|
240
|
+
*/
|
|
241
|
+
edgeCount(): Promise<number>;
|
|
242
|
+
/**
|
|
243
|
+
* Get statistics
|
|
244
|
+
*/
|
|
245
|
+
getStats(): Promise<BackendStats>;
|
|
246
|
+
/**
|
|
247
|
+
* Get full server stats including shard diagnostics.
|
|
248
|
+
* Uses the GetStats wire command which returns all metrics in one call.
|
|
249
|
+
*/
|
|
250
|
+
getServerStats(): Promise<ServerStats>;
|
|
251
|
+
/**
|
|
252
|
+
* Count nodes by type (sync, returns cached value)
|
|
253
|
+
*/
|
|
254
|
+
countNodesByType(_types?: string[] | null): Promise<Record<string, number>>;
|
|
255
|
+
/**
|
|
256
|
+
* Count edges by type
|
|
257
|
+
*/
|
|
258
|
+
countEdgesByType(_edgeTypes?: string[] | null): Promise<Record<string, number>>;
|
|
259
|
+
/**
|
|
260
|
+
* Refresh cached counts (call after analysis)
|
|
261
|
+
*/
|
|
262
|
+
refreshCounts(): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* Check a guarantee (Datalog rule) and return violations.
|
|
265
|
+
* @param explain Pass literal `true` to get explain data.
|
|
266
|
+
*/
|
|
267
|
+
checkGuarantee(ruleSource: string): Promise<Array<{
|
|
268
|
+
bindings: Array<{
|
|
269
|
+
name: string;
|
|
270
|
+
value: string;
|
|
271
|
+
}>;
|
|
272
|
+
}>>;
|
|
273
|
+
checkGuarantee(ruleSource: string, explain: true): Promise<DatalogExplainResult>;
|
|
274
|
+
/**
|
|
275
|
+
* Load Datalog rules
|
|
276
|
+
*/
|
|
277
|
+
datalogLoadRules(source: string): Promise<number>;
|
|
278
|
+
/**
|
|
279
|
+
* Clear Datalog rules
|
|
280
|
+
*/
|
|
281
|
+
datalogClearRules(): Promise<void>;
|
|
282
|
+
/**
|
|
283
|
+
* Run a Datalog query.
|
|
284
|
+
* @param explain Pass literal `true` to get explain data.
|
|
285
|
+
*/
|
|
286
|
+
datalogQuery(query: string): Promise<Array<{
|
|
287
|
+
bindings: Array<{
|
|
288
|
+
name: string;
|
|
289
|
+
value: string;
|
|
290
|
+
}>;
|
|
291
|
+
}>>;
|
|
292
|
+
datalogQuery(query: string, explain: true): Promise<DatalogExplainResult>;
|
|
293
|
+
/**
|
|
294
|
+
* Execute unified Datalog query or program.
|
|
295
|
+
* Auto-detects whether input is rules or direct query.
|
|
296
|
+
* @param explain Pass literal `true` to get explain data.
|
|
297
|
+
*/
|
|
298
|
+
executeDatalog(source: string): Promise<Array<{
|
|
299
|
+
bindings: Array<{
|
|
300
|
+
name: string;
|
|
301
|
+
value: string;
|
|
302
|
+
}>;
|
|
303
|
+
}>>;
|
|
304
|
+
executeDatalog(source: string, explain: true): Promise<DatalogExplainResult>;
|
|
305
|
+
/**
|
|
306
|
+
* Run a Cypher query.
|
|
307
|
+
*/
|
|
308
|
+
cypherQuery(query: string): Promise<CypherResult>;
|
|
309
|
+
/**
|
|
310
|
+
* Begin a batch operation. While batching, addNodes/addEdges buffer locally.
|
|
311
|
+
* Call commitBatch() to send all buffered data atomically.
|
|
312
|
+
*/
|
|
313
|
+
beginBatch(): void;
|
|
314
|
+
/**
|
|
315
|
+
* Commit the current batch to the server atomically.
|
|
316
|
+
* Returns a CommitDelta describing what changed.
|
|
317
|
+
*
|
|
318
|
+
* @param tags - Optional tags for the commit
|
|
319
|
+
* @param deferIndex - When true, server writes data but skips index rebuild.
|
|
320
|
+
*/
|
|
321
|
+
commitBatch(tags?: string[], deferIndex?: boolean, protectedTypes?: string[], changedFiles?: string[]): Promise<CommitDelta>;
|
|
322
|
+
/**
|
|
323
|
+
* Synchronously batch a node. Must be inside beginBatch/commitBatch.
|
|
324
|
+
* Bypasses async wrapper for direct batch insertion.
|
|
325
|
+
*/
|
|
326
|
+
batchNode(node: InputNode): void;
|
|
327
|
+
/**
|
|
328
|
+
* Synchronously batch an edge. Must be inside beginBatch/commitBatch.
|
|
329
|
+
*/
|
|
330
|
+
batchEdge(edge: InputEdge): void;
|
|
331
|
+
/**
|
|
332
|
+
* Abort the current batch, discarding all buffered data.
|
|
333
|
+
*/
|
|
334
|
+
abortBatch(): void;
|
|
335
|
+
/**
|
|
336
|
+
* Rebuild all secondary indexes after deferred-index commits (REG-487).
|
|
337
|
+
* Call this once after a series of commitBatch(tags, true) calls.
|
|
338
|
+
*/
|
|
339
|
+
rebuildIndexes(): Promise<void>;
|
|
340
|
+
/**
|
|
341
|
+
* Create an isolated batch handle for concurrent-safe batching (REG-487).
|
|
342
|
+
* Each handle has its own buffers — safe for parallel workers.
|
|
343
|
+
*/
|
|
344
|
+
createBatch(): BatchHandle;
|
|
345
|
+
/**
|
|
346
|
+
* Export graph (for tests)
|
|
347
|
+
*/
|
|
348
|
+
export(): Promise<GraphExport>;
|
|
349
|
+
/**
|
|
350
|
+
* Find nodes by predicate (for compatibility)
|
|
351
|
+
*/
|
|
352
|
+
findNodes(predicate: (node: BaseNodeRecord) => boolean): Promise<BaseNodeRecord[]>;
|
|
353
|
+
get graph(): this;
|
|
354
|
+
}
|
|
355
|
+
export default RFDBServerBackend;
|
|
356
|
+
//# sourceMappingURL=RFDBServerBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RFDBServerBackend.d.ts","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
|