@grafema/core 0.2.11 → 0.2.12-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/Orchestrator.d.ts +13 -0
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +84 -2
- package/dist/Orchestrator.js.map +1 -1
- package/dist/ParallelAnalysisRunner.d.ts.map +1 -1
- package/dist/ParallelAnalysisRunner.js +28 -41
- package/dist/ParallelAnalysisRunner.js.map +1 -1
- package/dist/PhaseRunner.d.ts +2 -0
- package/dist/PhaseRunner.d.ts.map +1 -1
- package/dist/PhaseRunner.js +5 -1
- package/dist/PhaseRunner.js.map +1 -1
- package/dist/core/IncrementalReanalyzer.d.ts +3 -3
- package/dist/core/IncrementalReanalyzer.d.ts.map +1 -1
- package/dist/core/IncrementalReanalyzer.js +12 -12
- package/dist/core/IncrementalReanalyzer.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.js +20 -4
- package/dist/plugins/analysis/JSASTAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.js +8 -0
- package/dist/plugins/analysis/ast/GraphBuilder.js.map +1 -1
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js +4 -2
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js.map +1 -1
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js +2 -1
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js.map +1 -1
- package/dist/plugins/analysis/ast/types.d.ts +3 -0
- package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +6 -2
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js.map +1 -1
- package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
- package/dist/plugins/enrichment/ImportExportLinker.js +15 -5
- package/dist/plugins/enrichment/ImportExportLinker.js.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.d.ts +21 -7
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.js +48 -48
- package/dist/storage/backends/RFDBServerBackend.js.map +1 -1
- package/dist/utils/startRfdbServer.d.ts +44 -0
- package/dist/utils/startRfdbServer.d.ts.map +1 -0
- package/dist/utils/startRfdbServer.js +79 -0
- package/dist/utils/startRfdbServer.js.map +1 -0
- package/package.json +3 -3
- package/src/Orchestrator.ts +91 -2
- package/src/ParallelAnalysisRunner.ts +30 -48
- package/src/PhaseRunner.ts +7 -1
- package/src/core/IncrementalReanalyzer.ts +15 -15
- package/src/index.ts +4 -0
- package/src/plugins/analysis/JSASTAnalyzer.ts +27 -4
- package/src/plugins/analysis/ast/GraphBuilder.ts +9 -0
- package/src/plugins/analysis/ast/builders/ModuleRuntimeBuilder.ts +4 -2
- package/src/plugins/analysis/ast/handlers/NewExpressionHandler.ts +2 -1
- package/src/plugins/analysis/ast/types.ts +3 -0
- package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +8 -2
- package/src/plugins/enrichment/ImportExportLinker.ts +15 -5
- package/src/storage/backends/RFDBServerBackend.ts +52 -60
- package/src/utils/startRfdbServer.ts +126 -0
|
@@ -18,11 +18,9 @@
|
|
|
18
18
|
* await backend.flush();
|
|
19
19
|
*/
|
|
20
20
|
import { RFDBClient } from '@grafema/rfdb-client';
|
|
21
|
-
import { existsSync, unlinkSync } from 'fs';
|
|
22
|
-
import { spawn } from 'child_process';
|
|
23
21
|
import { join, dirname } from 'path';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
22
|
+
import { startRfdbServer } from '../../utils/startRfdbServer.js';
|
|
23
|
+
import { GRAFEMA_VERSION, getSchemaVersion } from '../../version.js';
|
|
26
24
|
import { brandNodeInternal } from '../../core/brandNodeInternal.js';
|
|
27
25
|
export class RFDBServerBackend {
|
|
28
26
|
socketPath;
|
|
@@ -122,54 +120,18 @@ export class RFDBServerBackend {
|
|
|
122
120
|
return this.connect();
|
|
123
121
|
}
|
|
124
122
|
/**
|
|
125
|
-
*
|
|
126
|
-
* Delegates to findRfdbBinary() for consistent search across all entry points.
|
|
127
|
-
*/
|
|
128
|
-
_findServerBinary() {
|
|
129
|
-
const binaryPath = findRfdbBinary();
|
|
130
|
-
if (binaryPath) {
|
|
131
|
-
this.log(`[RFDBServerBackend] Found binary: ${binaryPath}`);
|
|
132
|
-
}
|
|
133
|
-
return binaryPath;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Start RFDB server process
|
|
123
|
+
* Start RFDB server process using shared utility.
|
|
137
124
|
*/
|
|
138
125
|
async _startServer() {
|
|
139
126
|
if (!this.dbPath) {
|
|
140
127
|
throw new Error('dbPath required to start RFDB server');
|
|
141
128
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
'Or build from source: cargo build --release --bin rfdb-server');
|
|
148
|
-
}
|
|
149
|
-
// Remove stale socket
|
|
150
|
-
if (existsSync(this.socketPath)) {
|
|
151
|
-
unlinkSync(this.socketPath);
|
|
152
|
-
}
|
|
153
|
-
this.log(`[RFDBServerBackend] Starting: ${binaryPath} ${this.dbPath} --socket ${this.socketPath}`);
|
|
154
|
-
this.serverProcess = spawn(binaryPath, [this.dbPath, '--socket', this.socketPath], {
|
|
155
|
-
stdio: ['ignore', 'ignore', 'inherit'], // stdin/stdout ignored, stderr inherited
|
|
156
|
-
detached: true, // Allow server to outlive this process
|
|
129
|
+
await startRfdbServer({
|
|
130
|
+
dbPath: this.dbPath,
|
|
131
|
+
socketPath: this.socketPath,
|
|
132
|
+
waitTimeoutMs: 5000,
|
|
133
|
+
logger: this.silent ? undefined : { debug: (m) => this.log(m) },
|
|
157
134
|
});
|
|
158
|
-
// Don't let server process prevent parent from exiting
|
|
159
|
-
this.serverProcess.unref();
|
|
160
|
-
this.serverProcess.on('error', (err) => {
|
|
161
|
-
this.logError(`[RFDBServerBackend] Server process error:`, err);
|
|
162
|
-
});
|
|
163
|
-
// Wait for socket to appear
|
|
164
|
-
let attempts = 0;
|
|
165
|
-
while (!existsSync(this.socketPath) && attempts < 50) {
|
|
166
|
-
await sleep(100);
|
|
167
|
-
attempts++;
|
|
168
|
-
}
|
|
169
|
-
if (!existsSync(this.socketPath)) {
|
|
170
|
-
throw new Error(`RFDB server failed to start (socket not created after ${attempts * 100}ms)`);
|
|
171
|
-
}
|
|
172
|
-
this.log(`[RFDBServerBackend] Server started on ${this.socketPath}`);
|
|
173
135
|
}
|
|
174
136
|
/**
|
|
175
137
|
* Negotiate protocol version with server.
|
|
@@ -183,10 +145,27 @@ export class RFDBServerBackend {
|
|
|
183
145
|
try {
|
|
184
146
|
const hello = await this.client.hello(3);
|
|
185
147
|
this.protocolVersion = hello.protocolVersion;
|
|
148
|
+
this._checkServerVersion(hello.serverVersion);
|
|
186
149
|
}
|
|
187
150
|
catch {
|
|
188
151
|
// Server predates hello command or doesn't support v3 — safe v2 fallback
|
|
189
152
|
this.protocolVersion = 2;
|
|
153
|
+
this.log('[RFDBServerBackend] WARNING: Server does not support version negotiation. Consider updating rfdb-server.');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Validate server version against expected client version.
|
|
158
|
+
* Warns on mismatch but never fails — version differences are informational.
|
|
159
|
+
*/
|
|
160
|
+
_checkServerVersion(serverVersion) {
|
|
161
|
+
if (!serverVersion)
|
|
162
|
+
return;
|
|
163
|
+
const expected = getSchemaVersion(GRAFEMA_VERSION);
|
|
164
|
+
const actual = getSchemaVersion(serverVersion);
|
|
165
|
+
if (actual !== expected) {
|
|
166
|
+
this.log(`[RFDBServerBackend] WARNING: rfdb-server version mismatch — ` +
|
|
167
|
+
`server v${serverVersion}, expected v${GRAFEMA_VERSION}. ` +
|
|
168
|
+
`Update with: grafema server restart`);
|
|
190
169
|
}
|
|
191
170
|
}
|
|
192
171
|
/**
|
|
@@ -644,11 +623,14 @@ export class RFDBServerBackend {
|
|
|
644
623
|
/**
|
|
645
624
|
* Commit the current batch to the server atomically.
|
|
646
625
|
* Returns a CommitDelta describing what changed.
|
|
626
|
+
*
|
|
627
|
+
* @param tags - Optional tags for the commit
|
|
628
|
+
* @param deferIndex - When true, server writes data but skips index rebuild.
|
|
647
629
|
*/
|
|
648
|
-
async commitBatch(tags) {
|
|
630
|
+
async commitBatch(tags, deferIndex, protectedTypes) {
|
|
649
631
|
if (!this.client)
|
|
650
632
|
throw new Error('Not connected to RFDB server');
|
|
651
|
-
return this.client.commitBatch(tags);
|
|
633
|
+
return this.client.commitBatch(tags, deferIndex, protectedTypes);
|
|
652
634
|
}
|
|
653
635
|
/**
|
|
654
636
|
* Synchronously batch a node. Must be inside beginBatch/commitBatch.
|
|
@@ -698,6 +680,24 @@ export class RFDBServerBackend {
|
|
|
698
680
|
throw new Error('Not connected to RFDB server');
|
|
699
681
|
this.client.abortBatch();
|
|
700
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* Rebuild all secondary indexes after deferred-index commits (REG-487).
|
|
685
|
+
* Call this once after a series of commitBatch(tags, true) calls.
|
|
686
|
+
*/
|
|
687
|
+
async rebuildIndexes() {
|
|
688
|
+
if (!this.client)
|
|
689
|
+
throw new Error('Not connected to RFDB server');
|
|
690
|
+
await this.client.rebuildIndexes();
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Create an isolated batch handle for concurrent-safe batching (REG-487).
|
|
694
|
+
* Each handle has its own buffers — safe for parallel workers.
|
|
695
|
+
*/
|
|
696
|
+
createBatch() {
|
|
697
|
+
if (!this.client)
|
|
698
|
+
throw new Error('Not connected to RFDB server');
|
|
699
|
+
return this.client.createBatch();
|
|
700
|
+
}
|
|
701
701
|
// ===========================================================================
|
|
702
702
|
// Export/Import
|
|
703
703
|
// ===========================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RFDBServerBackend.js","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RFDBServerBackend.js","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility for starting rfdb-server
|
|
3
|
+
*
|
|
4
|
+
* Single authoritative function for spawning rfdb-server. All spawn sites
|
|
5
|
+
* (RFDBServerBackend, CLI server command, ParallelAnalysisRunner) delegate here.
|
|
6
|
+
*
|
|
7
|
+
* Callers are responsible for checking if a server is already running before
|
|
8
|
+
* calling this function. This function always spawns a new server process.
|
|
9
|
+
*/
|
|
10
|
+
import { spawn, type ChildProcess } from 'child_process';
|
|
11
|
+
export interface StartRfdbServerOptions {
|
|
12
|
+
dbPath: string;
|
|
13
|
+
socketPath: string;
|
|
14
|
+
/** Override binary path; if absent, findRfdbBinary() is called */
|
|
15
|
+
binaryPath?: string;
|
|
16
|
+
/** If provided, PID file is written after spawn */
|
|
17
|
+
pidPath?: string;
|
|
18
|
+
/** Socket poll timeout in ms (default: 5000) */
|
|
19
|
+
waitTimeoutMs?: number;
|
|
20
|
+
/** Optional logger for debug messages */
|
|
21
|
+
logger?: {
|
|
22
|
+
debug(msg: string): void;
|
|
23
|
+
};
|
|
24
|
+
/** Internal: dependency injection for testing */
|
|
25
|
+
_deps?: {
|
|
26
|
+
spawn?: typeof spawn;
|
|
27
|
+
findRfdbBinary?: () => string | null;
|
|
28
|
+
existsSync?: (path: string) => boolean;
|
|
29
|
+
unlinkSync?: (path: string) => void;
|
|
30
|
+
writeFileSync?: (path: string, data: string) => void;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Start an rfdb-server process.
|
|
35
|
+
*
|
|
36
|
+
* 1. Resolve binary (explicit or via findRfdbBinary)
|
|
37
|
+
* 2. Remove stale socket
|
|
38
|
+
* 3. Spawn detached process
|
|
39
|
+
* 4. Write PID file (if pidPath provided)
|
|
40
|
+
* 5. Poll for socket file up to waitTimeoutMs
|
|
41
|
+
* 6. Return ChildProcess (caller decides whether to kill later)
|
|
42
|
+
*/
|
|
43
|
+
export declare function startRfdbServer(options: StartRfdbServerOptions): Promise<ChildProcess>;
|
|
44
|
+
//# sourceMappingURL=startRfdbServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startRfdbServer.d.ts","sourceRoot":"","sources":["../../src/utils/startRfdbServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAIzD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,iDAAiD;IACjD,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACpC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KACtD,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA8E5F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility for starting rfdb-server
|
|
3
|
+
*
|
|
4
|
+
* Single authoritative function for spawning rfdb-server. All spawn sites
|
|
5
|
+
* (RFDBServerBackend, CLI server command, ParallelAnalysisRunner) delegate here.
|
|
6
|
+
*
|
|
7
|
+
* Callers are responsible for checking if a server is already running before
|
|
8
|
+
* calling this function. This function always spawns a new server process.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, unlinkSync, writeFileSync } from 'fs';
|
|
11
|
+
import { dirname } from 'path';
|
|
12
|
+
import { spawn } from 'child_process';
|
|
13
|
+
import { setTimeout as sleep } from 'timers/promises';
|
|
14
|
+
import { findRfdbBinary } from './findRfdbBinary.js';
|
|
15
|
+
/**
|
|
16
|
+
* Start an rfdb-server process.
|
|
17
|
+
*
|
|
18
|
+
* 1. Resolve binary (explicit or via findRfdbBinary)
|
|
19
|
+
* 2. Remove stale socket
|
|
20
|
+
* 3. Spawn detached process
|
|
21
|
+
* 4. Write PID file (if pidPath provided)
|
|
22
|
+
* 5. Poll for socket file up to waitTimeoutMs
|
|
23
|
+
* 6. Return ChildProcess (caller decides whether to kill later)
|
|
24
|
+
*/
|
|
25
|
+
export async function startRfdbServer(options) {
|
|
26
|
+
const { dbPath, socketPath, pidPath, waitTimeoutMs = 5000, logger, _deps, } = options;
|
|
27
|
+
const _spawn = _deps?.spawn ?? spawn;
|
|
28
|
+
const _findRfdbBinary = _deps?.findRfdbBinary ?? findRfdbBinary;
|
|
29
|
+
const _existsSync = _deps?.existsSync ?? existsSync;
|
|
30
|
+
const _unlinkSync = _deps?.unlinkSync ?? unlinkSync;
|
|
31
|
+
const _writeFileSync = _deps?.writeFileSync ?? writeFileSync;
|
|
32
|
+
// 1. Resolve binary
|
|
33
|
+
const binaryPath = options.binaryPath || _findRfdbBinary();
|
|
34
|
+
if (!binaryPath) {
|
|
35
|
+
throw new Error('RFDB server binary not found.\n' +
|
|
36
|
+
'Install @grafema/rfdb: npm install @grafema/rfdb\n' +
|
|
37
|
+
'Or build from source: cargo build --release --bin rfdb-server');
|
|
38
|
+
}
|
|
39
|
+
// 2. Remove stale socket
|
|
40
|
+
if (_existsSync(socketPath)) {
|
|
41
|
+
_unlinkSync(socketPath);
|
|
42
|
+
}
|
|
43
|
+
const dataDir = dirname(socketPath);
|
|
44
|
+
logger?.debug(`Starting rfdb-server: ${binaryPath} ${dbPath} --socket ${socketPath} --data-dir ${dataDir}`);
|
|
45
|
+
// 3. Spawn server (detached, survives parent exit)
|
|
46
|
+
// Mutable container to capture async spawn errors (Dijkstra amendment B)
|
|
47
|
+
const state = { spawnError: null };
|
|
48
|
+
const serverProcess = _spawn(binaryPath, [dbPath, '--socket', socketPath, '--data-dir', dataDir], {
|
|
49
|
+
stdio: ['ignore', 'ignore', 'inherit'],
|
|
50
|
+
detached: true,
|
|
51
|
+
});
|
|
52
|
+
serverProcess.unref();
|
|
53
|
+
// Wire error handler to capture ENOENT and other spawn failures
|
|
54
|
+
serverProcess.on('error', (err) => {
|
|
55
|
+
state.spawnError = err;
|
|
56
|
+
});
|
|
57
|
+
// 4. Write PID file if requested and pid is available
|
|
58
|
+
if (pidPath && serverProcess.pid) {
|
|
59
|
+
_writeFileSync(pidPath, String(serverProcess.pid));
|
|
60
|
+
}
|
|
61
|
+
// 5. Poll for socket file
|
|
62
|
+
const maxAttempts = Math.ceil(waitTimeoutMs / 100);
|
|
63
|
+
let attempts = 0;
|
|
64
|
+
while (!_existsSync(socketPath) && attempts < maxAttempts) {
|
|
65
|
+
if (state.spawnError) {
|
|
66
|
+
throw new Error(`RFDB server failed to start: ${state.spawnError.message} — check binary: ${binaryPath}`);
|
|
67
|
+
}
|
|
68
|
+
await sleep(100);
|
|
69
|
+
attempts++;
|
|
70
|
+
}
|
|
71
|
+
// 6. Final check
|
|
72
|
+
if (!_existsSync(socketPath)) {
|
|
73
|
+
const detail = state.spawnError ? `: ${state.spawnError.message}` : '';
|
|
74
|
+
throw new Error(`RFDB server failed to start after ${waitTimeoutMs}ms${detail} — check binary: ${binaryPath}`);
|
|
75
|
+
}
|
|
76
|
+
logger?.debug(`rfdb-server started on ${socketPath}`);
|
|
77
|
+
return serverProcess;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=startRfdbServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startRfdbServer.js","sourceRoot":"","sources":["../../src/utils/startRfdbServer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafema/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12-beta",
|
|
4
4
|
"description": "Core analysis engine for Grafema code analysis toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"node-source-walk": "^7.0.1",
|
|
43
43
|
"oxc-parser": "^0.96.0",
|
|
44
44
|
"yaml": "^2.8.2",
|
|
45
|
-
"@grafema/rfdb-client": "0.2.
|
|
46
|
-
"@grafema/types": "0.2.
|
|
45
|
+
"@grafema/rfdb-client": "0.2.12-beta",
|
|
46
|
+
"@grafema/types": "0.2.12-beta"
|
|
47
47
|
},
|
|
48
48
|
"optionalDependencies": {
|
|
49
49
|
"@grafema/rfdb": "^0.1.0-alpha.2"
|
package/src/Orchestrator.ts
CHANGED
|
@@ -68,6 +68,8 @@ export class Orchestrator {
|
|
|
68
68
|
private routing: RoutingRule[] | undefined;
|
|
69
69
|
/** Phase executor (extracted from runPhase, RFD-16) */
|
|
70
70
|
private phaseRunner!: PhaseRunner;
|
|
71
|
+
/** REG-487: Whether to defer index rebuilding during bulk load */
|
|
72
|
+
private _deferIndexing: boolean = false;
|
|
71
73
|
/** Graph setup: plugin nodes, field declarations, meta node (REG-462) */
|
|
72
74
|
private graphInitializer!: GraphInitializer;
|
|
73
75
|
/** Service/entrypoint discovery (REG-462) */
|
|
@@ -181,6 +183,15 @@ export class Orchestrator {
|
|
|
181
183
|
this.logger.info('Graph cleared successfully');
|
|
182
184
|
}
|
|
183
185
|
|
|
186
|
+
// REG-487: Detect if we should defer indexing during bulk load.
|
|
187
|
+
// Defer when doing a full re-analysis (forceAnalysis or empty graph).
|
|
188
|
+
// Must check BEFORE graphInitializer.init() which adds plugin nodes to delta.
|
|
189
|
+
this._deferIndexing = this.forceAnalysis || await this._isEmptyGraph();
|
|
190
|
+
if (this._deferIndexing) {
|
|
191
|
+
this.logger.info('Deferred indexing enabled for bulk load');
|
|
192
|
+
this._updatePhaseRunnerDeferIndexing(true);
|
|
193
|
+
}
|
|
194
|
+
|
|
184
195
|
// Initialize graph: plugin nodes, field declarations (REG-386, REG-398)
|
|
185
196
|
await this.graphInitializer.init(absoluteProjectPath);
|
|
186
197
|
|
|
@@ -227,6 +238,13 @@ export class Orchestrator {
|
|
|
227
238
|
await this.runBatchPhase('INDEXING', unitsToProcess, manifest);
|
|
228
239
|
this.profiler.end('INDEXING');
|
|
229
240
|
|
|
241
|
+
// REG-487: Rebuild indexes after deferred INDEXING commits.
|
|
242
|
+
// MODULE nodes written by INDEXING must be queryable before ANALYSIS starts.
|
|
243
|
+
if (this._deferIndexing && this.graph.rebuildIndexes) {
|
|
244
|
+
this.logger.info('Rebuilding indexes after INDEXING phase...');
|
|
245
|
+
await this.graph.rebuildIndexes();
|
|
246
|
+
}
|
|
247
|
+
|
|
230
248
|
// Skip remaining phases if indexOnly mode (for coverage)
|
|
231
249
|
if (this.indexOnly) {
|
|
232
250
|
const totalTime = ((Date.now() - totalStartTime) / 1000).toFixed(2);
|
|
@@ -243,11 +261,22 @@ export class Orchestrator {
|
|
|
243
261
|
} else {
|
|
244
262
|
// workerCount: 1 — JSASTAnalyzer uses WorkerPool(workerCount) for concurrent module analysis.
|
|
245
263
|
// Sequential processing avoids concurrent graph writes that cause race conditions.
|
|
246
|
-
|
|
264
|
+
// REG-487: Pass deferIndexing so JSASTAnalyzer defers per-module index rebuilds.
|
|
265
|
+
await this.runPhase('ANALYSIS', {
|
|
266
|
+
manifest, graph: this.graph, workerCount: 1,
|
|
267
|
+
deferIndexing: this._deferIndexing,
|
|
268
|
+
});
|
|
247
269
|
}
|
|
248
270
|
this.profiler.end('ANALYSIS');
|
|
249
271
|
this.logger.info('ANALYSIS phase complete', { duration: ((Date.now() - analysisStart) / 1000).toFixed(2) });
|
|
250
272
|
|
|
273
|
+
// REG-487: Reset deferred indexing before ENRICHMENT/VALIDATION phases.
|
|
274
|
+
// Those phases need immediate index consistency.
|
|
275
|
+
if (this._deferIndexing) {
|
|
276
|
+
this._deferIndexing = false;
|
|
277
|
+
this._updatePhaseRunnerDeferIndexing(false);
|
|
278
|
+
}
|
|
279
|
+
|
|
251
280
|
// PHASES 3-4: ENRICHMENT → strict barrier → guarantee → VALIDATION → flush
|
|
252
281
|
await this.runPipelineEpilogue(manifest, absoluteProjectPath);
|
|
253
282
|
|
|
@@ -275,6 +304,14 @@ export class Orchestrator {
|
|
|
275
304
|
this.logger.info('Graph cleared successfully');
|
|
276
305
|
}
|
|
277
306
|
|
|
307
|
+
// REG-487: Detect if we should defer indexing during bulk load.
|
|
308
|
+
// Must check BEFORE graphInitializer.init() which adds plugin nodes to delta.
|
|
309
|
+
this._deferIndexing = this.forceAnalysis || await this._isEmptyGraph();
|
|
310
|
+
if (this._deferIndexing) {
|
|
311
|
+
this.logger.info('Deferred indexing enabled for bulk load (multi-root)');
|
|
312
|
+
this._updatePhaseRunnerDeferIndexing(true);
|
|
313
|
+
}
|
|
314
|
+
|
|
278
315
|
// Initialize graph: plugin nodes, field declarations, meta node (REG-386, REG-398, REG-408)
|
|
279
316
|
await this.graphInitializer.init(workspacePath);
|
|
280
317
|
|
|
@@ -327,6 +364,12 @@ export class Orchestrator {
|
|
|
327
364
|
projectPath: workspacePath,
|
|
328
365
|
};
|
|
329
366
|
|
|
367
|
+
// REG-487: Rebuild indexes after all deferred INDEXING commits from all roots.
|
|
368
|
+
if (this._deferIndexing && this.graph.rebuildIndexes) {
|
|
369
|
+
this.logger.info('Rebuilding indexes after INDEXING phase (multi-root)...');
|
|
370
|
+
await this.graph.rebuildIndexes();
|
|
371
|
+
}
|
|
372
|
+
|
|
330
373
|
// Skip remaining phases if indexOnly
|
|
331
374
|
if (this.indexOnly) {
|
|
332
375
|
const totalTime = ((Date.now() - totalStartTime) / 1000).toFixed(2);
|
|
@@ -343,11 +386,21 @@ export class Orchestrator {
|
|
|
343
386
|
} else {
|
|
344
387
|
// workerCount: 1 — JSASTAnalyzer uses WorkerPool(workerCount) for concurrent module analysis.
|
|
345
388
|
// Sequential processing avoids concurrent graph writes that cause race conditions.
|
|
346
|
-
|
|
389
|
+
// REG-487: Pass deferIndexing so JSASTAnalyzer defers per-module index rebuilds.
|
|
390
|
+
await this.runPhase('ANALYSIS', {
|
|
391
|
+
manifest: unifiedManifest, graph: this.graph, workerCount: 1,
|
|
392
|
+
deferIndexing: this._deferIndexing,
|
|
393
|
+
});
|
|
347
394
|
}
|
|
348
395
|
this.profiler.end('ANALYSIS');
|
|
349
396
|
this.logger.info('ANALYSIS phase complete', { duration: ((Date.now() - analysisStart) / 1000).toFixed(2) });
|
|
350
397
|
|
|
398
|
+
// REG-487: Reset deferred indexing before ENRICHMENT/VALIDATION phases.
|
|
399
|
+
if (this._deferIndexing) {
|
|
400
|
+
this._deferIndexing = false;
|
|
401
|
+
this._updatePhaseRunnerDeferIndexing(false);
|
|
402
|
+
}
|
|
403
|
+
|
|
351
404
|
// ENRICHMENT → strict barrier → guarantee → VALIDATION → flush
|
|
352
405
|
await this.runPipelineEpilogue(unifiedManifest, workspacePath);
|
|
353
406
|
|
|
@@ -513,6 +566,42 @@ export class Orchestrator {
|
|
|
513
566
|
});
|
|
514
567
|
}
|
|
515
568
|
|
|
569
|
+
/**
|
|
570
|
+
* REG-487: Check if the graph is empty (first run or after clear).
|
|
571
|
+
* Used to decide whether to enable deferred indexing.
|
|
572
|
+
*/
|
|
573
|
+
private async _isEmptyGraph(): Promise<boolean> {
|
|
574
|
+
try {
|
|
575
|
+
const count = await this.graph.nodeCount();
|
|
576
|
+
return count === 0;
|
|
577
|
+
} catch {
|
|
578
|
+
// If nodeCount fails, assume empty for safety
|
|
579
|
+
return true;
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* REG-487: Update PhaseRunner's deferIndexing setting.
|
|
585
|
+
* Must be called before phases that should use deferred indexing.
|
|
586
|
+
* After ANALYSIS completes, reset to false so ENRICHMENT/VALIDATION get normal flush.
|
|
587
|
+
*/
|
|
588
|
+
private _updatePhaseRunnerDeferIndexing(deferIndexing: boolean): void {
|
|
589
|
+
// PhaseRunner is constructed once in the constructor with initial deps.
|
|
590
|
+
// We need to recreate it with updated deps to change deferIndexing.
|
|
591
|
+
this.phaseRunner = new PhaseRunner({
|
|
592
|
+
plugins: this.plugins,
|
|
593
|
+
onProgress: this.onProgress,
|
|
594
|
+
forceAnalysis: this.forceAnalysis,
|
|
595
|
+
logger: this.logger,
|
|
596
|
+
strictMode: this.strictMode,
|
|
597
|
+
diagnosticCollector: this.diagnosticCollector,
|
|
598
|
+
resourceRegistry: this.resourceRegistry,
|
|
599
|
+
configServices: this.configServices,
|
|
600
|
+
routing: this.routing,
|
|
601
|
+
deferIndexing,
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
|
|
516
605
|
/**
|
|
517
606
|
* Build unified list of indexing units from manifest.
|
|
518
607
|
* Delegates to DiscoveryManager. Public API for external callers.
|