@monoes/monograph 1.6.0 → 1.6.2
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/src/cache/extraction-cache.d.ts +3 -1
- package/dist/src/cache/extraction-cache.d.ts.map +1 -1
- package/dist/src/cache/extraction-cache.js +10 -2
- package/dist/src/cache/extraction-cache.js.map +1 -1
- package/dist/src/graph/explain.d.ts.map +1 -1
- package/dist/src/graph/explain.js +9 -2
- package/dist/src/graph/explain.js.map +1 -1
- package/dist/src/graph/pagerank.d.ts +9 -3
- package/dist/src/graph/pagerank.d.ts.map +1 -1
- package/dist/src/graph/pagerank.js +69 -34
- package/dist/src/graph/pagerank.js.map +1 -1
- package/dist/src/mcp-tools/neighbors.d.ts +29 -3
- package/dist/src/mcp-tools/neighbors.d.ts.map +1 -1
- package/dist/src/mcp-tools/neighbors.js +85 -10
- package/dist/src/mcp-tools/neighbors.js.map +1 -1
- package/dist/src/mcp-tools/query.d.ts +8 -0
- package/dist/src/mcp-tools/query.d.ts.map +1 -1
- package/dist/src/mcp-tools/query.js +15 -9
- package/dist/src/mcp-tools/query.js.map +1 -1
- package/dist/src/mcp-tools/rename.d.ts.map +1 -1
- package/dist/src/mcp-tools/rename.js +27 -2
- package/dist/src/mcp-tools/rename.js.map +1 -1
- package/dist/src/parsers/cpp.d.ts.map +1 -1
- package/dist/src/parsers/cpp.js +12 -2
- package/dist/src/parsers/cpp.js.map +1 -1
- package/dist/src/parsers/dart.d.ts.map +1 -1
- package/dist/src/parsers/dart.js +18 -0
- package/dist/src/parsers/dart.js.map +1 -1
- package/dist/src/parsers/extractor.d.ts.map +1 -1
- package/dist/src/parsers/extractor.js +22 -8
- package/dist/src/parsers/extractor.js.map +1 -1
- package/dist/src/parsers/kotlin.d.ts +1 -1
- package/dist/src/parsers/kotlin.d.ts.map +1 -1
- package/dist/src/parsers/kotlin.js +4 -0
- package/dist/src/parsers/kotlin.js.map +1 -1
- package/dist/src/parsers/language-config.d.ts +7 -0
- package/dist/src/parsers/language-config.d.ts.map +1 -1
- package/dist/src/parsers/language-config.js +14 -1
- package/dist/src/parsers/language-config.js.map +1 -1
- package/dist/src/parsers/loader.js +17 -3
- package/dist/src/parsers/loader.js.map +1 -1
- package/dist/src/parsers/ruby.d.ts +1 -1
- package/dist/src/parsers/ruby.d.ts.map +1 -1
- package/dist/src/parsers/ruby.js +4 -0
- package/dist/src/parsers/ruby.js.map +1 -1
- package/dist/src/pipeline/index-scope.d.ts +23 -0
- package/dist/src/pipeline/index-scope.d.ts.map +1 -0
- package/dist/src/pipeline/index-scope.js +33 -0
- package/dist/src/pipeline/index-scope.js.map +1 -0
- package/dist/src/pipeline/orchestrator.d.ts +17 -0
- package/dist/src/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/src/pipeline/orchestrator.js +55 -122
- package/dist/src/pipeline/orchestrator.js.map +1 -1
- package/dist/src/pipeline/phases/communities.d.ts +78 -2
- package/dist/src/pipeline/phases/communities.d.ts.map +1 -1
- package/dist/src/pipeline/phases/communities.js +141 -9
- package/dist/src/pipeline/phases/communities.js.map +1 -1
- package/dist/src/pipeline/phases/markdown.js +6 -6
- package/dist/src/pipeline/phases/markdown.js.map +1 -1
- package/dist/src/pipeline/phases/parse.d.ts.map +1 -1
- package/dist/src/pipeline/phases/parse.js +22 -27
- package/dist/src/pipeline/phases/parse.js.map +1 -1
- package/dist/src/pipeline/phases/pdf-parse.js +5 -5
- package/dist/src/pipeline/phases/pdf-parse.js.map +1 -1
- package/dist/src/pipeline/phases/scan.d.ts.map +1 -1
- package/dist/src/pipeline/phases/scan.js +16 -1
- package/dist/src/pipeline/phases/scan.js.map +1 -1
- package/dist/src/pipeline/phases/structure.js +12 -12
- package/dist/src/pipeline/phases/structure.js.map +1 -1
- package/dist/src/pipeline/phases/variables.d.ts.map +1 -1
- package/dist/src/pipeline/phases/variables.js +2 -1
- package/dist/src/pipeline/phases/variables.js.map +1 -1
- package/dist/src/search/hybrid-query.d.ts +77 -14
- package/dist/src/search/hybrid-query.d.ts.map +1 -1
- package/dist/src/search/hybrid-query.js +81 -21
- package/dist/src/search/hybrid-query.js.map +1 -1
- package/dist/src/staleness/git-staleness.d.ts +46 -0
- package/dist/src/staleness/git-staleness.d.ts.map +1 -1
- package/dist/src/staleness/git-staleness.js +188 -24
- package/dist/src/staleness/git-staleness.js.map +1 -1
- package/dist/src/storage/fts-store.d.ts +14 -0
- package/dist/src/storage/fts-store.d.ts.map +1 -1
- package/dist/src/storage/fts-store.js +18 -3
- package/dist/src/storage/fts-store.js.map +1 -1
- package/dist/src/types.d.ts +58 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +103 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/web/api.d.ts +3 -0
- package/dist/src/web/api.d.ts.map +1 -1
- package/dist/src/web/api.js +2 -0
- package/dist/src/web/api.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { extname } from 'node:path';
|
|
2
|
+
import { isSupportedExtension } from '../parsers/loader.js';
|
|
3
|
+
const INDEX_SCOPE_KEY = 'source_scope';
|
|
4
|
+
export function scopeForOptions(codeOnly) {
|
|
5
|
+
return codeOnly ? 'code' : 'all';
|
|
6
|
+
}
|
|
7
|
+
/** The scope the stored graph was last built with, or null if never recorded. */
|
|
8
|
+
export function readIndexScope(db) {
|
|
9
|
+
try {
|
|
10
|
+
const row = db.prepare('SELECT value FROM index_meta WHERE key = ?').get(INDEX_SCOPE_KEY);
|
|
11
|
+
if (row?.value === 'code' || row?.value === 'all')
|
|
12
|
+
return row.value;
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function writeIndexScope(db, scope) {
|
|
20
|
+
db.prepare('INSERT OR REPLACE INTO index_meta VALUES (?, ?)').run(INDEX_SCOPE_KEY, scope);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `filePath` belongs to the source domain a build at `scope` actually
|
|
24
|
+
* scans. Rows outside the current scope's domain were produced by a wider
|
|
25
|
+
* earlier build and must be left alone — a code-only refresh never looked at
|
|
26
|
+
* those files, so their absence from its file list is not evidence of deletion.
|
|
27
|
+
*/
|
|
28
|
+
export function isWithinScope(filePath, scope) {
|
|
29
|
+
if (scope === 'all')
|
|
30
|
+
return true;
|
|
31
|
+
return isSupportedExtension(extname(filePath).toLowerCase());
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-scope.js","sourceRoot":"","sources":["../../../src/pipeline/index-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAc5D,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACnC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,EAAe;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,eAAe,CAE3E,CAAC;QACd,IAAI,GAAG,EAAE,KAAK,KAAK,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAe,EAAE,KAAiB;IAChE,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAiB;IAC/D,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -7,5 +7,22 @@ export interface BuildOptions extends Partial<PipelineOptions> {
|
|
|
7
7
|
incremental?: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare function buildAsync(repoPath: string, options?: BuildOptions): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Re-index after files changed on disk.
|
|
12
|
+
*
|
|
13
|
+
* This runs the FULL pipeline, with extraction-cache reuse so unchanged files
|
|
14
|
+
* are not re-parsed. The previous partial implementation deleted the changed
|
|
15
|
+
* files' edges, re-parsed only those files, and stopped — it never reran
|
|
16
|
+
* relationship resolution (imports, cross-file calls, scope/bridge resolution)
|
|
17
|
+
* or the derived analyses (communities, processes, god-nodes). A one-line edit
|
|
18
|
+
* therefore dropped every CALLS/IMPORTS/REFERENCES edge incident to that file
|
|
19
|
+
* and left derived analysis stale. The watcher's deferred full rebuild repaired
|
|
20
|
+
* that eventually; direct callers silently kept the incomplete graph.
|
|
21
|
+
*
|
|
22
|
+
* A genuine incremental path is still worth having, but it has to track the
|
|
23
|
+
* changed files' dependents, recompute their relationships, and invalidate the
|
|
24
|
+
* affected derived analyses. Until such an implementation exists and is proven
|
|
25
|
+
* equivalent to a clean build, correctness wins over speed.
|
|
26
|
+
*/
|
|
10
27
|
export declare function buildIncrementalAsync(repoPath: string, changedAbsPaths: string[], options?: BuildOptions): Promise<void>;
|
|
11
28
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/orchestrator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,aAAa,CAAC;AAuBvE,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,YAAY,CAAC;AAWnE,MAAM,WAAW,YAAa,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oGAAoG;IACpG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkDD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5F;AAwPD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import { extname, join, resolve } from 'node:path';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
4
3
|
import Graph from 'graphology';
|
|
5
4
|
import { analyzeChurn } from '../analysis/churn.js';
|
|
6
5
|
import { ExtractionCache } from '../cache/extraction-cache.js';
|
|
7
|
-
import { isSupportedExtension, parseFile } from '../parsers/loader.js';
|
|
8
6
|
import { generateGraphReport } from '../reporting/graph-report.js';
|
|
9
7
|
import { closeDb, openDb } from '../storage/db.js';
|
|
10
|
-
import {
|
|
11
|
-
import { deleteNodesForFile, insertNodes } from '../storage/node-store.js';
|
|
8
|
+
import { isWithinScope, readIndexScope, scopeForOptions, writeIndexScope } from './index-scope.js';
|
|
12
9
|
import { bridgeResolverPhase } from './phases/bridge-resolver.js';
|
|
13
10
|
import { communitiesPhase } from './phases/communities.js';
|
|
14
11
|
import { crossFilePhase } from './phases/cross-file.js';
|
|
@@ -18,7 +15,7 @@ import { importResolverPhase } from './phases/import-resolver.js';
|
|
|
18
15
|
import { markdownPhase } from './phases/markdown.js';
|
|
19
16
|
import { mroPhase } from './phases/mro.js';
|
|
20
17
|
import { ormPhase } from './phases/orm.js';
|
|
21
|
-
import {
|
|
18
|
+
import { parsePhase } from './phases/parse.js';
|
|
22
19
|
import { processesPhase } from './phases/processes.js';
|
|
23
20
|
import { routesPhase } from './phases/routes.js';
|
|
24
21
|
import { scanPhase } from './phases/scan.js';
|
|
@@ -27,7 +24,6 @@ import { structurePhase } from './phases/structure.js';
|
|
|
27
24
|
import { suggestPhase } from './phases/suggest.js';
|
|
28
25
|
import { surprisesPhase } from './phases/surprises.js';
|
|
29
26
|
import { toolsPhase } from './phases/tools.js';
|
|
30
|
-
import { extractVariables, variableToNode } from './phases/variables.js';
|
|
31
27
|
import { variablesPhase } from './phases/variables-phase.js';
|
|
32
28
|
import { wildcardSynthesisPhase } from './phases/wildcard-phase.js';
|
|
33
29
|
import { PipelineRunner } from './runner.js';
|
|
@@ -121,7 +117,15 @@ async function buildAsyncLocked(repoPath, dbPath, fullOptions, options) {
|
|
|
121
117
|
const tmpDb = openDb(dbPath);
|
|
122
118
|
try {
|
|
123
119
|
const report = checkStaleness(tmpDb, resolve(repoPath));
|
|
124
|
-
|
|
120
|
+
// Gate on the explicit state, not the legacy `isStale` boolean.
|
|
121
|
+
// `isStale` only reflects commit divergence, so it stays false for an
|
|
122
|
+
// index whose commit matches HEAD but whose worktree has uncommitted
|
|
123
|
+
// edits — this guard would then skip the very rebuild those edits
|
|
124
|
+
// require. It is also false when git is unavailable, where nothing is
|
|
125
|
+
// actually known. `state === 'fresh'` is true only when the commit
|
|
126
|
+
// matches AND the worktree is clean AND that was determinable, so it
|
|
127
|
+
// subsumes the old currentCommit !== null check.
|
|
128
|
+
if (report.state === 'fresh') {
|
|
125
129
|
options.onProgress?.({ phase: 'skip', message: 'Index is fresh — skipping rebuild' });
|
|
126
130
|
return; // Already up-to-date
|
|
127
131
|
}
|
|
@@ -151,6 +155,16 @@ async function buildAsyncLocked(repoPath, dbPath, fullOptions, options) {
|
|
|
151
155
|
}
|
|
152
156
|
}
|
|
153
157
|
const db = openDb(dbPath);
|
|
158
|
+
// Source-scope continuity (issue: a code-only auto-refresh wiped every
|
|
159
|
+
// previously-indexed Document node). A caller that doesn't state a scope
|
|
160
|
+
// inherits whatever the index was last built with, so a refresh can never
|
|
161
|
+
// silently narrow coverage; an explicit `codeOnly` from the caller still wins.
|
|
162
|
+
const storedScope = readIndexScope(db);
|
|
163
|
+
if (options.codeOnly === undefined && storedScope !== null) {
|
|
164
|
+
fullOptions.codeOnly = storedScope === 'code';
|
|
165
|
+
}
|
|
166
|
+
const activeScope = scopeForOptions(fullOptions.codeOnly);
|
|
167
|
+
options.onProgress?.({ phase: 'scope', message: `Index scope: ${activeScope}` });
|
|
154
168
|
// The whole build is one SQL transaction: a phase throwing (e.g. issue
|
|
155
169
|
// #40's FK violation) used to leave whatever earlier phases had already
|
|
156
170
|
// autocommitted sitting in the DB, silently corrupting the index into a
|
|
@@ -216,12 +230,18 @@ async function buildAsyncLocked(repoPath, dbPath, fullOptions, options) {
|
|
|
216
230
|
// (ctx.allFilesCached === true), a file may have been deleted from disk between
|
|
217
231
|
// builds, which produces zero cache misses but still leaves ghost rows in the DB
|
|
218
232
|
// unless we compare the DB's known file set against the current on-disk set.
|
|
233
|
+
//
|
|
234
|
+
// The sweep is confined to the current build's source domain (`activeScope`).
|
|
235
|
+
// A narrowed build never looked at files outside its domain, so their absence
|
|
236
|
+
// from `filePaths` says nothing about whether they still exist on disk —
|
|
237
|
+
// deleting those rows is how a code-only refresh used to erase every Document
|
|
238
|
+
// node in the graph.
|
|
219
239
|
const scanOut = outputs.get('scan');
|
|
220
240
|
if (scanOut) {
|
|
221
241
|
const liveFiles = new Set(scanOut.filePaths.map((f) => resolve(f)));
|
|
222
242
|
const staleFiles = db.prepare('SELECT DISTINCT file_path FROM nodes WHERE file_path IS NOT NULL').all()
|
|
223
243
|
.map((r) => r.file_path)
|
|
224
|
-
.filter((f) => !liveFiles.has(resolve(ctx.repoPath, f)));
|
|
244
|
+
.filter((f) => isWithinScope(f, activeScope) && !liveFiles.has(resolve(ctx.repoPath, f)));
|
|
225
245
|
if (staleFiles.length > 0) {
|
|
226
246
|
const deleteStale = db.transaction((files) => {
|
|
227
247
|
const deleteEdges = db.prepare(`
|
|
@@ -278,6 +298,7 @@ async function buildAsyncLocked(repoPath, dbPath, fullOptions, options) {
|
|
|
278
298
|
}
|
|
279
299
|
}
|
|
280
300
|
db.prepare("INSERT OR REPLACE INTO index_meta VALUES ('indexed_at', ?)").run(new Date().toISOString());
|
|
301
|
+
writeIndexScope(db, activeScope);
|
|
281
302
|
db.exec('COMMIT');
|
|
282
303
|
// Skip expensive report regeneration when all files were cached (nothing changed) —
|
|
283
304
|
// this is purely a performance optimization, not correctness-critical, so it stays
|
|
@@ -312,121 +333,33 @@ async function buildAsyncLocked(repoPath, dbPath, fullOptions, options) {
|
|
|
312
333
|
closeDb(db);
|
|
313
334
|
}
|
|
314
335
|
}
|
|
315
|
-
|
|
336
|
+
/**
|
|
337
|
+
* Re-index after files changed on disk.
|
|
338
|
+
*
|
|
339
|
+
* This runs the FULL pipeline, with extraction-cache reuse so unchanged files
|
|
340
|
+
* are not re-parsed. The previous partial implementation deleted the changed
|
|
341
|
+
* files' edges, re-parsed only those files, and stopped — it never reran
|
|
342
|
+
* relationship resolution (imports, cross-file calls, scope/bridge resolution)
|
|
343
|
+
* or the derived analyses (communities, processes, god-nodes). A one-line edit
|
|
344
|
+
* therefore dropped every CALLS/IMPORTS/REFERENCES edge incident to that file
|
|
345
|
+
* and left derived analysis stale. The watcher's deferred full rebuild repaired
|
|
346
|
+
* that eventually; direct callers silently kept the incomplete graph.
|
|
347
|
+
*
|
|
348
|
+
* A genuine incremental path is still worth having, but it has to track the
|
|
349
|
+
* changed files' dependents, recompute their relationships, and invalidate the
|
|
350
|
+
* affected derived analyses. Until such an implementation exists and is proven
|
|
351
|
+
* equivalent to a clean build, correctness wins over speed.
|
|
352
|
+
*/
|
|
316
353
|
export async function buildIncrementalAsync(repoPath, changedAbsPaths, options = {}) {
|
|
317
354
|
if (changedAbsPaths.length === 0)
|
|
318
355
|
return;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
if (!releaseLock) {
|
|
328
|
-
options.onProgress?.({
|
|
329
|
-
phase: 'skip',
|
|
330
|
-
message: 'Another build is in progress — skipping incremental',
|
|
331
|
-
});
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
try {
|
|
335
|
-
await buildIncrementalLocked(resolve(repoPath), dbPath, changedAbsPaths, options);
|
|
336
|
-
}
|
|
337
|
-
finally {
|
|
338
|
-
releaseLock();
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
async function buildIncrementalLocked(resolvedRepo, dbPath, changedAbsPaths, options) {
|
|
342
|
-
const db = openDb(dbPath);
|
|
343
|
-
const maxSize = options.maxFileSizeBytes ?? DEFAULT_OPTIONS.maxFileSizeBytes;
|
|
344
|
-
db.exec('BEGIN');
|
|
345
|
-
try {
|
|
346
|
-
let parsed = 0;
|
|
347
|
-
let deleted = 0;
|
|
348
|
-
for (const absPath of changedAbsPaths) {
|
|
349
|
-
const ext = extname(absPath).toLowerCase();
|
|
350
|
-
if (!isSupportedExtension(ext))
|
|
351
|
-
continue;
|
|
352
|
-
if (ext === '.md' || ext === '.markdown')
|
|
353
|
-
continue;
|
|
354
|
-
const relPath = absPath.startsWith(resolvedRepo)
|
|
355
|
-
? absPath.slice(resolvedRepo.length + 1)
|
|
356
|
-
: absPath;
|
|
357
|
-
deleteEdgesForFile(db, relPath);
|
|
358
|
-
deleteNodesForFile(db, relPath);
|
|
359
|
-
if (!existsSync(absPath)) {
|
|
360
|
-
deleted++;
|
|
361
|
-
continue;
|
|
362
|
-
}
|
|
363
|
-
let source;
|
|
364
|
-
try {
|
|
365
|
-
const stat = statSync(absPath);
|
|
366
|
-
if (stat.size > maxSize)
|
|
367
|
-
continue;
|
|
368
|
-
source = readFileSync(absPath, 'utf-8');
|
|
369
|
-
}
|
|
370
|
-
catch {
|
|
371
|
-
continue;
|
|
372
|
-
}
|
|
373
|
-
const result = await parseFile(absPath, source, relPath);
|
|
374
|
-
const nodes = [...result.nodes];
|
|
375
|
-
const edges = [...result.edges];
|
|
376
|
-
if (ext === '.cs') {
|
|
377
|
-
for (const ns of extractCsharpNamespaces(source, relPath)) {
|
|
378
|
-
nodes.push({
|
|
379
|
-
id: `${ns.filePath}::namespace::${ns.name}`,
|
|
380
|
-
name: ns.name,
|
|
381
|
-
label: 'Namespace',
|
|
382
|
-
normLabel: 'namespace',
|
|
383
|
-
filePath: ns.filePath,
|
|
384
|
-
line: ns.line,
|
|
385
|
-
isExported: true,
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
if (['.ts', '.tsx', '.js', '.jsx'].includes(ext)) {
|
|
390
|
-
const varInfos = extractVariables(source, relPath);
|
|
391
|
-
nodes.push(...varInfos.map((v) => variableToNode(v)));
|
|
392
|
-
for (const fn of extractArrowFunctions(source, relPath)) {
|
|
393
|
-
nodes.push({
|
|
394
|
-
id: `${fn.filePath}::fn::${fn.name}`,
|
|
395
|
-
name: fn.name,
|
|
396
|
-
label: 'Function',
|
|
397
|
-
normLabel: 'function',
|
|
398
|
-
filePath: fn.filePath,
|
|
399
|
-
line: fn.line,
|
|
400
|
-
isExported: fn.isExported,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
insertNodes(db, nodes);
|
|
405
|
-
insertEdges(db, edges);
|
|
406
|
-
parsed++;
|
|
407
|
-
}
|
|
408
|
-
const hash = getCurrentCommitHash(resolvedRepo);
|
|
409
|
-
if (hash) {
|
|
410
|
-
db.prepare("INSERT OR REPLACE INTO index_meta VALUES ('last_commit_hash', ?)").run(hash);
|
|
411
|
-
}
|
|
412
|
-
db.prepare("INSERT OR REPLACE INTO index_meta VALUES ('indexed_at', ?)").run(new Date().toISOString());
|
|
413
|
-
db.exec('COMMIT');
|
|
414
|
-
options.onProgress?.({
|
|
415
|
-
phase: 'incremental',
|
|
416
|
-
message: `Incremental: ${parsed} re-parsed, ${deleted} removed`,
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
catch (err) {
|
|
420
|
-
try {
|
|
421
|
-
db.exec('ROLLBACK');
|
|
422
|
-
}
|
|
423
|
-
catch {
|
|
424
|
-
/* ignore */
|
|
425
|
-
}
|
|
426
|
-
throw err;
|
|
427
|
-
}
|
|
428
|
-
finally {
|
|
429
|
-
closeDb(db);
|
|
430
|
-
}
|
|
356
|
+
// `incremental` means "skip when the index is already fresh", which is keyed on
|
|
357
|
+
// git HEAD. A working-tree edit doesn't move HEAD, so honouring the flag here
|
|
358
|
+
// would skip the very rebuild the caller just asked for.
|
|
359
|
+
await buildAsync(repoPath, { ...options, incremental: false });
|
|
360
|
+
options.onProgress?.({
|
|
361
|
+
phase: 'incremental',
|
|
362
|
+
message: `Rebuilt after ${changedAbsPaths.length} changed file(s)`,
|
|
363
|
+
});
|
|
431
364
|
}
|
|
432
365
|
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/pipeline/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/pipeline/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,60 @@
|
|
|
1
|
+
import type { MonographDb } from '../../storage/db.js';
|
|
2
|
+
import type { EdgeRelation } from '../../types.js';
|
|
1
3
|
import type { PipelinePhase } from '../types.js';
|
|
2
4
|
export interface CommunitiesOutput {
|
|
3
5
|
memberships: Map<string, number>;
|
|
4
6
|
communityLabels: Map<number, string>;
|
|
5
7
|
cohesionScores: Map<number, number>;
|
|
6
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* The relation families that participate in clustering, and the weight each
|
|
11
|
+
* family contributes to the clustering graph.
|
|
12
|
+
*
|
|
13
|
+
* This selection is deliberate, not incidental: different relations mean very
|
|
14
|
+
* different things structurally, so they must not all count as the same
|
|
15
|
+
* evidence of coupling.
|
|
16
|
+
*
|
|
17
|
+
* - **Coupling (weight 1)** — one symbol genuinely depends on another at
|
|
18
|
+
* runtime or type-check time. These are what a module boundary is supposed
|
|
19
|
+
* to contain, so they drive cluster boundaries.
|
|
20
|
+
* - **Weak coupling (weight 0.5)** — real but indirect or partial links
|
|
21
|
+
* (pass-through re-exports, member access, framework wiring). They pull
|
|
22
|
+
* nodes together, but should not outvote a direct call or import.
|
|
23
|
+
* - **Containment (weight 0.25)** — a file *owns* a symbol; it is not evidence
|
|
24
|
+
* that the two are coupled. Counted at full weight, containment dominates
|
|
25
|
+
* every real repo (there is one CONTAINS edge per symbol) and clustering
|
|
26
|
+
* degenerates into a restatement of the file tree. It is kept at a low weight
|
|
27
|
+
* only so that symbols with no coupling edges still attach to their parent
|
|
28
|
+
* rather than dropping out of the clustering entirely.
|
|
29
|
+
*
|
|
30
|
+
* Everything not listed is excluded: process/step relations (produced after
|
|
31
|
+
* this phase runs), and the document-knowledge-graph families (REFERENCES,
|
|
32
|
+
* PARENT_SECTION, TAGGED_AS, CO_OCCURS and the LLM-inferred prose relations),
|
|
33
|
+
* which describe prose adjacency rather than code coupling.
|
|
34
|
+
*/
|
|
35
|
+
export declare const CLUSTERING_RELATION_WEIGHTS: Readonly<Partial<Record<EdgeRelation, number>>>;
|
|
36
|
+
export interface ClusteringEdge {
|
|
37
|
+
sourceId: string;
|
|
38
|
+
targetId: string;
|
|
39
|
+
weight: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Read the clustering input from the committed canonical graph — the `edges`
|
|
43
|
+
* table this build has already written — rather than from any single phase's
|
|
44
|
+
* in-memory output.
|
|
45
|
+
*
|
|
46
|
+
* This is the whole point of the query: edges produced by the resolution
|
|
47
|
+
* phases (scope-resolution's resolved CALLS, bridge-resolver, wildcard
|
|
48
|
+
* synthesis, mro, routes/tools/orm) are inserted straight into the DB and
|
|
49
|
+
* never surface in `parse` or `cross-file` phase output. Clustering from those
|
|
50
|
+
* outputs therefore ran over a thinner graph than the one every other consumer
|
|
51
|
+
* queries. Reading the table means clustering sees exactly the edges the rest
|
|
52
|
+
* of the system sees — filtered to the families selected above.
|
|
53
|
+
*
|
|
54
|
+
* The phase runs inside the build's open transaction on the same connection,
|
|
55
|
+
* so it observes this build's writes.
|
|
56
|
+
*/
|
|
57
|
+
export declare function loadClusteringEdges(db: MonographDb): ClusteringEdge[];
|
|
7
58
|
export declare function computeCohesion(communityId: number, memberships: Map<string, number>, edges: Array<{
|
|
8
59
|
sourceId: string;
|
|
9
60
|
targetId: string;
|
|
@@ -14,14 +65,39 @@ export declare function computeCohesion(communityId: number, memberships: Map<st
|
|
|
14
65
|
* This replaces calling `computeCohesion` inside a loop, which was O(K*(N+E))
|
|
15
66
|
* because each call re-scanned all memberships (O(N)) and all edges (O(E)).
|
|
16
67
|
*
|
|
68
|
+
* The score is a structural measurement — the fraction of possible internal
|
|
69
|
+
* pairs that are actually connected by a selected edge — and nothing more. It
|
|
70
|
+
* is not a quality, health, or design-correctness judgment: a low score says
|
|
71
|
+
* the clustering grouped nodes that have few links *among the relation
|
|
72
|
+
* families listed in CLUSTERING_RELATION_WEIGHTS*, which can equally mean the
|
|
73
|
+
* coupling is real but expressed through a family this phase excludes.
|
|
74
|
+
*
|
|
17
75
|
* @param memberships - nodeId → communityId map from the clustering step
|
|
18
|
-
* @param edges -
|
|
19
|
-
*
|
|
76
|
+
* @param edges - the same selected edge set that was clustered (see
|
|
77
|
+
* `loadClusteringEdges`), so the score describes the graph that produced the
|
|
78
|
+
* communities rather than some other edge set
|
|
79
|
+
* @returns Map of communityId → internal-edge density ∈ [0, 1]
|
|
20
80
|
*/
|
|
21
81
|
export declare function computeAllCohesionScores(memberships: Map<string, number>, edges: Array<{
|
|
22
82
|
sourceId: string;
|
|
23
83
|
targetId: string;
|
|
24
84
|
}>): Map<number, number>;
|
|
85
|
+
/**
|
|
86
|
+
* Community detection over the committed canonical graph.
|
|
87
|
+
*
|
|
88
|
+
* What the output does and does not claim: communities here are the clusters
|
|
89
|
+
* a modularity-maximising algorithm (Leiden-style refinement over Louvain)
|
|
90
|
+
* finds in the weighted edge set defined by `CLUSTERING_RELATION_WEIGHTS`.
|
|
91
|
+
* They are a summary of *that* connectivity, and they have not been measured
|
|
92
|
+
* against package manifests, directory layout, or runtime deployment units —
|
|
93
|
+
* so a community is a candidate grouping to look at, not a verified
|
|
94
|
+
* architectural module or package boundary. Any consumer that presents these
|
|
95
|
+
* as architecture should say which basis it is using.
|
|
96
|
+
*
|
|
97
|
+
* `deps` lists every phase that writes a selected relation family into
|
|
98
|
+
* `edges`, so that the table is complete when this phase reads it. Adding a
|
|
99
|
+
* phase that emits a clustering relation means adding it here too.
|
|
100
|
+
*/
|
|
25
101
|
export declare const communitiesPhase: PipelinePhase<CommunitiesOutput>;
|
|
26
102
|
/**
|
|
27
103
|
* Split a community that is too large into smaller sub-groups.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/communities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phases/communities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAuBvF,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,cAAc,EAAE,CAYrE;AAuBD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACnD,MAAM,CAsBR;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACnD,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgDrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,iBAAiB,CA+E7D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAO7F"}
|