[
  {
    "fragmentId": "method:1k4gp5:wasmknowledgeservice__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1k4gp5:wasmknowledgeservice",
    "ownerSymbolName": "WasmKnowledgeService",
    "entryNodeId": "method:1k4gp5:wasmknowledgeservice__entry",
    "exitNodeIds": [
      "method:1k4gp5:wasmknowledgeservice__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1k4gp5:wasmknowledgeservice__entry",
        "kind": "entry",
        "label": "WasmKnowledgeService entry",
        "line": 12,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Constructs the service and stores an HttpClient for API calls."
      },
      {
        "id": "method:1k4gp5:wasmknowledgeservice__action_14_assign_14__linear",
        "kind": "statement",
        "label": "Store HttpClient",
        "line": 14,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "_httpClient = httpClient"
      },
      {
        "id": "method:1k4gp5:wasmknowledgeservice__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 15,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1k4gp5:wasmknowledgeservice__entry__method:1k4gp5:wasmknowledgeservice__action_14_assign_14__linear",
        "from": "method:1k4gp5:wasmknowledgeservice__entry",
        "to": "method:1k4gp5:wasmknowledgeservice__action_14_assign_14__linear",
        "kind": "next",
        "line": 14,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1k4gp5:wasmknowledgeservice__action_14_assign_14__linear__implicit_return",
        "from": "method:1k4gp5:wasmknowledgeservice__action_14_assign_14__linear",
        "to": "method:1k4gp5:wasmknowledgeservice__implicit_return",
        "kind": "return",
        "line": 15,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 12,
      "end": 15
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 12,
        "summary": "Control-flow fragment extracted for method WasmKnowledgeService.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1jw3y39:getknowledgeasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1jw3y39:getknowledgeasync",
    "ownerSymbolName": "GetKnowledgeAsync",
    "entryNodeId": "method:1jw3y39:getknowledgeasync__entry",
    "exitNodeIds": [
      "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return",
      "method:1jw3y39:getknowledgeasync__action_19_return_19__return",
      "method:1jw3y39:getknowledgeasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1jw3y39:getknowledgeasync__entry",
        "kind": "entry",
        "label": "GetKnowledgeAsync entry",
        "line": 17,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Requests a general knowledge packet from the backend for the provided text and optional ebookId."
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_await_19_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return",
        "kind": "return",
        "label": "Returns result",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_return_19__return",
        "kind": "return",
        "label": "Return task result",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Returns the Result<KnowledgePacket> from CallKnowledgeApiAsync"
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_orchestration_19__linear",
        "kind": "statement",
        "label": "Delegate to generic knowledge API caller",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Calls CallKnowledgeApiAsync with '/api/knowledge'"
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "CallKnowledgeApiAsync",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88,
        "detail": "endpoint '/api/knowledge', text, ebookId, cancellationToken"
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 20,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1jw3y39:getknowledgeasync__entry__method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_await_19_0__await",
        "from": "method:1jw3y39:getknowledgeasync__entry",
        "to": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_await_19_0__await",
        "kind": "next",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_await_19_0__await__method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return",
        "from": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_await_19_0__await",
        "to": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return",
        "kind": "return",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return__method:1jw3y39:getknowledgeasync__action_19_return_19__return",
        "from": "method:1jw3y39:getknowledgeasync__action_19_getknowledgeasync_return_19_1__return",
        "to": "method:1jw3y39:getknowledgeasync__action_19_return_19__return",
        "kind": "return",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_return_19__return__method:1jw3y39:getknowledgeasync__action_19_orchestration_19__linear",
        "from": "method:1jw3y39:getknowledgeasync__action_19_return_19__return",
        "to": "method:1jw3y39:getknowledgeasync__action_19_orchestration_19__linear",
        "kind": "next",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__action_19_orchestration_19__linear__call_method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync",
        "from": "method:1jw3y39:getknowledgeasync__action_19_orchestration_19__linear",
        "to": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "endpoint '/api/knowledge', text, ebookId, cancellationToken",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88
      },
      {
        "id": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync__implicit_return",
        "from": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync",
        "to": "method:1jw3y39:getknowledgeasync__implicit_return",
        "kind": "return",
        "line": 20,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync__jump_NexusReader_Web_Client_Services_WasmKnowledgeService_cs_CallKnowledgeApiAsync",
        "fromNodeId": "method:1jw3y39:getknowledgeasync__call_19_CallKnowledgeApiAsync",
        "kind": "call-target",
        "targetNodeId": "method:3dd3av:callknowledgeapiasync",
        "targetPath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "targetHint": "CallKnowledgeApiAsync",
        "line": 19,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "reason": "Call target CallKnowledgeApiAsync resolved to NexusReader.Web.Client/Services/WasmKnowledgeService.cs.",
        "status": "resolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.8799999999999999,
    "lineSpan": {
      "start": 17,
      "end": 20
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 17,
        "summary": "Control-flow fragment extracted for method GetKnowledgeAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:wcjzgl:getgraphdataasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:wcjzgl:getgraphdataasync",
    "ownerSymbolName": "GetGraphDataAsync",
    "entryNodeId": "method:wcjzgl:getgraphdataasync__entry",
    "exitNodeIds": [
      "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return",
      "method:wcjzgl:getgraphdataasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:wcjzgl:getgraphdataasync__entry",
        "kind": "entry",
        "label": "GetGraphDataAsync entry",
        "line": 22,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Requests graph-form knowledge data from backend."
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_await_24_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/graph\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return",
        "kind": "return",
        "label": "Returns result",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/graph\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_orchestration_24__linear",
        "kind": "statement",
        "label": "Delegate to generic knowledge API caller (graph)",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "CallKnowledgeApiAsync",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88,
        "detail": "endpoint '/api/knowledge/graph', text, ebookId, cancellationToken"
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 25,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:wcjzgl:getgraphdataasync__entry__method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_await_24_0__await",
        "from": "method:wcjzgl:getgraphdataasync__entry",
        "to": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_await_24_0__await",
        "kind": "next",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_await_24_0__await__method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return",
        "from": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_await_24_0__await",
        "to": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return",
        "kind": "return",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return__method:wcjzgl:getgraphdataasync__action_24_orchestration_24__linear",
        "from": "method:wcjzgl:getgraphdataasync__action_24_getgraphdataasync_return_24_1__return",
        "to": "method:wcjzgl:getgraphdataasync__action_24_orchestration_24__linear",
        "kind": "next",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__action_24_orchestration_24__linear__call_method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync",
        "from": "method:wcjzgl:getgraphdataasync__action_24_orchestration_24__linear",
        "to": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "endpoint '/api/knowledge/graph', text, ebookId, cancellationToken",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88
      },
      {
        "id": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync__implicit_return",
        "from": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync",
        "to": "method:wcjzgl:getgraphdataasync__implicit_return",
        "kind": "return",
        "line": 25,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync__jump_NexusReader_Web_Client_Services_WasmKnowledgeService_cs_CallKnowledgeApiAsync",
        "fromNodeId": "method:wcjzgl:getgraphdataasync__call_24_CallKnowledgeApiAsync",
        "kind": "call-target",
        "targetNodeId": "method:3dd3av:callknowledgeapiasync",
        "targetPath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "targetHint": "CallKnowledgeApiAsync",
        "line": 24,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "reason": "Call target CallKnowledgeApiAsync resolved to NexusReader.Web.Client/Services/WasmKnowledgeService.cs.",
        "status": "resolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.85,
    "lineSpan": {
      "start": 22,
      "end": 25
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 22,
        "summary": "Control-flow fragment extracted for method GetGraphDataAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:jq1xnu:getknowledgemapasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:jq1xnu:getknowledgemapasync",
    "ownerSymbolName": "GetKnowledgeMapAsync",
    "entryNodeId": "method:jq1xnu:getknowledgemapasync__entry",
    "exitNodeIds": [
      "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return",
      "method:jq1xnu:getknowledgemapasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:jq1xnu:getknowledgemapasync__entry",
        "kind": "entry",
        "label": "GetKnowledgeMapAsync entry",
        "line": 27,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Requests a knowledge map from the backend."
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_await_29_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/map\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return",
        "kind": "return",
        "label": "Returns result",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/map\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_orchestration_29__linear",
        "kind": "statement",
        "label": "Delegate to generic knowledge API caller (map)",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "CallKnowledgeApiAsync",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88,
        "detail": "endpoint '/api/knowledge/map', text, ebookId, cancellationToken"
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 30,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:jq1xnu:getknowledgemapasync__entry__method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_await_29_0__await",
        "from": "method:jq1xnu:getknowledgemapasync__entry",
        "to": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_await_29_0__await",
        "kind": "next",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_await_29_0__await__method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return",
        "from": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_await_29_0__await",
        "to": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return",
        "kind": "return",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return__method:jq1xnu:getknowledgemapasync__action_29_orchestration_29__linear",
        "from": "method:jq1xnu:getknowledgemapasync__action_29_getknowledgemapasync_return_29_1__return",
        "to": "method:jq1xnu:getknowledgemapasync__action_29_orchestration_29__linear",
        "kind": "next",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__action_29_orchestration_29__linear__call_method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync",
        "from": "method:jq1xnu:getknowledgemapasync__action_29_orchestration_29__linear",
        "to": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "endpoint '/api/knowledge/map', text, ebookId, cancellationToken",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88
      },
      {
        "id": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync__implicit_return",
        "from": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync",
        "to": "method:jq1xnu:getknowledgemapasync__implicit_return",
        "kind": "return",
        "line": 30,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync__jump_NexusReader_Web_Client_Services_WasmKnowledgeService_cs_CallKnowledgeApiAsync",
        "fromNodeId": "method:jq1xnu:getknowledgemapasync__call_29_CallKnowledgeApiAsync",
        "kind": "call-target",
        "targetNodeId": "method:3dd3av:callknowledgeapiasync",
        "targetPath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "targetHint": "CallKnowledgeApiAsync",
        "line": 29,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "reason": "Call target CallKnowledgeApiAsync resolved to NexusReader.Web.Client/Services/WasmKnowledgeService.cs.",
        "status": "resolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.85,
    "lineSpan": {
      "start": 27,
      "end": 30
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 27,
        "summary": "Control-flow fragment extracted for method GetKnowledgeMapAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1oz3km6:getsummaryandquizasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1oz3km6:getsummaryandquizasync",
    "ownerSymbolName": "GetSummaryAndQuizAsync",
    "entryNodeId": "method:1oz3km6:getsummaryandquizasync__entry",
    "exitNodeIds": [
      "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return",
      "method:1oz3km6:getsummaryandquizasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1oz3km6:getsummaryandquizasync__entry",
        "kind": "entry",
        "label": "GetSummaryAndQuizAsync entry",
        "line": 32,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Requests summary and quiz content for given text from the backend."
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_await_34_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/summary\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return",
        "kind": "return",
        "label": "Returns result",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return await CallKnowledgeApiAsync(\"/api/knowledge/summary\", text, ebookId, cancellationToken);"
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_orchestration_34__linear",
        "kind": "statement",
        "label": "Delegate to generic knowledge API caller (summary)",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "CallKnowledgeApiAsync",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88,
        "detail": "endpoint '/api/knowledge/summary', text, ebookId, cancellationToken"
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 35,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1oz3km6:getsummaryandquizasync__entry__method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_await_34_0__await",
        "from": "method:1oz3km6:getsummaryandquizasync__entry",
        "to": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_await_34_0__await",
        "kind": "next",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_await_34_0__await__method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return",
        "from": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_await_34_0__await",
        "to": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return",
        "kind": "return",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return__method:1oz3km6:getsummaryandquizasync__action_34_orchestration_34__linear",
        "from": "method:1oz3km6:getsummaryandquizasync__action_34_getsummaryandquizasync_return_34_1__return",
        "to": "method:1oz3km6:getsummaryandquizasync__action_34_orchestration_34__linear",
        "kind": "next",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__action_34_orchestration_34__linear__call_method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync",
        "from": "method:1oz3km6:getsummaryandquizasync__action_34_orchestration_34__linear",
        "to": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync",
        "kind": "call",
        "label": "endpoint '/api/knowledge/summary', text, ebookId, cancellationToken",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.88
      },
      {
        "id": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync__implicit_return",
        "from": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync",
        "to": "method:1oz3km6:getsummaryandquizasync__implicit_return",
        "kind": "return",
        "line": 35,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync__jump_NexusReader_Web_Client_Services_WasmKnowledgeService_cs_CallKnowledgeApiAsync",
        "fromNodeId": "method:1oz3km6:getsummaryandquizasync__call_34_CallKnowledgeApiAsync",
        "kind": "call-target",
        "targetNodeId": "method:3dd3av:callknowledgeapiasync",
        "targetPath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "targetHint": "CallKnowledgeApiAsync",
        "line": 34,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "reason": "Call target CallKnowledgeApiAsync resolved to NexusReader.Web.Client/Services/WasmKnowledgeService.cs.",
        "status": "resolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.85,
    "lineSpan": {
      "start": 32,
      "end": 35
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 32,
        "summary": "Control-flow fragment extracted for method GetSummaryAndQuizAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1ca58m3:getrelevantcontextasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1ca58m3:getrelevantcontextasync",
    "ownerSymbolName": "GetRelevantContextAsync",
    "entryNodeId": "method:1ca58m3:getrelevantcontextasync__entry",
    "exitNodeIds": [
      "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return",
      "method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return",
      "method:1ca58m3:getrelevantcontextasync__action_53_getrelevantcontextasync_return_53_9__return"
    ],
    "nodes": [
      {
        "id": "method:1ca58m3:getrelevantcontextasync__entry",
        "kind": "entry",
        "label": "GetRelevantContextAsync entry",
        "line": 37,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Posts a query to backend to retrieve a list of relevant contexts (semantic retrieval)."
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_39_try_catch_39__linear",
        "kind": "statement",
        "label": "Network exception handling",
        "line": 39,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_39_getrelevantcontextasync_try_39_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 39,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_41_getrelevantcontextasync_await_41_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 41,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.PostAsJsonAsync(\"/api/knowledge/relevant\", new { query, tenantId }, cancellationToken);"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_41_external_call_41__linear",
        "kind": "http-call",
        "label": "POST /api/knowledge/relevant",
        "line": 41,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Sends payload { query, tenantId } via HttpClient.PostAsJsonAsync"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__true",
        "kind": "branch-true",
        "label": "success -> deserialize",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "kind": "statement",
        "label": "merge",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_44_getrelevantcontextasync_await_44_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 44,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var context = await response.Content.ReadFromJsonAsync<List<RelevantContext>>(cancellationToken: cancellationToken);"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_44_deserialize_44__linear",
        "kind": "statement",
        "label": "Read List<RelevantContext>",
        "line": 44,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "response.Content.ReadFromJsonAsync<List<RelevantContext>>()"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return",
        "kind": "return",
        "label": "Returns result",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return context != null ? Result.Ok(context) : Result.Fail(\"Failed to deserialize relevant context.\");"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_repository_read_45_4__linear",
        "kind": "db-read",
        "label": "Reads repository or persistence state",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "return context != null ? Result.Ok(context) : Result.Fail(\"Failed to deserialize relevant context.\");"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition",
        "kind": "condition",
        "label": "context == null",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Returns Result.Fail when deserialization yields null"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__true",
        "kind": "branch-true",
        "label": "fail",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__false",
        "kind": "branch-false",
        "label": "ok",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "kind": "statement",
        "label": "merge",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_48_getrelevantcontextasync_await_48_6__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 48,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_48_error_path_48__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 48,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return",
        "kind": "return",
        "label": "Returns result",
        "line": 49,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_51_getrelevantcontextasync_catch_51_8__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 51,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_53_getrelevantcontextasync_return_53_9__return",
        "kind": "return",
        "label": "Returns result",
        "line": 53,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:1ca58m3:getrelevantcontextasync__entry__method:1ca58m3:getrelevantcontextasync__action_39_try_catch_39__linear",
        "from": "method:1ca58m3:getrelevantcontextasync__entry",
        "to": "method:1ca58m3:getrelevantcontextasync__action_39_try_catch_39__linear",
        "kind": "next",
        "line": 39,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_39_try_catch_39__linear__method:1ca58m3:getrelevantcontextasync__action_39_getrelevantcontextasync_try_39_0__try",
        "from": "method:1ca58m3:getrelevantcontextasync__action_39_try_catch_39__linear",
        "to": "method:1ca58m3:getrelevantcontextasync__action_39_getrelevantcontextasync_try_39_0__try",
        "kind": "next",
        "line": 39,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_39_getrelevantcontextasync_try_39_0__try__method:1ca58m3:getrelevantcontextasync__action_41_getrelevantcontextasync_await_41_1__await",
        "from": "method:1ca58m3:getrelevantcontextasync__action_39_getrelevantcontextasync_try_39_0__try",
        "to": "method:1ca58m3:getrelevantcontextasync__action_41_getrelevantcontextasync_await_41_1__await",
        "kind": "next",
        "line": 41,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_41_getrelevantcontextasync_await_41_1__await__method:1ca58m3:getrelevantcontextasync__action_41_external_call_41__linear",
        "from": "method:1ca58m3:getrelevantcontextasync__action_41_getrelevantcontextasync_await_41_1__await",
        "to": "method:1ca58m3:getrelevantcontextasync__action_41_external_call_41__linear",
        "kind": "next",
        "line": 41,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_41_external_call_41__linear__method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition",
        "from": "method:1ca58m3:getrelevantcontextasync__action_41_external_call_41__linear",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition__method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__true",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition__method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__false",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__true__method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__true",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__false__method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__false",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge__method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition__method:1ca58m3:getrelevantcontextasync__action_42_branch_42__true",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__true",
        "kind": "condition-true",
        "label": "success -> deserialize",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition__method:1ca58m3:getrelevantcontextasync__action_42_branch_42__false",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__true__method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__true",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__false__method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__false",
        "to": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "kind": "next",
        "line": 42,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge__method:1ca58m3:getrelevantcontextasync__action_44_getrelevantcontextasync_await_44_3__await",
        "from": "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
        "to": "method:1ca58m3:getrelevantcontextasync__action_44_getrelevantcontextasync_await_44_3__await",
        "kind": "next",
        "line": 44,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_44_getrelevantcontextasync_await_44_3__await__method:1ca58m3:getrelevantcontextasync__action_44_deserialize_44__linear",
        "from": "method:1ca58m3:getrelevantcontextasync__action_44_getrelevantcontextasync_await_44_3__await",
        "to": "method:1ca58m3:getrelevantcontextasync__action_44_deserialize_44__linear",
        "kind": "next",
        "line": 44,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_44_deserialize_44__linear__method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return",
        "from": "method:1ca58m3:getrelevantcontextasync__action_44_deserialize_44__linear",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return",
        "kind": "return",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return__method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_repository_read_45_4__linear",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_return_45_5__return",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_repository_read_45_4__linear",
        "kind": "next",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_repository_read_45_4__linear__method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_getrelevantcontextasync_repository_read_45_4__linear",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition",
        "kind": "next",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition__method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__true",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__true",
        "kind": "condition-true",
        "label": "fail",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition__method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__false",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__condition",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__false",
        "kind": "condition-false",
        "label": "ok",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__true__method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__true",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "kind": "next",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__false__method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__false",
        "to": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "kind": "next",
        "line": 45,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge__method:1ca58m3:getrelevantcontextasync__action_48_getrelevantcontextasync_await_48_6__await",
        "from": "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge",
        "to": "method:1ca58m3:getrelevantcontextasync__action_48_getrelevantcontextasync_await_48_6__await",
        "kind": "next",
        "line": 48,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_48_getrelevantcontextasync_await_48_6__await__method:1ca58m3:getrelevantcontextasync__action_48_error_path_48__linear",
        "from": "method:1ca58m3:getrelevantcontextasync__action_48_getrelevantcontextasync_await_48_6__await",
        "to": "method:1ca58m3:getrelevantcontextasync__action_48_error_path_48__linear",
        "kind": "next",
        "line": 48,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_48_error_path_48__linear__method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return",
        "from": "method:1ca58m3:getrelevantcontextasync__action_48_error_path_48__linear",
        "to": "method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return",
        "kind": "return",
        "line": 49,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return__method:1ca58m3:getrelevantcontextasync__action_51_getrelevantcontextasync_catch_51_8__catch",
        "from": "method:1ca58m3:getrelevantcontextasync__action_49_getrelevantcontextasync_return_49_7__return",
        "to": "method:1ca58m3:getrelevantcontextasync__action_51_getrelevantcontextasync_catch_51_8__catch",
        "kind": "exception",
        "line": 51,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:1ca58m3:getrelevantcontextasync__action_51_getrelevantcontextasync_catch_51_8__catch__method:1ca58m3:getrelevantcontextasync__action_53_getrelevantcontextasync_return_53_9__return",
        "from": "method:1ca58m3:getrelevantcontextasync__action_51_getrelevantcontextasync_catch_51_8__catch",
        "to": "method:1ca58m3:getrelevantcontextasync__action_53_getrelevantcontextasync_return_53_9__return",
        "kind": "return",
        "line": 53,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:1ca58m3:getrelevantcontextasync__action_42_getrelevantcontextasync_branch_42_2__merge",
      "method:1ca58m3:getrelevantcontextasync__action_42_branch_42__merge",
      "method:1ca58m3:getrelevantcontextasync__action_45_guard_clause_45__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 37,
      "end": 55
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 37,
        "summary": "Control-flow fragment extracted for method GetRelevantContextAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1ol1cx2:verifygroundednessasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1ol1cx2:verifygroundednessasync",
    "ownerSymbolName": "VerifyGroundednessAsync",
    "entryNodeId": "method:1ol1cx2:verifygroundednessasync__entry",
    "exitNodeIds": [
      "method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return",
      "method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return",
      "method:1ol1cx2:verifygroundednessasync__action_72_verifygroundednessasync_return_72_8__return"
    ],
    "nodes": [
      {
        "id": "method:1ol1cx2:verifygroundednessasync__entry",
        "kind": "entry",
        "label": "VerifyGroundednessAsync entry",
        "line": 56,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Sends answer+context to backend to verify groundedness and returns structured result."
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_58_try_catch_58__linear",
        "kind": "statement",
        "label": "Network exception handling",
        "line": 58,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_58_verifygroundednessasync_try_58_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 58,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_60_verifygroundednessasync_await_60_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 60,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.PostAsJsonAsync(\"/api/knowledge/verify-groundedness\", new { answer, context, tenantId }, cancellationToken);"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_60_external_call_60__linear",
        "kind": "http-call",
        "label": "POST /api/knowledge/verify-groundedness",
        "line": 60,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Sends payload { answer, context, tenantId } via HttpClient.PostAsJsonAsync"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__true",
        "kind": "branch-true",
        "label": "success -> deserialize",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "kind": "statement",
        "label": "merge",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_63_verifygroundednessasync_await_63_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 63,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var result = await response.Content.ReadFromJsonAsync<GroundednessResult>(cancellationToken: cancellationToken);"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_63_deserialize_63__linear",
        "kind": "statement",
        "label": "Read GroundednessResult",
        "line": 63,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "response.Content.ReadFromJsonAsync<GroundednessResult>()"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return",
        "kind": "return",
        "label": "Returns result",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return result != null ? Result.Ok(result) : Result.Fail(\"Failed to deserialize groundedness result.\");"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition",
        "kind": "condition",
        "label": "result == null",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__true",
        "kind": "branch-true",
        "label": "fail",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__false",
        "kind": "branch-false",
        "label": "ok",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "kind": "statement",
        "label": "merge",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_67_verifygroundednessasync_await_67_5__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 67,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_67_error_path_67__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 67,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return",
        "kind": "return",
        "label": "Returns result",
        "line": 68,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_70_verifygroundednessasync_catch_70_7__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 70,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_72_verifygroundednessasync_return_72_8__return",
        "kind": "return",
        "label": "Returns result",
        "line": 72,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:1ol1cx2:verifygroundednessasync__entry__method:1ol1cx2:verifygroundednessasync__action_58_try_catch_58__linear",
        "from": "method:1ol1cx2:verifygroundednessasync__entry",
        "to": "method:1ol1cx2:verifygroundednessasync__action_58_try_catch_58__linear",
        "kind": "next",
        "line": 58,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_58_try_catch_58__linear__method:1ol1cx2:verifygroundednessasync__action_58_verifygroundednessasync_try_58_0__try",
        "from": "method:1ol1cx2:verifygroundednessasync__action_58_try_catch_58__linear",
        "to": "method:1ol1cx2:verifygroundednessasync__action_58_verifygroundednessasync_try_58_0__try",
        "kind": "next",
        "line": 58,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_58_verifygroundednessasync_try_58_0__try__method:1ol1cx2:verifygroundednessasync__action_60_verifygroundednessasync_await_60_1__await",
        "from": "method:1ol1cx2:verifygroundednessasync__action_58_verifygroundednessasync_try_58_0__try",
        "to": "method:1ol1cx2:verifygroundednessasync__action_60_verifygroundednessasync_await_60_1__await",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_60_verifygroundednessasync_await_60_1__await__method:1ol1cx2:verifygroundednessasync__action_60_external_call_60__linear",
        "from": "method:1ol1cx2:verifygroundednessasync__action_60_verifygroundednessasync_await_60_1__await",
        "to": "method:1ol1cx2:verifygroundednessasync__action_60_external_call_60__linear",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_60_external_call_60__linear__method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition",
        "from": "method:1ol1cx2:verifygroundednessasync__action_60_external_call_60__linear",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition__method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__true",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition__method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__false",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__true__method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__true",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__false__method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__false",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge__method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition__method:1ol1cx2:verifygroundednessasync__action_61_branch_61__true",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__true",
        "kind": "condition-true",
        "label": "success -> deserialize",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition__method:1ol1cx2:verifygroundednessasync__action_61_branch_61__false",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__true__method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__true",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__false__method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__false",
        "to": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "kind": "next",
        "line": 61,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge__method:1ol1cx2:verifygroundednessasync__action_63_verifygroundednessasync_await_63_3__await",
        "from": "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
        "to": "method:1ol1cx2:verifygroundednessasync__action_63_verifygroundednessasync_await_63_3__await",
        "kind": "next",
        "line": 63,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_63_verifygroundednessasync_await_63_3__await__method:1ol1cx2:verifygroundednessasync__action_63_deserialize_63__linear",
        "from": "method:1ol1cx2:verifygroundednessasync__action_63_verifygroundednessasync_await_63_3__await",
        "to": "method:1ol1cx2:verifygroundednessasync__action_63_deserialize_63__linear",
        "kind": "next",
        "line": 63,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_63_deserialize_63__linear__method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return",
        "from": "method:1ol1cx2:verifygroundednessasync__action_63_deserialize_63__linear",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return",
        "kind": "return",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return__method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_verifygroundednessasync_return_64_4__return",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition",
        "kind": "next",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition__method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__true",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__true",
        "kind": "condition-true",
        "label": "fail",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition__method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__false",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__condition",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__false",
        "kind": "condition-false",
        "label": "ok",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__true__method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__true",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "kind": "next",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__false__method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__false",
        "to": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "kind": "next",
        "line": 64,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge__method:1ol1cx2:verifygroundednessasync__action_67_verifygroundednessasync_await_67_5__await",
        "from": "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge",
        "to": "method:1ol1cx2:verifygroundednessasync__action_67_verifygroundednessasync_await_67_5__await",
        "kind": "next",
        "line": 67,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_67_verifygroundednessasync_await_67_5__await__method:1ol1cx2:verifygroundednessasync__action_67_error_path_67__linear",
        "from": "method:1ol1cx2:verifygroundednessasync__action_67_verifygroundednessasync_await_67_5__await",
        "to": "method:1ol1cx2:verifygroundednessasync__action_67_error_path_67__linear",
        "kind": "next",
        "line": 67,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_67_error_path_67__linear__method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return",
        "from": "method:1ol1cx2:verifygroundednessasync__action_67_error_path_67__linear",
        "to": "method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return",
        "kind": "return",
        "line": 68,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return__method:1ol1cx2:verifygroundednessasync__action_70_verifygroundednessasync_catch_70_7__catch",
        "from": "method:1ol1cx2:verifygroundednessasync__action_68_verifygroundednessasync_return_68_6__return",
        "to": "method:1ol1cx2:verifygroundednessasync__action_70_verifygroundednessasync_catch_70_7__catch",
        "kind": "exception",
        "line": 70,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:1ol1cx2:verifygroundednessasync__action_70_verifygroundednessasync_catch_70_7__catch__method:1ol1cx2:verifygroundednessasync__action_72_verifygroundednessasync_return_72_8__return",
        "from": "method:1ol1cx2:verifygroundednessasync__action_70_verifygroundednessasync_catch_70_7__catch",
        "to": "method:1ol1cx2:verifygroundednessasync__action_72_verifygroundednessasync_return_72_8__return",
        "kind": "return",
        "line": 72,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:1ol1cx2:verifygroundednessasync__action_61_verifygroundednessasync_branch_61_2__merge",
      "method:1ol1cx2:verifygroundednessasync__action_61_branch_61__merge",
      "method:1ol1cx2:verifygroundednessasync__action_64_guard_clause_64__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 56,
      "end": 74
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 56,
        "summary": "Control-flow fragment extracted for method VerifyGroundednessAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1sn20bf:searchlibrarysemanticallyasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1sn20bf:searchlibrarysemanticallyasync",
    "ownerSymbolName": "SearchLibrarySemanticallyAsync",
    "entryNodeId": "method:1sn20bf:searchlibrarysemanticallyasync__entry",
    "exitNodeIds": [
      "method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return",
      "method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return",
      "method:1sn20bf:searchlibrarysemanticallyasync__action_92_searchlibrarysemanticallyasync_return_92_8__return"
    ],
    "nodes": [
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__entry",
        "kind": "entry",
        "label": "SearchLibrarySemanticallyAsync entry",
        "line": 76,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Performs semantic search against the library via backend endpoint and returns result list."
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_try_catch_78__linear",
        "kind": "statement",
        "label": "Network exception handling",
        "line": 78,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_searchlibrarysemanticallyasync_try_78_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 78,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_searchlibrarysemanticallyasync_await_80_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 80,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.PostAsJsonAsync(\"/api/knowledge/search\", new { queryText, tenantId, limit }, cancellationToken);"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_external_call_80__linear",
        "kind": "http-call",
        "label": "POST /api/knowledge/search",
        "line": 80,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Sends payload { queryText, tenantId, limit } via HttpClient.PostAsJsonAsync"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__true",
        "kind": "branch-true",
        "label": "success -> deserialize or return empty list",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "kind": "statement",
        "label": "merge",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_searchlibrarysemanticallyasync_await_83_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 83,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var searchResults = await response.Content.ReadFromJsonAsync<List<SemanticSearchResultDto>>(cancellationToken: cancellationToken);"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_deserialize_83__linear",
        "kind": "statement",
        "label": "Read List<SemanticSearchResultDto>",
        "line": 83,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "response.Content.ReadFromJsonAsync<List<SemanticSearchResultDto>>()"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return",
        "kind": "return",
        "label": "Returns result",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return searchResults != null ? Result.Ok(searchResults) : Result.Ok(new List<SemanticSearchResultDto>());"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition",
        "kind": "condition",
        "label": "Return empty list on null deserialization",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "If deserialized list is null, return empty List<SemanticSearchResultDto>"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__true",
        "kind": "branch-true",
        "label": "true",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__false",
        "kind": "branch-false",
        "label": "false",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "kind": "statement",
        "label": "merge",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_searchlibrarysemanticallyasync_await_87_5__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 87,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_error_path_87__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 87,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return",
        "kind": "return",
        "label": "Returns result",
        "line": 88,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_90_searchlibrarysemanticallyasync_catch_90_7__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 90,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_92_searchlibrarysemanticallyasync_return_92_8__return",
        "kind": "return",
        "label": "Returns result",
        "line": 92,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__entry__method:1sn20bf:searchlibrarysemanticallyasync__action_78_try_catch_78__linear",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__entry",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_try_catch_78__linear",
        "kind": "next",
        "line": 78,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_try_catch_78__linear__method:1sn20bf:searchlibrarysemanticallyasync__action_78_searchlibrarysemanticallyasync_try_78_0__try",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_try_catch_78__linear",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_searchlibrarysemanticallyasync_try_78_0__try",
        "kind": "next",
        "line": 78,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_searchlibrarysemanticallyasync_try_78_0__try__method:1sn20bf:searchlibrarysemanticallyasync__action_80_searchlibrarysemanticallyasync_await_80_1__await",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_78_searchlibrarysemanticallyasync_try_78_0__try",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_searchlibrarysemanticallyasync_await_80_1__await",
        "kind": "next",
        "line": 80,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_searchlibrarysemanticallyasync_await_80_1__await__method:1sn20bf:searchlibrarysemanticallyasync__action_80_external_call_80__linear",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_searchlibrarysemanticallyasync_await_80_1__await",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_external_call_80__linear",
        "kind": "next",
        "line": 80,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_external_call_80__linear__method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_80_external_call_80__linear",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__true",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__false",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__true__method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__true",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__false__method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__false",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge__method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__true",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__true",
        "kind": "condition-true",
        "label": "success -> deserialize or return empty list",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__false",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__true__method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__true",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__false__method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__false",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "kind": "next",
        "line": 81,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge__method:1sn20bf:searchlibrarysemanticallyasync__action_83_searchlibrarysemanticallyasync_await_83_3__await",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_searchlibrarysemanticallyasync_await_83_3__await",
        "kind": "next",
        "line": 83,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_searchlibrarysemanticallyasync_await_83_3__await__method:1sn20bf:searchlibrarysemanticallyasync__action_83_deserialize_83__linear",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_searchlibrarysemanticallyasync_await_83_3__await",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_deserialize_83__linear",
        "kind": "next",
        "line": 83,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_deserialize_83__linear__method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_83_deserialize_83__linear",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return",
        "kind": "return",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return__method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_searchlibrarysemanticallyasync_return_84_4__return",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition",
        "kind": "fallback",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__true",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__true",
        "kind": "condition-true",
        "label": "true",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition__method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__false",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__condition",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__false",
        "kind": "condition-false",
        "label": "false",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__true__method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__true",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "kind": "next",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__false__method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__false",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "kind": "next",
        "line": 84,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge__method:1sn20bf:searchlibrarysemanticallyasync__action_87_searchlibrarysemanticallyasync_await_87_5__await",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_searchlibrarysemanticallyasync_await_87_5__await",
        "kind": "next",
        "line": 87,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_searchlibrarysemanticallyasync_await_87_5__await__method:1sn20bf:searchlibrarysemanticallyasync__action_87_error_path_87__linear",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_searchlibrarysemanticallyasync_await_87_5__await",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_error_path_87__linear",
        "kind": "next",
        "line": 87,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_error_path_87__linear__method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_87_error_path_87__linear",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return",
        "kind": "return",
        "line": 88,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return__method:1sn20bf:searchlibrarysemanticallyasync__action_90_searchlibrarysemanticallyasync_catch_90_7__catch",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_88_searchlibrarysemanticallyasync_return_88_6__return",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_90_searchlibrarysemanticallyasync_catch_90_7__catch",
        "kind": "exception",
        "line": 90,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:1sn20bf:searchlibrarysemanticallyasync__action_90_searchlibrarysemanticallyasync_catch_90_7__catch__method:1sn20bf:searchlibrarysemanticallyasync__action_92_searchlibrarysemanticallyasync_return_92_8__return",
        "from": "method:1sn20bf:searchlibrarysemanticallyasync__action_90_searchlibrarysemanticallyasync_catch_90_7__catch",
        "to": "method:1sn20bf:searchlibrarysemanticallyasync__action_92_searchlibrarysemanticallyasync_return_92_8__return",
        "kind": "return",
        "line": 92,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:1sn20bf:searchlibrarysemanticallyasync__action_81_searchlibrarysemanticallyasync_branch_81_2__merge",
      "method:1sn20bf:searchlibrarysemanticallyasync__action_81_branch_81__merge",
      "method:1sn20bf:searchlibrarysemanticallyasync__action_84_fallback_84__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 76,
      "end": 94
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 76,
        "summary": "Control-flow fragment extracted for method SearchLibrarySemanticallyAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:jffhoh:askquestionasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:jffhoh:askquestionasync",
    "ownerSymbolName": "AskQuestionAsync",
    "entryNodeId": "method:jffhoh:askquestionasync__entry",
    "exitNodeIds": [
      "method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return",
      "method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return",
      "method:jffhoh:askquestionasync__action_112_askquestionasync_return_112_8__return"
    ],
    "nodes": [
      {
        "id": "method:jffhoh:askquestionasync__entry",
        "kind": "entry",
        "label": "AskQuestionAsync entry",
        "line": 96,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Sends a question to the backend QA endpoint and returns a grounded response DTO."
      },
      {
        "id": "method:jffhoh:askquestionasync__action_98_try_catch_98__linear",
        "kind": "statement",
        "label": "Network exception handling",
        "line": 98,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_98_askquestionasync_try_98_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 98,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_100_askquestionasync_await_100_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 100,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.PostAsJsonAsync(\"/api/knowledge/ask\", new { question, tenantId, ebookId, limit }, cancellationToken);"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_100_external_call_100__linear",
        "kind": "http-call",
        "label": "POST /api/knowledge/ask",
        "line": 100,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Sends payload { question, tenantId, ebookId, limit } via HttpClient.PostAsJsonAsync"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__true",
        "kind": "branch-true",
        "label": "success -> deserialize",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "kind": "statement",
        "label": "merge",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_103_askquestionasync_await_103_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 103,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var result = await response.Content.ReadFromJsonAsync<GroundedResponseDto>(cancellationToken: cancellationToken);"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_103_deserialize_103__linear",
        "kind": "statement",
        "label": "Read GroundedResponseDto",
        "line": 103,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "response.Content.ReadFromJsonAsync<GroundedResponseDto>()"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return",
        "kind": "return",
        "label": "Returns result",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return result != null ? Result.Ok(result) : Result.Fail(\"Failed to deserialize grounded response.\");"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition",
        "kind": "condition",
        "label": "result == null",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__true",
        "kind": "branch-true",
        "label": "fail",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__false",
        "kind": "branch-false",
        "label": "ok",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "kind": "statement",
        "label": "merge",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_107_askquestionasync_await_107_5__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 107,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_107_error_path_107__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 107,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return",
        "kind": "return",
        "label": "Returns result",
        "line": 108,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_110_askquestionasync_catch_110_7__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 110,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:jffhoh:askquestionasync__action_112_askquestionasync_return_112_8__return",
        "kind": "return",
        "label": "Returns result",
        "line": 112,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:jffhoh:askquestionasync__entry__method:jffhoh:askquestionasync__action_98_try_catch_98__linear",
        "from": "method:jffhoh:askquestionasync__entry",
        "to": "method:jffhoh:askquestionasync__action_98_try_catch_98__linear",
        "kind": "next",
        "line": 98,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_98_try_catch_98__linear__method:jffhoh:askquestionasync__action_98_askquestionasync_try_98_0__try",
        "from": "method:jffhoh:askquestionasync__action_98_try_catch_98__linear",
        "to": "method:jffhoh:askquestionasync__action_98_askquestionasync_try_98_0__try",
        "kind": "next",
        "line": 98,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:jffhoh:askquestionasync__action_98_askquestionasync_try_98_0__try__method:jffhoh:askquestionasync__action_100_askquestionasync_await_100_1__await",
        "from": "method:jffhoh:askquestionasync__action_98_askquestionasync_try_98_0__try",
        "to": "method:jffhoh:askquestionasync__action_100_askquestionasync_await_100_1__await",
        "kind": "next",
        "line": 100,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:jffhoh:askquestionasync__action_100_askquestionasync_await_100_1__await__method:jffhoh:askquestionasync__action_100_external_call_100__linear",
        "from": "method:jffhoh:askquestionasync__action_100_askquestionasync_await_100_1__await",
        "to": "method:jffhoh:askquestionasync__action_100_external_call_100__linear",
        "kind": "next",
        "line": 100,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_100_external_call_100__linear__method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition",
        "from": "method:jffhoh:askquestionasync__action_100_external_call_100__linear",
        "to": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition__method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__true",
        "from": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition",
        "to": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition__method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__false",
        "from": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__condition",
        "to": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__true__method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "from": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__true",
        "to": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__false__method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "from": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__false",
        "to": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge__method:jffhoh:askquestionasync__action_101_branch_101__condition",
        "from": "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
        "to": "method:jffhoh:askquestionasync__action_101_branch_101__condition",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__condition__method:jffhoh:askquestionasync__action_101_branch_101__true",
        "from": "method:jffhoh:askquestionasync__action_101_branch_101__condition",
        "to": "method:jffhoh:askquestionasync__action_101_branch_101__true",
        "kind": "condition-true",
        "label": "success -> deserialize",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__condition__method:jffhoh:askquestionasync__action_101_branch_101__false",
        "from": "method:jffhoh:askquestionasync__action_101_branch_101__condition",
        "to": "method:jffhoh:askquestionasync__action_101_branch_101__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__true__method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "from": "method:jffhoh:askquestionasync__action_101_branch_101__true",
        "to": "method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__false__method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "from": "method:jffhoh:askquestionasync__action_101_branch_101__false",
        "to": "method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_101_branch_101__merge__method:jffhoh:askquestionasync__action_103_askquestionasync_await_103_3__await",
        "from": "method:jffhoh:askquestionasync__action_101_branch_101__merge",
        "to": "method:jffhoh:askquestionasync__action_103_askquestionasync_await_103_3__await",
        "kind": "next",
        "line": 103,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:jffhoh:askquestionasync__action_103_askquestionasync_await_103_3__await__method:jffhoh:askquestionasync__action_103_deserialize_103__linear",
        "from": "method:jffhoh:askquestionasync__action_103_askquestionasync_await_103_3__await",
        "to": "method:jffhoh:askquestionasync__action_103_deserialize_103__linear",
        "kind": "next",
        "line": 103,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_103_deserialize_103__linear__method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return",
        "from": "method:jffhoh:askquestionasync__action_103_deserialize_103__linear",
        "to": "method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return",
        "kind": "return",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return__method:jffhoh:askquestionasync__action_104_guard_clause_104__condition",
        "from": "method:jffhoh:askquestionasync__action_104_askquestionasync_return_104_4__return",
        "to": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition",
        "kind": "next",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition__method:jffhoh:askquestionasync__action_104_guard_clause_104__true",
        "from": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition",
        "to": "method:jffhoh:askquestionasync__action_104_guard_clause_104__true",
        "kind": "condition-true",
        "label": "fail",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition__method:jffhoh:askquestionasync__action_104_guard_clause_104__false",
        "from": "method:jffhoh:askquestionasync__action_104_guard_clause_104__condition",
        "to": "method:jffhoh:askquestionasync__action_104_guard_clause_104__false",
        "kind": "condition-false",
        "label": "ok",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__true__method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "from": "method:jffhoh:askquestionasync__action_104_guard_clause_104__true",
        "to": "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "kind": "next",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__false__method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "from": "method:jffhoh:askquestionasync__action_104_guard_clause_104__false",
        "to": "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "kind": "next",
        "line": 104,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge__method:jffhoh:askquestionasync__action_107_askquestionasync_await_107_5__await",
        "from": "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge",
        "to": "method:jffhoh:askquestionasync__action_107_askquestionasync_await_107_5__await",
        "kind": "next",
        "line": 107,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:jffhoh:askquestionasync__action_107_askquestionasync_await_107_5__await__method:jffhoh:askquestionasync__action_107_error_path_107__linear",
        "from": "method:jffhoh:askquestionasync__action_107_askquestionasync_await_107_5__await",
        "to": "method:jffhoh:askquestionasync__action_107_error_path_107__linear",
        "kind": "next",
        "line": 107,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_107_error_path_107__linear__method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return",
        "from": "method:jffhoh:askquestionasync__action_107_error_path_107__linear",
        "to": "method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return",
        "kind": "return",
        "line": 108,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return__method:jffhoh:askquestionasync__action_110_askquestionasync_catch_110_7__catch",
        "from": "method:jffhoh:askquestionasync__action_108_askquestionasync_return_108_6__return",
        "to": "method:jffhoh:askquestionasync__action_110_askquestionasync_catch_110_7__catch",
        "kind": "exception",
        "line": 110,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:jffhoh:askquestionasync__action_110_askquestionasync_catch_110_7__catch__method:jffhoh:askquestionasync__action_112_askquestionasync_return_112_8__return",
        "from": "method:jffhoh:askquestionasync__action_110_askquestionasync_catch_110_7__catch",
        "to": "method:jffhoh:askquestionasync__action_112_askquestionasync_return_112_8__return",
        "kind": "return",
        "line": 112,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:jffhoh:askquestionasync__action_101_askquestionasync_branch_101_2__merge",
      "method:jffhoh:askquestionasync__action_101_branch_101__merge",
      "method:jffhoh:askquestionasync__action_104_guard_clause_104__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 96,
      "end": 114
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 96,
        "summary": "Control-flow fragment extracted for method AskQuestionAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:3dd3av:callknowledgeapiasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:3dd3av:callknowledgeapiasync",
    "ownerSymbolName": "CallKnowledgeApiAsync",
    "entryNodeId": "method:3dd3av:callknowledgeapiasync__entry",
    "exitNodeIds": [
      "method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return",
      "method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return",
      "method:3dd3av:callknowledgeapiasync__action_132_callknowledgeapiasync_return_132_8__return"
    ],
    "nodes": [
      {
        "id": "method:3dd3av:callknowledgeapiasync__entry",
        "kind": "entry",
        "label": "CallKnowledgeApiAsync entry",
        "line": 116,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Generic helper that POSTs text to a given endpoint and deserializes a KnowledgePacket, handling HTTP errors and exceptions."
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_118_try_catch_118__linear",
        "kind": "statement",
        "label": "Network or parsing exception handling",
        "line": 118,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_118_callknowledgeapiasync_try_118_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 118,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_120_callknowledgeapiasync_await_120_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 120,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.PostAsJsonAsync(endpoint, new { text, ebookId }, cancellationToken);"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_120_external_call_120__linear",
        "kind": "http-call",
        "label": "POST to provided endpoint",
        "line": 120,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "HttpClient.PostAsJsonAsync(endpoint, new { text, ebookId })"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__true",
        "kind": "branch-true",
        "label": "success -> deserialize",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "kind": "statement",
        "label": "merge",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_123_callknowledgeapiasync_await_123_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 123,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var packet = await response.Content.ReadFromJsonAsync<KnowledgePacket>(cancellationToken: cancellationToken);"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_123_deserialize_123__linear",
        "kind": "statement",
        "label": "Read KnowledgePacket",
        "line": 123,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "response.Content.ReadFromJsonAsync<KnowledgePacket>()"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return",
        "kind": "return",
        "label": "Returns result",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return packet != null ? Result.Ok(packet) : Result.Fail(\"Failed to deserialize knowledge packet.\");"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition",
        "kind": "condition",
        "label": "packet == null",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__true",
        "kind": "branch-true",
        "label": "fail",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__false",
        "kind": "branch-false",
        "label": "ok",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "kind": "statement",
        "label": "merge",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_127_callknowledgeapiasync_await_127_5__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 127,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_127_error_path_127__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 127,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return",
        "kind": "return",
        "label": "Returns result",
        "line": 128,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_130_callknowledgeapiasync_catch_130_7__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 130,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_132_callknowledgeapiasync_return_132_8__return",
        "kind": "return",
        "label": "Returns result",
        "line": 132,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network or parsing error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:3dd3av:callknowledgeapiasync__entry__method:3dd3av:callknowledgeapiasync__action_118_try_catch_118__linear",
        "from": "method:3dd3av:callknowledgeapiasync__entry",
        "to": "method:3dd3av:callknowledgeapiasync__action_118_try_catch_118__linear",
        "kind": "next",
        "line": 118,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_118_try_catch_118__linear__method:3dd3av:callknowledgeapiasync__action_118_callknowledgeapiasync_try_118_0__try",
        "from": "method:3dd3av:callknowledgeapiasync__action_118_try_catch_118__linear",
        "to": "method:3dd3av:callknowledgeapiasync__action_118_callknowledgeapiasync_try_118_0__try",
        "kind": "next",
        "line": 118,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_118_callknowledgeapiasync_try_118_0__try__method:3dd3av:callknowledgeapiasync__action_120_callknowledgeapiasync_await_120_1__await",
        "from": "method:3dd3av:callknowledgeapiasync__action_118_callknowledgeapiasync_try_118_0__try",
        "to": "method:3dd3av:callknowledgeapiasync__action_120_callknowledgeapiasync_await_120_1__await",
        "kind": "next",
        "line": 120,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_120_callknowledgeapiasync_await_120_1__await__method:3dd3av:callknowledgeapiasync__action_120_external_call_120__linear",
        "from": "method:3dd3av:callknowledgeapiasync__action_120_callknowledgeapiasync_await_120_1__await",
        "to": "method:3dd3av:callknowledgeapiasync__action_120_external_call_120__linear",
        "kind": "next",
        "line": 120,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_120_external_call_120__linear__method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition",
        "from": "method:3dd3av:callknowledgeapiasync__action_120_external_call_120__linear",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition__method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__true",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition__method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__false",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__true__method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__true",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__false__method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__false",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge__method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition__method:3dd3av:callknowledgeapiasync__action_121_branch_121__true",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__true",
        "kind": "condition-true",
        "label": "success -> deserialize",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition__method:3dd3av:callknowledgeapiasync__action_121_branch_121__false",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__true__method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__true",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__false__method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__false",
        "to": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "kind": "next",
        "line": 121,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge__method:3dd3av:callknowledgeapiasync__action_123_callknowledgeapiasync_await_123_3__await",
        "from": "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
        "to": "method:3dd3av:callknowledgeapiasync__action_123_callknowledgeapiasync_await_123_3__await",
        "kind": "next",
        "line": 123,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_123_callknowledgeapiasync_await_123_3__await__method:3dd3av:callknowledgeapiasync__action_123_deserialize_123__linear",
        "from": "method:3dd3av:callknowledgeapiasync__action_123_callknowledgeapiasync_await_123_3__await",
        "to": "method:3dd3av:callknowledgeapiasync__action_123_deserialize_123__linear",
        "kind": "next",
        "line": 123,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_123_deserialize_123__linear__method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return",
        "from": "method:3dd3av:callknowledgeapiasync__action_123_deserialize_123__linear",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return",
        "kind": "return",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return__method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_callknowledgeapiasync_return_124_4__return",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition",
        "kind": "next",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition__method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__true",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__true",
        "kind": "condition-true",
        "label": "fail",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition__method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__false",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__condition",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__false",
        "kind": "condition-false",
        "label": "ok",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__true__method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__true",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "kind": "next",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__false__method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__false",
        "to": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "kind": "next",
        "line": 124,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge__method:3dd3av:callknowledgeapiasync__action_127_callknowledgeapiasync_await_127_5__await",
        "from": "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge",
        "to": "method:3dd3av:callknowledgeapiasync__action_127_callknowledgeapiasync_await_127_5__await",
        "kind": "next",
        "line": 127,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_127_callknowledgeapiasync_await_127_5__await__method:3dd3av:callknowledgeapiasync__action_127_error_path_127__linear",
        "from": "method:3dd3av:callknowledgeapiasync__action_127_callknowledgeapiasync_await_127_5__await",
        "to": "method:3dd3av:callknowledgeapiasync__action_127_error_path_127__linear",
        "kind": "next",
        "line": 127,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_127_error_path_127__linear__method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return",
        "from": "method:3dd3av:callknowledgeapiasync__action_127_error_path_127__linear",
        "to": "method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return",
        "kind": "return",
        "line": 128,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return__method:3dd3av:callknowledgeapiasync__action_130_callknowledgeapiasync_catch_130_7__catch",
        "from": "method:3dd3av:callknowledgeapiasync__action_128_callknowledgeapiasync_return_128_6__return",
        "to": "method:3dd3av:callknowledgeapiasync__action_130_callknowledgeapiasync_catch_130_7__catch",
        "kind": "exception",
        "line": 130,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:3dd3av:callknowledgeapiasync__action_130_callknowledgeapiasync_catch_130_7__catch__method:3dd3av:callknowledgeapiasync__action_132_callknowledgeapiasync_return_132_8__return",
        "from": "method:3dd3av:callknowledgeapiasync__action_130_callknowledgeapiasync_catch_130_7__catch",
        "to": "method:3dd3av:callknowledgeapiasync__action_132_callknowledgeapiasync_return_132_8__return",
        "kind": "return",
        "line": 132,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:3dd3av:callknowledgeapiasync__action_121_callknowledgeapiasync_branch_121_2__merge",
      "method:3dd3av:callknowledgeapiasync__action_121_branch_121__merge",
      "method:3dd3av:callknowledgeapiasync__action_124_guard_clause_124__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 116,
      "end": 134
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 116,
        "summary": "Control-flow fragment extracted for method CallKnowledgeApiAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1wz04qu:clearcacheasync__fragment",
    "ownerFileId": "file:1ufa6nr:wasmknowledgeservice-cs",
    "ownerSymbolId": "method:1wz04qu:clearcacheasync",
    "ownerSymbolName": "ClearCacheAsync",
    "entryNodeId": "method:1wz04qu:clearcacheasync__entry",
    "exitNodeIds": [
      "method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return",
      "method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return",
      "method:1wz04qu:clearcacheasync__action_153_clearcacheasync_return_153_7__return"
    ],
    "nodes": [
      {
        "id": "method:1wz04qu:clearcacheasync__entry",
        "kind": "entry",
        "label": "ClearCacheAsync entry",
        "line": 136,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.99,
        "detail": "Requests the server to clear the knowledge cache via DELETE /api/knowledge and logs simple console messages."
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_138_try_catch_138__linear",
        "kind": "statement",
        "label": "Network exception handling",
        "line": 138,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Catches Exception and returns Result.Fail(Error(...).CausedBy(ex))"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_138_clearcacheasync_try_138_0__try",
        "kind": "try",
        "label": "Begins protected execution",
        "line": 138,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84,
        "detail": "try"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_140_log_140__linear",
        "kind": "statement",
        "label": "Log request start",
        "line": 140,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Console.WriteLine(\"[WasmKnowledgeService] Requesting cache clear...\")"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_141_clearcacheasync_await_141_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 141,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var response = await _httpClient.DeleteAsync(\"/api/knowledge\", cancellationToken);"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_141_external_call_141__linear",
        "kind": "http-call",
        "label": "DELETE /api/knowledge",
        "line": 141,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "HttpClient.DeleteAsync(\"/api/knowledge\")"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78,
        "detail": "if (response.IsSuccessStatusCode)"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition",
        "kind": "condition",
        "label": "response.IsSuccessStatusCode",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__true",
        "kind": "branch-true",
        "label": "success -> log success and return Ok",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__false",
        "kind": "branch-false",
        "label": "failure -> read error and fail",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "kind": "statement",
        "label": "merge",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_144_log_144__linear",
        "kind": "statement",
        "label": "Log success",
        "line": 144,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Console.WriteLine(\"[WasmKnowledgeService] Cache cleared successfully.\")"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return",
        "kind": "return",
        "label": "Returns result",
        "line": 145,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Ok();"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_148_clearcacheasync_await_148_4__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 148,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81,
        "detail": "var errorBody = await response.Content.ReadAsStringAsync(cancellationToken);"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_148_error_path_148__linear",
        "kind": "statement",
        "label": "Server error handling",
        "line": 148,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "Reads response body and returns Result.Fail with status code and body"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return",
        "kind": "return",
        "label": "Returns result",
        "line": 149,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail($\"Server error ({response.StatusCode}): {errorBody}\");"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_151_clearcacheasync_catch_151_6__catch",
        "kind": "catch",
        "label": "catch Exception ex",
        "line": 151,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86,
        "detail": "catch (Exception ex)"
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_153_clearcacheasync_return_153_7__return",
        "kind": "return",
        "label": "Returns result",
        "line": 153,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(new Error($\"Network error: {ex.Message}\").CausedBy(ex));"
      }
    ],
    "edges": [
      {
        "id": "method:1wz04qu:clearcacheasync__entry__method:1wz04qu:clearcacheasync__action_138_try_catch_138__linear",
        "from": "method:1wz04qu:clearcacheasync__entry",
        "to": "method:1wz04qu:clearcacheasync__action_138_try_catch_138__linear",
        "kind": "next",
        "line": 138,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_138_try_catch_138__linear__method:1wz04qu:clearcacheasync__action_138_clearcacheasync_try_138_0__try",
        "from": "method:1wz04qu:clearcacheasync__action_138_try_catch_138__linear",
        "to": "method:1wz04qu:clearcacheasync__action_138_clearcacheasync_try_138_0__try",
        "kind": "next",
        "line": 138,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.84
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_138_clearcacheasync_try_138_0__try__method:1wz04qu:clearcacheasync__action_140_log_140__linear",
        "from": "method:1wz04qu:clearcacheasync__action_138_clearcacheasync_try_138_0__try",
        "to": "method:1wz04qu:clearcacheasync__action_140_log_140__linear",
        "kind": "next",
        "line": 140,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_140_log_140__linear__method:1wz04qu:clearcacheasync__action_141_clearcacheasync_await_141_1__await",
        "from": "method:1wz04qu:clearcacheasync__action_140_log_140__linear",
        "to": "method:1wz04qu:clearcacheasync__action_141_clearcacheasync_await_141_1__await",
        "kind": "next",
        "line": 141,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_141_clearcacheasync_await_141_1__await__method:1wz04qu:clearcacheasync__action_141_external_call_141__linear",
        "from": "method:1wz04qu:clearcacheasync__action_141_clearcacheasync_await_141_1__await",
        "to": "method:1wz04qu:clearcacheasync__action_141_external_call_141__linear",
        "kind": "next",
        "line": 141,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_141_external_call_141__linear__method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition",
        "from": "method:1wz04qu:clearcacheasync__action_141_external_call_141__linear",
        "to": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition__method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__true",
        "from": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition",
        "to": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition__method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__false",
        "from": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__condition",
        "to": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__true__method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "from": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__true",
        "to": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__false__method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "from": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__false",
        "to": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.78
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge__method:1wz04qu:clearcacheasync__action_142_branch_142__condition",
        "from": "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
        "to": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition__method:1wz04qu:clearcacheasync__action_142_branch_142__true",
        "from": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition",
        "to": "method:1wz04qu:clearcacheasync__action_142_branch_142__true",
        "kind": "condition-true",
        "label": "success -> log success and return Ok",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition__method:1wz04qu:clearcacheasync__action_142_branch_142__false",
        "from": "method:1wz04qu:clearcacheasync__action_142_branch_142__condition",
        "to": "method:1wz04qu:clearcacheasync__action_142_branch_142__false",
        "kind": "condition-false",
        "label": "failure -> read error and fail",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__true__method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "from": "method:1wz04qu:clearcacheasync__action_142_branch_142__true",
        "to": "method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__false__method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "from": "method:1wz04qu:clearcacheasync__action_142_branch_142__false",
        "to": "method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "kind": "next",
        "line": 142,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_142_branch_142__merge__method:1wz04qu:clearcacheasync__action_144_log_144__linear",
        "from": "method:1wz04qu:clearcacheasync__action_142_branch_142__merge",
        "to": "method:1wz04qu:clearcacheasync__action_144_log_144__linear",
        "kind": "next",
        "line": 144,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_144_log_144__linear__method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return",
        "from": "method:1wz04qu:clearcacheasync__action_144_log_144__linear",
        "to": "method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return",
        "kind": "return",
        "line": 145,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return__method:1wz04qu:clearcacheasync__action_148_clearcacheasync_await_148_4__await",
        "from": "method:1wz04qu:clearcacheasync__action_145_clearcacheasync_return_145_3__return",
        "to": "method:1wz04qu:clearcacheasync__action_148_clearcacheasync_await_148_4__await",
        "kind": "next",
        "line": 148,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.81
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_148_clearcacheasync_await_148_4__await__method:1wz04qu:clearcacheasync__action_148_error_path_148__linear",
        "from": "method:1wz04qu:clearcacheasync__action_148_clearcacheasync_await_148_4__await",
        "to": "method:1wz04qu:clearcacheasync__action_148_error_path_148__linear",
        "kind": "next",
        "line": 148,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_148_error_path_148__linear__method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return",
        "from": "method:1wz04qu:clearcacheasync__action_148_error_path_148__linear",
        "to": "method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return",
        "kind": "return",
        "line": 149,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return__method:1wz04qu:clearcacheasync__action_151_clearcacheasync_catch_151_6__catch",
        "from": "method:1wz04qu:clearcacheasync__action_149_clearcacheasync_return_149_5__return",
        "to": "method:1wz04qu:clearcacheasync__action_151_clearcacheasync_catch_151_6__catch",
        "kind": "exception",
        "line": 151,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.86
      },
      {
        "id": "method:1wz04qu:clearcacheasync__action_151_clearcacheasync_catch_151_6__catch__method:1wz04qu:clearcacheasync__action_153_clearcacheasync_return_153_7__return",
        "from": "method:1wz04qu:clearcacheasync__action_151_clearcacheasync_catch_151_6__catch",
        "to": "method:1wz04qu:clearcacheasync__action_153_clearcacheasync_return_153_7__return",
        "kind": "return",
        "line": 153,
        "sourcePath": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:1wz04qu:clearcacheasync__action_142_clearcacheasync_branch_142_2__merge",
      "method:1wz04qu:clearcacheasync__action_142_branch_142__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 136,
      "end": 155
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "line": 136,
        "summary": "Control-flow fragment extracted for method ClearCacheAsync.",
        "kind": "file-summary"
      }
    ]
  }
]