@optave/codegraph 3.11.1 → 3.11.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.
@@ -10,6 +10,7 @@ import { getNodeId } from '../../../../db/index.js';
10
10
  import { debug } from '../../../../infrastructure/logger.js';
11
11
  import { loadNative } from '../../../../infrastructure/native.js';
12
12
  import { computeConfidence } from '../../resolve.js';
13
+ import { findCaller, resolveCallTargets, resolveReceiverEdge, } from '../call-resolver.js';
13
14
  import { BUILTIN_RECEIVERS, batchInsertEdges } from '../helpers.js';
14
15
  import { getResolved, isBarrelFile, resolveBarrelExport } from './resolve-imports.js';
15
16
  // ── Node lookup setup ───────────────────────────────────────────────────
@@ -320,6 +321,7 @@ function buildImportedNamesForNative(ctx, relPath, symbols, rootDir) {
320
321
  // ── Call edges (JS fallback) ────────────────────────────────────────────
321
322
  function buildCallEdgesJS(ctx, getNodeIdStmt, allEdgeRows) {
322
323
  const { fileSymbols, barrelOnlyFiles, rootDir } = ctx;
324
+ const lookup = makeContextLookup(ctx, getNodeIdStmt);
323
325
  for (const [relPath, symbols] of fileSymbols) {
324
326
  if (barrelOnlyFiles.has(relPath))
325
327
  continue;
@@ -329,7 +331,7 @@ function buildCallEdgesJS(ctx, getNodeIdStmt, allEdgeRows) {
329
331
  const importedNames = buildImportedNamesMap(ctx, relPath, symbols, rootDir);
330
332
  const typeMap = symbols.typeMap || new Map();
331
333
  const seenCallEdges = new Set();
332
- buildFileCallEdges(ctx, relPath, symbols, fileNodeRow, importedNames, seenCallEdges, getNodeIdStmt, allEdgeRows, typeMap);
334
+ buildFileCallEdges(relPath, symbols, fileNodeRow, importedNames, seenCallEdges, lookup, allEdgeRows, typeMap);
333
335
  buildClassHierarchyEdges(ctx, relPath, symbols, allEdgeRows);
334
336
  }
335
337
  }
@@ -358,84 +360,22 @@ function buildImportedNamesMap(ctx, relPath, symbols, rootDir) {
358
360
  }
359
361
  return importedNames;
360
362
  }
361
- function findCaller(call, definitions, relPath, getNodeIdStmt, fileNodeRow) {
362
- let caller = null;
363
- let callerSpan = Infinity;
364
- for (const def of definitions) {
365
- if (def.line <= call.line) {
366
- const end = def.endLine || Infinity;
367
- if (call.line <= end) {
368
- const span = end - def.line;
369
- if (span < callerSpan) {
370
- const row = getNodeIdStmt.get(def.name, def.kind, relPath, def.line);
371
- if (row) {
372
- caller = row;
373
- callerSpan = span;
374
- }
375
- }
376
- }
377
- }
378
- }
379
- return caller || fileNodeRow;
380
- }
381
- function resolveCallTargets(ctx, call, relPath, importedNames, typeMap) {
382
- const importedFrom = importedNames.get(call.name);
383
- let targets;
384
- if (importedFrom) {
385
- targets = ctx.nodesByNameAndFile.get(`${call.name}|${importedFrom}`) || [];
386
- if (targets.length === 0 && isBarrelFile(ctx, importedFrom)) {
387
- const actualSource = resolveBarrelExport(ctx, importedFrom, call.name);
388
- if (actualSource) {
389
- targets = ctx.nodesByNameAndFile.get(`${call.name}|${actualSource}`) || [];
390
- }
391
- }
392
- }
393
- if (!targets || targets.length === 0) {
394
- targets = ctx.nodesByNameAndFile.get(`${call.name}|${relPath}`) || [];
395
- if (targets.length === 0) {
396
- targets = resolveByMethodOrGlobal(ctx, call, relPath, typeMap);
397
- }
398
- }
399
- if (targets.length > 1) {
400
- targets.sort((a, b) => {
401
- const confA = computeConfidence(relPath, a.file, importedFrom ?? null);
402
- const confB = computeConfidence(relPath, b.file, importedFrom ?? null);
403
- return confB - confA;
404
- });
405
- }
406
- return { targets, importedFrom };
407
- }
408
- function resolveByMethodOrGlobal(ctx, call, relPath, typeMap) {
409
- // Type-aware resolution: translate variable receiver to its declared type
410
- if (call.receiver && typeMap) {
411
- const typeEntry = typeMap.get(call.receiver);
412
- const typeName = typeEntry
413
- ? typeof typeEntry === 'string'
414
- ? typeEntry
415
- : typeEntry.type
416
- : null;
417
- if (typeName) {
418
- const qualifiedName = `${typeName}.${call.name}`;
419
- const typed = (ctx.nodesByName.get(qualifiedName) || []).filter((n) => n.kind === 'method');
420
- if (typed.length > 0)
421
- return typed;
422
- }
423
- }
424
- if (!call.receiver ||
425
- call.receiver === 'this' ||
426
- call.receiver === 'self' ||
427
- call.receiver === 'super') {
428
- return (ctx.nodesByName.get(call.name) || []).filter((n) => computeConfidence(relPath, n.file, null) >= 0.5);
429
- }
430
- return [];
363
+ function makeContextLookup(ctx, getNodeIdStmt) {
364
+ return {
365
+ byNameAndFile: (name, file) => ctx.nodesByNameAndFile.get(`${name}|${file}`) ?? [],
366
+ byName: (name) => ctx.nodesByName.get(name) ?? [],
367
+ isBarrel: (file) => isBarrelFile(ctx, file),
368
+ resolveBarrel: (barrelFile, symbolName) => resolveBarrelExport(ctx, barrelFile, symbolName),
369
+ nodeId: (name, kind, file, line) => getNodeIdStmt.get(name, kind, file, line),
370
+ };
431
371
  }
432
- function buildFileCallEdges(ctx, relPath, symbols, fileNodeRow, importedNames, seenCallEdges, getNodeIdStmt, allEdgeRows, typeMap) {
372
+ function buildFileCallEdges(relPath, symbols, fileNodeRow, importedNames, seenCallEdges, lookup, allEdgeRows, typeMap) {
433
373
  for (const call of symbols.calls) {
434
374
  if (call.receiver && BUILTIN_RECEIVERS.has(call.receiver))
435
375
  continue;
436
- const caller = findCaller(call, symbols.definitions, relPath, getNodeIdStmt, fileNodeRow);
376
+ const caller = findCaller(lookup, call, symbols.definitions, relPath, fileNodeRow);
437
377
  const isDynamic = call.dynamic ? 1 : 0;
438
- const { targets, importedFrom } = resolveCallTargets(ctx, call, relPath, importedNames, typeMap);
378
+ const { targets, importedFrom } = resolveCallTargets(lookup, call, relPath, importedNames, typeMap);
439
379
  for (const t of targets) {
440
380
  const edgeKey = `${caller.id}|${t.id}`;
441
381
  if (t.id !== caller.id && !seenCallEdges.has(edgeKey)) {
@@ -444,33 +384,15 @@ function buildFileCallEdges(ctx, relPath, symbols, fileNodeRow, importedNames, s
444
384
  allEdgeRows.push([caller.id, t.id, 'calls', confidence, isDynamic]);
445
385
  }
446
386
  }
447
- // Receiver edge
448
387
  if (call.receiver &&
449
388
  !BUILTIN_RECEIVERS.has(call.receiver) &&
450
389
  call.receiver !== 'this' &&
451
390
  call.receiver !== 'self' &&
452
391
  call.receiver !== 'super') {
453
- buildReceiverEdge(ctx, call, caller, relPath, seenCallEdges, allEdgeRows, typeMap);
454
- }
455
- }
456
- }
457
- function buildReceiverEdge(ctx, call, caller, relPath, seenCallEdges, allEdgeRows, typeMap) {
458
- const receiverKinds = new Set(['class', 'struct', 'interface', 'type', 'module']);
459
- const typeEntry = typeMap?.get(call.receiver);
460
- const typeName = typeEntry ? (typeof typeEntry === 'string' ? typeEntry : typeEntry.type) : null;
461
- const typeConfidence = typeEntry && typeof typeEntry === 'object' ? typeEntry.confidence : null;
462
- const effectiveReceiver = typeName || call.receiver;
463
- const samefile = ctx.nodesByNameAndFile.get(`${effectiveReceiver}|${relPath}`) || [];
464
- const candidates = samefile.length > 0 ? samefile : ctx.nodesByName.get(effectiveReceiver) || [];
465
- const receiverNodes = candidates.filter((n) => receiverKinds.has(n.kind));
466
- if (receiverNodes.length > 0 && caller) {
467
- const recvTarget = receiverNodes[0];
468
- const recvKey = `recv|${caller.id}|${recvTarget.id}`;
469
- if (!seenCallEdges.has(recvKey)) {
470
- seenCallEdges.add(recvKey);
471
- // Use type source confidence when available, otherwise 0.7 for untyped receiver
472
- const confidence = typeConfidence ?? (typeName ? 0.9 : 0.7);
473
- allEdgeRows.push([caller.id, recvTarget.id, 'receiver', confidence, 0]);
392
+ const recv = resolveReceiverEdge(lookup, { name: call.name, receiver: call.receiver }, caller, relPath, typeMap, seenCallEdges);
393
+ if (recv) {
394
+ allEdgeRows.push([recv.callerId, recv.receiverId, 'receiver', recv.confidence, 0]);
395
+ }
474
396
  }
475
397
  }
476
398
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-edges.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-edges.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAWlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAEL,UAAU,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAuCtF,2EAA2E;AAE3E,SAAS,iBAAiB,CAAC,EAAyB;IAClD,OAAO;QACL,GAAG,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;YAC9D,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAoB,EAAE,QAAwB;IACtE,GAAG,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,IAA0B,CAAC,CAAC;IACnE,CAAC;IACD,GAAG,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1E,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAA0B,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,yEAAyE;AACzE,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,WAAW,CAAC;IACrC,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,cAAc,CAAC;IACxC,IAAI,GAAG,CAAC,aAAa;QAAE,OAAO,iBAAiB,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,GAAoB,EACpB,GAAW,EACX,YAAoB,EACpB,UAAkB,EAClB,WAA2B;IAE3B,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO;IACpC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,UAAU,GAAG,YAAY,CAAC;QAC9B,IAAI,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YACjE,IAAI,MAAM;gBAAE,UAAU,GAAG,MAAM,CAAC;QAClC,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC;QAC5E,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,GAAoB,EACpB,GAAW,EACX,UAAkB,EAClB,OAAe,EACf,aAAyB,EACzB,WAA2B;IAE3B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/D,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QACrD,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAoB,EACpB,aAAyB,EACzB,WAA2B;IAE3B,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;IAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,oEAAoE;YACpE,IAAI,YAAY,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5C,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAoB,EACpB,GAAW,EACX,YAAoB,EACpB,UAAkB,EAClB,QAAgB,EAChB,aAAyB,EACzB,QAAwB;IAExB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,YAAY,IAAI,YAAY,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACxF,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAC3E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GACR,QAAQ,KAAK,cAAc;oBACzB,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,QAAQ,KAAK,iBAAiB;wBAC9B,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,SAAS,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAmCD,SAAS,wBAAwB,CAAC,aAAyB;IACzD,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,OAAO;QACL,GAAG;QACH,GAAG,CAAC,OAAe;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ;QACxB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ;QACxB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa;QAClC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAC5B,GAAoB,EACpB,QAA4B;IAK5B,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,MAAM,eAAe,GAAiD,EAAE,CAAC;IAEzE,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,WAAW,GAAuB,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/E,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC3B,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,UAAU,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;YACtF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,SAAS,oBAAoB,CAC3B,GAAoB,EACpB,QAA4B;IAE5B,MAAM,aAAa,GAA0B,EAAE,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,aAAa,CAAC;IAE3C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,SAAS,GACb,OACD,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACb,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,gBAAgB;SACxC,CAAC,CAAC,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAExC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAoB;IAEpB,MAAM,WAAW,GAA0D,EAAE,CAAC;IAC9E,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO,WAAW,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAK,EAAE,IAAI,EAAE,IAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAoB,EACpB,aAAyB,EACzB,WAA2B,EAC3B,MAAmB;IAEnB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAEzD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAiB,CAC1C,KAAK,EACL,eAAe,EACf,aAAa,EACb,QAAQ,CAAC,GAAG,EACZ,WAAW,EACX,GAAG,CAAC,OAAO,EACX,WAAW,CACI,CAAC;IAElB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,SAAS,oBAAoB,CAC3B,GAAoB,EACpB,aAAyB,EACzB,WAA2B,EAC3B,QAAwB,EACxB,MAAmB;IAEnB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACtD,MAAM,WAAW,GAAsB,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,aAAa,GAAG,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,UAAU,GACd,OAAO,CAAC,OAAO,YAAY,GAAG;YAC5B,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI;gBACJ,QAAQ,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;gBACxD,UAAU,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;aAC/D,CAAC,CAAC;YACL,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC9B,CAAC,CAAE,OAAO,CAAC,OAAyE;gBACpF,CAAC,CAAC,EAAE,CAAC;QACX,2EAA2E;QAC3E,oEAAoE;QACpE,sEAAsE;QACtE,gEAAgE;QAChE,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkE,CAAC;QAC/F,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;aAC3B,CAAC,CAAC;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa;YACb,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE;QAC/D,GAAG,iBAAiB;KACrB,CAAiB,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,GAAoB,EACpB,OAAe,EACf,OAAwB,EACxB,OAAe;IAEf,MAAM,aAAa,GAA0C,EAAE,CAAC;IAChE,sEAAsE;IACtE,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,UAAU,GAAG,CAAC,GAAqC,EAAE,EAAE;QAC3D,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,UAAU,GAAG,YAAY,CAAC;YAC9B,IAAI,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,MAAM;oBAAE,UAAU,GAAG,MAAM,CAAC;YAClC,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,aAAa;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,2EAA2E;AAE3E,SAAS,gBAAgB,CACvB,GAAoB,EACpB,aAAyB,EACzB,WAA2B;IAE3B,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAuC,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,kBAAkB,CAChB,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM,EACN,WAAW,EACX,OAAO,CACR,CAAC;QACF,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAoB,EACpB,OAAe,EACf,OAAwB,EACxB,OAAe;IAEf,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,sEAAsE;IACtE,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,SAAS;QACjC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,aAAa;YAAE,SAAS;QAChC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/E,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAClD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAoB,EAAE,aAAyB;IACxE,OAAO;QACL,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE;QAClF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3C,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC;QAC3F,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;KAC9E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAe,EACf,OAAwB,EACxB,WAA2B,EAC3B,aAAkC,EAClC,aAA0B,EAC1B,MAAsB,EACtB,WAA2B,EAC3B,OAA2C;IAE3C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACnF,MAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClD,MAAM,EACN,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAA+B,CAChC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC;gBAC5E,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,QAAQ;YACb,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,QAAQ,KAAK,MAAM;YACxB,IAAI,CAAC,QAAQ,KAAK,MAAM;YACxB,IAAI,CAAC,QAAQ,KAAK,OAAO,EACzB,CAAC;YACD,MAAM,IAAI,GAAG,mBAAmB,CAC9B,MAAM,EACN,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC5C,MAAM,EACN,OAAO,EACP,OAA+B,EAC/B,aAAa,CACd,CAAC;YACF,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7E,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzE,SAAS,wBAAwB,CAC/B,GAAoB,EACpB,OAAe,EACf,OAAwB,EACxB,WAA2B;IAE3B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxF,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACnC,CAAC;YACF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxF,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACnC,CAAC;YACF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1E,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACpC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,0EAA0E;AAE1E;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,GAAoB;IACpD,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,8FAA8F,CAC/F,CAAC;IACF,MAAM,eAAe,GAAmB,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAChC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CACgB,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,CAAC,IAAI,CAAC;gBACnB,KAAK,CAAC,QAAQ;gBACd,SAAS,CAAC,EAAE;gBACZ,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,UAAU;gBAChB,KAAK,CAAC,OAAO;aACd,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9C,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBACd,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACV,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aACd,CAAC,CAAC,CAAC;YACJ,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CACH,eAAe,eAAe,CAAC,MAAM,oBAAoB;QACvD,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,+GAA+G,CAAC;AAE7I,SAAS,SAAS,CAAC,GAAoB;IACrC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IAC5D,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAE5C,4DAA4D;IAC5D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC7E,MAAM,iBAAiB,GACrB,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EACtE,CAAC,CAAC,CAAC;QACJ,IAAI,iBAAiB,GAAG,EAAE,EAAE,CAAC;YAC3B,+DAA+D;YAC/D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClD,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,6BAA6B;YAC7B,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC7C,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,EAAE;iBACZ,OAAO,CACN,sDAAsD,cAAc,iBAAiB,YAAY,GAAG,CACrG;iBACA,GAAG,CAAC,GAAG,aAAa,CAAmB,CAAC;YAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,sDAAsD,cAAc,EAAE,CAAC;SAC/E,GAAG,EAAoB,CAAC;IAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAoB,EAAE,UAAmB;IAChE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,0EAA0E;IAC1E,wEAAwE;IACxE,wEAAwE;IACxE,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,mEAAmE,oBAAoB,EAAE,CAC1F,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9D,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAyB,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAoB;IACnD,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IAE/B,MAAM,aAAa,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAE5C,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACpE,gBAAgB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEjC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,8DAA8D;IAC9D,0EAA0E;IAC1E,gEAAgE;IAChE,yEAAyE;IACzE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,WAAW,GAAmB,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CACpC,4EAA4E,CAC7E,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC1C,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,8EAA8E;QAC9E,MAAM,oBAAoB,GACxB,MAAM,EAAE,gBAAgB;YACxB,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnF,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACrC,sBAAsB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAO,CAAC,CAAC;YACjE,uEAAuE;YACvE,0EAA0E;YAC1E,8DAA8D;YAC9D,oEAAoE;YACpE,qEAAqE;YACrE,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnF,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnD,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACvE,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,kBAAkB,GACtB,MAAM,EAAE,cAAc;YACtB,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnF,IAAI,kBAAkB,EAAE,CAAC;YACvB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAO,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,+EAA+E;QAC/E,gEAAgE;QAChE,MAAM,mBAAmB,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC;QAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,gBAAgB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,cAAc,EAAE,CAAC;IAEjB,2EAA2E;IAC3E,+EAA+E;IAC/E,kDAAkD;IAClD,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3F,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACV,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;SACd,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAC7E,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,wDAAwD;IACxD,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"AAwRA;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAK3C;AAqBD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACrF,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"AA0RA;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAK3C;AAqBD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACrF,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -26,8 +26,11 @@ function prepareWatcherStatements(db) {
26
26
  insertEdge: db.prepare('INSERT INTO edges (source_id, target_id, kind, confidence, dynamic) VALUES (?, ?, ?, ?, ?)'),
27
27
  countNodes: db.prepare('SELECT COUNT(*) as c FROM nodes WHERE file = ?'),
28
28
  countEdges: db.prepare('SELECT COUNT(*) as c FROM edges WHERE source_id IN (SELECT id FROM nodes WHERE file = ?)'),
29
- findNodeInFile: db.prepare("SELECT id, file FROM nodes WHERE name = ? AND kind IN ('function', 'method', 'class', 'interface', 'type', 'struct', 'enum', 'trait', 'record', 'module', 'constant') AND file = ?"),
30
- findNodeByName: db.prepare("SELECT id, file FROM nodes WHERE name = ? AND kind IN ('function', 'method', 'class', 'interface', 'type', 'struct', 'enum', 'trait', 'record', 'module', 'constant')"),
29
+ findNodeInFile: db.prepare("SELECT id, kind, file FROM nodes WHERE name = ? AND kind IN ('function', 'method', 'class', 'interface', 'type', 'struct', 'enum', 'trait', 'record', 'module', 'constant') AND file = ?"),
30
+ findNodeByName: db.prepare(
31
+ // `kind` is included so resolveByMethodOrGlobal can filter to 'method' for
32
+ // type-aware receiver resolution (mirrors the full-build resolver).
33
+ "SELECT id, file, kind FROM nodes WHERE name = ? AND kind IN ('function', 'method', 'class', 'interface', 'type', 'struct', 'enum', 'trait', 'record', 'module', 'constant')"),
31
34
  listSymbols: db.prepare("SELECT name, kind, line FROM nodes WHERE file = ? AND kind != 'file'"),
32
35
  };
33
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/features/structure.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAQzD,UAAU,cAAc;IACtB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AA4UD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC7B,IAAI,CAgDN;AAKD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,qBAAqB,EACzB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC7B,WAAW,CAqBb;AAoYD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/features/structure.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAQzD,UAAU,cAAc;IACtB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AA4UD,wBAAgB,cAAc,CAC5B,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC7B,IAAI,CAgDN;AAKD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,qBAAqB,EACzB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC7B,WAAW,CAqBb;AA4fD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- import { getNodeId, testFilterSQL } from '../db/index.js';
2
+ import { getBuildMeta, getNodeId, setBuildMeta, testFilterSQL } from '../db/index.js';
3
3
  import { debug } from '../infrastructure/logger.js';
4
4
  import { normalizePath } from '../shared/constants.js';
5
5
  function getAncestorDirs(filePaths) {
@@ -395,6 +395,88 @@ function buildClassifierInput(rows, exportedIds, prodFanInMap, activeFiles) {
395
395
  hasActiveFileSiblings: r.kind === 'constant' ? activeFiles.has(r.file) : undefined,
396
396
  }));
397
397
  }
398
+ // ─── Median cache helpers ─────────────────────────────────────────────────────
399
+ const ROLES_MEDIANS_KEY = 'roles_medians';
400
+ // Invalidate cached medians when the edge count drifts past this threshold.
401
+ // A 1-file rebuild adds/removes < 100 edges — well within the margin.
402
+ const MEDIAN_INVALIDATION_DELTA = 500;
403
+ /**
404
+ * Full edge-table GROUP BY scan — O(M). Only runs on cache miss.
405
+ *
406
+ * Joins `nodes` to restrict to the same non-leaf kinds that
407
+ * `classifyNodeRolesFull` uses when computing medians from in-memory rows
408
+ * (excludes 'file', 'directory', 'parameter', 'property'). This keeps the
409
+ * two paths consistent so a cold-cache fallback produces the same distribution
410
+ * as the full-build cached value.
411
+ *
412
+ * Also returns the filtered edge count used for computing the medians so the
413
+ * caller can pass it directly to `writeMedianCache` without a second query.
414
+ */
415
+ function computeGlobalMediansFromEdges(db) {
416
+ const excludedKinds = `('file', 'directory', 'parameter', 'property')`;
417
+ const fanInRows = db
418
+ .prepare(`SELECT COUNT(*) AS cnt FROM edges e
419
+ JOIN nodes t ON e.target_id = t.id
420
+ WHERE e.kind IN ('calls', 'imports-type')
421
+ AND t.kind NOT IN ${excludedKinds}
422
+ GROUP BY e.target_id`)
423
+ .all();
424
+ const fanOutRows = db
425
+ .prepare(`SELECT COUNT(*) AS cnt FROM edges e
426
+ JOIN nodes s ON e.source_id = s.id
427
+ WHERE e.kind = 'calls'
428
+ AND s.kind NOT IN ${excludedKinds}
429
+ GROUP BY e.source_id`)
430
+ .all();
431
+ const fanInDist = fanInRows.map((r) => r.cnt).sort((a, b) => a - b);
432
+ const fanOutDist = fanOutRows.map((r) => r.cnt).sort((a, b) => a - b);
433
+ // Sum of fanInRows[*].cnt equals the total edge count for the relevant
434
+ // edge subset — no extra COUNT query needed.
435
+ const edgeCount = fanInRows.reduce((acc, r) => acc + r.cnt, 0);
436
+ return { fanIn: median(fanInDist), fanOut: median(fanOutDist), edgeCount };
437
+ }
438
+ /**
439
+ * Read cached role medians from build_meta. Returns null when absent or stale
440
+ * (edge count moved beyond MEDIAN_INVALIDATION_DELTA from the cached value).
441
+ *
442
+ * The staleness check uses the same edge subset (calls + imports-type) that
443
+ * the medians are derived from, so only changes to the edges that actually
444
+ * influence fan-in/fan-out can evict the cache.
445
+ */
446
+ function readCachedMedians(db) {
447
+ const raw = getBuildMeta(db, ROLES_MEDIANS_KEY);
448
+ if (!raw)
449
+ return null;
450
+ try {
451
+ const cached = JSON.parse(raw);
452
+ // Count only the edge kinds that drive median computation — same subset
453
+ // used by computeGlobalMediansFromEdges and classifyNodeRolesFull.
454
+ const currentCount = db
455
+ .prepare(`SELECT COUNT(*) AS cnt FROM edges WHERE kind IN ('calls', 'imports-type')`)
456
+ .get().cnt;
457
+ if (Math.abs(currentCount - cached.edgeCount) >
458
+ Math.max(MEDIAN_INVALIDATION_DELTA, cached.edgeCount * 0.1))
459
+ return null;
460
+ return { fanIn: cached.fanIn, fanOut: cached.fanOut };
461
+ }
462
+ catch {
463
+ return null;
464
+ }
465
+ }
466
+ /**
467
+ * Persist global role medians + current edge count to build_meta.
468
+ *
469
+ * @param edgeCount - pre-computed calls+imports-type edge count. When provided,
470
+ * the function skips the COUNT query entirely. Pass when the count is already
471
+ * known at the call site (e.g. from `computeGlobalMediansFromEdges`).
472
+ */
473
+ function writeMedianCache(db, medians, edgeCount) {
474
+ const cnt = edgeCount ??
475
+ db
476
+ .prepare(`SELECT COUNT(*) AS cnt FROM edges WHERE kind IN ('calls', 'imports-type')`)
477
+ .get().cnt;
478
+ setBuildMeta(db, { [ROLES_MEDIANS_KEY]: JSON.stringify({ ...medians, edgeCount: cnt }) });
479
+ }
398
480
  function classifyNodeRolesFull(db, emptySummary) {
399
481
  // Leaf kinds (parameter, property) can never have callers/callees.
400
482
  // Classify them directly as dead-leaf without the expensive fan-in/fan-out JOINs.
@@ -467,10 +549,28 @@ function classifyNodeRolesFull(db, emptySummary) {
467
549
  for (const r of prodRows) {
468
550
  prodFanInMap.set(r.target_id, r.cnt);
469
551
  }
470
- // Delegate classification to the pure-logic classifier
552
+ // Delegate classification to the pure-logic classifier.
553
+ // Compute medians from the already-loaded rows (no extra DB round-trip),
554
+ // pass them as overrides to avoid recomputing inside classifyRoles,
555
+ // and cache them for subsequent incremental builds.
471
556
  const activeFiles = buildActiveFilesSet(rows);
472
557
  const classifierInput = buildClassifierInput(rows, exportedIds, prodFanInMap, activeFiles);
473
- const roleMap = classifyRoles(classifierInput);
558
+ const nonZeroFanIn = classifierInput
559
+ .filter((n) => n.fanIn > 0)
560
+ .map((n) => n.fanIn)
561
+ .sort((a, b) => a - b);
562
+ const nonZeroFanOut = classifierInput
563
+ .filter((n) => n.fanOut > 0)
564
+ .map((n) => n.fanOut)
565
+ .sort((a, b) => a - b);
566
+ const globalMedians = { fanIn: median(nonZeroFanIn), fanOut: median(nonZeroFanOut) };
567
+ const roleMap = classifyRoles(classifierInput, globalMedians);
568
+ // Derive the edge count from already-loaded in-memory rows: summing fan_in
569
+ // across all nodes equals COUNT(*) FROM edges WHERE kind IN ('calls','imports-type'),
570
+ // since the full-build query left-joins every matching edge exactly once per target.
571
+ // Passing this avoids an extra COUNT query on the full-build path.
572
+ const inMemoryEdgeCount = rows.reduce((acc, r) => acc + r.fan_in, 0);
573
+ writeMedianCache(db, globalMedians, inMemoryEdgeCount);
474
574
  const { summary, idsByRole } = buildRoleSummary(rows, leafRows, roleMap, emptySummary);
475
575
  batchUpdateRoles(db, idsByRole, () => {
476
576
  db.prepare('UPDATE nodes SET role = NULL').run();
@@ -482,7 +582,9 @@ function classifyNodeRolesFull(db, emptySummary) {
482
582
  * plus their immediate edge neighbours (callers and callees in other files).
483
583
  *
484
584
  * Uses indexed point lookups for fan-in/fan-out instead of full table scans.
485
- * Global medians are computed from edge distribution (fast GROUP BY on index).
585
+ * Global medians are read from the build_meta cache written by the last full
586
+ * classification; the cache is only recomputed when the edge count drifts
587
+ * beyond MEDIAN_INVALIDATION_DELTA (i.e. large structural changes).
486
588
  * Unchanged files not connected to changed files keep their roles from the
487
589
  * previous build.
488
590
  */
@@ -502,18 +604,21 @@ function classifyNodeRolesIncremental(db, changedFiles, emptySummary) {
502
604
  .all(...changedFiles, ...changedFiles);
503
605
  const allAffectedFiles = [...changedFiles, ...neighbourFiles.map((r) => r.file)];
504
606
  const placeholders = allAffectedFiles.map(() => '?').join(',');
505
- // 1. Compute global medians from edge distribution (fast: scans edge index, no node join)
506
- const fanInDist = db
507
- .prepare(`SELECT COUNT(*) AS cnt FROM edges WHERE kind IN ('calls', 'imports-type') GROUP BY target_id`)
508
- .all()
509
- .map((r) => r.cnt)
510
- .sort((a, b) => a - b);
511
- const fanOutDist = db
512
- .prepare(`SELECT COUNT(*) AS cnt FROM edges WHERE kind = 'calls' GROUP BY source_id`)
513
- .all()
514
- .map((r) => r.cnt)
515
- .sort((a, b) => a - b);
516
- const globalMedians = { fanIn: median(fanInDist), fanOut: median(fanOutDist) };
607
+ // 1. Read global medians from cache; fall back to full edge scan only on miss.
608
+ // The median barely moves for a 1-file change, so the cache is almost always
609
+ // valid, eliminating full edge-table GROUP BY queries (~10-15 ms on large graphs).
610
+ const cachedMedians = readCachedMedians(db);
611
+ let globalMedians;
612
+ if (cachedMedians) {
613
+ globalMedians = cachedMedians;
614
+ }
615
+ else {
616
+ const computed = computeGlobalMediansFromEdges(db);
617
+ // Pass the edgeCount returned by computeGlobalMediansFromEdges so
618
+ // writeMedianCache does not issue a second COUNT query.
619
+ writeMedianCache(db, computed, computed.edgeCount);
620
+ globalMedians = computed;
621
+ }
517
622
  // 2a. Leaf kinds (parameter, property) in affected files — always dead-leaf
518
623
  const leafRows = db
519
624
  .prepare(`SELECT n.id FROM nodes n