@grafema/core 0.2.3-beta → 0.2.4-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/dist/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export { GraphBackend, typeToKind, edgeTypeToNumber } from './core/GraphBackend.
17
17
  export type { Node, Edge, EdgeType, AttrQuery, GraphStats, GraphExport } from './core/GraphBackend.js';
18
18
  export { RFDBClient } from '@grafema/rfdb-client';
19
19
  export { RFDBServerBackend } from './storage/backends/RFDBServerBackend.js';
20
+ export { findRfdbBinary, getPlatformDir, getBinaryNotFoundMessage } from './utils/findRfdbBinary.js';
21
+ export type { FindBinaryOptions } from './utils/findRfdbBinary.js';
20
22
  export { NodeFactory } from './core/NodeFactory.js';
21
23
  export { Profiler } from './core/Profiler.js';
22
24
  export { computeSemanticId, parseSemanticId, computeDiscriminator } from './core/SemanticId.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ export { GraphBackend, typeToKind, edgeTypeToNumber } from './core/GraphBackend.
18
18
  // RFDB
19
19
  export { RFDBClient } from '@grafema/rfdb-client';
20
20
  export { RFDBServerBackend } from './storage/backends/RFDBServerBackend.js';
21
+ export { findRfdbBinary, getPlatformDir, getBinaryNotFoundMessage } from './utils/findRfdbBinary.js';
21
22
  // Core utilities
22
23
  export { NodeFactory } from './core/NodeFactory.js';
23
24
  export { Profiler } from './core/Profiler.js';
