Home / Function/ resolveOrFetchGraph() — mcp Function Reference

resolveOrFetchGraph() — mcp Function Reference

Architecture documentation for the resolveOrFetchGraph() function in graph-cache.ts from the mcp codebase.

Entity Profile

Dependency Diagram

graph TD
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b["resolveOrFetchGraph()"]
  108c9ff4_bdb8_518a_9256_9ff4cd9d39a7["graph-cache.ts"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|defined in| 108c9ff4_bdb8_518a_9256_9ff4cd9d39a7
  b0737d71_130b_01b2_dbd7_14cb5f04946b["handler()"]
  b0737d71_130b_01b2_dbd7_14cb5f04946b -->|calls| 0c2dbb97_347e_7226_4d31_fbdcb85ac22b
  f6b4d8d8_12fd_640f_c545_748d0e260bf0["handler()"]
  f6b4d8d8_12fd_640f_c545_748d0e260bf0 -->|calls| 0c2dbb97_347e_7226_4d31_fbdcb85ac22b
  40378b99_8607_8e31_116f_694f33f24f45["detectRepo()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| 40378b99_8607_8e31_116f_694f33f24f45
  cfff71c5_842d_825f_a41f_4e4cbd45a930["generateIdempotencyKey()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| cfff71c5_842d_825f_a41f_4e4cbd45a930
  2ef71e67_fa6d_b33f_d005_85a400698718["get()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| 2ef71e67_fa6d_b33f_d005_85a400698718
  5c90e8cd_7cb8_59e4_cdeb_8ef1addd217e["error()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| 5c90e8cd_7cb8_59e4_cdeb_8ef1addd217e
  bbbd3356_722d_4bf8_09d2_706412487d25["zipRepository()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| bbbd3356_722d_4bf8_09d2_706412487d25
  f20c71b7_2411_d98b_88ba_3ebc36bdd1f5["buildIndexes()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| f20c71b7_2411_d98b_88ba_3ebc36bdd1f5
  4e1e5a38_002c_8f16_1767_0260a7001d5e["set()"]
  0c2dbb97_347e_7226_4d31_fbdcb85ac22b -->|calls| 4e1e5a38_002c_8f16_1767_0260a7001d5e
  style 0c2dbb97_347e_7226_4d31_fbdcb85ac22b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/cache/graph-cache.ts lines 582–633

export async function resolveOrFetchGraph(
  client: ClientContext,
  directory: string
): Promise<IndexedGraph> {
  // 1. Pre-computed cache
  const precomputed = detectRepo(directory, _repoMap);
  if (precomputed) return precomputed;

  // 2. LRU cache
  const idempotencyKey = generateIdempotencyKey(directory);
  const cached = graphCache.get(idempotencyKey);
  if (cached) return cached;

  // 3. Fast-fail when API fallback is disabled (e.g. SWE-bench)
  if (_noApiFallback) {
    throw {
      response: null,
      request: null,
      message: 'No pre-computed graph available for this repository. Use grep, find, and file reading to explore the codebase instead.',
      code: 'NO_CACHE',
    };
  }

  // 4. API fallback
  console.error('[Supermodel] Generating codebase graph (this may take a few minutes)...');
  const zipResult = await zipRepository(directory);
  let progressInterval: NodeJS.Timeout | null = null;
  let elapsed = 0;
  progressInterval = setInterval(() => {
    elapsed += 15;
    console.error(`[Supermodel] Analysis in progress... (${elapsed}s elapsed)`);
  }, 15000);

  try {
    const fileBuffer = await fs.readFile(zipResult.path);
    const fileBlob = new Blob([fileBuffer], { type: 'application/zip' });

    const response = await client.graphs.generateSupermodelGraph(
      fileBlob as any,
      { idempotencyKey }
    );

    const graph = buildIndexes(response, idempotencyKey);
    graphCache.set(idempotencyKey, graph);

    console.error('[Supermodel] Analysis complete.');
    return graph;
  } finally {
    if (progressInterval) clearInterval(progressInterval);
    await zipResult.cleanup();
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does resolveOrFetchGraph() do?
resolveOrFetchGraph() is a function in the mcp codebase, defined in src/cache/graph-cache.ts.
Where is resolveOrFetchGraph() defined?
resolveOrFetchGraph() is defined in src/cache/graph-cache.ts at line 582.
What does resolveOrFetchGraph() call?
resolveOrFetchGraph() calls 7 function(s): buildIndexes, detectRepo, error, generateIdempotencyKey, get, set, zipRepository.
What calls resolveOrFetchGraph()?
resolveOrFetchGraph() is called by 2 function(s): handler, handler.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free