@@ -95,11 +95,7 @@ export declare class RFDBServerBackend {
95
95
  */
96
96
  initialize(): Promise<void>;
97
97
  /**
98
- * Find RFDB server binary in order of preference:
99
- * 1. packages/rfdb-server/target/release (monorepo development - prioritized for dev)
100
- * 2. packages/rfdb-server/target/debug
101
- * 3. @grafema/rfdb npm package
102
- * 4. ~/.local/bin/rfdb-server (user-installed binary)
98
+ * Find RFDB server binary using shared utility
103
99
  */
104
100
  private _findServerBinary;
105
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RFDBServerBackend.d.ts","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RFDBServerBackend.d.ts","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,8 @@ import { RFDBClient } from '@grafema/rfdb-client';
21
21
  import { existsSync, unlinkSync } from 'fs';
22
22
  import { spawn } from 'child_process';
23
23
  import { join, dirname } from 'path';
24
- import { fileURLToPath } from 'url';
25
- import { createRequire } from 'module';
26
24
  import { setTimeout as sleep } from 'timers/promises';
27
- const __filename = fileURLToPath(import.meta.url);
28
- const __dirname = dirname(__filename);
25
+ import { findRfdbBinary, getBinaryNotFoundMessage } from '../../utils/findRfdbBinary.js';
29
26
  export class RFDBServerBackend {
30
27
  socketPath;
31
28
  dbPath;
@@ -97,59 +94,14 @@ export class RFDBServerBackend {
97
94
  return this.connect();
98
95
  }
99
96
  /**
100
- * Find RFDB server binary in order of preference:
101
- * 1. packages/rfdb-server/target/release (monorepo development - prioritized for dev)
102
- * 2. packages/rfdb-server/target/debug
103
- * 3. @grafema/rfdb npm package
104
- * 4. ~/.local/bin/rfdb-server (user-installed binary)
97
+ * Find RFDB server binary using shared utility
105
98
  */
106
99
  _findServerBinary() {
107
- // 1. Check packages/rfdb-server in monorepo (prioritized for development)
108
- const projectRoot = join(__dirname, '../../../../..');
109
- const releaseBinary = join(projectRoot, 'packages/rfdb-server/target/release/rfdb-server');
110
- if (existsSync(releaseBinary)) {
111
- console.log(`[RFDBServerBackend] Found release binary: ${releaseBinary}`);
112
- return releaseBinary;
100
+ const binaryPath = findRfdbBinary();
101
+ if (binaryPath) {
102
+ console.log(`[RFDBServerBackend] Found binary: ${binaryPath}`);
113
103
  }
114
- // 2. Check debug build
115
- const debugBinary = join(projectRoot, 'packages/rfdb-server/target/debug/rfdb-server');
116
- if (existsSync(debugBinary)) {
117
- console.log(`[RFDBServerBackend] Found debug binary: ${debugBinary}`);
118
- return debugBinary;
119
- }
120
- // 3. Check @grafema/rfdb npm package
121
- try {
122
- const require = createRequire(import.meta.url);
123
- const rfdbPkg = require.resolve('@grafema/rfdb');
124
- const rfdbDir = dirname(rfdbPkg);
125
- const platform = process.platform;
126
- const arch = process.arch;
127
- let platformDir;
128
- if (platform === 'darwin') {
129
- platformDir = arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
130
- }
131
- else if (platform === 'linux') {
132
- platformDir = arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
133
- }
134
- else {
135
- platformDir = `${platform}-${arch}`;
136
- }
137
- const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
138
- if (existsSync(npmBinary)) {
139
- console.log(`[RFDBServerBackend] Found binary in @grafema/rfdb: ${npmBinary}`);
140
- return npmBinary;
141
- }
142
- }
143
- catch {
144
- // @grafema/rfdb not installed
145
- }
146
- // 4. Check ~/.local/bin (user-installed binary for unsupported platforms)
147
- const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
148
- if (existsSync(homeBinary)) {
149
- console.log(`[RFDBServerBackend] Found user binary: ${homeBinary}`);
150
- return homeBinary;
151
- }
152
- return null;
104
+ return binaryPath;
153
105
  }
154
106
  /**
155
107
  * Start RFDB server process
@@ -161,9 +113,7 @@ export class RFDBServerBackend {
161
113
  // Find server binary - check multiple locations
162
114
  const binaryPath = this._findServerBinary();
163
115
  if (!binaryPath) {
164
- throw new Error('RFDB server binary not found.\n' +
165
- 'Install @grafema/rfdb: npm install @grafema/rfdb\n' +
166
- 'Or build from source: cargo build --release --bin rfdb-server');
116
+ throw new Error(getBinaryNotFoundMessage());
167
117
  }
168
118
  // Remove stale socket
169
119
  if (existsSync(this.socketPath)) {
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared utility for finding rfdb-server binary
3
+ *
4
+ * Used by:
5
+ * - RFDBServerBackend (core)
6
+ * - CLI server command
7
+ * - VS Code extension
8
+ * - rfdb-server bin wrapper
9
+ *
10
+ * Search order:
11
+ * 1. Explicit path (from config or flag)
12
+ * 2. GRAFEMA_RFDB_SERVER environment variable
13
+ * 3. Monorepo target/release (development)
14
+ * 4. Monorepo target/debug (development)
15
+ * 5. @grafema/rfdb npm package (prebuilt)
16
+ * 6. ~/.local/bin/rfdb-server (user-installed)
17
+ */
18
+ export interface FindBinaryOptions {
19
+ /** Explicit path to binary (highest priority) */
20
+ explicitPath?: string;
21
+ /** Base directory for monorepo search (defaults to auto-detect) */
22
+ monorepoRoot?: string;
23
+ }
24
+ /**
25
+ * Get platform directory name for prebuilt binaries
26
+ */
27
+ export declare function getPlatformDir(): string;
28
+ /**
29
+ * Find rfdb-server binary using standard search order
30
+ *
31
+ * @param options - Search options
32
+ * @returns Path to binary or null if not found
33
+ */
34
+ export declare function findRfdbBinary(options?: FindBinaryOptions): string | null;
35
+ /**
36
+ * Get human-readable error message when binary not found
37
+ */
38
+ export declare function getBinaryNotFoundMessage(): string;
39
+ //# sourceMappingURL=findRfdbBinary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findRfdbBinary.d.ts","sourceRoot":"","sources":["../../src/utils/findRfdbBinary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,GAAG,IAAI,CAoD7E;AA0BD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAwBjD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Shared utility for finding rfdb-server binary
3
+ *
4
+ * Used by:
5
+ * - RFDBServerBackend (core)
6
+ * - CLI server command
7
+ * - VS Code extension
8
+ * - rfdb-server bin wrapper
9
+ *
10
+ * Search order:
11
+ * 1. Explicit path (from config or flag)
12
+ * 2. GRAFEMA_RFDB_SERVER environment variable
13
+ * 3. Monorepo target/release (development)
14
+ * 4. Monorepo target/debug (development)
15
+ * 5. @grafema/rfdb npm package (prebuilt)
16
+ * 6. ~/.local/bin/rfdb-server (user-installed)
17
+ */
18
+ import { existsSync } from 'fs';
19
+ import { join, dirname, resolve } from 'path';
20
+ import { createRequire } from 'module';
21
+ import { fileURLToPath } from 'url';
22
+ const __filename = fileURLToPath(import.meta.url);
23
+ const __dirname = dirname(__filename);
24
+ /**
25
+ * Get platform directory name for prebuilt binaries
26
+ */
27
+ export function getPlatformDir() {
28
+ const platform = process.platform;
29
+ const arch = process.arch;
30
+ if (platform === 'darwin') {
31
+ return arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
32
+ }
33
+ else if (platform === 'linux') {
34
+ return arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
35
+ }
36
+ return `${platform}-${arch}`;
37
+ }
38
+ /**
39
+ * Find rfdb-server binary using standard search order
40
+ *
41
+ * @param options - Search options
42
+ * @returns Path to binary or null if not found
43
+ */
44
+ export function findRfdbBinary(options = {}) {
45
+ // 1. Explicit path (from config or --binary flag)
46
+ if (options.explicitPath) {
47
+ const resolved = resolve(options.explicitPath);
48
+ if (existsSync(resolved)) {
49
+ return resolved;
50
+ }
51
+ // Explicit path was given but not found - don't fallback
52
+ return null;
53
+ }
54
+ // 2. Environment variable
55
+ const envBinary = process.env.GRAFEMA_RFDB_SERVER;
56
+ if (envBinary && existsSync(envBinary)) {
57
+ return envBinary;
58
+ }
59
+ // 3-4. Monorepo development builds
60
+ const monorepoRoot = options.monorepoRoot || findMonorepoRoot();
61
+ if (monorepoRoot) {
62
+ const releaseBinary = join(monorepoRoot, 'packages', 'rfdb-server', 'target', 'release', 'rfdb-server');
63
+ if (existsSync(releaseBinary)) {
64
+ return releaseBinary;
65
+ }
66
+ const debugBinary = join(monorepoRoot, 'packages', 'rfdb-server', 'target', 'debug', 'rfdb-server');
67
+ if (existsSync(debugBinary)) {
68
+ return debugBinary;
69
+ }
70
+ }
71
+ // 5. @grafema/rfdb npm package
72
+ try {
73
+ const require = createRequire(import.meta.url);
74
+ const rfdbPkg = require.resolve('@grafema/rfdb');
75
+ const rfdbDir = dirname(rfdbPkg);
76
+ const platformDir = getPlatformDir();
77
+ const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
78
+ if (existsSync(npmBinary)) {
79
+ return npmBinary;
80
+ }
81
+ }
82
+ catch {
83
+ // @grafema/rfdb not installed
84
+ }
85
+ // 6. User-installed binary in ~/.local/bin
86
+ const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
87
+ if (existsSync(homeBinary)) {
88
+ return homeBinary;
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Find monorepo root by looking for characteristic files
94
+ */
95
+ function findMonorepoRoot() {
96
+ // Start from this file's location and walk up
97
+ const searchPaths = [
98
+ // From packages/core/src/utils -> packages/core -> packages -> root
99
+ join(__dirname, '..', '..', '..', '..'),
100
+ // Common development locations
101
+ process.env.GRAFEMA_ROOT,
102
+ ].filter(Boolean);
103
+ for (const candidate of searchPaths) {
104
+ // Check for grafema monorepo markers
105
+ const hasPackagesDir = existsSync(join(candidate, 'packages', 'core'));
106
+ const hasRfdbServer = existsSync(join(candidate, 'packages', 'rfdb-server', 'Cargo.toml'));
107
+ if (hasPackagesDir && hasRfdbServer) {
108
+ return candidate;
109
+ }
110
+ }
111
+ return null;
112
+ }
113
+ /**
114
+ * Get human-readable error message when binary not found
115
+ */
116
+ export function getBinaryNotFoundMessage() {
117
+ const platformDir = getPlatformDir();
118
+ return `RFDB server binary not found for ${platformDir}
119
+
120
+ Options:
121
+ 1. Specify path: grafema server start --binary /path/to/rfdb-server
122
+
123
+ 2. Add to config.yaml:
124
+ server:
125
+ binaryPath: /path/to/rfdb-server
126
+
127
+ 3. Set environment variable:
128
+ export GRAFEMA_RFDB_SERVER=/path/to/rfdb-server
129
+
130
+ 4. Build from source and install:
131
+ git clone https://github.com/Disentinel/grafema.git
132
+ cd grafema/packages/rfdb-server
133
+ cargo build --release
134
+ mkdir -p ~/.local/bin
135
+ cp target/release/rfdb-server ~/.local/bin/
136
+
137
+ 5. Install prebuilt (if available for your platform):
138
+ npm install @grafema/rfdb
139
+ `;
140
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafema/core",
3
- "version": "0.2.3-beta",
3
+ "version": "0.2.4-beta",
4
4
  "description": "Core analysis engine for Grafema code analysis toolkit",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "oxc-parser": "^0.96.0",
44
44
  "yaml": "^2.8.2",
45
45
  "@grafema/rfdb-client": "0.2.1-beta",
46
- "@grafema/types": "0.2.1-beta"
46
+ "@grafema/types": "0.2.4-beta"
47
47
  },
48
48
  "optionalDependencies": {
49
49
  "@grafema/rfdb": "^0.1.0-alpha.2"
package/src/index.ts CHANGED
@@ -52,6 +52,8 @@ export type { Node, Edge, EdgeType, AttrQuery, GraphStats, GraphExport } from '.
52
52
  // RFDB
53
53
  export { RFDBClient } from '@grafema/rfdb-client';
54
54
  export { RFDBServerBackend } from './storage/backends/RFDBServerBackend.js';
55
+ export { findRfdbBinary, getPlatformDir, getBinaryNotFoundMessage } from './utils/findRfdbBinary.js';
56
+ export type { FindBinaryOptions } from './utils/findRfdbBinary.js';
55
57
 
56
58
  // Core utilities
57
59
  export { NodeFactory } from './core/NodeFactory.js';
@@ -22,17 +22,13 @@ import { RFDBClient } from '@grafema/rfdb-client';
22
22
  import { existsSync, unlinkSync } from 'fs';
23
23
  import { spawn, type ChildProcess } from 'child_process';
24
24
  import { join, dirname } from 'path';
25
- import { fileURLToPath } from 'url';
26
- import { createRequire } from 'module';
27
25
  import { setTimeout as sleep } from 'timers/promises';
28
26
 
29
27
  import type { WireNode, WireEdge } from '@grafema/types';
30
28
  import type { NodeType, EdgeType } from '@grafema/types';
31
29
  import type { BaseNodeRecord, EdgeRecord } from '@grafema/types';
32
30
  import type { AttrQuery, GraphStats, GraphExport } from '../../core/GraphBackend.js';
33
-
34
- const __filename = fileURLToPath(import.meta.url);
35
- const __dirname = dirname(__filename);
31
+ import { findRfdbBinary, getBinaryNotFoundMessage } from '../../utils/findRfdbBinary.js';
36
32
 
37
33
  /**
38
34
  * Options for RFDBServerBackend
@@ -169,62 +165,14 @@ export class RFDBServerBackend {
169
165
  }
170
166
 
171
167
  /**
172
- * Find RFDB server binary in order of preference:
173
- * 1. packages/rfdb-server/target/release (monorepo development - prioritized for dev)
174
- * 2. packages/rfdb-server/target/debug
175
- * 3. @grafema/rfdb npm package
176
- * 4. ~/.local/bin/rfdb-server (user-installed binary)
168
+ * Find RFDB server binary using shared utility
177
169
  */
178
170
  private _findServerBinary(): string | null {
179
- // 1. Check packages/rfdb-server in monorepo (prioritized for development)
180
- const projectRoot = join(__dirname, '../../../../..');
181
- const releaseBinary = join(projectRoot, 'packages/rfdb-server/target/release/rfdb-server');
182
- if (existsSync(releaseBinary)) {
183
- console.log(`[RFDBServerBackend] Found release binary: ${releaseBinary}`);
184
- return releaseBinary;
185
- }
186
-
187
- // 2. Check debug build
188
- const debugBinary = join(projectRoot, 'packages/rfdb-server/target/debug/rfdb-server');
189
- if (existsSync(debugBinary)) {
190
- console.log(`[RFDBServerBackend] Found debug binary: ${debugBinary}`);
191
- return debugBinary;
171
+ const binaryPath = findRfdbBinary();
172
+ if (binaryPath) {
173
+ console.log(`[RFDBServerBackend] Found binary: ${binaryPath}`);
192
174
  }
193
-
194
- // 3. Check @grafema/rfdb npm package
195
- try {
196
- const require = createRequire(import.meta.url);
197
- const rfdbPkg = require.resolve('@grafema/rfdb');
198
- const rfdbDir = dirname(rfdbPkg);
199
- const platform = process.platform;
200
- const arch = process.arch;
201
-
202
- let platformDir: string;
203
- if (platform === 'darwin') {
204
- platformDir = arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
205
- } else if (platform === 'linux') {
206
- platformDir = arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
207
- } else {
208
- platformDir = `${platform}-${arch}`;
209
- }
210
-
211
- const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
212
- if (existsSync(npmBinary)) {
213
- console.log(`[RFDBServerBackend] Found binary in @grafema/rfdb: ${npmBinary}`);
214
- return npmBinary;
215
- }
216
- } catch {
217
- // @grafema/rfdb not installed
218
- }
219
-
220
- // 4. Check ~/.local/bin (user-installed binary for unsupported platforms)
221
- const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
222
- if (existsSync(homeBinary)) {
223
- console.log(`[RFDBServerBackend] Found user binary: ${homeBinary}`);
224
- return homeBinary;
225
- }
226
-
227
- return null;
175
+ return binaryPath;
228
176
  }
229
177
 
230
178
  /**
@@ -238,11 +186,7 @@ export class RFDBServerBackend {
238
186
  // Find server binary - check multiple locations
239
187
  const binaryPath = this._findServerBinary();
240
188
  if (!binaryPath) {
241
- throw new Error(
242
- 'RFDB server binary not found.\n' +
243
- 'Install @grafema/rfdb: npm install @grafema/rfdb\n' +
244
- 'Or build from source: cargo build --release --bin rfdb-server'
245
- );
189
+ throw new Error(getBinaryNotFoundMessage());
246
190
  }
247
191
 
248
192
  // Remove stale socket
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Shared utility for finding rfdb-server binary
3
+ *
4
+ * Used by:
5
+ * - RFDBServerBackend (core)
6
+ * - CLI server command
7
+ * - VS Code extension
8
+ * - rfdb-server bin wrapper
9
+ *
10
+ * Search order:
11
+ * 1. Explicit path (from config or flag)
12
+ * 2. GRAFEMA_RFDB_SERVER environment variable
13
+ * 3. Monorepo target/release (development)
14
+ * 4. Monorepo target/debug (development)
15
+ * 5. @grafema/rfdb npm package (prebuilt)
16
+ * 6. ~/.local/bin/rfdb-server (user-installed)
17
+ */
18
+
19
+ import { existsSync } from 'fs';
20
+ import { join, dirname, resolve } from 'path';
21
+ import { createRequire } from 'module';
22
+ import { fileURLToPath } from 'url';
23
+
24
+ const __filename = fileURLToPath(import.meta.url);
25
+ const __dirname = dirname(__filename);
26
+
27
+ export interface FindBinaryOptions {
28
+ /** Explicit path to binary (highest priority) */
29
+ explicitPath?: string;
30
+ /** Base directory for monorepo search (defaults to auto-detect) */
31
+ monorepoRoot?: string;
32
+ }
33
+
34
+ /**
35
+ * Get platform directory name for prebuilt binaries
36
+ */
37
+ export function getPlatformDir(): string {
38
+ const platform = process.platform;
39
+ const arch = process.arch;
40
+
41
+ if (platform === 'darwin') {
42
+ return arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
43
+ } else if (platform === 'linux') {
44
+ return arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
45
+ }
46
+ return `${platform}-${arch}`;
47
+ }
48
+
49
+ /**
50
+ * Find rfdb-server binary using standard search order
51
+ *
52
+ * @param options - Search options
53
+ * @returns Path to binary or null if not found
54
+ */
55
+ export function findRfdbBinary(options: FindBinaryOptions = {}): string | null {
56
+ // 1. Explicit path (from config or --binary flag)
57
+ if (options.explicitPath) {
58
+ const resolved = resolve(options.explicitPath);
59
+ if (existsSync(resolved)) {
60
+ return resolved;
61
+ }
62
+ // Explicit path was given but not found - don't fallback
63
+ return null;
64
+ }
65
+
66
+ // 2. Environment variable
67
+ const envBinary = process.env.GRAFEMA_RFDB_SERVER;
68
+ if (envBinary && existsSync(envBinary)) {
69
+ return envBinary;
70
+ }
71
+
72
+ // 3-4. Monorepo development builds
73
+ const monorepoRoot = options.monorepoRoot || findMonorepoRoot();
74
+ if (monorepoRoot) {
75
+ const releaseBinary = join(monorepoRoot, 'packages', 'rfdb-server', 'target', 'release', 'rfdb-server');
76
+ if (existsSync(releaseBinary)) {
77
+ return releaseBinary;
78
+ }
79
+
80
+ const debugBinary = join(monorepoRoot, 'packages', 'rfdb-server', 'target', 'debug', 'rfdb-server');
81
+ if (existsSync(debugBinary)) {
82
+ return debugBinary;
83
+ }
84
+ }
85
+
86
+ // 5. @grafema/rfdb npm package
87
+ try {
88
+ const require = createRequire(import.meta.url);
89
+ const rfdbPkg = require.resolve('@grafema/rfdb');
90
+ const rfdbDir = dirname(rfdbPkg);
91
+ const platformDir = getPlatformDir();
92
+ const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
93
+ if (existsSync(npmBinary)) {
94
+ return npmBinary;
95
+ }
96
+ } catch {
97
+ // @grafema/rfdb not installed
98
+ }
99
+
100
+ // 6. User-installed binary in ~/.local/bin
101
+ const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
102
+ if (existsSync(homeBinary)) {
103
+ return homeBinary;
104
+ }
105
+
106
+ return null;
107
+ }
108
+
109
+ /**
110
+ * Find monorepo root by looking for characteristic files
111
+ */
112
+ function findMonorepoRoot(): string | null {
113
+ // Start from this file's location and walk up
114
+ const searchPaths = [
115
+ // From packages/core/src/utils -> packages/core -> packages -> root
116
+ join(__dirname, '..', '..', '..', '..'),
117
+ // Common development locations
118
+ process.env.GRAFEMA_ROOT,
119
+ ].filter(Boolean) as string[];
120
+
121
+ for (const candidate of searchPaths) {
122
+ // Check for grafema monorepo markers
123
+ const hasPackagesDir = existsSync(join(candidate, 'packages', 'core'));
124
+ const hasRfdbServer = existsSync(join(candidate, 'packages', 'rfdb-server', 'Cargo.toml'));
125
+ if (hasPackagesDir && hasRfdbServer) {
126
+ return candidate;
127
+ }
128
+ }
129
+
130
+ return null;
131
+ }
132
+
133
+ /**
134
+ * Get human-readable error message when binary not found
135
+ */
136
+ export function getBinaryNotFoundMessage(): string {
137
+ const platformDir = getPlatformDir();
138
+ return `RFDB server binary not found for ${platformDir}
139
+
140
+ Options:
141
+ 1. Specify path: grafema server start --binary /path/to/rfdb-server
142
+
143
+ 2. Add to config.yaml:
144
+ server:
145
+ binaryPath: /path/to/rfdb-server
146
+
147
+ 3. Set environment variable:
148
+ export GRAFEMA_RFDB_SERVER=/path/to/rfdb-server
149
+
150
+ 4. Build from source and install:
151
+ git clone https://github.com/Disentinel/grafema.git
152
+ cd grafema/packages/rfdb-server
153
+ cargo build --release
154
+ mkdir -p ~/.local/bin
155
+ cp target/release/rfdb-server ~/.local/bin/
156
+
157
+ 5. Install prebuilt (if available for your platform):
158
+ npm install @grafema/rfdb
159
+ `;
160
+ }