{
  "nodes": [
    {
      "id": "main",
      "kind": "function",
      "name": "main",
      "file": "cmd/astrolabe/main.go",
      "start_line": 43,
      "end_line": 45,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "run",
      "kind": "function",
      "name": "run",
      "file": "cmd/astrolabe/main.go",
      "start_line": 47,
      "end_line": 68,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "usage",
      "kind": "function",
      "name": "usage",
      "file": "cmd/astrolabe/main.go",
      "start_line": 70,
      "end_line": 125,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "cmdGenerate",
      "kind": "function",
      "name": "cmdGenerate",
      "file": "cmd/astrolabe/main.go",
      "start_line": 127,
      "end_line": 335,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "cmdCheck",
      "kind": "function",
      "name": "cmdCheck",
      "file": "cmd/astrolabe/main.go",
      "start_line": 337,
      "end_line": 381,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "loadBundlePages",
      "kind": "function",
      "name": "loadBundlePages",
      "file": "cmd/astrolabe/main.go",
      "start_line": 388,
      "end_line": 427,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "envOr",
      "kind": "function",
      "name": "envOr",
      "file": "cmd/astrolabe/main.go",
      "start_line": 429,
      "end_line": 434,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "gitOutput",
      "kind": "function",
      "name": "gitOutput",
      "file": "cmd/astrolabe/main.go",
      "start_line": 438,
      "end_line": 445,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "loadSymbolSet",
      "kind": "function",
      "name": "loadSymbolSet",
      "file": "cmd/astrolabe/main.go",
      "start_line": 449,
      "end_line": 472,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "cli",
      "kind": "function",
      "name": "cli",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 15,
      "end_line": 24,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestGenerateCheckRoundTrip",
      "kind": "function",
      "name": "TestGenerateCheckRoundTrip",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 26,
      "end_line": 61,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestCheckDetectsTamperedBundle",
      "kind": "function",
      "name": "TestCheckDetectsTamperedBundle",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 63,
      "end_line": 95,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestUsageAndVersion",
      "kind": "function",
      "name": "TestUsageAndVersion",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 97,
      "end_line": 111,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "gitIn",
      "kind": "function",
      "name": "gitIn",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 114,
      "end_line": 126,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "setupGitFixture",
      "kind": "function",
      "name": "setupGitFixture",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 130,
      "end_line": 144,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestGenerateFullThenIncremental",
      "kind": "function",
      "name": "TestGenerateFullThenIncremental",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 146,
      "end_line": 204,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestGenerateSkipUnchanged",
      "kind": "function",
      "name": "TestGenerateSkipUnchanged",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 208,
      "end_line": 243,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestGenerateBundleInsideRepo",
      "kind": "function",
      "name": "TestGenerateBundleInsideRepo",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 248,
      "end_line": 268,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "TestGenerateIncrementalForgeRepinsCommit",
      "kind": "function",
      "name": "TestGenerateIncrementalForgeRepinsCommit",
      "file": "cmd/astrolabe/main_test.go",
      "start_line": 272,
      "end_line": 324,
      "page": "cli-pipeline-orchestration"
    },
    {
      "id": "Transport",
      "kind": "interface",
      "name": "Transport",
      "file": "internal/acp/acp.go",
      "start_line": 38,
      "end_line": 42,
      "page": "acp-agent-transport"
    },
    {
      "id": "rpcMessage",
      "kind": "struct",
      "name": "rpcMessage",
      "file": "internal/acp/acp.go",
      "start_line": 46,
      "end_line": 53,
      "page": "acp-agent-transport"
    },
    {
      "id": "rpcError",
      "kind": "struct",
      "name": "rpcError",
      "file": "internal/acp/acp.go",
      "start_line": 55,
      "end_line": 58,
      "page": "acp-agent-transport"
    },
    {
      "id": "rpcError::Error",
      "kind": "method",
      "name": "Error",
      "file": "internal/acp/acp.go",
      "start_line": 60,
      "end_line": 60,
      "page": "acp-agent-transport"
    },
    {
      "id": "contentBlock",
      "kind": "struct",
      "name": "contentBlock",
      "file": "internal/acp/acp.go",
      "start_line": 63,
      "end_line": 66,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client",
      "kind": "struct",
      "name": "Client",
      "file": "internal/acp/acp.go",
      "start_line": 70,
      "end_line": 93,
      "page": "llm-client-layer"
    },
    {
      "id": "WithCWD",
      "kind": "function",
      "name": "WithCWD",
      "file": "internal/acp/acp.go",
      "start_line": 99,
      "end_line": 99,
      "page": "acp-agent-transport"
    },
    {
      "id": "WithChatTimeout",
      "kind": "function",
      "name": "WithChatTimeout",
      "file": "internal/acp/acp.go",
      "start_line": 102,
      "end_line": 102,
      "page": "acp-agent-transport"
    },
    {
      "id": "WithLogger",
      "kind": "function",
      "name": "WithLogger",
      "file": "internal/acp/acp.go",
      "start_line": 105,
      "end_line": 105,
      "page": "acp-agent-transport"
    },
    {
      "id": "WithConfigOptions",
      "kind": "function",
      "name": "WithConfigOptions",
      "file": "internal/acp/acp.go",
      "start_line": 110,
      "end_line": 112,
      "page": "acp-agent-transport"
    },
    {
      "id": "New",
      "kind": "function",
      "name": "New",
      "file": "internal/acp/acp.go",
      "start_line": 115,
      "end_line": 126,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::Close",
      "kind": "method",
      "name": "Close",
      "file": "internal/acp/acp.go",
      "start_line": 129,
      "end_line": 137,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::Chat",
      "kind": "method",
      "name": "Chat",
      "file": "internal/acp/acp.go",
      "start_line": 140,
      "end_line": 142,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::prompt",
      "kind": "method",
      "name": "prompt",
      "file": "internal/acp/acp.go",
      "start_line": 147,
      "end_line": 204,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::ctxErr",
      "kind": "method",
      "name": "ctxErr",
      "file": "internal/acp/acp.go",
      "start_line": 208,
      "end_line": 213,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::ChatTools",
      "kind": "method",
      "name": "ChatTools",
      "file": "internal/acp/acp.go",
      "start_line": 222,
      "end_line": 250,
      "page": "acp-agent-transport"
    },
    {
      "id": "toolsPrompt",
      "kind": "function",
      "name": "toolsPrompt",
      "file": "internal/acp/acp.go",
      "start_line": 253,
      "end_line": 261,
      "page": "acp-agent-transport"
    },
    {
      "id": "toolCallRe",
      "kind": "variable",
      "name": "toolCallRe",
      "file": "internal/acp/acp.go",
      "start_line": 263,
      "end_line": 263,
      "page": "acp-agent-transport"
    },
    {
      "id": "parseToolCalls",
      "kind": "function",
      "name": "parseToolCalls",
      "file": "internal/acp/acp.go",
      "start_line": 266,
      "end_line": 281,
      "page": "acp-agent-transport"
    },
    {
      "id": "initParams",
      "kind": "struct",
      "name": "initParams",
      "file": "internal/acp/acp.go",
      "start_line": 285,
      "end_line": 298,
      "page": "acp-agent-transport"
    },
    {
      "id": "sessionNewParams",
      "kind": "struct",
      "name": "sessionNewParams",
      "file": "internal/acp/acp.go",
      "start_line": 300,
      "end_line": 303,
      "page": "acp-agent-transport"
    },
    {
      "id": "sessionNewResult",
      "kind": "struct",
      "name": "sessionNewResult",
      "file": "internal/acp/acp.go",
      "start_line": 305,
      "end_line": 307,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::initialize",
      "kind": "method",
      "name": "initialize",
      "file": "internal/acp/acp.go",
      "start_line": 309,
      "end_line": 325,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::newSession",
      "kind": "method",
      "name": "newSession",
      "file": "internal/acp/acp.go",
      "start_line": 327,
      "end_line": 343,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::setConfigOption",
      "kind": "method",
      "name": "setConfigOption",
      "file": "internal/acp/acp.go",
      "start_line": 346,
      "end_line": 358,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::roundTrip",
      "kind": "method",
      "name": "roundTrip",
      "file": "internal/acp/acp.go",
      "start_line": 362,
      "end_line": 387,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::writeRequest",
      "kind": "method",
      "name": "writeRequest",
      "file": "internal/acp/acp.go",
      "start_line": 391,
      "end_line": 395,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::writeResponse",
      "kind": "method",
      "name": "writeResponse",
      "file": "internal/acp/acp.go",
      "start_line": 397,
      "end_line": 403,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::writeError",
      "kind": "method",
      "name": "writeError",
      "file": "internal/acp/acp.go",
      "start_line": 405,
      "end_line": 407,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::writeMessage",
      "kind": "method",
      "name": "writeMessage",
      "file": "internal/acp/acp.go",
      "start_line": 409,
      "end_line": 417,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::readMessage",
      "kind": "method",
      "name": "readMessage",
      "file": "internal/acp/acp.go",
      "start_line": 419,
      "end_line": 435,
      "page": "acp-agent-transport"
    },
    {
      "id": "fsReadParams",
      "kind": "struct",
      "name": "fsReadParams",
      "file": "internal/acp/acp.go",
      "start_line": 439,
      "end_line": 442,
      "page": "acp-agent-transport"
    },
    {
      "id": "fsReadResult",
      "kind": "struct",
      "name": "fsReadResult",
      "file": "internal/acp/acp.go",
      "start_line": 444,
      "end_line": 446,
      "page": "acp-agent-transport"
    },
    {
      "id": "permissionParams",
      "kind": "struct",
      "name": "permissionParams",
      "file": "internal/acp/acp.go",
      "start_line": 448,
      "end_line": 455,
      "page": "acp-agent-transport"
    },
    {
      "id": "permissionResult",
      "kind": "struct",
      "name": "permissionResult",
      "file": "internal/acp/acp.go",
      "start_line": 457,
      "end_line": 459,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::handleServerRequest",
      "kind": "method",
      "name": "handleServerRequest",
      "file": "internal/acp/acp.go",
      "start_line": 465,
      "end_line": 493,
      "page": "acp-agent-transport"
    },
    {
      "id": "sessionUpdate",
      "kind": "struct",
      "name": "sessionUpdate",
      "file": "internal/acp/acp.go",
      "start_line": 495,
      "end_line": 507,
      "page": "acp-agent-transport"
    },
    {
      "id": "Client::handleNotification",
      "kind": "method",
      "name": "handleNotification",
      "file": "internal/acp/acp.go",
      "start_line": 511,
      "end_line": 530,
      "page": "acp-agent-transport"
    },
    {
      "id": "renderMessages",
      "kind": "function",
      "name": "renderMessages",
      "file": "internal/acp/acp.go",
      "start_line": 537,
      "end_line": 567,
      "page": "acp-agent-transport"
    },
    {
      "id": "readFileRel",
      "kind": "function",
      "name": "readFileRel",
      "file": "internal/acp/acp.go",
      "start_line": 570,
      "end_line": 584,
      "page": "acp-agent-transport"
    },
    {
      "id": "truncate",
      "kind": "function",
      "name": "truncate",
      "file": "internal/acp/acp.go",
      "start_line": 586,
      "end_line": 591,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer",
      "kind": "struct",
      "name": "peer",
      "file": "internal/acp/acp_test.go",
      "start_line": 22,
      "end_line": 32,
      "page": "acp-agent-transport"
    },
    {
      "id": "newPeer",
      "kind": "function",
      "name": "newPeer",
      "file": "internal/acp/acp_test.go",
      "start_line": 34,
      "end_line": 40,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::record",
      "kind": "method",
      "name": "record",
      "file": "internal/acp/acp_test.go",
      "start_line": 42,
      "end_line": 46,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::calls",
      "kind": "method",
      "name": "calls",
      "file": "internal/acp/acp_test.go",
      "start_line": 48,
      "end_line": 58,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::readReq",
      "kind": "method",
      "name": "readReq",
      "file": "internal/acp/acp_test.go",
      "start_line": 60,
      "end_line": 70,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::write",
      "kind": "method",
      "name": "write",
      "file": "internal/acp/acp_test.go",
      "start_line": 72,
      "end_line": 83,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::respondResult",
      "kind": "method",
      "name": "respondResult",
      "file": "internal/acp/acp_test.go",
      "start_line": 87,
      "end_line": 93,
      "page": "acp-agent-transport"
    },
    {
      "id": "chunkNotif",
      "kind": "function",
      "name": "chunkNotif",
      "file": "internal/acp/acp_test.go",
      "start_line": 96,
      "end_line": 107,
      "page": "acp-agent-transport"
    },
    {
      "id": "peer::serve",
      "kind": "method",
      "name": "serve",
      "file": "internal/acp/acp_test.go",
      "start_line": 111,
      "end_line": 146,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestChatHappyPath",
      "kind": "function",
      "name": "TestChatHappyPath",
      "file": "internal/acp/acp_test.go",
      "start_line": 148,
      "end_line": 182,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestPromptCarriesFlattenedMessages",
      "kind": "function",
      "name": "TestPromptCarriesFlattenedMessages",
      "file": "internal/acp/acp_test.go",
      "start_line": 184,
      "end_line": 239,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestFsReadServedFromDisk",
      "kind": "function",
      "name": "TestFsReadServedFromDisk",
      "file": "internal/acp/acp_test.go",
      "start_line": 241,
      "end_line": 281,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestPermissionAutoApproved",
      "kind": "function",
      "name": "TestPermissionAutoApproved",
      "file": "internal/acp/acp_test.go",
      "start_line": 283,
      "end_line": 319,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestUnknownServerMethodRejected",
      "kind": "function",
      "name": "TestUnknownServerMethodRejected",
      "file": "internal/acp/acp_test.go",
      "start_line": 321,
      "end_line": 356,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestErrorResponse",
      "kind": "function",
      "name": "TestErrorResponse",
      "file": "internal/acp/acp_test.go",
      "start_line": 358,
      "end_line": 388,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestMalformedMessage",
      "kind": "function",
      "name": "TestMalformedMessage",
      "file": "internal/acp/acp_test.go",
      "start_line": 390,
      "end_line": 402,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestDeadlineClosesTransport",
      "kind": "function",
      "name": "TestDeadlineClosesTransport",
      "file": "internal/acp/acp_test.go",
      "start_line": 404,
      "end_line": 427,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestLoadConfigWalkUp",
      "kind": "function",
      "name": "TestLoadConfigWalkUp",
      "file": "internal/acp/acp_test.go",
      "start_line": 429,
      "end_line": 482,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestChatToolsShim",
      "kind": "function",
      "name": "TestChatToolsShim",
      "file": "internal/acp/acp_test.go",
      "start_line": 488,
      "end_line": 589,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestValidate",
      "kind": "function",
      "name": "TestValidate",
      "file": "internal/acp/acp_test.go",
      "start_line": 591,
      "end_line": 600,
      "page": "acp-agent-transport"
    },
    {
      "id": "ConfigNames",
      "kind": "variable",
      "name": "ConfigNames",
      "file": "internal/acp/config.go",
      "start_line": 15,
      "end_line": 15,
      "page": "acp-agent-transport"
    },
    {
      "id": "Config",
      "kind": "struct",
      "name": "Config",
      "file": "internal/acp/config.go",
      "start_line": 18,
      "end_line": 21,
      "page": "agent-core"
    },
    {
      "id": "ACPConfig",
      "kind": "struct",
      "name": "ACPConfig",
      "file": "internal/acp/config.go",
      "start_line": 24,
      "end_line": 38,
      "page": "acp-agent-transport"
    },
    {
      "id": "Load",
      "kind": "function",
      "name": "Load",
      "file": "internal/acp/config.go",
      "start_line": 42,
      "end_line": 59,
      "page": "acp-agent-transport"
    },
    {
      "id": "Find",
      "kind": "function",
      "name": "Find",
      "file": "internal/acp/config.go",
      "start_line": 63,
      "end_line": 82,
      "page": "acp-agent-transport"
    },
    {
      "id": "ACPConfig::Validate",
      "kind": "method",
      "name": "Validate",
      "file": "internal/acp/config.go",
      "start_line": 85,
      "end_line": 90,
      "page": "acp-agent-transport"
    },
    {
      "id": "ACPConfig::Timeout",
      "kind": "method",
      "name": "Timeout",
      "file": "internal/acp/config.go",
      "start_line": 93,
      "end_line": 98,
      "page": "acp-agent-transport"
    },
    {
      "id": "stdioTransport",
      "kind": "struct",
      "name": "stdioTransport",
      "file": "internal/acp/config.go",
      "start_line": 101,
      "end_line": 105,
      "page": "acp-agent-transport"
    },
    {
      "id": "SpawnTransport",
      "kind": "function",
      "name": "SpawnTransport",
      "file": "internal/acp/config.go",
      "start_line": 109,
      "end_line": 135,
      "page": "acp-agent-transport"
    },
    {
      "id": "stdioTransport::Read",
      "kind": "method",
      "name": "Read",
      "file": "internal/acp/config.go",
      "start_line": 137,
      "end_line": 137,
      "page": "acp-agent-transport"
    },
    {
      "id": "stdioTransport::Write",
      "kind": "method",
      "name": "Write",
      "file": "internal/acp/config.go",
      "start_line": 138,
      "end_line": 138,
      "page": "acp-agent-transport"
    },
    {
      "id": "stdioTransport::Close",
      "kind": "method",
      "name": "Close",
      "file": "internal/acp/config.go",
      "start_line": 140,
      "end_line": 149,
      "page": "acp-agent-transport"
    },
    {
      "id": "TestLiveACP",
      "kind": "function",
      "name": "TestLiveACP",
      "file": "internal/acp/live_test.go",
      "start_line": 15,
      "end_line": 42,
      "page": "acp-agent-transport"
    },
    {
      "id": "tracer",
      "kind": "variable",
      "name": "tracer",
      "file": "internal/agent/agent.go",
      "start_line": 40,
      "end_line": 40,
      "page": "agent-core"
    },
    {
      "id": "Config",
      "kind": "struct",
      "name": "Config",
      "file": "internal/agent/agent.go",
      "start_line": 43,
      "end_line": 76,
      "page": "agent-core"
    },
    {
      "id": "Result",
      "kind": "struct",
      "name": "Result",
      "file": "internal/agent/agent.go",
      "start_line": 79,
      "end_line": 88,
      "page": "agent-core"
    },
    {
      "id": "Agent",
      "kind": "struct",
      "name": "Agent",
      "file": "internal/agent/agent.go",
      "start_line": 91,
      "end_line": 94,
      "page": "agent-core"
    },
    {
      "id": "New",
      "kind": "function",
      "name": "New",
      "file": "internal/agent/agent.go",
      "start_line": 97,
      "end_line": 131,
      "page": "agent-core"
    },
    {
      "id": "Agent::Run",
      "kind": "method",
      "name": "Run",
      "file": "internal/agent/agent.go",
      "start_line": 134,
      "end_line": 267,
      "page": "agent-core"
    },
    {
      "id": "shortSHA",
      "kind": "function",
      "name": "shortSHA",
      "file": "internal/agent/agent.go",
      "start_line": 269,
      "end_line": 274,
      "page": "agent-core"
    },
    {
      "id": "sortedKeys",
      "kind": "function",
      "name": "sortedKeys",
      "file": "internal/agent/agent.go",
      "start_line": 276,
      "end_line": 285,
      "page": "agent-core"
    },
    {
      "id": "Digest",
      "kind": "struct",
      "name": "Digest",
      "file": "internal/agent/agent.go",
      "start_line": 289,
      "end_line": 294,
      "page": "agent-core"
    },
    {
      "id": "NodeDigest",
      "kind": "struct",
      "name": "NodeDigest",
      "file": "internal/agent/agent.go",
      "start_line": 296,
      "end_line": 305,
      "page": "agent-core"
    },
    {
      "id": "EdgeDigest",
      "kind": "struct",
      "name": "EdgeDigest",
      "file": "internal/agent/agent.go",
      "start_line": 307,
      "end_line": 311,
      "page": "agent-core"
    },
    {
      "id": "graphData",
      "kind": "struct",
      "name": "graphData",
      "file": "internal/agent/agent.go",
      "start_line": 313,
      "end_line": 319,
      "page": "agent-core"
    },
    {
      "id": "Agent::loadGraph",
      "kind": "method",
      "name": "loadGraph",
      "file": "internal/agent/agent.go",
      "start_line": 324,
      "end_line": 373,
      "page": "agent-core"
    },
    {
      "id": "repoRelDir",
      "kind": "function",
      "name": "repoRelDir",
      "file": "internal/agent/agent.go",
      "start_line": 377,
      "end_line": 388,
      "page": "agent-core"
    },
    {
      "id": "graphData::Digest",
      "kind": "method",
      "name": "Digest",
      "file": "internal/agent/agent.go",
      "start_line": 390,
      "end_line": 408,
      "page": "agent-core"
    },
    {
      "id": "PlanEntry",
      "kind": "struct",
      "name": "PlanEntry",
      "file": "internal/agent/agent.go",
      "start_line": 412,
      "end_line": 417,
      "page": "agent-core"
    },
    {
      "id": "PlanRequest",
      "kind": "struct",
      "name": "PlanRequest",
      "file": "internal/agent/agent.go",
      "start_line": 419,
      "end_line": 424,
      "page": "agent-core"
    },
    {
      "id": "PlanResponse",
      "kind": "struct",
      "name": "PlanResponse",
      "file": "internal/agent/agent.go",
      "start_line": 426,
      "end_line": 428,
      "page": "agent-core"
    },
    {
      "id": "Agent::plan",
      "kind": "method",
      "name": "plan",
      "file": "internal/agent/agent.go",
      "start_line": 430,
      "end_line": 461,
      "page": "agent-core"
    },
    {
      "id": "DraftRequest",
      "kind": "struct",
      "name": "DraftRequest",
      "file": "internal/agent/agent.go",
      "start_line": 465,
      "end_line": 475,
      "page": "agent-core"
    },
    {
      "id": "Agent::draftAll",
      "kind": "method",
      "name": "draftAll",
      "file": "internal/agent/agent.go",
      "start_line": 477,
      "end_line": 487,
      "page": "agent-core"
    },
    {
      "id": "Agent::draftOrStub",
      "kind": "method",
      "name": "draftOrStub",
      "file": "internal/agent/agent.go",
      "start_line": 493,
      "end_line": 503,
      "page": "agent-core"
    },
    {
      "id": "Agent::rounds",
      "kind": "method",
      "name": "rounds",
      "file": "internal/agent/agent.go",
      "start_line": 506,
      "end_line": 511,
      "page": "agent-core"
    },
    {
      "id": "draftStub",
      "kind": "function",
      "name": "draftStub",
      "file": "internal/agent/agent.go",
      "start_line": 514,
      "end_line": 519,
      "page": "agent-core"
    },
    {
      "id": "Agent::draftPage",
      "kind": "method",
      "name": "draftPage",
      "file": "internal/agent/agent.go",
      "start_line": 521,
      "end_line": 567,
      "page": "agent-core"
    },
    {
      "id": "Agent::gatherSymbolTable",
      "kind": "method",
      "name": "gatherSymbolTable",
      "file": "internal/agent/agent.go",
      "start_line": 572,
      "end_line": 588,
      "page": "agent-core"
    },
    {
      "id": "Agent::gatherRelations",
      "kind": "method",
      "name": "gatherRelations",
      "file": "internal/agent/agent.go",
      "start_line": 592,
      "end_line": 611,
      "page": "agent-core"
    },
    {
      "id": "symbolSet",
      "kind": "function",
      "name": "symbolSet",
      "file": "internal/agent/agent.go",
      "start_line": 615,
      "end_line": 622,
      "page": "agent-core"
    },
    {
      "id": "buildGraphJSON",
      "kind": "function",
      "name": "buildGraphJSON",
      "file": "internal/agent/agent.go",
      "start_line": 626,
      "end_line": 671,
      "page": "agent-core"
    },
    {
      "id": "Agent::verifyWithRetries",
      "kind": "method",
      "name": "verifyWithRetries",
      "file": "internal/agent/agent.go",
      "start_line": 675,
      "end_line": 721,
      "page": "agent-core"
    },
    {
      "id": "Agent::check",
      "kind": "method",
      "name": "check",
      "file": "internal/agent/agent.go",
      "start_line": 726,
      "end_line": 775,
      "page": "agent-core"
    },
    {
      "id": "findPage",
      "kind": "function",
      "name": "findPage",
      "file": "internal/agent/agent.go",
      "start_line": 777,
      "end_line": 784,
      "page": "agent-core"
    },
    {
      "id": "jsonErrorContext",
      "kind": "function",
      "name": "jsonErrorContext",
      "file": "internal/agent/agent.go",
      "start_line": 790,
      "end_line": 797,
      "page": "agent-core"
    },
    {
      "id": "extractJSONObject",
      "kind": "function",
      "name": "extractJSONObject",
      "file": "internal/agent/agent.go",
      "start_line": 799,
      "end_line": 812,
      "page": "agent-core"
    },
    {
      "id": "stripCodeFence",
      "kind": "function",
      "name": "stripCodeFence",
      "file": "internal/agent/agent.go",
      "start_line": 814,
      "end_line": 823,
      "page": "agent-core"
    },
    {
      "id": "truncate",
      "kind": "function",
      "name": "truncate",
      "file": "internal/agent/agent.go",
      "start_line": 825,
      "end_line": 830,
      "page": "agent-core"
    },
    {
      "id": "NewReferenceMock",
      "kind": "function",
      "name": "NewReferenceMock",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 23,
      "end_line": 25
    },
    {
      "id": "jsonBlockRe",
      "kind": "variable",
      "name": "jsonBlockRe",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 27,
      "end_line": 27
    },
    {
      "id": "dispatch",
      "kind": "function",
      "name": "dispatch",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 29,
      "end_line": 56
    },
    {
      "id": "answerPlan",
      "kind": "function",
      "name": "answerPlan",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 58,
      "end_line": 112
    },
    {
      "id": "dirTitle",
      "kind": "function",
      "name": "dirTitle",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 114,
      "end_line": 120
    },
    {
      "id": "answerDraft",
      "kind": "function",
      "name": "answerDraft",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 122,
      "end_line": 137
    },
    {
      "id": "writeReference",
      "kind": "function",
      "name": "writeReference",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 143,
      "end_line": 191
    },
    {
      "id": "writeOverview",
      "kind": "function",
      "name": "writeOverview",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 193,
      "end_line": 226
    },
    {
      "id": "docSentences",
      "kind": "function",
      "name": "docSentences",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 229,
      "end_line": 243
    },
    {
      "id": "symbolRoleSummary",
      "kind": "function",
      "name": "symbolRoleSummary",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 246,
      "end_line": 259
    },
    {
      "id": "firstCited",
      "kind": "function",
      "name": "firstCited",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 261,
      "end_line": 271
    },
    {
      "id": "englishList",
      "kind": "function",
      "name": "englishList",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 273,
      "end_line": 284
    },
    {
      "id": "quoteAll",
      "kind": "function",
      "name": "quoteAll",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 286,
      "end_line": 292
    },
    {
      "id": "firstLine",
      "kind": "function",
      "name": "firstLine",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 294,
      "end_line": 299
    },
    {
      "id": "ensurePeriod",
      "kind": "function",
      "name": "ensurePeriod",
      "file": "internal/agent/agenttest/reference.go",
      "start_line": 301,
      "end_line": 306
    },
    {
      "id": "digestSize",
      "kind": "function",
      "name": "digestSize",
      "file": "internal/agent/budget.go",
      "start_line": 16,
      "end_line": 22,
      "page": "agent-core"
    },
    {
      "id": "fitDigest",
      "kind": "function",
      "name": "fitDigest",
      "file": "internal/agent/budget.go",
      "start_line": 36,
      "end_line": 64,
      "page": "agent-core"
    },
    {
      "id": "cloneDigest",
      "kind": "function",
      "name": "cloneDigest",
      "file": "internal/agent/budget.go",
      "start_line": 72,
      "end_line": 79,
      "page": "agent-core"
    },
    {
      "id": "clearDocstrings",
      "kind": "function",
      "name": "clearDocstrings",
      "file": "internal/agent/budget.go",
      "start_line": 81,
      "end_line": 85,
      "page": "agent-core"
    },
    {
      "id": "clearSignatures",
      "kind": "function",
      "name": "clearSignatures",
      "file": "internal/agent/budget.go",
      "start_line": 87,
      "end_line": 91,
      "page": "agent-core"
    },
    {
      "id": "dropKinds",
      "kind": "function",
      "name": "dropKinds",
      "file": "internal/agent/budget.go",
      "start_line": 93,
      "end_line": 102,
      "page": "agent-core"
    },
    {
      "id": "dropUnexported",
      "kind": "function",
      "name": "dropUnexported",
      "file": "internal/agent/budget.go",
      "start_line": 104,
      "end_line": 116,
      "page": "agent-core"
    },
    {
      "id": "dropDanglingEdges",
      "kind": "function",
      "name": "dropDanglingEdges",
      "file": "internal/agent/budget.go",
      "start_line": 119,
      "end_line": 131,
      "page": "agent-core"
    },
    {
      "id": "isExportedName",
      "kind": "function",
      "name": "isExportedName",
      "file": "internal/agent/budget.go",
      "start_line": 135,
      "end_line": 140,
      "page": "agent-core"
    },
    {
      "id": "draftPromptSize",
      "kind": "function",
      "name": "draftPromptSize",
      "file": "internal/agent/budget.go",
      "start_line": 143,
      "end_line": 149,
      "page": "agent-core"
    },
    {
      "id": "Agent::warnOversizeDraft",
      "kind": "method",
      "name": "warnOversizeDraft",
      "file": "internal/agent/budget.go",
      "start_line": 154,
      "end_line": 159,
      "page": "agent-core"
    },
    {
      "id": "bigDigest",
      "kind": "function",
      "name": "bigDigest",
      "file": "internal/agent/budget_test.go",
      "start_line": 12,
      "end_line": 40,
      "page": "agent-core"
    },
    {
      "id": "TestFitDigestNoopUnderBudget",
      "kind": "function",
      "name": "TestFitDigestNoopUnderBudget",
      "file": "internal/agent/budget_test.go",
      "start_line": 42,
      "end_line": 47,
      "page": "agent-core"
    },
    {
      "id": "TestFitDigestLadder",
      "kind": "function",
      "name": "TestFitDigestLadder",
      "file": "internal/agent/budget_test.go",
      "start_line": 49,
      "end_line": 97,
      "page": "agent-core"
    },
    {
      "id": "TestIsExportedName",
      "kind": "function",
      "name": "TestIsExportedName",
      "file": "internal/agent/budget_test.go",
      "start_line": 99,
      "end_line": 108,
      "page": "agent-core"
    },
    {
      "id": "TestDraftPromptSizeAndWarning",
      "kind": "function",
      "name": "TestDraftPromptSizeAndWarning",
      "file": "internal/agent/budget_test.go",
      "start_line": 110,
      "end_line": 135,
      "page": "agent-core"
    },
    {
      "id": "TestDumpPlanPrompt",
      "kind": "function",
      "name": "TestDumpPlanPrompt",
      "file": "internal/agent/dump_test.go",
      "start_line": 16,
      "end_line": 48,
      "page": "agent-core"
    },
    {
      "id": "_",
      "kind": "variable",
      "name": "_",
      "file": "internal/agent/dump_test.go",
      "start_line": 50,
      "end_line": 50,
      "page": "agent-core"
    },
    {
      "id": "TestEndToEndFixtureRepo",
      "kind": "function",
      "name": "TestEndToEndFixtureRepo",
      "file": "internal/agent/e2e_test.go",
      "start_line": 20,
      "end_line": 176,
      "page": "agent-core"
    },
    {
      "id": "pageTitles",
      "kind": "function",
      "name": "pageTitles",
      "file": "internal/agent/e2e_test.go",
      "start_line": 178,
      "end_line": 184,
      "page": "agent-core"
    },
    {
      "id": "TestVerificationRetry",
      "kind": "function",
      "name": "TestVerificationRetry",
      "file": "internal/agent/e2e_test.go",
      "start_line": 188,
      "end_line": 251,
      "page": "agent-core"
    },
    {
      "id": "copyFixtureRepo",
      "kind": "function",
      "name": "copyFixtureRepo",
      "file": "internal/agent/e2e_test.go",
      "start_line": 255,
      "end_line": 266,
      "page": "agent-core"
    },
    {
      "id": "gitCommit",
      "kind": "function",
      "name": "gitCommit",
      "file": "internal/agent/e2e_test.go",
      "start_line": 268,
      "end_line": 288,
      "page": "agent-core"
    },
    {
      "id": "draftScopes",
      "kind": "function",
      "name": "draftScopes",
      "file": "internal/agent/e2e_test.go",
      "start_line": 291,
      "end_line": 306,
      "page": "agent-core"
    },
    {
      "id": "containsStr",
      "kind": "function",
      "name": "containsStr",
      "file": "internal/agent/e2e_test.go",
      "start_line": 308,
      "end_line": 315,
      "page": "agent-core"
    },
    {
      "id": "TestIncrementalBuild",
      "kind": "function",
      "name": "TestIncrementalBuild",
      "file": "internal/agent/e2e_test.go",
      "start_line": 317,
      "end_line": 492,
      "page": "agent-core"
    },
    {
      "id": "gitOutputHead",
      "kind": "function",
      "name": "gitOutputHead",
      "file": "internal/agent/e2e_test.go",
      "start_line": 494,
      "end_line": 501,
      "page": "agent-core"
    },
    {
      "id": "TestIncrementalRedraftsFailedPages",
      "kind": "function",
      "name": "TestIncrementalRedraftsFailedPages",
      "file": "internal/agent/e2e_test.go",
      "start_line": 506,
      "end_line": 565,
      "page": "agent-core"
    },
    {
      "id": "changedFiles",
      "kind": "function",
      "name": "changedFiles",
      "file": "internal/agent/incremental.go",
      "start_line": 16,
      "end_line": 32,
      "page": "agent-core"
    },
    {
      "id": "graphScopes",
      "kind": "function",
      "name": "graphScopes",
      "file": "internal/agent/incremental.go",
      "start_line": 36,
      "end_line": 49,
      "page": "agent-core"
    },
    {
      "id": "computeAffected",
      "kind": "function",
      "name": "computeAffected",
      "file": "internal/agent/incremental.go",
      "start_line": 57,
      "end_line": 134,
      "page": "agent-core"
    },
    {
      "id": "scopeContains",
      "kind": "function",
      "name": "scopeContains",
      "file": "internal/agent/incremental.go",
      "start_line": 138,
      "end_line": 143,
      "page": "agent-core"
    },
    {
      "id": "Agent::draftIncremental",
      "kind": "method",
      "name": "draftIncremental",
      "file": "internal/agent/incremental.go",
      "start_line": 151,
      "end_line": 186,
      "page": "agent-core"
    },
    {
      "id": "Agent::cascadeSlugChanges",
      "kind": "method",
      "name": "cascadeSlugChanges",
      "file": "internal/agent/incremental.go",
      "start_line": 191,
      "end_line": 246,
      "page": "agent-core"
    },
    {
      "id": "Agent::runToolLoop",
      "kind": "method",
      "name": "runToolLoop",
      "file": "internal/agent/react.go",
      "start_line": 49,
      "end_line": 184,
      "page": "agent-core"
    },
    {
      "id": "toolNames",
      "kind": "function",
      "name": "toolNames",
      "file": "internal/agent/react.go",
      "start_line": 186,
      "end_line": 192,
      "page": "agent-core"
    },
    {
      "id": "Agent::runToolCall",
      "kind": "method",
      "name": "runToolCall",
      "file": "internal/agent/react.go",
      "start_line": 197,
      "end_line": 252,
      "page": "agent-core"
    },
    {
      "id": "recordingTool",
      "kind": "struct",
      "name": "recordingTool",
      "file": "internal/agent/react_test.go",
      "start_line": 24,
      "end_line": 29,
      "page": "agent-core"
    },
    {
      "id": "recordingTool::tool",
      "kind": "method",
      "name": "tool",
      "file": "internal/agent/react_test.go",
      "start_line": 31,
      "end_line": 40,
      "page": "agent-core"
    },
    {
      "id": "chatOnlyClient",
      "kind": "struct",
      "name": "chatOnlyClient",
      "file": "internal/agent/react_test.go",
      "start_line": 43,
      "end_line": 43,
      "page": "agent-core"
    },
    {
      "id": "chatOnlyClient::Chat",
      "kind": "method",
      "name": "Chat",
      "file": "internal/agent/react_test.go",
      "start_line": 45,
      "end_line": 45,
      "page": "agent-core"
    },
    {
      "id": "newLoopAgent",
      "kind": "function",
      "name": "newLoopAgent",
      "file": "internal/agent/react_test.go",
      "start_line": 47,
      "end_line": 58,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopRequiresToolClient",
      "kind": "function",
      "name": "TestRunToolLoopRequiresToolClient",
      "file": "internal/agent/react_test.go",
      "start_line": 62,
      "end_line": 69,
      "page": "agent-core"
    },
    {
      "id": "toolMock",
      "kind": "struct",
      "name": "toolMock",
      "file": "internal/agent/react_test.go",
      "start_line": 73,
      "end_line": 77,
      "page": "agent-core"
    },
    {
      "id": "toolReq",
      "kind": "struct",
      "name": "toolReq",
      "file": "internal/agent/react_test.go",
      "start_line": 79,
      "end_line": 83,
      "page": "agent-core"
    },
    {
      "id": "toolMock::ChatTools",
      "kind": "method",
      "name": "ChatTools",
      "file": "internal/agent/react_test.go",
      "start_line": 85,
      "end_line": 91,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopNative",
      "kind": "function",
      "name": "TestRunToolLoopNative",
      "file": "internal/agent/react_test.go",
      "start_line": 95,
      "end_line": 137,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopNudgesEmptyReply",
      "kind": "function",
      "name": "TestRunToolLoopNudgesEmptyReply",
      "file": "internal/agent/react_test.go",
      "start_line": 141,
      "end_line": 158,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopNativeRetriesFinalAnswer",
      "kind": "function",
      "name": "TestRunToolLoopNativeRetriesFinalAnswer",
      "file": "internal/agent/react_test.go",
      "start_line": 162,
      "end_line": 190,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopRoundCap",
      "kind": "function",
      "name": "TestRunToolLoopRoundCap",
      "file": "internal/agent/react_test.go",
      "start_line": 194,
      "end_line": 206,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopRejectsInvalidAnswer",
      "kind": "function",
      "name": "TestRunToolLoopRejectsInvalidAnswer",
      "file": "internal/agent/react_test.go",
      "start_line": 210,
      "end_line": 239,
      "page": "agent-core"
    },
    {
      "id": "TestToolDefsAreSchemas",
      "kind": "function",
      "name": "TestToolDefsAreSchemas",
      "file": "internal/agent/react_test.go",
      "start_line": 242,
      "end_line": 258,
      "page": "agent-core"
    },
    {
      "id": "TestRunToolLoopSpans",
      "kind": "function",
      "name": "TestRunToolLoopSpans",
      "file": "internal/agent/react_test.go",
      "start_line": 263,
      "end_line": 311,
      "page": "agent-core"
    },
    {
      "id": "TestJSONErrorContext",
      "kind": "function",
      "name": "TestJSONErrorContext",
      "file": "internal/agent/react_test.go",
      "start_line": 313,
      "end_line": 319,
      "page": "agent-core"
    },
    {
      "id": "State",
      "kind": "struct",
      "name": "State",
      "file": "internal/agent/state.go",
      "start_line": 20,
      "end_line": 25,
      "page": "agent-core"
    },
    {
      "id": "PageState",
      "kind": "struct",
      "name": "PageState",
      "file": "internal/agent/state.go",
      "start_line": 28,
      "end_line": 42,
      "page": "agent-core"
    },
    {
      "id": "LoadState",
      "kind": "function",
      "name": "LoadState",
      "file": "internal/agent/state.go",
      "start_line": 46,
      "end_line": 59,
      "page": "agent-core"
    },
    {
      "id": "writeState",
      "kind": "function",
      "name": "writeState",
      "file": "internal/agent/state.go",
      "start_line": 62,
      "end_line": 68,
      "page": "agent-core"
    },
    {
      "id": "loadPreviousPages",
      "kind": "function",
      "name": "loadPreviousPages",
      "file": "internal/agent/state.go",
      "start_line": 74,
      "end_line": 114,
      "page": "agent-core"
    },
    {
      "id": "stripGeneratedFooter",
      "kind": "function",
      "name": "stripGeneratedFooter",
      "file": "internal/agent/state.go",
      "start_line": 119,
      "end_line": 124,
      "page": "agent-core"
    },
    {
      "id": "citedFiles",
      "kind": "function",
      "name": "citedFiles",
      "file": "internal/agent/state.go",
      "start_line": 127,
      "end_line": 138,
      "page": "agent-core"
    },
    {
      "id": "stateFromPages",
      "kind": "function",
      "name": "stateFromPages",
      "file": "internal/agent/state.go",
      "start_line": 141,
      "end_line": 157,
      "page": "agent-core"
    },
    {
      "id": "Tool",
      "kind": "struct",
      "name": "Tool",
      "file": "internal/agent/tools.go",
      "start_line": 26,
      "end_line": 34,
      "page": "agent-tools-budget"
    },
    {
      "id": "toolEnv",
      "kind": "struct",
      "name": "toolEnv",
      "file": "internal/agent/tools.go",
      "start_line": 39,
      "end_line": 43,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::allTools",
      "kind": "method",
      "name": "allTools",
      "file": "internal/agent/tools.go",
      "start_line": 45,
      "end_line": 77,
      "page": "agent-core"
    },
    {
      "id": "capResult",
      "kind": "function",
      "name": "capResult",
      "file": "internal/agent/tools.go",
      "start_line": 79,
      "end_line": 84,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::searchSymbols",
      "kind": "method",
      "name": "searchSymbols",
      "file": "internal/agent/tools.go",
      "start_line": 86,
      "end_line": 124,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::exploreArea",
      "kind": "method",
      "name": "exploreArea",
      "file": "internal/agent/tools.go",
      "start_line": 126,
      "end_line": 188,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::describeNode",
      "kind": "method",
      "name": "describeNode",
      "file": "internal/agent/tools.go",
      "start_line": 190,
      "end_line": 200,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::readSource",
      "kind": "method",
      "name": "readSource",
      "file": "internal/agent/tools.go",
      "start_line": 202,
      "end_line": 222,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::listFiles",
      "kind": "method",
      "name": "listFiles",
      "file": "internal/agent/tools.go",
      "start_line": 224,
      "end_line": 230,
      "page": "agent-core"
    },
    {
      "id": "toolEnv::symbolNeighbors",
      "kind": "method",
      "name": "symbolNeighbors",
      "file": "internal/agent/tools.go",
      "start_line": 232,
      "end_line": 269,
      "page": "agent-core"
    },
    {
      "id": "firstLine",
      "kind": "function",
      "name": "firstLine",
      "file": "internal/agent/tools.go",
      "start_line": 271,
      "end_line": 276,
      "page": "agent-core"
    },
    {
      "id": "toolDefs",
      "kind": "function",
      "name": "toolDefs",
      "file": "internal/agent/tools.go",
      "start_line": 279,
      "end_line": 289,
      "page": "agent-core"
    },
    {
      "id": "toolsSection",
      "kind": "function",
      "name": "toolsSection",
      "file": "internal/agent/tools.go",
      "start_line": 294,
      "end_line": 296,
      "page": "agent-core"
    },
    {
      "id": "cannedGraph",
      "kind": "function",
      "name": "cannedGraph",
      "file": "internal/agent/tools_test.go",
      "start_line": 13,
      "end_line": 36,
      "page": "agent-core"
    },
    {
      "id": "testEnv",
      "kind": "function",
      "name": "testEnv",
      "file": "internal/agent/tools_test.go",
      "start_line": 38,
      "end_line": 40,
      "page": "agent-core"
    },
    {
      "id": "runTool",
      "kind": "function",
      "name": "runTool",
      "file": "internal/agent/tools_test.go",
      "start_line": 42,
      "end_line": 53,
      "page": "agent-core"
    },
    {
      "id": "runToolErr",
      "kind": "function",
      "name": "runToolErr",
      "file": "internal/agent/tools_test.go",
      "start_line": 55,
      "end_line": 63,
      "page": "agent-core"
    },
    {
      "id": "toolByName",
      "kind": "function",
      "name": "toolByName",
      "file": "internal/agent/tools_test.go",
      "start_line": 65,
      "end_line": 72,
      "page": "agent-core"
    },
    {
      "id": "TestSearchSymbols",
      "kind": "function",
      "name": "TestSearchSymbols",
      "file": "internal/agent/tools_test.go",
      "start_line": 74,
      "end_line": 94,
      "page": "agent-core"
    },
    {
      "id": "TestExploreArea",
      "kind": "function",
      "name": "TestExploreArea",
      "file": "internal/agent/tools_test.go",
      "start_line": 96,
      "end_line": 112,
      "page": "agent-core"
    },
    {
      "id": "TestSymbolNeighbors",
      "kind": "function",
      "name": "TestSymbolNeighbors",
      "file": "internal/agent/tools_test.go",
      "start_line": 114,
      "end_line": 126,
      "page": "agent-core"
    },
    {
      "id": "TestReadSourceTool",
      "kind": "function",
      "name": "TestReadSourceTool",
      "file": "internal/agent/tools_test.go",
      "start_line": 128,
      "end_line": 142,
      "page": "agent-core"
    },
    {
      "id": "TestListFilesTool",
      "kind": "function",
      "name": "TestListFilesTool",
      "file": "internal/agent/tools_test.go",
      "start_line": 144,
      "end_line": 150,
      "page": "agent-core"
    },
    {
      "id": "FixtureProvider",
      "kind": "struct",
      "name": "FixtureProvider",
      "file": "internal/graph/fixture.go",
      "start_line": 11,
      "end_line": 15,
      "page": "graph-model-providers"
    },
    {
      "id": "NewFixtureProvider",
      "kind": "function",
      "name": "NewFixtureProvider",
      "file": "internal/graph/fixture.go",
      "start_line": 18,
      "end_line": 20,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Open",
      "kind": "method",
      "name": "Open",
      "file": "internal/graph/fixture.go",
      "start_line": 23,
      "end_line": 23,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Close",
      "kind": "method",
      "name": "Close",
      "file": "internal/graph/fixture.go",
      "start_line": 26,
      "end_line": 26,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Files",
      "kind": "method",
      "name": "Files",
      "file": "internal/graph/fixture.go",
      "start_line": 29,
      "end_line": 31,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Nodes",
      "kind": "method",
      "name": "Nodes",
      "file": "internal/graph/fixture.go",
      "start_line": 34,
      "end_line": 46,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Edges",
      "kind": "method",
      "name": "Edges",
      "file": "internal/graph/fixture.go",
      "start_line": 49,
      "end_line": 51,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::Stats",
      "kind": "method",
      "name": "Stats",
      "file": "internal/graph/fixture.go",
      "start_line": 54,
      "end_line": 56,
      "page": "graph-model-providers"
    },
    {
      "id": "FixtureProvider::NodeByID",
      "kind": "method",
      "name": "NodeByID",
      "file": "internal/graph/fixture.go",
      "start_line": 59,
      "end_line": 66,
      "page": "graph-model-providers"
    },
    {
      "id": "Node",
      "kind": "struct",
      "name": "Node",
      "file": "internal/graph/graph.go",
      "start_line": 30,
      "end_line": 42,
      "page": "graph-model-providers"
    },
    {
      "id": "Edge",
      "kind": "struct",
      "name": "Edge",
      "file": "internal/graph/graph.go",
      "start_line": 45,
      "end_line": 50,
      "page": "graph-model-providers"
    },
    {
      "id": "File",
      "kind": "struct",
      "name": "File",
      "file": "internal/graph/graph.go",
      "start_line": 53,
      "end_line": 56,
      "page": "graph-model-providers"
    },
    {
      "id": "Stats",
      "kind": "struct",
      "name": "Stats",
      "file": "internal/graph/graph.go",
      "start_line": 59,
      "end_line": 63,
      "page": "graph-model-providers"
    },
    {
      "id": "Query",
      "kind": "struct",
      "name": "Query",
      "file": "internal/graph/graph.go",
      "start_line": 66,
      "end_line": 69,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider",
      "kind": "interface",
      "name": "Provider",
      "file": "internal/graph/graph.go",
      "start_line": 72,
      "end_line": 83,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Open",
      "kind": "method",
      "name": "Open",
      "file": "internal/graph/graph.go",
      "start_line": 76,
      "end_line": 76,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Close",
      "kind": "method",
      "name": "Close",
      "file": "internal/graph/graph.go",
      "start_line": 77,
      "end_line": 77,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Files",
      "kind": "method",
      "name": "Files",
      "file": "internal/graph/graph.go",
      "start_line": 79,
      "end_line": 79,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Nodes",
      "kind": "method",
      "name": "Nodes",
      "file": "internal/graph/graph.go",
      "start_line": 80,
      "end_line": 80,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Edges",
      "kind": "method",
      "name": "Edges",
      "file": "internal/graph/graph.go",
      "start_line": 81,
      "end_line": 81,
      "page": "graph-model-providers"
    },
    {
      "id": "Provider::Stats",
      "kind": "method",
      "name": "Stats",
      "file": "internal/graph/graph.go",
      "start_line": 82,
      "end_line": 82,
      "page": "graph-model-providers"
    },
    {
      "id": "ReadSource",
      "kind": "function",
      "name": "ReadSource",
      "file": "internal/graph/graph.go",
      "start_line": 91,
      "end_line": 107,
      "page": "graph-model-providers"
    },
    {
      "id": "tracer",
      "kind": "variable",
      "name": "tracer",
      "file": "internal/graph/sqlite.go",
      "start_line": 23,
      "end_line": 23,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider",
      "kind": "struct",
      "name": "SQLiteProvider",
      "file": "internal/graph/sqlite.go",
      "start_line": 28,
      "end_line": 40,
      "page": "graph-model-providers"
    },
    {
      "id": "DBPath",
      "kind": "function",
      "name": "DBPath",
      "file": "internal/graph/sqlite.go",
      "start_line": 43,
      "end_line": 45,
      "page": "graph-model-providers"
    },
    {
      "id": "HasIndex",
      "kind": "function",
      "name": "HasIndex",
      "file": "internal/graph/sqlite.go",
      "start_line": 48,
      "end_line": 51,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::bin",
      "kind": "method",
      "name": "bin",
      "file": "internal/graph/sqlite.go",
      "start_line": 53,
      "end_line": 58,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::log",
      "kind": "method",
      "name": "log",
      "file": "internal/graph/sqlite.go",
      "start_line": 60,
      "end_line": 65,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Open",
      "kind": "method",
      "name": "Open",
      "file": "internal/graph/sqlite.go",
      "start_line": 69,
      "end_line": 119,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::runCodegraph",
      "kind": "method",
      "name": "runCodegraph",
      "file": "internal/graph/sqlite.go",
      "start_line": 121,
      "end_line": 154,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Close",
      "kind": "method",
      "name": "Close",
      "file": "internal/graph/sqlite.go",
      "start_line": 157,
      "end_line": 162,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Files",
      "kind": "method",
      "name": "Files",
      "file": "internal/graph/sqlite.go",
      "start_line": 165,
      "end_line": 180,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Nodes",
      "kind": "method",
      "name": "Nodes",
      "file": "internal/graph/sqlite.go",
      "start_line": 183,
      "end_line": 224,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Edges",
      "kind": "method",
      "name": "Edges",
      "file": "internal/graph/sqlite.go",
      "start_line": 227,
      "end_line": 242,
      "page": "graph-model-providers"
    },
    {
      "id": "SQLiteProvider::Stats",
      "kind": "method",
      "name": "Stats",
      "file": "internal/graph/sqlite.go",
      "start_line": 245,
      "end_line": 252,
      "page": "graph-model-providers"
    },
    {
      "id": "openFixtureIndex",
      "kind": "function",
      "name": "openFixtureIndex",
      "file": "internal/graph/sqlite_test.go",
      "start_line": 18,
      "end_line": 31,
      "page": "graph-model-providers"
    },
    {
      "id": "TestSQLiteProviderReadsIndex",
      "kind": "function",
      "name": "TestSQLiteProviderReadsIndex",
      "file": "internal/graph/sqlite_test.go",
      "start_line": 33,
      "end_line": 92,
      "page": "graph-model-providers"
    },
    {
      "id": "TestReadSource",
      "kind": "function",
      "name": "TestReadSource",
      "file": "internal/graph/sqlite_test.go",
      "start_line": 94,
      "end_line": 107,
      "page": "graph-model-providers"
    },
    {
      "id": "Message",
      "kind": "struct",
      "name": "Message",
      "file": "internal/llm/llm.go",
      "start_line": 19,
      "end_line": 28,
      "page": "llm-client-layer"
    },
    {
      "id": "ToolDef",
      "kind": "struct",
      "name": "ToolDef",
      "file": "internal/llm/llm.go",
      "start_line": 40,
      "end_line": 44,
      "page": "llm-client-layer"
    },
    {
      "id": "ToolCall",
      "kind": "struct",
      "name": "ToolCall",
      "file": "internal/llm/llm.go",
      "start_line": 48,
      "end_line": 52,
      "page": "llm-client-layer"
    },
    {
      "id": "ErrNoResponse",
      "kind": "variable",
      "name": "ErrNoResponse",
      "file": "internal/llm/llm.go",
      "start_line": 61,
      "end_line": 61,
      "page": "llm-client-layer"
    },
    {
      "id": "Client",
      "kind": "interface",
      "name": "Client",
      "file": "internal/llm/llm.go",
      "start_line": 64,
      "end_line": 67,
      "page": "llm-client-layer"
    },
    {
      "id": "Client::Chat",
      "kind": "method",
      "name": "Chat",
      "file": "internal/llm/llm.go",
      "start_line": 66,
      "end_line": 66,
      "page": "llm-client-layer"
    },
    {
      "id": "ToolClient",
      "kind": "interface",
      "name": "ToolClient",
      "file": "internal/llm/llm.go",
      "start_line": 75,
      "end_line": 83,
      "page": "llm-client-layer"
    },
    {
      "id": "ToolClient::ChatTools",
      "kind": "method",
      "name": "ChatTools",
      "file": "internal/llm/llm.go",
      "start_line": 82,
      "end_line": 82,
      "page": "llm-client-layer"
    },
    {
      "id": "Usage",
      "kind": "struct",
      "name": "Usage",
      "file": "internal/llm/llm.go",
      "start_line": 86,
      "end_line": 93,
      "page": "llm-client-layer"
    },
    {
      "id": "Usage::Add",
      "kind": "method",
      "name": "Add",
      "file": "internal/llm/llm.go",
      "start_line": 96,
      "end_line": 103,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientChat",
      "kind": "function",
      "name": "TestOpenAIClientChat",
      "file": "internal/llm/llm_test.go",
      "start_line": 21,
      "end_line": 69,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientErrors",
      "kind": "function",
      "name": "TestOpenAIClientErrors",
      "file": "internal/llm/llm_test.go",
      "start_line": 71,
      "end_line": 91,
      "page": "llm-client-layer"
    },
    {
      "id": "TestMockClient",
      "kind": "function",
      "name": "TestMockClient",
      "file": "internal/llm/llm_test.go",
      "start_line": 93,
      "end_line": 112,
      "page": "llm-client-layer"
    },
    {
      "id": "TestMockClientChatTools",
      "kind": "function",
      "name": "TestMockClientChatTools",
      "file": "internal/llm/llm_test.go",
      "start_line": 116,
      "end_line": 136,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientChatSpan",
      "kind": "function",
      "name": "TestOpenAIClientChatSpan",
      "file": "internal/llm/llm_test.go",
      "start_line": 140,
      "end_line": 205,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientChatTools",
      "kind": "function",
      "name": "TestOpenAIClientChatTools",
      "file": "internal/llm/llm_test.go",
      "start_line": 210,
      "end_line": 259,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientRetries",
      "kind": "function",
      "name": "TestOpenAIClientRetries",
      "file": "internal/llm/llm_test.go",
      "start_line": 262,
      "end_line": 288,
      "page": "llm-client-layer"
    },
    {
      "id": "TestOpenAIClientChatToolsEmptyReply",
      "kind": "function",
      "name": "TestOpenAIClientChatToolsEmptyReply",
      "file": "internal/llm/llm_test.go",
      "start_line": 291,
      "end_line": 301,
      "page": "llm-client-layer"
    },
    {
      "id": "MockClient",
      "kind": "struct",
      "name": "MockClient",
      "file": "internal/llm/mock.go",
      "start_line": 15,
      "end_line": 21,
      "page": "llm-client-layer"
    },
    {
      "id": "NewScriptedMock",
      "kind": "function",
      "name": "NewScriptedMock",
      "file": "internal/llm/mock.go",
      "start_line": 25,
      "end_line": 38,
      "page": "llm-client-layer"
    },
    {
      "id": "errMockNotConfigured",
      "kind": "variable",
      "name": "errMockNotConfigured",
      "file": "internal/llm/mock.go",
      "start_line": 40,
      "end_line": 40,
      "page": "llm-client-layer"
    },
    {
      "id": "MockClient::Chat",
      "kind": "method",
      "name": "Chat",
      "file": "internal/llm/mock.go",
      "start_line": 43,
      "end_line": 49,
      "page": "llm-client-layer"
    },
    {
      "id": "MockClient::ChatTools",
      "kind": "method",
      "name": "ChatTools",
      "file": "internal/llm/mock.go",
      "start_line": 52,
      "end_line": 65,
      "page": "llm-client-layer"
    },
    {
      "id": "MockClient::record",
      "kind": "method",
      "name": "record",
      "file": "internal/llm/mock.go",
      "start_line": 67,
      "end_line": 73,
      "page": "llm-client-layer"
    },
    {
      "id": "MockClient::Calls",
      "kind": "method",
      "name": "Calls",
      "file": "internal/llm/mock.go",
      "start_line": 76,
      "end_line": 86,
      "page": "llm-client-layer"
    },
    {
      "id": "tracer",
      "kind": "variable",
      "name": "tracer",
      "file": "internal/llm/openai.go",
      "start_line": 25,
      "end_line": 25,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient",
      "kind": "struct",
      "name": "OpenAIClient",
      "file": "internal/llm/openai.go",
      "start_line": 28,
      "end_line": 46,
      "page": "llm-client-layer"
    },
    {
      "id": "NewOpenAIClient",
      "kind": "function",
      "name": "NewOpenAIClient",
      "file": "internal/llm/openai.go",
      "start_line": 56,
      "end_line": 63,
      "page": "llm-client-layer"
    },
    {
      "id": "chatRequest",
      "kind": "struct",
      "name": "chatRequest",
      "file": "internal/llm/openai.go",
      "start_line": 65,
      "end_line": 74,
      "page": "llm-client-layer"
    },
    {
      "id": "wireMessage",
      "kind": "struct",
      "name": "wireMessage",
      "file": "internal/llm/openai.go",
      "start_line": 78,
      "end_line": 83,
      "page": "llm-client-layer"
    },
    {
      "id": "wireToolCall",
      "kind": "struct",
      "name": "wireToolCall",
      "file": "internal/llm/openai.go",
      "start_line": 85,
      "end_line": 92,
      "page": "llm-client-layer"
    },
    {
      "id": "wireTool",
      "kind": "struct",
      "name": "wireTool",
      "file": "internal/llm/openai.go",
      "start_line": 94,
      "end_line": 101,
      "page": "llm-client-layer"
    },
    {
      "id": "toWire",
      "kind": "function",
      "name": "toWire",
      "file": "internal/llm/openai.go",
      "start_line": 103,
      "end_line": 120,
      "page": "llm-client-layer"
    },
    {
      "id": "chatResponse",
      "kind": "struct",
      "name": "chatResponse",
      "file": "internal/llm/openai.go",
      "start_line": 122,
      "end_line": 151,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient::Chat",
      "kind": "method",
      "name": "Chat",
      "file": "internal/llm/openai.go",
      "start_line": 154,
      "end_line": 163,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient::ChatTools",
      "kind": "method",
      "name": "ChatTools",
      "file": "internal/llm/openai.go",
      "start_line": 167,
      "end_line": 187,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient::Usage",
      "kind": "method",
      "name": "Usage",
      "file": "internal/llm/openai.go",
      "start_line": 190,
      "end_line": 194,
      "page": "llm-client-layer"
    },
    {
      "id": "errTransient",
      "kind": "struct",
      "name": "errTransient",
      "file": "internal/llm/openai.go",
      "start_line": 197,
      "end_line": 197,
      "page": "llm-client-layer"
    },
    {
      "id": "errTransient::Error",
      "kind": "method",
      "name": "Error",
      "file": "internal/llm/openai.go",
      "start_line": 199,
      "end_line": 199,
      "page": "llm-client-layer"
    },
    {
      "id": "errTransient::Unwrap",
      "kind": "method",
      "name": "Unwrap",
      "file": "internal/llm/openai.go",
      "start_line": 200,
      "end_line": 200,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient::complete",
      "kind": "method",
      "name": "complete",
      "file": "internal/llm/openai.go",
      "start_line": 205,
      "end_line": 359,
      "page": "llm-client-layer"
    },
    {
      "id": "OpenAIClient::post",
      "kind": "method",
      "name": "post",
      "file": "internal/llm/openai.go",
      "start_line": 363,
      "end_line": 405,
      "page": "llm-client-layer"
    },
    {
      "id": "errorType",
      "kind": "function",
      "name": "errorType",
      "file": "internal/llm/openai.go",
      "start_line": 408,
      "end_line": 421,
      "page": "llm-client-layer"
    },
    {
      "id": "truncate",
      "kind": "function",
      "name": "truncate",
      "file": "internal/llm/openai.go",
      "start_line": 423,
      "end_line": 428,
      "page": "llm-client-layer"
    },
    {
      "id": "CaptureContent",
      "kind": "function",
      "name": "CaptureContent",
      "file": "internal/telemetry/keys.go",
      "start_line": 118,
      "end_line": 120,
      "page": "telemetry"
    },
    {
      "id": "Truncate",
      "kind": "function",
      "name": "Truncate",
      "file": "internal/telemetry/keys.go",
      "start_line": 123,
      "end_line": 128,
      "page": "telemetry"
    },
    {
      "id": "ParseLevel",
      "kind": "function",
      "name": "ParseLevel",
      "file": "internal/telemetry/logging.go",
      "start_line": 16,
      "end_line": 30,
      "page": "telemetry"
    },
    {
      "id": "NewLogger",
      "kind": "function",
      "name": "NewLogger",
      "file": "internal/telemetry/logging.go",
      "start_line": 36,
      "end_line": 52,
      "page": "telemetry"
    },
    {
      "id": "minLevel",
      "kind": "struct",
      "name": "minLevel",
      "file": "internal/telemetry/logging.go",
      "start_line": 56,
      "end_line": 59,
      "page": "telemetry"
    },
    {
      "id": "minLevel::Enabled",
      "kind": "method",
      "name": "Enabled",
      "file": "internal/telemetry/logging.go",
      "start_line": 61,
      "end_line": 63,
      "page": "telemetry"
    },
    {
      "id": "minLevel::WithAttrs",
      "kind": "method",
      "name": "WithAttrs",
      "file": "internal/telemetry/logging.go",
      "start_line": 65,
      "end_line": 67,
      "page": "telemetry"
    },
    {
      "id": "minLevel::WithGroup",
      "kind": "method",
      "name": "WithGroup",
      "file": "internal/telemetry/logging.go",
      "start_line": 69,
      "end_line": 71,
      "page": "telemetry"
    },
    {
      "id": "recordHandler",
      "kind": "struct",
      "name": "recordHandler",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 12,
      "end_line": 12,
      "page": "telemetry"
    },
    {
      "id": "recordHandler::Enabled",
      "kind": "method",
      "name": "Enabled",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 14,
      "end_line": 14,
      "page": "telemetry"
    },
    {
      "id": "recordHandler::Handle",
      "kind": "method",
      "name": "Handle",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 15,
      "end_line": 18,
      "page": "telemetry"
    },
    {
      "id": "recordHandler::WithAttrs",
      "kind": "method",
      "name": "WithAttrs",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 19,
      "end_line": 19,
      "page": "telemetry"
    },
    {
      "id": "recordHandler::WithGroup",
      "kind": "method",
      "name": "WithGroup",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 20,
      "end_line": 20,
      "page": "telemetry"
    },
    {
      "id": "TestNewLogger",
      "kind": "function",
      "name": "TestNewLogger",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 22,
      "end_line": 42,
      "page": "telemetry"
    },
    {
      "id": "TestParseLevel",
      "kind": "function",
      "name": "TestParseLevel",
      "file": "internal/telemetry/logging_test.go",
      "start_line": 44,
      "end_line": 53,
      "page": "telemetry"
    },
    {
      "id": "meter",
      "kind": "variable",
      "name": "meter",
      "file": "internal/telemetry/metrics.go",
      "start_line": 13,
      "end_line": 13,
      "page": "telemetry"
    },
    {
      "id": "mustInstrument",
      "kind": "function",
      "name": "mustInstrument",
      "file": "internal/telemetry/metrics.go",
      "start_line": 28,
      "end_line": 33,
      "page": "telemetry"
    },
    {
      "id": "RecordOperationDuration",
      "kind": "function",
      "name": "RecordOperationDuration",
      "file": "internal/telemetry/metrics.go",
      "start_line": 37,
      "end_line": 43,
      "page": "telemetry"
    },
    {
      "id": "RecordTokenUsage",
      "kind": "function",
      "name": "RecordTokenUsage",
      "file": "internal/telemetry/metrics.go",
      "start_line": 47,
      "end_line": 56,
      "page": "telemetry"
    },
    {
      "id": "errorType",
      "kind": "function",
      "name": "errorType",
      "file": "internal/telemetry/metrics.go",
      "start_line": 60,
      "end_line": 67,
      "page": "telemetry"
    },
    {
      "id": "config",
      "kind": "struct",
      "name": "config",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 49,
      "end_line": 62,
      "page": "telemetry"
    },
    {
      "id": "parseConfig",
      "kind": "function",
      "name": "parseConfig",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 64,
      "end_line": 77,
      "page": "telemetry"
    },
    {
      "id": "resolveExporter",
      "kind": "function",
      "name": "resolveExporter",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 81,
      "end_line": 93,
      "page": "telemetry"
    },
    {
      "id": "firstNonEmpty",
      "kind": "function",
      "name": "firstNonEmpty",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 95,
      "end_line": 102,
      "page": "telemetry"
    },
    {
      "id": "parseHeaders",
      "kind": "function",
      "name": "parseHeaders",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 105,
      "end_line": 114,
      "page": "telemetry"
    },
    {
      "id": "Providers",
      "kind": "struct",
      "name": "Providers",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 118,
      "end_line": 125,
      "page": "telemetry"
    },
    {
      "id": "Providers::Shutdown",
      "kind": "method",
      "name": "Shutdown",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 128,
      "end_line": 136,
      "page": "telemetry"
    },
    {
      "id": "Providers::Enabled",
      "kind": "method",
      "name": "Enabled",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 139,
      "end_line": 139,
      "page": "telemetry"
    },
    {
      "id": "Setup",
      "kind": "function",
      "name": "Setup",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 146,
      "end_line": 184,
      "page": "telemetry"
    },
    {
      "id": "tracesProvider",
      "kind": "function",
      "name": "tracesProvider",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 186,
      "end_line": 214,
      "page": "telemetry"
    },
    {
      "id": "Providers::setupMetrics",
      "kind": "method",
      "name": "setupMetrics",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 216,
      "end_line": 251,
      "page": "telemetry"
    },
    {
      "id": "Providers::setupLogs",
      "kind": "method",
      "name": "setupLogs",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 253,
      "end_line": 288,
      "page": "telemetry"
    },
    {
      "id": "endpointParts",
      "kind": "function",
      "name": "endpointParts",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 294,
      "end_line": 303,
      "page": "telemetry"
    },
    {
      "id": "grpcTraceOptions",
      "kind": "function",
      "name": "grpcTraceOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 305,
      "end_line": 312,
      "page": "telemetry"
    },
    {
      "id": "httpTraceOptions",
      "kind": "function",
      "name": "httpTraceOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 314,
      "end_line": 323,
      "page": "telemetry"
    },
    {
      "id": "grpcMetricOptions",
      "kind": "function",
      "name": "grpcMetricOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 325,
      "end_line": 332,
      "page": "telemetry"
    },
    {
      "id": "httpMetricOptions",
      "kind": "function",
      "name": "httpMetricOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 334,
      "end_line": 343,
      "page": "telemetry"
    },
    {
      "id": "grpcLogOptions",
      "kind": "function",
      "name": "grpcLogOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 345,
      "end_line": 352,
      "page": "telemetry"
    },
    {
      "id": "httpLogOptions",
      "kind": "function",
      "name": "httpLogOptions",
      "file": "internal/telemetry/telemetry.go",
      "start_line": 354,
      "end_line": 363,
      "page": "telemetry"
    },
    {
      "id": "TestParseConfigDefaultsToOff",
      "kind": "function",
      "name": "TestParseConfigDefaultsToOff",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 12,
      "end_line": 20,
      "page": "telemetry"
    },
    {
      "id": "TestParseConfigEndpointImpliesOTLP",
      "kind": "function",
      "name": "TestParseConfigEndpointImpliesOTLP",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 22,
      "end_line": 38,
      "page": "telemetry"
    },
    {
      "id": "TestParseConfigExplicitExporters",
      "kind": "function",
      "name": "TestParseConfigExplicitExporters",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 40,
      "end_line": 54,
      "page": "telemetry"
    },
    {
      "id": "TestParseConfigUnknownValuesAreOff",
      "kind": "function",
      "name": "TestParseConfigUnknownValuesAreOff",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 56,
      "end_line": 71,
      "page": "telemetry"
    },
    {
      "id": "TestEndpointParts",
      "kind": "function",
      "name": "TestEndpointParts",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 73,
      "end_line": 90,
      "page": "telemetry"
    },
    {
      "id": "TestSetupStdoutSmoke",
      "kind": "function",
      "name": "TestSetupStdoutSmoke",
      "file": "internal/telemetry/telemetry_test.go",
      "start_line": 94,
      "end_line": 116,
      "page": "telemetry"
    },
    {
      "id": "Issue",
      "kind": "struct",
      "name": "Issue",
      "file": "internal/verify/checker.go",
      "start_line": 38,
      "end_line": 41,
      "page": "verification-checker-review"
    },
    {
      "id": "PageResult",
      "kind": "struct",
      "name": "PageResult",
      "file": "internal/verify/checker.go",
      "start_line": 44,
      "end_line": 50,
      "page": "verification-checker-review"
    },
    {
      "id": "Report",
      "kind": "struct",
      "name": "Report",
      "file": "internal/verify/checker.go",
      "start_line": 53,
      "end_line": 57,
      "page": "verification-checker-review"
    },
    {
      "id": "Report::AllPassed",
      "kind": "method",
      "name": "AllPassed",
      "file": "internal/verify/checker.go",
      "start_line": 60,
      "end_line": 67,
      "page": "verification-checker-review"
    },
    {
      "id": "Report::Summaries",
      "kind": "method",
      "name": "Summaries",
      "file": "internal/verify/checker.go",
      "start_line": 70,
      "end_line": 85,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker",
      "kind": "struct",
      "name": "Checker",
      "file": "internal/verify/checker.go",
      "start_line": 88,
      "end_line": 96,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker::CheckAll",
      "kind": "method",
      "name": "CheckAll",
      "file": "internal/verify/checker.go",
      "start_line": 99,
      "end_line": 109,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker::checkPage",
      "kind": "method",
      "name": "checkPage",
      "file": "internal/verify/checker.go",
      "start_line": 111,
      "end_line": 168,
      "page": "verification-checker-review"
    },
    {
      "id": "isWikiLink",
      "kind": "function",
      "name": "isWikiLink",
      "file": "internal/verify/checker.go",
      "start_line": 170,
      "end_line": 172,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker::checkCitation",
      "kind": "method",
      "name": "checkCitation",
      "file": "internal/verify/checker.go",
      "start_line": 174,
      "end_line": 194,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker::containmentRequired",
      "kind": "method",
      "name": "containmentRequired",
      "file": "internal/verify/checker.go",
      "start_line": 202,
      "end_line": 211,
      "page": "verification-checker-review"
    },
    {
      "id": "mentionsSymbol",
      "kind": "function",
      "name": "mentionsSymbol",
      "file": "internal/verify/checker.go",
      "start_line": 216,
      "end_line": 222,
      "page": "verification-checker-review"
    },
    {
      "id": "lastLabelSegment",
      "kind": "function",
      "name": "lastLabelSegment",
      "file": "internal/verify/checker.go",
      "start_line": 227,
      "end_line": 234,
      "page": "verification-checker-review"
    },
    {
      "id": "mermaidBlockRe",
      "kind": "variable",
      "name": "mermaidBlockRe",
      "file": "internal/verify/mermaid.go",
      "start_line": 15,
      "end_line": 15,
      "page": "verification-checker-review"
    },
    {
      "id": "ExtractMermaidBlocks",
      "kind": "function",
      "name": "ExtractMermaidBlocks",
      "file": "internal/verify/mermaid.go",
      "start_line": 18,
      "end_line": 24,
      "page": "verification-checker-review"
    },
    {
      "id": "backtickTokenRe",
      "kind": "variable",
      "name": "backtickTokenRe",
      "file": "internal/verify/mermaid.go",
      "start_line": 26,
      "end_line": 26,
      "page": "verification-checker-review"
    },
    {
      "id": "sourceExts",
      "kind": "variable",
      "name": "sourceExts",
      "file": "internal/verify/mermaid.go",
      "start_line": 29,
      "end_line": 35,
      "page": "verification-checker-review"
    },
    {
      "id": "Checker::checkMermaid",
      "kind": "method",
      "name": "checkMermaid",
      "file": "internal/verify/mermaid.go",
      "start_line": 41,
      "end_line": 59,
      "page": "verification-checker-review"
    },
    {
      "id": "looksLikeFile",
      "kind": "function",
      "name": "looksLikeFile",
      "file": "internal/verify/mermaid.go",
      "start_line": 62,
      "end_line": 72,
      "page": "verification-checker-review"
    },
    {
      "id": "Reviewer",
      "kind": "struct",
      "name": "Reviewer",
      "file": "internal/verify/review.go",
      "start_line": 16,
      "end_line": 21,
      "page": "verification-checker-review"
    },
    {
      "id": "ReviewVerdict",
      "kind": "struct",
      "name": "ReviewVerdict",
      "file": "internal/verify/review.go",
      "start_line": 24,
      "end_line": 27,
      "page": "verification-checker-review"
    },
    {
      "id": "Reviewer::Review",
      "kind": "method",
      "name": "Review",
      "file": "internal/verify/review.go",
      "start_line": 33,
      "end_line": 63,
      "page": "verification-checker-review"
    },
    {
      "id": "Reviewer::buildPrompt",
      "kind": "method",
      "name": "buildPrompt",
      "file": "internal/verify/review.go",
      "start_line": 65,
      "end_line": 78,
      "page": "verification-checker-review"
    },
    {
      "id": "extractJSON",
      "kind": "function",
      "name": "extractJSON",
      "file": "internal/verify/review.go",
      "start_line": 82,
      "end_line": 95,
      "page": "verification-checker-review"
    },
    {
      "id": "truncateStr",
      "kind": "function",
      "name": "truncateStr",
      "file": "internal/verify/review.go",
      "start_line": 97,
      "end_line": 102,
      "page": "verification-checker-review"
    },
    {
      "id": "mkPage",
      "kind": "function",
      "name": "mkPage",
      "file": "internal/verify/verify_test.go",
      "start_line": 16,
      "end_line": 22,
      "page": "verification-checker-review"
    },
    {
      "id": "goodStorePage",
      "kind": "function",
      "name": "goodStorePage",
      "file": "internal/verify/verify_test.go",
      "start_line": 24,
      "end_line": 34,
      "page": "verification-checker-review"
    },
    {
      "id": "checkOne",
      "kind": "function",
      "name": "checkOne",
      "file": "internal/verify/verify_test.go",
      "start_line": 36,
      "end_line": 47,
      "page": "verification-checker-review"
    },
    {
      "id": "issueKinds",
      "kind": "function",
      "name": "issueKinds",
      "file": "internal/verify/verify_test.go",
      "start_line": 49,
      "end_line": 55,
      "page": "verification-checker-review"
    },
    {
      "id": "hasKind",
      "kind": "function",
      "name": "hasKind",
      "file": "internal/verify/verify_test.go",
      "start_line": 57,
      "end_line": 64,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerAcceptsGoodPage",
      "kind": "function",
      "name": "TestCheckerAcceptsGoodPage",
      "file": "internal/verify/verify_test.go",
      "start_line": 66,
      "end_line": 74,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerRejectsBadCitations",
      "kind": "function",
      "name": "TestCheckerRejectsBadCitations",
      "file": "internal/verify/verify_test.go",
      "start_line": 76,
      "end_line": 130,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerValidatesWikiLinksAndOverview",
      "kind": "function",
      "name": "TestCheckerValidatesWikiLinksAndOverview",
      "file": "internal/verify/verify_test.go",
      "start_line": 132,
      "end_line": 164,
      "page": "verification-checker-review"
    },
    {
      "id": "checkTwo",
      "kind": "function",
      "name": "checkTwo",
      "file": "internal/verify/verify_test.go",
      "start_line": 166,
      "end_line": 174,
      "page": "verification-checker-review"
    },
    {
      "id": "TestReportHelpers",
      "kind": "function",
      "name": "TestReportHelpers",
      "file": "internal/verify/verify_test.go",
      "start_line": 176,
      "end_line": 197,
      "page": "verification-checker-review"
    },
    {
      "id": "TestReviewer",
      "kind": "function",
      "name": "TestReviewer",
      "file": "internal/verify/verify_test.go",
      "start_line": 199,
      "end_line": 238,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerValidatesMermaid",
      "kind": "function",
      "name": "TestCheckerValidatesMermaid",
      "file": "internal/verify/verify_test.go",
      "start_line": 240,
      "end_line": 278,
      "page": "verification-checker-review"
    },
    {
      "id": "checkOneWithSymbols",
      "kind": "function",
      "name": "checkOneWithSymbols",
      "file": "internal/verify/verify_test.go",
      "start_line": 280,
      "end_line": 288,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerRejectsInvertedRanges",
      "kind": "function",
      "name": "TestCheckerRejectsInvertedRanges",
      "file": "internal/verify/verify_test.go",
      "start_line": 290,
      "end_line": 300,
      "page": "verification-checker-review"
    },
    {
      "id": "TestCheckerAllowsDescriptiveLabels",
      "kind": "function",
      "name": "TestCheckerAllowsDescriptiveLabels",
      "file": "internal/verify/verify_test.go",
      "start_line": 302,
      "end_line": 326,
      "page": "verification-checker-review"
    },
    {
      "id": "Site",
      "kind": "struct",
      "name": "Site",
      "file": "internal/wiki/bundle.go",
      "start_line": 15,
      "end_line": 36,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "VersionInfo",
      "kind": "struct",
      "name": "VersionInfo",
      "file": "internal/wiki/bundle.go",
      "start_line": 39,
      "end_line": 45,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "VerificationSummary",
      "kind": "struct",
      "name": "VerificationSummary",
      "file": "internal/wiki/bundle.go",
      "start_line": 48,
      "end_line": 51,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Graph",
      "kind": "struct",
      "name": "Graph",
      "file": "internal/wiki/bundle.go",
      "start_line": 55,
      "end_line": 58,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "GraphNode",
      "kind": "struct",
      "name": "GraphNode",
      "file": "internal/wiki/bundle.go",
      "start_line": 61,
      "end_line": 69,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "GraphEdge",
      "kind": "struct",
      "name": "GraphEdge",
      "file": "internal/wiki/bundle.go",
      "start_line": 72,
      "end_line": 76,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "indexManifest",
      "kind": "struct",
      "name": "indexManifest",
      "file": "internal/wiki/bundle.go",
      "start_line": 79,
      "end_line": 90,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "pageEntry",
      "kind": "struct",
      "name": "pageEntry",
      "file": "internal/wiki/bundle.go",
      "start_line": 92,
      "end_line": 100,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Writer",
      "kind": "struct",
      "name": "Writer",
      "file": "internal/wiki/bundle.go",
      "start_line": 103,
      "end_line": 111,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "sourceTemplate",
      "kind": "function",
      "name": "sourceTemplate",
      "file": "internal/wiki/bundle.go",
      "start_line": 116,
      "end_line": 124,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Writer::Write",
      "kind": "method",
      "name": "Write",
      "file": "internal/wiki/bundle.go",
      "start_line": 127,
      "end_line": 213,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "copyFile",
      "kind": "function",
      "name": "copyFile",
      "file": "internal/wiki/bundle.go",
      "start_line": 215,
      "end_line": 224,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "citationDestRe",
      "kind": "variable",
      "name": "citationDestRe",
      "file": "internal/wiki/bundle.go",
      "start_line": 228,
      "end_line": 228,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "rewriteSourceLinks",
      "kind": "function",
      "name": "rewriteSourceLinks",
      "file": "internal/wiki/bundle.go",
      "start_line": 232,
      "end_line": 241,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "CanonicalSourceLinks",
      "kind": "function",
      "name": "CanonicalSourceLinks",
      "file": "internal/wiki/bundle.go",
      "start_line": 246,
      "end_line": 269,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "rewriteDest",
      "kind": "function",
      "name": "rewriteDest",
      "file": "internal/wiki/bundle.go",
      "start_line": 272,
      "end_line": 285,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "versionFooterMD",
      "kind": "function",
      "name": "versionFooterMD",
      "file": "internal/wiki/bundle.go",
      "start_line": 290,
      "end_line": 315,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "commitURL",
      "kind": "function",
      "name": "commitURL",
      "file": "internal/wiki/bundle.go",
      "start_line": 318,
      "end_line": 325,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Writer::writeManifests",
      "kind": "method",
      "name": "writeManifests",
      "file": "internal/wiki/bundle.go",
      "start_line": 329,
      "end_line": 407,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "statusOf",
      "kind": "function",
      "name": "statusOf",
      "file": "internal/wiki/bundle.go",
      "start_line": 409,
      "end_line": 414,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "designFS",
      "kind": "variable",
      "name": "designFS",
      "file": "internal/wiki/design.go",
      "start_line": 24,
      "end_line": 24,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "webmcpFS",
      "kind": "variable",
      "name": "webmcpFS",
      "file": "internal/wiki/design.go",
      "start_line": 31,
      "end_line": 31,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "searchFS",
      "kind": "variable",
      "name": "searchFS",
      "file": "internal/wiki/design.go",
      "start_line": 36,
      "end_line": 36,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "writeAssets",
      "kind": "function",
      "name": "writeAssets",
      "file": "internal/wiki/design.go",
      "start_line": 40,
      "end_line": 68,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "designTokens",
      "kind": "struct",
      "name": "designTokens",
      "file": "internal/wiki/design.go",
      "start_line": 73,
      "end_line": 93,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "themedToken",
      "kind": "struct",
      "name": "themedToken",
      "file": "internal/wiki/design.go",
      "start_line": 95,
      "end_line": 98,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "themedToken::value",
      "kind": "method",
      "name": "value",
      "file": "internal/wiki/design.go",
      "start_line": 102,
      "end_line": 113,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "aliasRe",
      "kind": "variable",
      "name": "aliasRe",
      "file": "internal/wiki/design.go",
      "start_line": 115,
      "end_line": 115,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "plainFamilies",
      "kind": "variable",
      "name": "plainFamilies",
      "file": "internal/wiki/design.go",
      "start_line": 118,
      "end_line": 118,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TokensCSS",
      "kind": "function",
      "name": "TokensCSS",
      "file": "internal/wiki/design.go",
      "start_line": 125,
      "end_line": 193,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "h",
      "kind": "function",
      "name": "h",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 8,
      "end_line": 20,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "s",
      "kind": "function",
      "name": "s",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 21,
      "end_line": 25,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "icon",
      "kind": "function",
      "name": "icon",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 53,
      "end_line": 57,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "cssVar",
      "kind": "function",
      "name": "cssVar",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 58,
      "end_line": 58,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "shortSha",
      "kind": "function",
      "name": "shortSha",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 59,
      "end_line": 59,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "relTime",
      "kind": "function",
      "name": "relTime",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 60,
      "end_line": 68,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "store",
      "kind": "function",
      "name": "store",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 69,
      "end_line": 71,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "panZoom",
      "kind": "function",
      "name": "panZoom",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 74,
      "end_line": 118,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "panZoom::apply",
      "kind": "function",
      "name": "apply",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 76,
      "end_line": 76,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "panZoom::zoomAt",
      "kind": "function",
      "name": "zoomAt",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 77,
      "end_line": 80,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "viewerButton",
      "kind": "function",
      "name": "viewerButton",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 119,
      "end_line": 121,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "fullscreenToggle",
      "kind": "function",
      "name": "fullscreenToggle",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 122,
      "end_line": 133,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "fullscreenToggle::close",
      "kind": "function",
      "name": "close",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 124,
      "end_line": 124,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "fullscreenToggle::esc",
      "kind": "function",
      "name": "esc",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 125,
      "end_line": 125,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "sync",
      "kind": "function",
      "name": "sync",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 173,
      "end_line": 173,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "f",
      "kind": "function",
      "name": "f",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 187,
      "end_line": 187,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "fill",
      "kind": "function",
      "name": "fill",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 200,
      "end_line": 200,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "shown",
      "kind": "function",
      "name": "shown",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 272,
      "end_line": 275,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "go",
      "kind": "function",
      "name": "go",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 276,
      "end_line": 280,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "draw",
      "kind": "function",
      "name": "draw",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 281,
      "end_line": 296,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "open",
      "kind": "function",
      "name": "open",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 297,
      "end_line": 297,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "close",
      "kind": "function",
      "name": "close",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 298,
      "end_line": 298,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "outside",
      "kind": "function",
      "name": "outside",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 299,
      "end_line": 299,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "set",
      "kind": "function",
      "name": "set",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 346,
      "end_line": 346,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "spy",
      "kind": "function",
      "name": "spy",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 348,
      "end_line": 352,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "set",
      "kind": "function",
      "name": "set",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 375,
      "end_line": 375,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "copyText",
      "kind": "function",
      "name": "copyText",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 418,
      "end_line": 421,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "copyText::done",
      "kind": "function",
      "name": "done",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 419,
      "end_line": 419,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "mermaidTheme",
      "kind": "function",
      "name": "mermaidTheme",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 438,
      "end_line": 454,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "layout",
      "kind": "function",
      "name": "layout",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 506,
      "end_line": 532,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "kIndex",
      "kind": "function",
      "name": "kIndex",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 543,
      "end_line": 543,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "shapeSvg",
      "kind": "function",
      "name": "shapeSvg",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 544,
      "end_line": 544,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "neighbours",
      "kind": "function",
      "name": "neighbours",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 584,
      "end_line": 584,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "focusOn",
      "kind": "function",
      "name": "focusOn",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 585,
      "end_line": 593,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "drawPanel",
      "kind": "function",
      "name": "drawPanel",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 594,
      "end_line": 609,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "select",
      "kind": "function",
      "name": "select",
      "file": "internal/wiki/design/bundle.js",
      "start_line": 610,
      "end_line": 615,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "GitRef",
      "kind": "interface",
      "name": "GitRef",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 5,
      "end_line": 5,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "RepoInfo",
      "kind": "interface",
      "name": "RepoInfo",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 6,
      "end_line": 6,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "Version",
      "kind": "interface",
      "name": "Version",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 7,
      "end_line": 7,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "GraphNode",
      "kind": "interface",
      "name": "GraphNode",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 8,
      "end_line": 8,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "GraphEdge",
      "kind": "interface",
      "name": "GraphEdge",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 9,
      "end_line": 9,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "AppShellProps",
      "kind": "interface",
      "name": "AppShellProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 12,
      "end_line": 12,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "SiteHeaderProps",
      "kind": "interface",
      "name": "SiteHeaderProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 16,
      "end_line": 16,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "SiteNavProps",
      "kind": "interface",
      "name": "SiteNavProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 20,
      "end_line": 20,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "PageTocProps",
      "kind": "interface",
      "name": "PageTocProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 24,
      "end_line": 24,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "ThemeSelectorProps",
      "kind": "interface",
      "name": "ThemeSelectorProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 28,
      "end_line": 28,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "VersionSelectorProps",
      "kind": "interface",
      "name": "VersionSelectorProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 37,
      "end_line": 37,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "VersionSelectorProps::onSelect",
      "kind": "method",
      "name": "onSelect",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 37,
      "end_line": 37,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "SourceRefProps",
      "kind": "interface",
      "name": "SourceRefProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 41,
      "end_line": 41,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "SourceListProps",
      "kind": "interface",
      "name": "SourceListProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 49,
      "end_line": 49,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "ProseProps",
      "kind": "interface",
      "name": "ProseProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 53,
      "end_line": 53,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "CalloutProps",
      "kind": "interface",
      "name": "CalloutProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 57,
      "end_line": 57,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "CodeBlockProps",
      "kind": "interface",
      "name": "CodeBlockProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 61,
      "end_line": 61,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "MermaidViewerProps",
      "kind": "interface",
      "name": "MermaidViewerProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 65,
      "end_line": 65,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "GraphViewerProps",
      "kind": "interface",
      "name": "GraphViewerProps",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 69,
      "end_line": 69,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "GraphViewerProps::onSelect",
      "kind": "method",
      "name": "onSelect",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 69,
      "end_line": 69,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "Window",
      "kind": "interface",
      "name": "Window",
      "file": "internal/wiki/design/index.d.ts",
      "start_line": 73,
      "end_line": 81,
      "page": "wiki-design-system-js-bundle"
    },
    {
      "id": "update",
      "kind": "variable",
      "name": "update",
      "file": "internal/wiki/design_test.go",
      "start_line": 12,
      "end_line": 12,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestTokensCSSUpToDate",
      "kind": "function",
      "name": "TestTokensCSSUpToDate",
      "file": "internal/wiki/design_test.go",
      "start_line": 16,
      "end_line": 45,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "siteCSS",
      "kind": "variable",
      "name": "siteCSS",
      "file": "internal/wiki/html.go",
      "start_line": 27,
      "end_line": 27,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "gm",
      "kind": "variable",
      "name": "gm",
      "file": "internal/wiki/html.go",
      "start_line": 29,
      "end_line": 32,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "wikiLinkDestRe",
      "kind": "variable",
      "name": "wikiLinkDestRe",
      "file": "internal/wiki/html.go",
      "start_line": 34,
      "end_line": 34,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "rewriteWikiLinksForHTML",
      "kind": "function",
      "name": "rewriteWikiLinksForHTML",
      "file": "internal/wiki/html.go",
      "start_line": 36,
      "end_line": 38,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "icons",
      "kind": "variable",
      "name": "icons",
      "file": "internal/wiki/html.go",
      "start_line": 42,
      "end_line": 53,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "iconHTML",
      "kind": "function",
      "name": "iconHTML",
      "file": "internal/wiki/html.go",
      "start_line": 55,
      "end_line": 61,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "verifyIcon",
      "kind": "function",
      "name": "verifyIcon",
      "file": "internal/wiki/html.go",
      "start_line": 63,
      "end_line": 71,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "typeLabels",
      "kind": "variable",
      "name": "typeLabels",
      "file": "internal/wiki/html.go",
      "start_line": 73,
      "end_line": 73,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "typeLabel",
      "kind": "function",
      "name": "typeLabel",
      "file": "internal/wiki/html.go",
      "start_line": 75,
      "end_line": 83,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "pagesByType",
      "kind": "function",
      "name": "pagesByType",
      "file": "internal/wiki/html.go",
      "start_line": 87,
      "end_line": 108,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "typeGroup",
      "kind": "struct",
      "name": "typeGroup",
      "file": "internal/wiki/html.go",
      "start_line": 110,
      "end_line": 113,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "navItem",
      "kind": "struct",
      "name": "navItem",
      "file": "internal/wiki/html.go",
      "start_line": 115,
      "end_line": 117,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "navGroup",
      "kind": "struct",
      "name": "navGroup",
      "file": "internal/wiki/html.go",
      "start_line": 121,
      "end_line": 125,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "navGroups",
      "kind": "function",
      "name": "navGroups",
      "file": "internal/wiki/html.go",
      "start_line": 127,
      "end_line": 144,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "tocEntry",
      "kind": "struct",
      "name": "tocEntry",
      "file": "internal/wiki/html.go",
      "start_line": 146,
      "end_line": 150,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "sourceFile",
      "kind": "struct",
      "name": "sourceFile",
      "file": "internal/wiki/html.go",
      "start_line": 152,
      "end_line": 154,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "shell",
      "kind": "struct",
      "name": "shell",
      "file": "internal/wiki/html.go",
      "start_line": 157,
      "end_line": 171,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "shell::ShortCommit",
      "kind": "method",
      "name": "ShortCommit",
      "file": "internal/wiki/html.go",
      "start_line": 173,
      "end_line": 178,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "shortSHA",
      "kind": "function",
      "name": "shortSHA",
      "file": "internal/wiki/html.go",
      "start_line": 180,
      "end_line": 185,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "newShell",
      "kind": "function",
      "name": "newShell",
      "file": "internal/wiki/html.go",
      "start_line": 187,
      "end_line": 201,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "funcs",
      "kind": "variable",
      "name": "funcs",
      "file": "internal/wiki/html.go",
      "start_line": 203,
      "end_line": 203,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "htmlTmpl",
      "kind": "variable",
      "name": "htmlTmpl",
      "file": "internal/wiki/html.go",
      "start_line": 205,
      "end_line": 258,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "pageBodyTmpl",
      "kind": "variable",
      "name": "pageBodyTmpl",
      "file": "internal/wiki/html.go",
      "start_line": 260,
      "end_line": 268,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "indexBodyTmpl",
      "kind": "variable",
      "name": "indexBodyTmpl",
      "file": "internal/wiki/html.go",
      "start_line": 270,
      "end_line": 276,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "designBody",
      "kind": "function",
      "name": "designBody",
      "file": "internal/wiki/html.go",
      "start_line": 291,
      "end_line": 336,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "pageSources",
      "kind": "function",
      "name": "pageSources",
      "file": "internal/wiki/html.go",
      "start_line": 340,
      "end_line": 386,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "renderPageHTML",
      "kind": "function",
      "name": "renderPageHTML",
      "file": "internal/wiki/html.go",
      "start_line": 388,
      "end_line": 422,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "renderIndexHTML",
      "kind": "function",
      "name": "renderIndexHTML",
      "file": "internal/wiki/html.go",
      "start_line": 424,
      "end_line": 459,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "execTemplate",
      "kind": "function",
      "name": "execTemplate",
      "file": "internal/wiki/html.go",
      "start_line": 461,
      "end_line": 467,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Page",
      "kind": "struct",
      "name": "Page",
      "file": "internal/wiki/page.go",
      "start_line": 42,
      "end_line": 54,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "slugRe",
      "kind": "variable",
      "name": "slugRe",
      "file": "internal/wiki/page.go",
      "start_line": 56,
      "end_line": 56,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Slugify",
      "kind": "function",
      "name": "Slugify",
      "file": "internal/wiki/page.go",
      "start_line": 59,
      "end_line": 63,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Page::Normalize",
      "kind": "method",
      "name": "Normalize",
      "file": "internal/wiki/page.go",
      "start_line": 66,
      "end_line": 89,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "frontmatter",
      "kind": "struct",
      "name": "frontmatter",
      "file": "internal/wiki/page.go",
      "start_line": 92,
      "end_line": 97,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Page::Markdown",
      "kind": "method",
      "name": "Markdown",
      "file": "internal/wiki/page.go",
      "start_line": 100,
      "end_line": 112,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "ParsePage",
      "kind": "function",
      "name": "ParsePage",
      "file": "internal/wiki/page.go",
      "start_line": 115,
      "end_line": 130,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Citation",
      "kind": "struct",
      "name": "Citation",
      "file": "internal/wiki/page.go",
      "start_line": 133,
      "end_line": 141,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "citationRe",
      "kind": "variable",
      "name": "citationRe",
      "file": "internal/wiki/page.go",
      "start_line": 143,
      "end_line": 143,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "CitationLink",
      "kind": "function",
      "name": "CitationLink",
      "file": "internal/wiki/page.go",
      "start_line": 146,
      "end_line": 151,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "ExtractCitations",
      "kind": "function",
      "name": "ExtractCitations",
      "file": "internal/wiki/page.go",
      "start_line": 154,
      "end_line": 170,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "wikiLinkRe",
      "kind": "variable",
      "name": "wikiLinkRe",
      "file": "internal/wiki/page.go",
      "start_line": 173,
      "end_line": 173,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "WikiLink",
      "kind": "function",
      "name": "WikiLink",
      "file": "internal/wiki/page.go",
      "start_line": 176,
      "end_line": 178,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "ExtractWikiLinks",
      "kind": "function",
      "name": "ExtractWikiLinks",
      "file": "internal/wiki/page.go",
      "start_line": 181,
      "end_line": 187,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "markdownLinkRe",
      "kind": "variable",
      "name": "markdownLinkRe",
      "file": "internal/wiki/page.go",
      "start_line": 191,
      "end_line": 191,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "ExtractAllLinks",
      "kind": "function",
      "name": "ExtractAllLinks",
      "file": "internal/wiki/page.go",
      "start_line": 194,
      "end_line": 200,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "SortPages",
      "kind": "function",
      "name": "SortPages",
      "file": "internal/wiki/page.go",
      "start_line": 203,
      "end_line": 218,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "tracer",
      "kind": "variable",
      "name": "tracer",
      "file": "internal/wiki/search.go",
      "start_line": 29,
      "end_line": 29,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "ParseSearchMode",
      "kind": "function",
      "name": "ParseSearchMode",
      "file": "internal/wiki/search.go",
      "start_line": 41,
      "end_line": 49,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "PagefindBin",
      "kind": "variable",
      "name": "PagefindBin",
      "file": "internal/wiki/search.go",
      "start_line": 52,
      "end_line": 52,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "indexedRe",
      "kind": "variable",
      "name": "indexedRe",
      "file": "internal/wiki/search.go",
      "start_line": 57,
      "end_line": 57,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "IndexSearch",
      "kind": "function",
      "name": "IndexSearch",
      "file": "internal/wiki/search.go",
      "start_line": 61,
      "end_line": 121,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "load",
      "kind": "function",
      "name": "load",
      "file": "internal/wiki/search/search.js",
      "start_line": 18,
      "end_line": 28,
      "page": "wiki-search"
    },
    {
      "id": "el",
      "kind": "function",
      "name": "el",
      "file": "internal/wiki/search/search.js",
      "start_line": 36,
      "end_line": 41,
      "page": "wiki-search"
    },
    {
      "id": "build",
      "kind": "function",
      "name": "build",
      "file": "internal/wiki/search/search.js",
      "start_line": 43,
      "end_line": 59,
      "page": "wiki-search"
    },
    {
      "id": "open",
      "kind": "function",
      "name": "open",
      "file": "internal/wiki/search/search.js",
      "start_line": 61,
      "end_line": 66,
      "page": "wiki-search"
    },
    {
      "id": "enable",
      "kind": "function",
      "name": "enable",
      "file": "internal/wiki/search/search.js",
      "start_line": 68,
      "end_line": 82,
      "page": "wiki-search"
    },
    {
      "id": "run",
      "kind": "function",
      "name": "run",
      "file": "internal/wiki/search/search.js",
      "start_line": 84,
      "end_line": 101,
      "page": "wiki-search"
    },
    {
      "id": "render",
      "kind": "function",
      "name": "render",
      "file": "internal/wiki/search/search.js",
      "start_line": 103,
      "end_line": 124,
      "page": "wiki-search"
    },
    {
      "id": "onKey",
      "kind": "function",
      "name": "onKey",
      "file": "internal/wiki/search/search.js",
      "start_line": 126,
      "end_line": 141,
      "page": "wiki-search"
    },
    {
      "id": "fakePagefind",
      "kind": "function",
      "name": "fakePagefind",
      "file": "internal/wiki/search_test.go",
      "start_line": 13,
      "end_line": 22,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestParseSearchMode",
      "kind": "function",
      "name": "TestParseSearchMode",
      "file": "internal/wiki/search_test.go",
      "start_line": 24,
      "end_line": 33,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestIndexSearchMissingBinary",
      "kind": "function",
      "name": "TestIndexSearchMissingBinary",
      "file": "internal/wiki/search_test.go",
      "start_line": 35,
      "end_line": 47,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestIndexSearchReplacesStaleIndex",
      "kind": "function",
      "name": "TestIndexSearchReplacesStaleIndex",
      "file": "internal/wiki/search_test.go",
      "start_line": 49,
      "end_line": 68,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestIndexSearchNoPages",
      "kind": "function",
      "name": "TestIndexSearchNoPages",
      "file": "internal/wiki/search_test.go",
      "start_line": 70,
      "end_line": 75,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "url",
      "kind": "function",
      "name": "url",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 26,
      "end_line": 26,
      "page": "webmcp-integration"
    },
    {
      "id": "get",
      "kind": "function",
      "name": "get",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 27,
      "end_line": 37,
      "page": "webmcp-integration"
    },
    {
      "id": "optional",
      "kind": "function",
      "name": "optional",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 38,
      "end_line": 38,
      "page": "webmcp-integration"
    },
    {
      "id": "index",
      "kind": "function",
      "name": "index",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 40,
      "end_line": 40,
      "page": "webmcp-integration"
    },
    {
      "id": "graph",
      "kind": "function",
      "name": "graph",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 41,
      "end_line": 41,
      "page": "webmcp-integration"
    },
    {
      "id": "page",
      "kind": "function",
      "name": "page",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 42,
      "end_line": 45,
      "page": "webmcp-integration"
    },
    {
      "id": "allPages",
      "kind": "function",
      "name": "allPages",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 46,
      "end_line": 52,
      "page": "webmcp-integration"
    },
    {
      "id": "clamp",
      "kind": "function",
      "name": "clamp",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 53,
      "end_line": 53,
      "page": "webmcp-integration"
    },
    {
      "id": "terms",
      "kind": "function",
      "name": "terms",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 54,
      "end_line": 54,
      "page": "webmcp-integration"
    },
    {
      "id": "sourceLink",
      "kind": "function",
      "name": "sourceLink",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 58,
      "end_line": 63,
      "page": "webmcp-integration"
    },
    {
      "id": "text",
      "kind": "function",
      "name": "text",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 209,
      "end_line": 209,
      "page": "webmcp-integration"
    },
    {
      "id": "registerSpec",
      "kind": "function",
      "name": "registerSpec",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 213,
      "end_line": 231,
      "page": "webmcp-integration"
    },
    {
      "id": "registerWidget",
      "kind": "function",
      "name": "registerWidget",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 234,
      "end_line": 244,
      "page": "webmcp-integration"
    },
    {
      "id": "init",
      "kind": "function",
      "name": "init",
      "file": "internal/wiki/webmcp/astrolabe-mcp.js",
      "start_line": 246,
      "end_line": 249,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::constructor",
      "kind": "method",
      "name": "constructor",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 10,
      "end_line": 49,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_format",
      "kind": "method",
      "name": "_format",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 51,
      "end_line": 53,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_init",
      "kind": "method",
      "name": "_init",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 59,
      "end_line": 77,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_checkStoredToken",
      "kind": "method",
      "name": "_checkStoredToken",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 83,
      "end_line": 124,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_saveItemsToStorage",
      "kind": "method",
      "name": "_saveItemsToStorage",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 130,
      "end_line": 179,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_loadStoredItems",
      "kind": "method",
      "name": "_loadStoredItems",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 185,
      "end_line": 264,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_clearStoredItems",
      "kind": "method",
      "name": "_clearStoredItems",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 270,
      "end_line": 275,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_createWidget",
      "kind": "method",
      "name": "_createWidget",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 281,
      "end_line": 489,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_setWidgetPosition",
      "kind": "method",
      "name": "_setWidgetPosition",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 495,
      "end_line": 535,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_createConnectionForm",
      "kind": "method",
      "name": "_createConnectionForm",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 541,
      "end_line": 600,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_setupEventListeners",
      "kind": "method",
      "name": "_setupEventListeners",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 606,
      "end_line": 640,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_toggleExpanded",
      "kind": "method",
      "name": "_toggleExpanded",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 646,
      "end_line": 660,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_updateStatus",
      "kind": "method",
      "name": "_updateStatus",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 666,
      "end_line": 706,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_updateConnectionUI",
      "kind": "method",
      "name": "_updateConnectionUI",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 712,
      "end_line": 742,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_updateToolsList",
      "kind": "method",
      "name": "_updateToolsList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 748,
      "end_line": 787,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_updatePromptsList",
      "kind": "method",
      "name": "_updatePromptsList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 793,
      "end_line": 832,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_updateResourcesList",
      "kind": "method",
      "name": "_updateResourcesList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 838,
      "end_line": 878,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_resetInactivityTimer",
      "kind": "method",
      "name": "_resetInactivityTimer",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 884,
      "end_line": 894,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleInactivity",
      "kind": "method",
      "name": "_handleInactivity",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 900,
      "end_line": 913,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::connect",
      "kind": "method",
      "name": "connect",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 921,
      "end_line": 995,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::disconnect",
      "kind": "method",
      "name": "disconnect",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1001,
      "end_line": 1022,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_processConnectionToken",
      "kind": "method",
      "name": "_processConnectionToken",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1030,
      "end_line": 1056,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_registerWithServer",
      "kind": "method",
      "name": "_registerWithServer",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1064,
      "end_line": 1125,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_setupSocketListeners",
      "kind": "method",
      "name": "_setupSocketListeners",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1131,
      "end_line": 1185,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleServerMessage",
      "kind": "method",
      "name": "_handleServerMessage",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1192,
      "end_line": 1261,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleToolCall",
      "kind": "method",
      "name": "_handleToolCall",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1268,
      "end_line": 1324,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleGetPrompt",
      "kind": "method",
      "name": "_handleGetPrompt",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1331,
      "end_line": 1387,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleReadResource",
      "kind": "method",
      "name": "_handleReadResource",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1394,
      "end_line": 1473,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_sendToolsList",
      "kind": "method",
      "name": "_sendToolsList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1480,
      "end_line": 1494,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_sendPromptsList",
      "kind": "method",
      "name": "_sendPromptsList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1501,
      "end_line": 1515,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_sendResourcesList",
      "kind": "method",
      "name": "_sendResourcesList",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1522,
      "end_line": 1553,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_sendMessage",
      "kind": "method",
      "name": "_sendMessage",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1560,
      "end_line": 1574,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_registerItemsWithServer",
      "kind": "method",
      "name": "_registerItemsWithServer",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1580,
      "end_line": 1629,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::registerTool",
      "kind": "method",
      "name": "registerTool",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1639,
      "end_line": 1679,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::registerPrompt",
      "kind": "method",
      "name": "registerPrompt",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1689,
      "end_line": 1731,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::registerResource",
      "kind": "method",
      "name": "registerResource",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1741,
      "end_line": 1794,
      "page": "webmcp-integration"
    },
    {
      "id": "WebMCP::_handleCreateSamplingMessage",
      "kind": "method",
      "name": "_handleCreateSamplingMessage",
      "file": "internal/wiki/webmcp/webmcp.js",
      "start_line": 1801,
      "end_line": 2011,
      "page": "webmcp-integration"
    },
    {
      "id": "samplePages",
      "kind": "function",
      "name": "samplePages",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 14,
      "end_line": 48,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "writeBundle",
      "kind": "function",
      "name": "writeBundle",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 50,
      "end_line": 53,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "writeBundleSite",
      "kind": "function",
      "name": "writeBundleSite",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 55,
      "end_line": 74,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "read",
      "kind": "function",
      "name": "read",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 76,
      "end_line": 83,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleSnapshotMode",
      "kind": "function",
      "name": "TestWriteBundleSnapshotMode",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 85,
      "end_line": 175,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleForgeMode",
      "kind": "function",
      "name": "TestWriteBundleForgeMode",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 177,
      "end_line": 192,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleForgeModePinsCommit",
      "kind": "function",
      "name": "TestWriteBundleForgeModePinsCommit",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 194,
      "end_line": 215,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleCommitTemplateNeedsCommit",
      "kind": "function",
      "name": "TestWriteBundleCommitTemplateNeedsCommit",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 217,
      "end_line": 224,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestPageRoundTrip",
      "kind": "function",
      "name": "TestPageRoundTrip",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 226,
      "end_line": 240,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestNormalizeRejectsBadPages",
      "kind": "function",
      "name": "TestNormalizeRejectsBadPages",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 242,
      "end_line": 259,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestSlugify",
      "kind": "function",
      "name": "TestSlugify",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 261,
      "end_line": 273,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleVersionStamps",
      "kind": "function",
      "name": "TestWriteBundleVersionStamps",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 275,
      "end_line": 319,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestWriteBundleNoVersionNoStamp",
      "kind": "function",
      "name": "TestWriteBundleNoVersionNoStamp",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 321,
      "end_line": 330,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "TestCanonicalSourceLinksRoundTrip",
      "kind": "function",
      "name": "TestCanonicalSourceLinksRoundTrip",
      "file": "internal/wiki/wiki_test.go",
      "start_line": 332,
      "end_line": 352,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "main",
      "kind": "function",
      "name": "main",
      "file": "testdata/fixture/cmd/server/main.go",
      "start_line": 11,
      "end_line": 23
    },
    {
      "id": "testdata/fixture/cmd/server/main.go::route:/users",
      "kind": "route",
      "name": "GET /users",
      "file": "testdata/fixture/cmd/server/main.go",
      "start_line": 16,
      "end_line": 16,
      "page": "test-fixture-sample-repo"
    },
    {
      "id": "testdata/fixture/cmd/server/main.go::route:/users",
      "kind": "route",
      "name": "POST /users",
      "file": "testdata/fixture/cmd/server/main.go",
      "start_line": 17,
      "end_line": 17,
      "page": "test-fixture-sample-repo"
    },
    {
      "id": "testdata/fixture/cmd/server/main.go::route:/users/{id}",
      "kind": "route",
      "name": "GET /users/{id}",
      "file": "testdata/fixture/cmd/server/main.go",
      "start_line": 18,
      "end_line": 18
    },
    {
      "id": "testdata/fixture/cmd/server/main.go::route:/users/{id}",
      "kind": "route",
      "name": "DELETE /users/{id}",
      "file": "testdata/fixture/cmd/server/main.go",
      "start_line": 19,
      "end_line": 19
    },
    {
      "id": "UserHandler",
      "kind": "struct",
      "name": "UserHandler",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 12,
      "end_line": 14,
      "page": "test-fixture-sample-repo"
    },
    {
      "id": "NewUserHandler",
      "kind": "function",
      "name": "NewUserHandler",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 17,
      "end_line": 19
    },
    {
      "id": "UserHandler::ListUsers",
      "kind": "method",
      "name": "ListUsers",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 22,
      "end_line": 24
    },
    {
      "id": "UserHandler::CreateUser",
      "kind": "method",
      "name": "CreateUser",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 27,
      "end_line": 46
    },
    {
      "id": "UserHandler::GetUser",
      "kind": "method",
      "name": "GetUser",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 49,
      "end_line": 60
    },
    {
      "id": "UserHandler::DeleteUser",
      "kind": "method",
      "name": "DeleteUser",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 63,
      "end_line": 72
    },
    {
      "id": "writeJSON",
      "kind": "function",
      "name": "writeJSON",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 74,
      "end_line": 78
    },
    {
      "id": "writeError",
      "kind": "function",
      "name": "writeError",
      "file": "testdata/fixture/internal/handlers/users.go",
      "start_line": 80,
      "end_line": 82
    },
    {
      "id": "ErrNotFound",
      "kind": "variable",
      "name": "ErrNotFound",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 10,
      "end_line": 10
    },
    {
      "id": "User",
      "kind": "struct",
      "name": "User",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 13,
      "end_line": 17
    },
    {
      "id": "Store",
      "kind": "interface",
      "name": "Store",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 20,
      "end_line": 29,
      "page": "test-fixture-sample-repo"
    },
    {
      "id": "Store::Create",
      "kind": "method",
      "name": "Create",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 22,
      "end_line": 22
    },
    {
      "id": "Store::Get",
      "kind": "method",
      "name": "Get",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 24,
      "end_line": 24
    },
    {
      "id": "Store::List",
      "kind": "method",
      "name": "List",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 26,
      "end_line": 26
    },
    {
      "id": "Store::Delete",
      "kind": "method",
      "name": "Delete",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 28,
      "end_line": 28
    },
    {
      "id": "MemoryStore",
      "kind": "struct",
      "name": "MemoryStore",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 32,
      "end_line": 36,
      "page": "test-fixture-sample-repo"
    },
    {
      "id": "NewMemoryStore",
      "kind": "function",
      "name": "NewMemoryStore",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 39,
      "end_line": 41
    },
    {
      "id": "MemoryStore::Create",
      "kind": "method",
      "name": "Create",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 44,
      "end_line": 51
    },
    {
      "id": "MemoryStore::Get",
      "kind": "method",
      "name": "Get",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 54,
      "end_line": 62
    },
    {
      "id": "MemoryStore::List",
      "kind": "method",
      "name": "List",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 65,
      "end_line": 73
    },
    {
      "id": "MemoryStore::Delete",
      "kind": "method",
      "name": "Delete",
      "file": "testdata/fixture/internal/store/store.go",
      "start_line": 76,
      "end_line": 84
    },
    {
      "id": "copied",
      "kind": "variable",
      "name": "copied",
      "file": "theme/scripts/stage-assets.mjs",
      "start_line": 27,
      "end_line": 27
    },
    {
      "id": "stageDir",
      "kind": "function",
      "name": "stageDir",
      "file": "theme/scripts/stage-assets.mjs",
      "start_line": 60,
      "end_line": 64
    },
    {
      "id": "GraphNode",
      "kind": "interface",
      "name": "GraphNode",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 14,
      "end_line": 22
    },
    {
      "id": "GraphEdge",
      "kind": "interface",
      "name": "GraphEdge",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 24,
      "end_line": 28
    },
    {
      "id": "Graph",
      "kind": "interface",
      "name": "Graph",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 30,
      "end_line": 33,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "Connection",
      "kind": "interface",
      "name": "Connection",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 35,
      "end_line": 40
    },
    {
      "id": "Selection",
      "kind": "interface",
      "name": "Selection",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 42,
      "end_line": 49
    },
    {
      "id": "commit",
      "kind": "variable",
      "name": "commit",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 52,
      "end_line": 52
    },
    {
      "id": "repo",
      "kind": "variable",
      "name": "repo",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 53,
      "end_line": 53
    },
    {
      "id": "status",
      "kind": "variable",
      "name": "status",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 66,
      "end_line": 66
    },
    {
      "id": "count",
      "kind": "variable",
      "name": "count",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 67,
      "end_line": 67
    },
    {
      "id": "query",
      "kind": "variable",
      "name": "query",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 68,
      "end_line": 68
    },
    {
      "id": "zoom",
      "kind": "variable",
      "name": "zoom",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 69,
      "end_line": 69
    },
    {
      "id": "kinds",
      "kind": "variable",
      "name": "kinds",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 70,
      "end_line": 70
    },
    {
      "id": "selection",
      "kind": "variable",
      "name": "selection",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 71,
      "end_line": 71
    },
    {
      "id": "figure",
      "kind": "variable",
      "name": "figure",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 72,
      "end_line": 72
    },
    {
      "id": "stage",
      "kind": "variable",
      "name": "stage",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 73,
      "end_line": 73
    },
    {
      "id": "sourceSlot",
      "kind": "variable",
      "name": "sourceSlot",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 74,
      "end_line": 74
    },
    {
      "id": "fullscreen",
      "kind": "variable",
      "name": "fullscreen",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 75,
      "end_line": 75
    },
    {
      "id": "cy",
      "kind": "variable",
      "name": "cy",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 77,
      "end_line": 77
    },
    {
      "id": "shapePath",
      "kind": "function",
      "name": "shapePath",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 79,
      "end_line": 79
    },
    {
      "id": "token",
      "kind": "function",
      "name": "token",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 81,
      "end_line": 83
    },
    {
      "id": "labelDegree",
      "kind": "variable",
      "name": "labelDegree",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 91,
      "end_line": 91
    },
    {
      "id": "styles",
      "kind": "function",
      "name": "styles",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 93,
      "end_line": 154
    },
    {
      "id": "styles::px",
      "kind": "function",
      "name": "px",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 96,
      "end_line": 96
    },
    {
      "id": "styles::node",
      "kind": "function",
      "name": "node",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 98,
      "end_line": 98
    },
    {
      "id": "render",
      "kind": "function",
      "name": "render",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 156,
      "end_line": 243
    },
    {
      "id": "select",
      "kind": "function",
      "name": "select",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 245,
      "end_line": 284
    },
    {
      "id": "jump",
      "kind": "function",
      "name": "jump",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 286,
      "end_line": 289
    },
    {
      "id": "onSearch",
      "kind": "function",
      "name": "onSearch",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 291,
      "end_line": 298
    },
    {
      "id": "onSearchKey",
      "kind": "function",
      "name": "onSearchKey",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 300,
      "end_line": 308
    },
    {
      "id": "zoomBy",
      "kind": "function",
      "name": "zoomBy",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 310,
      "end_line": 313
    },
    {
      "id": "toggleFullscreen",
      "kind": "function",
      "name": "toggleFullscreen",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 315,
      "end_line": 320
    },
    {
      "id": "onKey",
      "kind": "function",
      "name": "onKey",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 323,
      "end_line": 325
    },
    {
      "id": "onTheme",
      "kind": "function",
      "name": "onTheme",
      "file": "theme/src/components/GraphExplorer.svelte",
      "start_line": 326,
      "end_line": 326
    },
    {
      "id": "Props",
      "kind": "interface",
      "name": "Props",
      "file": "theme/src/components/Icon.astro",
      "start_line": 21,
      "end_line": 24
    },
    {
      "id": "Props",
      "kind": "interface",
      "name": "Props",
      "file": "theme/src/layouts/BaseLayout.astro",
      "start_line": 10,
      "end_line": 20
    },
    {
      "id": "PageEntry",
      "kind": "interface",
      "name": "PageEntry",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 10,
      "end_line": 18,
      "page": "astro-theme-site-rendering"
    },
    {
      "id": "IndexManifest",
      "kind": "interface",
      "name": "IndexManifest",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 20,
      "end_line": 27,
      "page": "astro-theme-site-rendering"
    },
    {
      "id": "VersionInfo",
      "kind": "interface",
      "name": "VersionInfo",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 29,
      "end_line": 35,
      "page": "wiki-bundle-pages"
    },
    {
      "id": "bundleDir",
      "kind": "function",
      "name": "bundleDir",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 38,
      "end_line": 40
    },
    {
      "id": "readIndex",
      "kind": "function",
      "name": "readIndex",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 42,
      "end_line": 45
    },
    {
      "id": "readVersion",
      "kind": "function",
      "name": "readVersion",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 48,
      "end_line": 55
    },
    {
      "id": "hasFile",
      "kind": "function",
      "name": "hasFile",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 57,
      "end_line": 59
    },
    {
      "id": "pageSlugs",
      "kind": "function",
      "name": "pageSlugs",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 62,
      "end_line": 64
    },
    {
      "id": "pagesByType",
      "kind": "function",
      "name": "pagesByType",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 69,
      "end_line": 83
    },
    {
      "id": "RepoInfo",
      "kind": "interface",
      "name": "RepoInfo",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 85,
      "end_line": 93
    },
    {
      "id": "repoCache",
      "kind": "variable",
      "name": "repoCache",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 100,
      "end_line": 100
    },
    {
      "id": "readRepo",
      "kind": "function",
      "name": "readRepo",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 102,
      "end_line": 121
    },
    {
      "id": "NavGroup",
      "kind": "interface",
      "name": "NavGroup",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 123,
      "end_line": 130,
      "page": "astro-theme-site-rendering"
    },
    {
      "id": "typeLabel",
      "kind": "function",
      "name": "typeLabel",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 135,
      "end_line": 137
    },
    {
      "id": "navGroups",
      "kind": "function",
      "name": "navGroups",
      "file": "theme/src/lib/bundle.ts",
      "start_line": 143,
      "end_line": 158
    },
    {
      "id": "Heading",
      "kind": "interface",
      "name": "Heading",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 14,
      "end_line": 18
    },
    {
      "id": "SourceFile",
      "kind": "interface",
      "name": "SourceFile",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 21,
      "end_line": 25
    },
    {
      "id": "ParsedPage",
      "kind": "interface",
      "name": "ParsedPage",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 27,
      "end_line": 43,
      "page": "astro-theme-site-rendering"
    },
    {
      "id": "rewriteHref",
      "kind": "function",
      "name": "rewriteHref",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 58,
      "end_line": 64
    },
    {
      "id": "rewriteLinks",
      "kind": "function",
      "name": "rewriteLinks",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 66,
      "end_line": 71
    },
    {
      "id": "slug",
      "kind": "function",
      "name": "slug",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 74,
      "end_line": 81
    },
    {
      "id": "plainText",
      "kind": "function",
      "name": "plainText",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 85,
      "end_line": 87
    },
    {
      "id": "escapeHtml",
      "kind": "function",
      "name": "escapeHtml",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 89,
      "end_line": 91
    },
    {
      "id": "addSource",
      "kind": "function",
      "name": "addSource",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 93,
      "end_line": 106
    },
    {
      "id": "mergeRanges",
      "kind": "function",
      "name": "mergeRanges",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 109,
      "end_line": 118
    },
    {
      "id": "parsePage",
      "kind": "function",
      "name": "parsePage",
      "file": "theme/src/lib/markdown.ts",
      "start_line": 121,
      "end_line": 201
    },
    {
      "id": "theme/src/pages/graph.astro::route:/graph",
      "kind": "route",
      "name": "/graph",
      "file": "theme/src/pages/graph.astro",
      "start_line": 1,
      "end_line": 1
    },
    {
      "id": "theme/src/pages/index.astro::route:/",
      "kind": "route",
      "name": "/",
      "file": "theme/src/pages/index.astro",
      "start_line": 1,
      "end_line": 1
    },
    {
      "id": "theme/src/pages/pages/[slug].astro::route:/pages/:slug",
      "kind": "route",
      "name": "/pages/:slug",
      "file": "theme/src/pages/pages/[slug].astro",
      "start_line": 1,
      "end_line": 1
    },
    {
      "id": "getStaticPaths",
      "kind": "function",
      "name": "getStaticPaths",
      "file": "theme/src/pages/pages/[slug].astro",
      "start_line": 9,
      "end_line": 28
    },
    {
      "id": "Props",
      "kind": "interface",
      "name": "Props",
      "file": "theme/src/pages/pages/[slug].astro",
      "start_line": 30,
      "end_line": 41
    },
    {
      "id": "lines",
      "kind": "function",
      "name": "lines",
      "file": "theme/src/pages/pages/[slug].astro",
      "start_line": 55,
      "end_line": 59
    },
    {
      "id": "firstLine",
      "kind": "function",
      "name": "firstLine",
      "file": "theme/src/pages/pages/[slug].astro",
      "start_line": 60,
      "end_line": 60
    },
    {
      "id": "RepoInfo",
      "kind": "interface",
      "name": "RepoInfo",
      "file": "theme/src/scripts/site.ts",
      "start_line": 6,
      "end_line": 9
    },
    {
      "id": "SiteData",
      "kind": "interface",
      "name": "SiteData",
      "file": "theme/src/scripts/site.ts",
      "start_line": 11,
      "end_line": 17
    },
    {
      "id": "Version",
      "kind": "interface",
      "name": "Version",
      "file": "theme/src/scripts/site.ts",
      "start_line": 20,
      "end_line": 31
    },
    {
      "id": "LegacyVersion",
      "kind": "interface",
      "name": "LegacyVersion",
      "file": "theme/src/scripts/site.ts",
      "start_line": 34,
      "end_line": 40
    },
    {
      "id": "toVersion",
      "kind": "function",
      "name": "toVersion",
      "file": "theme/src/scripts/site.ts",
      "start_line": 49,
      "end_line": 59
    },
    {
      "id": "mountVersions",
      "kind": "function",
      "name": "mountVersions",
      "file": "theme/src/scripts/site.ts",
      "start_line": 66,
      "end_line": 103
    },
    {
      "id": "mountDiagrams",
      "kind": "function",
      "name": "mountDiagrams",
      "file": "theme/src/scripts/site.ts",
      "start_line": 105,
      "end_line": 112
    }
  ],
  "edges": [
    {
      "source": "Client::ChatTools",
      "target": "toolCallRe",
      "kind": "references"
    },
    {
      "source": "parseToolCalls",
      "target": "toolCallRe",
      "kind": "references"
    },
    {
      "source": "Find",
      "target": "ConfigNames",
      "kind": "references"
    },
    {
      "source": "dispatch",
      "target": "jsonBlockRe",
      "kind": "references"
    },
    {
      "source": "MockClient::Chat",
      "target": "errMockNotConfigured",
      "kind": "references"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "errMockNotConfigured",
      "kind": "references"
    },
    {
      "source": "ExtractMermaidBlocks",
      "target": "mermaidBlockRe",
      "kind": "references"
    },
    {
      "source": "Checker::checkMermaid",
      "target": "backtickTokenRe",
      "kind": "references"
    },
    {
      "source": "looksLikeFile",
      "target": "sourceExts",
      "kind": "references"
    },
    {
      "source": "rewriteSourceLinks",
      "target": "citationDestRe",
      "kind": "references"
    },
    {
      "source": "writeAssets",
      "target": "searchFS",
      "kind": "references"
    },
    {
      "source": "writeAssets",
      "target": "webmcpFS",
      "kind": "references"
    },
    {
      "source": "writeAssets",
      "target": "designFS",
      "kind": "references"
    },
    {
      "source": "TokensCSS",
      "target": "plainFamilies",
      "kind": "references"
    },
    {
      "source": "TokensCSS",
      "target": "aliasRe",
      "kind": "references"
    },
    {
      "source": "rewriteWikiLinksForHTML",
      "target": "wikiLinkDestRe",
      "kind": "references"
    },
    {
      "source": "typeLabel",
      "target": "typeLabels",
      "kind": "references"
    },
    {
      "source": "renderPageHTML",
      "target": "htmlTmpl",
      "kind": "references"
    },
    {
      "source": "renderPageHTML",
      "target": "pageBodyTmpl",
      "kind": "references"
    },
    {
      "source": "renderIndexHTML",
      "target": "htmlTmpl",
      "kind": "references"
    },
    {
      "source": "renderIndexHTML",
      "target": "indexBodyTmpl",
      "kind": "references"
    },
    {
      "source": "Slugify",
      "target": "slugRe",
      "kind": "references"
    },
    {
      "source": "ExtractCitations",
      "target": "citationRe",
      "kind": "references"
    },
    {
      "source": "ExtractWikiLinks",
      "target": "wikiLinkRe",
      "kind": "references"
    },
    {
      "source": "ExtractAllLinks",
      "target": "markdownLinkRe",
      "kind": "references"
    },
    {
      "source": "IndexSearch",
      "target": "indexedRe",
      "kind": "references"
    },
    {
      "source": "IndexSearch",
      "target": "PagefindBin",
      "kind": "references"
    },
    {
      "source": "MemoryStore::Get",
      "target": "ErrNotFound",
      "kind": "references"
    },
    {
      "source": "MemoryStore::Delete",
      "target": "ErrNotFound",
      "kind": "references"
    },
    {
      "source": "styles",
      "target": "labelDegree",
      "kind": "references"
    },
    {
      "source": "render",
      "target": "labelDegree",
      "kind": "references"
    },
    {
      "source": "select",
      "target": "sourceSlot",
      "kind": "references"
    },
    {
      "source": "readRepo",
      "target": "repoCache",
      "kind": "references"
    },
    {
      "source": "navGroup",
      "target": "navItem",
      "kind": "extends"
    },
    {
      "source": "main",
      "target": "run",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "usage",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "cmdGenerate",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "cmdCheck",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "usage",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "usage",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "envOr",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "envOr",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "envOr",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "envOr",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "envOr",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "ParseLevel",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "ParseSearchMode",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "OpenAIClient::Usage",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "Setup",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "Providers",
      "kind": "instantiates"
    },
    {
      "source": "cmdGenerate",
      "target": "Providers::Shutdown",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "NewLogger",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "gitOutput",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "gitOutput",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "gitOutput",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "LoadState",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "Load",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "SpawnTransport",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "WithCWD",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "WithConfigOptions",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "WithLogger",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "cmdGenerate",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "cmdGenerate",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "cmdGenerate",
      "target": "OpenAIClient::Usage",
      "kind": "calls"
    },
    {
      "source": "cmdCheck",
      "target": "OpenAIClient::Usage",
      "kind": "calls"
    },
    {
      "source": "cmdCheck",
      "target": "loadBundlePages",
      "kind": "calls"
    },
    {
      "source": "cmdCheck",
      "target": "loadSymbolSet",
      "kind": "calls"
    },
    {
      "source": "cmdCheck",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "cmdCheck",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "loadBundlePages",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "loadBundlePages",
      "target": "ParsePage",
      "kind": "calls"
    },
    {
      "source": "loadBundlePages",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "loadBundlePages",
      "target": "CanonicalSourceLinks",
      "kind": "calls"
    },
    {
      "source": "loadSymbolSet",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "loadSymbolSet",
      "target": "SQLiteProvider::Open",
      "kind": "calls"
    },
    {
      "source": "loadSymbolSet",
      "target": "SQLiteProvider::Close",
      "kind": "calls"
    },
    {
      "source": "loadSymbolSet",
      "target": "SQLiteProvider::Nodes",
      "kind": "calls"
    },
    {
      "source": "loadSymbolSet",
      "target": "Query",
      "kind": "instantiates"
    },
    {
      "source": "cmdGenerate",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "TestGenerateCheckRoundTrip",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "TestGenerateCheckRoundTrip",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestCheckDetectsTamperedBundle",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "TestCheckDetectsTamperedBundle",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestUsageAndVersion",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "setupGitFixture",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "setupGitFixture",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "setupGitFixture",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "setupGitFixture",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateFullThenIncremental",
      "target": "setupGitFixture",
      "kind": "calls"
    },
    {
      "source": "TestGenerateFullThenIncremental",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestGenerateFullThenIncremental",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateFullThenIncremental",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateSkipUnchanged",
      "target": "setupGitFixture",
      "kind": "calls"
    },
    {
      "source": "TestGenerateSkipUnchanged",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestGenerateSkipUnchanged",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateBundleInsideRepo",
      "target": "setupGitFixture",
      "kind": "calls"
    },
    {
      "source": "TestGenerateBundleInsideRepo",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestGenerateBundleInsideRepo",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateIncrementalForgeRepinsCommit",
      "target": "setupGitFixture",
      "kind": "calls"
    },
    {
      "source": "TestGenerateIncrementalForgeRepinsCommit",
      "target": "cli",
      "kind": "calls"
    },
    {
      "source": "TestGenerateIncrementalForgeRepinsCommit",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateIncrementalForgeRepinsCommit",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "TestGenerateIncrementalForgeRepinsCommit",
      "target": "gitIn",
      "kind": "calls"
    },
    {
      "source": "New",
      "target": "Transport",
      "kind": "references"
    },
    {
      "source": "New",
      "target": "Client",
      "kind": "references"
    },
    {
      "source": "New",
      "target": "Client",
      "kind": "instantiates"
    },
    {
      "source": "Client::Chat",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "Client::Chat",
      "target": "Client::prompt",
      "kind": "calls"
    },
    {
      "source": "Client::Chat",
      "target": "renderMessages",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::initialize",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::ctxErr",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::newSession",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::ctxErr",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::writeRequest",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::readMessage",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::ctxErr",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::handleServerRequest",
      "kind": "calls"
    },
    {
      "source": "Client::prompt",
      "target": "Client::handleNotification",
      "kind": "calls"
    },
    {
      "source": "Client::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "Client::ChatTools",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "Client::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "Client::ChatTools",
      "target": "renderMessages",
      "kind": "calls"
    },
    {
      "source": "Client::ChatTools",
      "target": "toolsPrompt",
      "kind": "calls"
    },
    {
      "source": "Client::ChatTools",
      "target": "Client::prompt",
      "kind": "calls"
    },
    {
      "source": "Client::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Client::ChatTools",
      "target": "parseToolCalls",
      "kind": "calls"
    },
    {
      "source": "Client::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Client::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Client::ChatTools",
      "target": "ToolCall",
      "kind": "instantiates"
    },
    {
      "source": "toolsPrompt",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "Client::initialize",
      "target": "Client::roundTrip",
      "kind": "calls"
    },
    {
      "source": "Client::initialize",
      "target": "truncate",
      "kind": "calls"
    },
    {
      "source": "Client::newSession",
      "target": "sessionNewParams",
      "kind": "instantiates"
    },
    {
      "source": "Client::newSession",
      "target": "Client::roundTrip",
      "kind": "calls"
    },
    {
      "source": "Client::newSession",
      "target": "Client::setConfigOption",
      "kind": "calls"
    },
    {
      "source": "Client::setConfigOption",
      "target": "Client::roundTrip",
      "kind": "calls"
    },
    {
      "source": "Client::roundTrip",
      "target": "Client::writeRequest",
      "kind": "calls"
    },
    {
      "source": "Client::roundTrip",
      "target": "Client::readMessage",
      "kind": "calls"
    },
    {
      "source": "Client::roundTrip",
      "target": "Client::handleServerRequest",
      "kind": "calls"
    },
    {
      "source": "Client::roundTrip",
      "target": "Client::handleNotification",
      "kind": "calls"
    },
    {
      "source": "Client::writeRequest",
      "target": "rpcMessage",
      "kind": "instantiates"
    },
    {
      "source": "Client::writeRequest",
      "target": "Client::writeMessage",
      "kind": "calls"
    },
    {
      "source": "Client::writeResponse",
      "target": "Client::writeMessage",
      "kind": "calls"
    },
    {
      "source": "Client::writeResponse",
      "target": "rpcMessage",
      "kind": "instantiates"
    },
    {
      "source": "Client::writeError",
      "target": "Client::writeMessage",
      "kind": "calls"
    },
    {
      "source": "Client::writeError",
      "target": "rpcMessage",
      "kind": "instantiates"
    },
    {
      "source": "Client::writeError",
      "target": "rpcError",
      "kind": "instantiates"
    },
    {
      "source": "Client::writeMessage",
      "target": "rpcMessage",
      "kind": "references"
    },
    {
      "source": "Client::readMessage",
      "target": "rpcMessage",
      "kind": "references"
    },
    {
      "source": "Client::readMessage",
      "target": "truncate",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "rpcMessage",
      "kind": "references"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeError",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "readFileRel",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeError",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeResponse",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "fsReadResult",
      "kind": "instantiates"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeError",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeError",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeResponse",
      "kind": "calls"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "permissionResult",
      "kind": "instantiates"
    },
    {
      "source": "Client::handleServerRequest",
      "target": "Client::writeError",
      "kind": "calls"
    },
    {
      "source": "Client::handleNotification",
      "target": "rpcMessage",
      "kind": "references"
    },
    {
      "source": "renderMessages",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "newPeer",
      "target": "peer",
      "kind": "references"
    },
    {
      "source": "newPeer",
      "target": "Transport",
      "kind": "references"
    },
    {
      "source": "newPeer",
      "target": "peer",
      "kind": "instantiates"
    },
    {
      "source": "peer::respondResult",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "peer::respondResult",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "chunkNotif",
      "kind": "calls"
    },
    {
      "source": "peer::serve",
      "target": "chunkNotif",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::serve",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "WithCWD",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestChatHappyPath",
      "target": "peer::calls",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "chunkNotif",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestPromptCarriesFlattenedMessages",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "peer::serve",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "WithCWD",
      "kind": "calls"
    },
    {
      "source": "TestFsReadServedFromDisk",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "peer::serve",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestPermissionAutoApproved",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "peer::serve",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestUnknownServerMethodRejected",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestErrorResponse",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "TestMalformedMessage",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestMalformedMessage",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestMalformedMessage",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "peer::write",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestDeadlineClosesTransport",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "TestLoadConfigWalkUp",
      "target": "Load",
      "kind": "calls"
    },
    {
      "source": "TestLoadConfigWalkUp",
      "target": "Load",
      "kind": "calls"
    },
    {
      "source": "TestLoadConfigWalkUp",
      "target": "Load",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "newPeer",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "peer::readReq",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "peer::respondResult",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "chunkNotif",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestChatToolsShim",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "TestValidate",
      "target": "ACPConfig::Validate",
      "kind": "calls"
    },
    {
      "source": "TestValidate",
      "target": "ACPConfig::Validate",
      "kind": "calls"
    },
    {
      "source": "Load",
      "target": "Config",
      "kind": "references"
    },
    {
      "source": "Load",
      "target": "Find",
      "kind": "calls"
    },
    {
      "source": "SpawnTransport",
      "target": "ACPConfig",
      "kind": "references"
    },
    {
      "source": "SpawnTransport",
      "target": "Transport",
      "kind": "references"
    },
    {
      "source": "SpawnTransport",
      "target": "ACPConfig::Validate",
      "kind": "calls"
    },
    {
      "source": "SpawnTransport",
      "target": "stdioTransport",
      "kind": "instantiates"
    },
    {
      "source": "TestLiveACP",
      "target": "ACPConfig",
      "kind": "instantiates"
    },
    {
      "source": "TestLiveACP",
      "target": "SpawnTransport",
      "kind": "calls"
    },
    {
      "source": "TestLiveACP",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestLiveACP",
      "target": "WithCWD",
      "kind": "calls"
    },
    {
      "source": "TestLiveACP",
      "target": "WithChatTimeout",
      "kind": "calls"
    },
    {
      "source": "New",
      "target": "Config",
      "kind": "references"
    },
    {
      "source": "New",
      "target": "Agent",
      "kind": "references"
    },
    {
      "source": "New",
      "target": "Agent",
      "kind": "instantiates"
    },
    {
      "source": "Agent::Run",
      "target": "Result",
      "kind": "references"
    },
    {
      "source": "Agent::Run",
      "target": "FixtureProvider::Open",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Client::Close",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::loadGraph",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "LoadState",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "changedFiles",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "loadPreviousPages",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "shortSHA",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::plan",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::draftIncremental",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::draftAll",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::verifyWithRetries",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Writer",
      "kind": "instantiates"
    },
    {
      "source": "Agent::Run",
      "target": "Site",
      "kind": "instantiates"
    },
    {
      "source": "Agent::Run",
      "target": "Report::Summaries",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "VersionInfo",
      "kind": "instantiates"
    },
    {
      "source": "Agent::Run",
      "target": "buildGraphJSON",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Writer::Write",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "writeState",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "stateFromPages",
      "kind": "calls"
    },
    {
      "source": "Agent::Run",
      "target": "Result",
      "kind": "instantiates"
    },
    {
      "source": "Agent::Run",
      "target": "sortedKeys",
      "kind": "calls"
    },
    {
      "source": "Agent::loadGraph",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::loadGraph",
      "target": "FixtureProvider::Files",
      "kind": "calls"
    },
    {
      "source": "Agent::loadGraph",
      "target": "FixtureProvider::Nodes",
      "kind": "calls"
    },
    {
      "source": "Agent::loadGraph",
      "target": "Query",
      "kind": "instantiates"
    },
    {
      "source": "Agent::loadGraph",
      "target": "FixtureProvider::Edges",
      "kind": "calls"
    },
    {
      "source": "Agent::loadGraph",
      "target": "repoRelDir",
      "kind": "calls"
    },
    {
      "source": "Agent::loadGraph",
      "target": "graphData",
      "kind": "instantiates"
    },
    {
      "source": "graphData::Digest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "graphData::Digest",
      "target": "Digest",
      "kind": "instantiates"
    },
    {
      "source": "graphData::Digest",
      "target": "NodeDigest",
      "kind": "instantiates"
    },
    {
      "source": "graphData::Digest",
      "target": "EdgeDigest",
      "kind": "instantiates"
    },
    {
      "source": "Agent::plan",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::plan",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::plan",
      "target": "fitDigest",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "graphData::Digest",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "PlanRequest",
      "kind": "instantiates"
    },
    {
      "source": "Agent::plan",
      "target": "toolEnv::allTools",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "toolEnv",
      "kind": "instantiates"
    },
    {
      "source": "Agent::plan",
      "target": "toolsSection",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "PlanResponse",
      "kind": "instantiates"
    },
    {
      "source": "Agent::plan",
      "target": "extractJSONObject",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "jsonErrorContext",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "Agent::plan",
      "target": "Agent::rounds",
      "kind": "calls"
    },
    {
      "source": "Agent::draftAll",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::draftAll",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftAll",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::draftAll",
      "target": "Agent::draftOrStub",
      "kind": "calls"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "Agent::draftPage",
      "kind": "calls"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "draftStub",
      "kind": "calls"
    },
    {
      "source": "draftStub",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "draftStub",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "draftStub",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "draftStub",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "Issue",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "toolEnv::allTools",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "toolEnv",
      "kind": "instantiates"
    },
    {
      "source": "Agent::draftPage",
      "target": "DraftRequest",
      "kind": "instantiates"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::gatherSymbolTable",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::gatherRelations",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::warnOversizeDraft",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "Agent::draftPage",
      "target": "toolsSection",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "Agent::draftPage",
      "target": "stripCodeFence",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::rounds",
      "kind": "calls"
    },
    {
      "source": "Agent::gatherSymbolTable",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::gatherSymbolTable",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::gatherSymbolTable",
      "target": "NodeDigest",
      "kind": "references"
    },
    {
      "source": "Agent::gatherSymbolTable",
      "target": "NodeDigest",
      "kind": "instantiates"
    },
    {
      "source": "Agent::gatherRelations",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::gatherRelations",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::gatherRelations",
      "target": "EdgeDigest",
      "kind": "references"
    },
    {
      "source": "Agent::gatherRelations",
      "target": "EdgeDigest",
      "kind": "instantiates"
    },
    {
      "source": "symbolSet",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "buildGraphJSON",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "buildGraphJSON",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "buildGraphJSON",
      "target": "Graph",
      "kind": "references"
    },
    {
      "source": "buildGraphJSON",
      "target": "Graph",
      "kind": "instantiates"
    },
    {
      "source": "buildGraphJSON",
      "target": "GraphNode",
      "kind": "instantiates"
    },
    {
      "source": "buildGraphJSON",
      "target": "GraphEdge",
      "kind": "instantiates"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Report",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Reviewer",
      "kind": "instantiates"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "symbolSet",
      "kind": "calls"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Agent::check",
      "kind": "calls"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "PlanEntry",
      "kind": "instantiates"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Agent::draftPage",
      "kind": "calls"
    },
    {
      "source": "Agent::check",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::check",
      "target": "Reviewer",
      "kind": "references"
    },
    {
      "source": "Agent::check",
      "target": "Report",
      "kind": "references"
    },
    {
      "source": "Agent::check",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "Agent::check",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "Agent::check",
      "target": "findPage",
      "kind": "calls"
    },
    {
      "source": "Agent::check",
      "target": "Reviewer::Review",
      "kind": "calls"
    },
    {
      "source": "findPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "findPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "findPage",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "jsonErrorContext",
      "target": "truncate",
      "kind": "calls"
    },
    {
      "source": "New",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "Agent::Run",
      "target": "Agent::plan",
      "kind": "references"
    },
    {
      "source": "Agent::draftAll",
      "target": "Agent::plan",
      "kind": "references"
    },
    {
      "source": "Agent::draftOrStub",
      "target": "Agent::plan",
      "kind": "references"
    },
    {
      "source": "Agent::draftPage",
      "target": "Agent::plan",
      "kind": "references"
    },
    {
      "source": "Agent::verifyWithRetries",
      "target": "Agent::plan",
      "kind": "references"
    },
    {
      "source": "NewReferenceMock",
      "target": "MockClient",
      "kind": "references"
    },
    {
      "source": "NewReferenceMock",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "dispatch",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "dispatch",
      "target": "answerPlan",
      "kind": "calls"
    },
    {
      "source": "dispatch",
      "target": "answerDraft",
      "kind": "calls"
    },
    {
      "source": "answerPlan",
      "target": "PlanEntry",
      "kind": "instantiates"
    },
    {
      "source": "answerPlan",
      "target": "dirTitle",
      "kind": "calls"
    },
    {
      "source": "answerPlan",
      "target": "PlanEntry",
      "kind": "instantiates"
    },
    {
      "source": "answerPlan",
      "target": "PlanResponse",
      "kind": "instantiates"
    },
    {
      "source": "answerDraft",
      "target": "writeOverview",
      "kind": "calls"
    },
    {
      "source": "answerDraft",
      "target": "writeReference",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "DraftRequest",
      "kind": "references"
    },
    {
      "source": "writeReference",
      "target": "docSentences",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "symbolRoleSummary",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "englishList",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "quoteAll",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "firstCited",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "writeReference",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "writeOverview",
      "target": "DraftRequest",
      "kind": "references"
    },
    {
      "source": "writeOverview",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "writeOverview",
      "target": "WikiLink",
      "kind": "calls"
    },
    {
      "source": "writeOverview",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "docSentences",
      "target": "NodeDigest",
      "kind": "references"
    },
    {
      "source": "docSentences",
      "target": "ensurePeriod",
      "kind": "calls"
    },
    {
      "source": "docSentences",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "symbolRoleSummary",
      "target": "NodeDigest",
      "kind": "references"
    },
    {
      "source": "firstCited",
      "target": "NodeDigest",
      "kind": "references"
    },
    {
      "source": "firstCited",
      "target": "NodeDigest",
      "kind": "references"
    },
    {
      "source": "NewReferenceMock",
      "target": "dispatch",
      "kind": "references"
    },
    {
      "source": "digestSize",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "fitDigest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "fitDigest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "cloneDigest",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "clearDocstrings",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "clearSignatures",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "dropKinds",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "dropUnexported",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "dropKinds",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "fitDigest",
      "target": "dropKinds",
      "kind": "calls"
    },
    {
      "source": "cloneDigest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "cloneDigest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "cloneDigest",
      "target": "Digest",
      "kind": "instantiates"
    },
    {
      "source": "clearDocstrings",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "clearSignatures",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "dropKinds",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "dropKinds",
      "target": "dropDanglingEdges",
      "kind": "calls"
    },
    {
      "source": "dropUnexported",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "dropUnexported",
      "target": "isExportedName",
      "kind": "calls"
    },
    {
      "source": "dropUnexported",
      "target": "dropDanglingEdges",
      "kind": "calls"
    },
    {
      "source": "dropDanglingEdges",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "draftPromptSize",
      "target": "DraftRequest",
      "kind": "references"
    },
    {
      "source": "Agent::warnOversizeDraft",
      "target": "DraftRequest",
      "kind": "references"
    },
    {
      "source": "Agent::warnOversizeDraft",
      "target": "draftPromptSize",
      "kind": "calls"
    },
    {
      "source": "bigDigest",
      "target": "Digest",
      "kind": "references"
    },
    {
      "source": "bigDigest",
      "target": "Digest",
      "kind": "instantiates"
    },
    {
      "source": "bigDigest",
      "target": "NodeDigest",
      "kind": "instantiates"
    },
    {
      "source": "bigDigest",
      "target": "EdgeDigest",
      "kind": "instantiates"
    },
    {
      "source": "TestFitDigestNoopUnderBudget",
      "target": "bigDigest",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestNoopUnderBudget",
      "target": "fitDigest",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestNoopUnderBudget",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "bigDigest",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "fitDigest",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "fitDigest",
      "kind": "calls"
    },
    {
      "source": "TestFitDigestLadder",
      "target": "digestSize",
      "kind": "calls"
    },
    {
      "source": "TestIsExportedName",
      "target": "isExportedName",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "DraftRequest",
      "kind": "instantiates"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "PlanEntry",
      "kind": "instantiates"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "draftPromptSize",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "NewFixtureProvider",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "NewScriptedMock",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "draftPromptSize",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "Agent::warnOversizeDraft",
      "kind": "calls"
    },
    {
      "source": "TestDraftPromptSizeAndWarning",
      "target": "draftPromptSize",
      "kind": "calls"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestDumpPlanPrompt",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "_",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "pageTitles",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "pageTitles",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "TestVerificationRetry",
      "target": "NewFixtureProvider",
      "kind": "calls"
    },
    {
      "source": "TestVerificationRetry",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestVerificationRetry",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "TestVerificationRetry",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestVerificationRetry",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestVerificationRetry",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestVerificationRetry",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "copyFixtureRepo",
      "target": "gitCommit",
      "kind": "calls"
    },
    {
      "source": "draftScopes",
      "target": "MockClient",
      "kind": "references"
    },
    {
      "source": "draftScopes",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "copyFixtureRepo",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "gitOutputHead",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "gitCommit",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "containsStr",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "containsStr",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "containsStr",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "gitCommit",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "containsStr",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "draftScopes",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "copyFixtureRepo",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "gitOutputHead",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "NewReferenceMock",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "containsStr",
      "kind": "calls"
    },
    {
      "source": "TestEndToEndFixtureRepo",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "TestVerificationRetry",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "TestIncrementalBuild",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "TestIncrementalRedraftsFailedPages",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "graphScopes",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "computeAffected",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "computeAffected",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "computeAffected",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "computeAffected",
      "target": "graphScopes",
      "kind": "calls"
    },
    {
      "source": "computeAffected",
      "target": "symbolSet",
      "kind": "calls"
    },
    {
      "source": "computeAffected",
      "target": "citedFiles",
      "kind": "calls"
    },
    {
      "source": "computeAffected",
      "target": "scopeContains",
      "kind": "calls"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "computeAffected",
      "kind": "calls"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "Agent::draftOrStub",
      "kind": "calls"
    },
    {
      "source": "Agent::draftIncremental",
      "target": "Agent::cascadeSlugChanges",
      "kind": "calls"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "PlanEntry",
      "kind": "references"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "ExtractWikiLinks",
      "kind": "calls"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "PlanEntry",
      "kind": "instantiates"
    },
    {
      "source": "Agent::cascadeSlugChanges",
      "target": "Agent::draftPage",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "toolDefs",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Usage::Add",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Agent::runToolCall",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolLoop",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "toolNames",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "Agent::runToolCall",
      "target": "ToolCall",
      "kind": "references"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "CaptureContent",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "toolNames",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "Agent::runToolCall",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "recordingTool::tool",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "recordingTool::tool",
      "target": "Tool",
      "kind": "instantiates"
    },
    {
      "source": "chatOnlyClient::Chat",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "newLoopAgent",
      "target": "Client",
      "kind": "references"
    },
    {
      "source": "newLoopAgent",
      "target": "Agent",
      "kind": "references"
    },
    {
      "source": "newLoopAgent",
      "target": "New",
      "kind": "calls"
    },
    {
      "source": "newLoopAgent",
      "target": "Config",
      "kind": "instantiates"
    },
    {
      "source": "newLoopAgent",
      "target": "NewFixtureProvider",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "chatOnlyClient",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopRequiresToolClient",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "toolMock::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "toolMock::ChatTools",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "toolMock::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "toolMock::ChatTools",
      "target": "toolReq",
      "kind": "instantiates"
    },
    {
      "source": "toolMock::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNative",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNative",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNative",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNative",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNative",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNudgesEmptyReply",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNudgesEmptyReply",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNudgesEmptyReply",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopNativeRetriesFinalAnswer",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopRoundCap",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRejectsInvalidAnswer",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopRejectsInvalidAnswer",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRejectsInvalidAnswer",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRejectsInvalidAnswer",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopRejectsInvalidAnswer",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestToolDefsAreSchemas",
      "target": "toolDefs",
      "kind": "calls"
    },
    {
      "source": "TestToolDefsAreSchemas",
      "target": "toolEnv::allTools",
      "kind": "calls"
    },
    {
      "source": "TestToolDefsAreSchemas",
      "target": "toolEnv",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "toolMock",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "Usage",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "Usage",
      "kind": "instantiates"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "newLoopAgent",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "Agent::runToolLoop",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "recordingTool::tool",
      "kind": "calls"
    },
    {
      "source": "TestRunToolLoopSpans",
      "target": "recordingTool",
      "kind": "instantiates"
    },
    {
      "source": "TestJSONErrorContext",
      "target": "jsonErrorContext",
      "kind": "calls"
    },
    {
      "source": "LoadState",
      "target": "State",
      "kind": "references"
    },
    {
      "source": "writeState",
      "target": "State",
      "kind": "references"
    },
    {
      "source": "loadPreviousPages",
      "target": "State",
      "kind": "references"
    },
    {
      "source": "loadPreviousPages",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "loadPreviousPages",
      "target": "ParsePage",
      "kind": "calls"
    },
    {
      "source": "loadPreviousPages",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "loadPreviousPages",
      "target": "stripGeneratedFooter",
      "kind": "calls"
    },
    {
      "source": "citedFiles",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "citedFiles",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "stateFromPages",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "stateFromPages",
      "target": "Report",
      "kind": "references"
    },
    {
      "source": "stateFromPages",
      "target": "State",
      "kind": "references"
    },
    {
      "source": "stateFromPages",
      "target": "State",
      "kind": "instantiates"
    },
    {
      "source": "stateFromPages",
      "target": "Report::Summaries",
      "kind": "calls"
    },
    {
      "source": "stateFromPages",
      "target": "PageState",
      "kind": "instantiates"
    },
    {
      "source": "stateFromPages",
      "target": "citedFiles",
      "kind": "calls"
    },
    {
      "source": "toolEnv::allTools",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "toolEnv::searchSymbols",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "toolEnv::searchSymbols",
      "target": "firstLine",
      "kind": "calls"
    },
    {
      "source": "toolEnv::searchSymbols",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolEnv::exploreArea",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolEnv::exploreArea",
      "target": "toolEnv::describeNode",
      "kind": "calls"
    },
    {
      "source": "toolEnv::exploreArea",
      "target": "toolEnv::describeNode",
      "kind": "calls"
    },
    {
      "source": "toolEnv::exploreArea",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolEnv::describeNode",
      "target": "Node",
      "kind": "references"
    },
    {
      "source": "toolEnv::readSource",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolEnv::listFiles",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolEnv::symbolNeighbors",
      "target": "capResult",
      "kind": "calls"
    },
    {
      "source": "toolDefs",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "toolDefs",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "toolDefs",
      "target": "ToolDef",
      "kind": "instantiates"
    },
    {
      "source": "toolsSection",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "cannedGraph",
      "target": "graphData",
      "kind": "references"
    },
    {
      "source": "cannedGraph",
      "target": "graphData",
      "kind": "instantiates"
    },
    {
      "source": "testEnv",
      "target": "toolEnv",
      "kind": "references"
    },
    {
      "source": "testEnv",
      "target": "toolEnv",
      "kind": "instantiates"
    },
    {
      "source": "testEnv",
      "target": "cannedGraph",
      "kind": "calls"
    },
    {
      "source": "runTool",
      "target": "toolEnv",
      "kind": "references"
    },
    {
      "source": "runTool",
      "target": "toolByName",
      "kind": "calls"
    },
    {
      "source": "runTool",
      "target": "toolEnv::allTools",
      "kind": "calls"
    },
    {
      "source": "runTool",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "runToolErr",
      "target": "toolEnv",
      "kind": "references"
    },
    {
      "source": "runToolErr",
      "target": "toolByName",
      "kind": "calls"
    },
    {
      "source": "runToolErr",
      "target": "toolEnv::allTools",
      "kind": "calls"
    },
    {
      "source": "runToolErr",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "toolByName",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "toolByName",
      "target": "Tool",
      "kind": "references"
    },
    {
      "source": "toolByName",
      "target": "Tool",
      "kind": "instantiates"
    },
    {
      "source": "TestSearchSymbols",
      "target": "testEnv",
      "kind": "calls"
    },
    {
      "source": "TestSearchSymbols",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestSearchSymbols",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestSearchSymbols",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestSearchSymbols",
      "target": "runToolErr",
      "kind": "calls"
    },
    {
      "source": "TestExploreArea",
      "target": "testEnv",
      "kind": "calls"
    },
    {
      "source": "TestExploreArea",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestExploreArea",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestExploreArea",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestSymbolNeighbors",
      "target": "testEnv",
      "kind": "calls"
    },
    {
      "source": "TestSymbolNeighbors",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestSymbolNeighbors",
      "target": "runToolErr",
      "kind": "calls"
    },
    {
      "source": "TestSymbolNeighbors",
      "target": "runToolErr",
      "kind": "calls"
    },
    {
      "source": "TestReadSourceTool",
      "target": "testEnv",
      "kind": "calls"
    },
    {
      "source": "TestReadSourceTool",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestReadSourceTool",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "TestReadSourceTool",
      "target": "runToolErr",
      "kind": "calls"
    },
    {
      "source": "TestListFilesTool",
      "target": "testEnv",
      "kind": "calls"
    },
    {
      "source": "TestListFilesTool",
      "target": "runTool",
      "kind": "calls"
    },
    {
      "source": "testEnv",
      "target": "ReadSource",
      "kind": "references"
    },
    {
      "source": "NewFixtureProvider",
      "target": "File",
      "kind": "references"
    },
    {
      "source": "NewFixtureProvider",
      "target": "Node",
      "kind": "references"
    },
    {
      "source": "NewFixtureProvider",
      "target": "Edge",
      "kind": "references"
    },
    {
      "source": "NewFixtureProvider",
      "target": "FixtureProvider",
      "kind": "references"
    },
    {
      "source": "NewFixtureProvider",
      "target": "FixtureProvider",
      "kind": "instantiates"
    },
    {
      "source": "FixtureProvider::Files",
      "target": "File",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::Nodes",
      "target": "Query",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::Nodes",
      "target": "Node",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::Edges",
      "target": "Edge",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::Stats",
      "target": "Stats",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::Stats",
      "target": "Stats",
      "kind": "instantiates"
    },
    {
      "source": "FixtureProvider::NodeByID",
      "target": "Node",
      "kind": "references"
    },
    {
      "source": "FixtureProvider::NodeByID",
      "target": "Node",
      "kind": "instantiates"
    },
    {
      "source": "HasIndex",
      "target": "DBPath",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Open",
      "target": "DBPath",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Open",
      "target": "SQLiteProvider::log",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Open",
      "target": "SQLiteProvider::runCodegraph",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Open",
      "target": "SQLiteProvider::runCodegraph",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Open",
      "target": "SQLiteProvider::log",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::runCodegraph",
      "target": "SQLiteProvider::bin",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::runCodegraph",
      "target": "SQLiteProvider::bin",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::runCodegraph",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::runCodegraph",
      "target": "SQLiteProvider::log",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::runCodegraph",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "SQLiteProvider::Files",
      "target": "File",
      "kind": "references"
    },
    {
      "source": "SQLiteProvider::Nodes",
      "target": "Query",
      "kind": "references"
    },
    {
      "source": "SQLiteProvider::Nodes",
      "target": "Node",
      "kind": "references"
    },
    {
      "source": "SQLiteProvider::Edges",
      "target": "Edge",
      "kind": "references"
    },
    {
      "source": "SQLiteProvider::Stats",
      "target": "Stats",
      "kind": "references"
    },
    {
      "source": "openFixtureIndex",
      "target": "SQLiteProvider",
      "kind": "references"
    },
    {
      "source": "openFixtureIndex",
      "target": "HasIndex",
      "kind": "calls"
    },
    {
      "source": "openFixtureIndex",
      "target": "SQLiteProvider",
      "kind": "instantiates"
    },
    {
      "source": "openFixtureIndex",
      "target": "SQLiteProvider::Open",
      "kind": "calls"
    },
    {
      "source": "openFixtureIndex",
      "target": "SQLiteProvider::Close",
      "kind": "calls"
    },
    {
      "source": "TestSQLiteProviderReadsIndex",
      "target": "openFixtureIndex",
      "kind": "calls"
    },
    {
      "source": "TestSQLiteProviderReadsIndex",
      "target": "Query",
      "kind": "instantiates"
    },
    {
      "source": "TestSQLiteProviderReadsIndex",
      "target": "Query",
      "kind": "instantiates"
    },
    {
      "source": "TestReadSource",
      "target": "ReadSource",
      "kind": "calls"
    },
    {
      "source": "TestReadSource",
      "target": "ReadSource",
      "kind": "calls"
    },
    {
      "source": "Usage::Add",
      "target": "Usage",
      "kind": "references"
    },
    {
      "source": "TestOpenAIClientChat",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientErrors",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientErrors",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestMockClient",
      "target": "NewScriptedMock",
      "kind": "calls"
    },
    {
      "source": "TestMockClient",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestMockClient",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestMockClient",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestMockClientChatTools",
      "target": "NewScriptedMock",
      "kind": "calls"
    },
    {
      "source": "TestMockClientChatTools",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "TestMockClientChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "TestMockClientChatTools",
      "target": "MockClient::ChatTools",
      "kind": "calls"
    },
    {
      "source": "TestMockClientChatTools",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientChatSpan",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientChatTools",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientChatTools",
      "target": "OpenAIClient::Usage",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientRetries",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientRetries",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "TestOpenAIClientChatToolsEmptyReply",
      "target": "NewOpenAIClient",
      "kind": "calls"
    },
    {
      "source": "NewScriptedMock",
      "target": "MockClient",
      "kind": "references"
    },
    {
      "source": "NewScriptedMock",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "MockClient::Chat",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "MockClient::Chat",
      "target": "MockClient::record",
      "kind": "calls"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "MockClient::record",
      "kind": "calls"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "MockClient::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "MockClient::record",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "MockClient::Calls",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "NewOpenAIClient",
      "target": "OpenAIClient",
      "kind": "references"
    },
    {
      "source": "NewOpenAIClient",
      "target": "OpenAIClient",
      "kind": "instantiates"
    },
    {
      "source": "toWire",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "toWire",
      "target": "wireMessage",
      "kind": "references"
    },
    {
      "source": "toWire",
      "target": "wireMessage",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::Chat",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::Chat",
      "target": "OpenAIClient::complete",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::Chat",
      "target": "chatRequest",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::Chat",
      "target": "toWire",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "ToolDef",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "chatRequest",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "toWire",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "OpenAIClient::complete",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::ChatTools",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::Usage",
      "target": "Usage",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "chatRequest",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "CaptureContent",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "OpenAIClient::post",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "errorType",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "RecordOperationDuration",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Usage",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Usage::Add",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "RecordTokenUsage",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "RecordTokenUsage",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "RecordOperationDuration",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Message",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "ToolCall",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "CaptureContent",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "toWire",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::complete",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::post",
      "target": "chatResponse",
      "kind": "references"
    },
    {
      "source": "OpenAIClient::post",
      "target": "errTransient",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::post",
      "target": "errTransient",
      "kind": "instantiates"
    },
    {
      "source": "OpenAIClient::post",
      "target": "truncate",
      "kind": "calls"
    },
    {
      "source": "OpenAIClient::post",
      "target": "errTransient",
      "kind": "instantiates"
    },
    {
      "source": "NewLogger",
      "target": "minLevel",
      "kind": "instantiates"
    },
    {
      "source": "minLevel::WithAttrs",
      "target": "minLevel",
      "kind": "instantiates"
    },
    {
      "source": "minLevel::WithGroup",
      "target": "minLevel",
      "kind": "instantiates"
    },
    {
      "source": "TestNewLogger",
      "target": "NewLogger",
      "kind": "calls"
    },
    {
      "source": "TestNewLogger",
      "target": "recordHandler",
      "kind": "instantiates"
    },
    {
      "source": "TestNewLogger",
      "target": "NewLogger",
      "kind": "calls"
    },
    {
      "source": "TestParseLevel",
      "target": "ParseLevel",
      "kind": "calls"
    },
    {
      "source": "TestParseLevel",
      "target": "ParseLevel",
      "kind": "calls"
    },
    {
      "source": "RecordOperationDuration",
      "target": "errorType",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "parseConfig",
      "target": "config",
      "kind": "instantiates"
    },
    {
      "source": "parseConfig",
      "target": "firstNonEmpty",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "firstNonEmpty",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "firstNonEmpty",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "firstNonEmpty",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "parseHeaders",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "resolveExporter",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "resolveExporter",
      "kind": "calls"
    },
    {
      "source": "parseConfig",
      "target": "resolveExporter",
      "kind": "calls"
    },
    {
      "source": "Setup",
      "target": "Providers",
      "kind": "references"
    },
    {
      "source": "Setup",
      "target": "parseConfig",
      "kind": "calls"
    },
    {
      "source": "Setup",
      "target": "firstNonEmpty",
      "kind": "calls"
    },
    {
      "source": "Setup",
      "target": "Providers",
      "kind": "instantiates"
    },
    {
      "source": "Setup",
      "target": "tracesProvider",
      "kind": "calls"
    },
    {
      "source": "Setup",
      "target": "Providers::setupMetrics",
      "kind": "calls"
    },
    {
      "source": "Setup",
      "target": "Providers::setupLogs",
      "kind": "calls"
    },
    {
      "source": "tracesProvider",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "tracesProvider",
      "target": "httpTraceOptions",
      "kind": "calls"
    },
    {
      "source": "tracesProvider",
      "target": "grpcTraceOptions",
      "kind": "calls"
    },
    {
      "source": "Providers::setupMetrics",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "Providers::setupMetrics",
      "target": "httpMetricOptions",
      "kind": "calls"
    },
    {
      "source": "Providers::setupMetrics",
      "target": "grpcMetricOptions",
      "kind": "calls"
    },
    {
      "source": "Providers::setupMetrics",
      "target": "Providers::Shutdown",
      "kind": "calls"
    },
    {
      "source": "Providers::setupLogs",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "Providers::setupLogs",
      "target": "httpLogOptions",
      "kind": "calls"
    },
    {
      "source": "Providers::setupLogs",
      "target": "grpcLogOptions",
      "kind": "calls"
    },
    {
      "source": "Providers::setupLogs",
      "target": "Providers::Shutdown",
      "kind": "calls"
    },
    {
      "source": "grpcTraceOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "grpcTraceOptions",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "httpTraceOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "grpcMetricOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "grpcMetricOptions",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "httpMetricOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "grpcLogOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "grpcLogOptions",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "httpLogOptions",
      "target": "config",
      "kind": "references"
    },
    {
      "source": "TestParseConfigDefaultsToOff",
      "target": "parseConfig",
      "kind": "calls"
    },
    {
      "source": "TestParseConfigEndpointImpliesOTLP",
      "target": "parseConfig",
      "kind": "calls"
    },
    {
      "source": "TestParseConfigExplicitExporters",
      "target": "parseConfig",
      "kind": "calls"
    },
    {
      "source": "TestParseConfigUnknownValuesAreOff",
      "target": "parseConfig",
      "kind": "calls"
    },
    {
      "source": "TestParseConfigUnknownValuesAreOff",
      "target": "tracesProvider",
      "kind": "calls"
    },
    {
      "source": "TestEndpointParts",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "TestEndpointParts",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "TestEndpointParts",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "TestEndpointParts",
      "target": "endpointParts",
      "kind": "calls"
    },
    {
      "source": "TestSetupStdoutSmoke",
      "target": "Setup",
      "kind": "calls"
    },
    {
      "source": "TestSetupStdoutSmoke",
      "target": "Providers::Shutdown",
      "kind": "calls"
    },
    {
      "source": "Report::Summaries",
      "target": "VerificationSummary",
      "kind": "references"
    },
    {
      "source": "Report::Summaries",
      "target": "VerificationSummary",
      "kind": "instantiates"
    },
    {
      "source": "Checker::CheckAll",
      "target": "Report",
      "kind": "references"
    },
    {
      "source": "Checker::CheckAll",
      "target": "Report",
      "kind": "instantiates"
    },
    {
      "source": "Checker::CheckAll",
      "target": "Checker::checkPage",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Checker::checkPage",
      "target": "PageResult",
      "kind": "references"
    },
    {
      "source": "Checker::checkPage",
      "target": "PageResult",
      "kind": "instantiates"
    },
    {
      "source": "Checker::checkPage",
      "target": "Issue",
      "kind": "instantiates"
    },
    {
      "source": "Checker::checkPage",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "Checker::checkCitation",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "ExtractAllLinks",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "isWikiLink",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "ExtractWikiLinks",
      "kind": "calls"
    },
    {
      "source": "Checker::checkPage",
      "target": "Checker::checkMermaid",
      "kind": "calls"
    },
    {
      "source": "Checker::checkCitation",
      "target": "Citation",
      "kind": "references"
    },
    {
      "source": "Checker::checkCitation",
      "target": "Checker::containmentRequired",
      "kind": "calls"
    },
    {
      "source": "Checker::checkCitation",
      "target": "mentionsSymbol",
      "kind": "calls"
    },
    {
      "source": "Checker::containmentRequired",
      "target": "lastLabelSegment",
      "kind": "calls"
    },
    {
      "source": "mentionsSymbol",
      "target": "lastLabelSegment",
      "kind": "calls"
    },
    {
      "source": "Checker::checkMermaid",
      "target": "ExtractMermaidBlocks",
      "kind": "calls"
    },
    {
      "source": "Checker::checkMermaid",
      "target": "looksLikeFile",
      "kind": "calls"
    },
    {
      "source": "Reviewer::Review",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Reviewer::Review",
      "target": "ReviewVerdict",
      "kind": "references"
    },
    {
      "source": "Reviewer::Review",
      "target": "Issue",
      "kind": "references"
    },
    {
      "source": "Reviewer::Review",
      "target": "Reviewer::buildPrompt",
      "kind": "calls"
    },
    {
      "source": "Reviewer::Review",
      "target": "Client::Chat",
      "kind": "calls"
    },
    {
      "source": "Reviewer::Review",
      "target": "extractJSON",
      "kind": "calls"
    },
    {
      "source": "Reviewer::Review",
      "target": "truncateStr",
      "kind": "calls"
    },
    {
      "source": "Reviewer::Review",
      "target": "Issue",
      "kind": "instantiates"
    },
    {
      "source": "Reviewer::Review",
      "target": "Issue",
      "kind": "instantiates"
    },
    {
      "source": "Reviewer::buildPrompt",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Reviewer::buildPrompt",
      "target": "Page::Markdown",
      "kind": "calls"
    },
    {
      "source": "Reviewer::buildPrompt",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "mkPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "mkPage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "mkPage",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "goodStorePage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "goodStorePage",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "goodStorePage",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "checkOne",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "checkOne",
      "target": "PageResult",
      "kind": "references"
    },
    {
      "source": "checkOne",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "checkOne",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "issueKinds",
      "target": "PageResult",
      "kind": "references"
    },
    {
      "source": "TestCheckerAcceptsGoodPage",
      "target": "checkOne",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAcceptsGoodPage",
      "target": "goodStorePage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "checkOne",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsBadCitations",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "checkOne",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "checkOne",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "goodStorePage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "checkTwo",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesWikiLinksAndOverview",
      "target": "goodStorePage",
      "kind": "calls"
    },
    {
      "source": "checkTwo",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "checkTwo",
      "target": "PageResult",
      "kind": "references"
    },
    {
      "source": "checkTwo",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "checkTwo",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "TestReportHelpers",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "TestReportHelpers",
      "target": "goodStorePage",
      "kind": "calls"
    },
    {
      "source": "TestReportHelpers",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "TestReportHelpers",
      "target": "Report::AllPassed",
      "kind": "calls"
    },
    {
      "source": "TestReportHelpers",
      "target": "Report::Summaries",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "goodStorePage",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "ReadSource",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "TestReviewer",
      "target": "Reviewer",
      "kind": "instantiates"
    },
    {
      "source": "TestReviewer",
      "target": "Reviewer::Review",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "MockClient",
      "kind": "instantiates"
    },
    {
      "source": "TestReviewer",
      "target": "Reviewer",
      "kind": "instantiates"
    },
    {
      "source": "TestReviewer",
      "target": "Reviewer::Review",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestReviewer",
      "target": "MockClient::Calls",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerValidatesMermaid",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "checkOneWithSymbols",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "checkOneWithSymbols",
      "target": "PageResult",
      "kind": "references"
    },
    {
      "source": "checkOneWithSymbols",
      "target": "Checker",
      "kind": "instantiates"
    },
    {
      "source": "checkOneWithSymbols",
      "target": "Checker::CheckAll",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsInvertedRanges",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsInvertedRanges",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerRejectsInvertedRanges",
      "target": "checkOne",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsInvertedRanges",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerRejectsInvertedRanges",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "mkPage",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "checkOneWithSymbols",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "hasKind",
      "kind": "calls"
    },
    {
      "source": "TestCheckerAllowsDescriptiveLabels",
      "target": "issueKinds",
      "kind": "calls"
    },
    {
      "source": "sourceTemplate",
      "target": "VersionInfo",
      "kind": "references"
    },
    {
      "source": "Writer::Write",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "Writer::Write",
      "target": "SortPages",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "sourceTemplate",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "Page::Markdown",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "rewriteSourceLinks",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "versionFooterMD",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "renderPageHTML",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "copyFile",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "writeAssets",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "renderIndexHTML",
      "kind": "calls"
    },
    {
      "source": "Writer::Write",
      "target": "Writer::writeManifests",
      "kind": "calls"
    },
    {
      "source": "rewriteSourceLinks",
      "target": "rewriteDest",
      "kind": "calls"
    },
    {
      "source": "versionFooterMD",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "versionFooterMD",
      "target": "commitURL",
      "kind": "calls"
    },
    {
      "source": "commitURL",
      "target": "VersionInfo",
      "kind": "references"
    },
    {
      "source": "Writer::writeManifests",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "Writer::writeManifests",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "Writer::writeManifests",
      "target": "indexManifest",
      "kind": "instantiates"
    },
    {
      "source": "Writer::writeManifests",
      "target": "pageEntry",
      "kind": "instantiates"
    },
    {
      "source": "Writer::writeManifests",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "Writer::writeManifests",
      "target": "statusOf",
      "kind": "calls"
    },
    {
      "source": "Writer::writeManifests",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "Writer::writeManifests",
      "target": "statusOf",
      "kind": "calls"
    },
    {
      "source": "statusOf",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "TokensCSS",
      "target": "themedToken::value",
      "kind": "calls"
    },
    {
      "source": "icon",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "icon",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "panZoom::zoomAt",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::zoomAt",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::zoomAt",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::zoomAt",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::zoomAt",
      "kind": "calls"
    },
    {
      "source": "panZoom",
      "target": "panZoom::apply",
      "kind": "calls"
    },
    {
      "source": "viewerButton",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "viewerButton",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "fullscreenToggle::esc",
      "target": "fullscreenToggle::close",
      "kind": "calls"
    },
    {
      "source": "fullscreenToggle",
      "target": "fullscreenToggle::close",
      "kind": "calls"
    },
    {
      "source": "fullscreenToggle",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "store",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "store",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "sync",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "sync",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fill",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fill",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fill",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fill",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "draw",
      "kind": "calls"
    },
    {
      "source": "go",
      "target": "close",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "shown",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "go",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "draw",
      "target": "relTime",
      "kind": "calls"
    },
    {
      "source": "open",
      "target": "draw",
      "kind": "calls"
    },
    {
      "source": "outside",
      "target": "close",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "open",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "close",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "draw",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shown",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "close",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "draw",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "draw",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "go",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shortSha",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "spy",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "spy",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "set",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "copyText",
      "target": "copyText::done",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "copyText",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "mermaidTheme",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "panZoom",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "copyText",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fullscreenToggle",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "mermaidTheme",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "cssVar",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "render",
      "kind": "calls"
    },
    {
      "source": "shapeSvg",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "shapeSvg",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "layout",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "panZoom",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "viewerButton",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "shapeSvg",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "fullscreenToggle",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "kIndex",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "s",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "focusOn",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "focusOn",
      "kind": "calls"
    },
    {
      "source": "focusOn",
      "target": "neighbours",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "kIndex",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "shapeSvg",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "shapeSvg",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "kIndex",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "drawPanel",
      "target": "h",
      "kind": "calls"
    },
    {
      "source": "select",
      "target": "focusOn",
      "kind": "calls"
    },
    {
      "source": "select",
      "target": "drawPanel",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "focusOn",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "focusOn",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "drawPanel",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "fullscreenToggle::close",
      "target": "fullscreenToggle::esc",
      "kind": "references"
    },
    {
      "source": "fullscreenToggle",
      "target": "fullscreenToggle::close",
      "kind": "references"
    },
    {
      "source": "fullscreenToggle",
      "target": "fullscreenToggle::esc",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "f",
      "kind": "references"
    },
    {
      "source": "open",
      "target": "outside",
      "kind": "references"
    },
    {
      "source": "close",
      "target": "outside",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "open",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "close",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "spy",
      "kind": "references"
    },
    {
      "source": "copyText",
      "target": "copyText::done",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "select",
      "kind": "references"
    },
    {
      "source": "internal/wiki/design/bundle.js",
      "target": "icon",
      "kind": "references"
    },
    {
      "source": "VersionSelectorProps::onSelect",
      "target": "Version",
      "kind": "references"
    },
    {
      "source": "GraphViewerProps::onSelect",
      "target": "GraphNode",
      "kind": "references"
    },
    {
      "source": "TestTokensCSSUpToDate",
      "target": "TokensCSS",
      "kind": "calls"
    },
    {
      "source": "verifyIcon",
      "target": "iconHTML",
      "kind": "calls"
    },
    {
      "source": "verifyIcon",
      "target": "iconHTML",
      "kind": "calls"
    },
    {
      "source": "verifyIcon",
      "target": "iconHTML",
      "kind": "calls"
    },
    {
      "source": "pagesByType",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "pagesByType",
      "target": "typeGroup",
      "kind": "references"
    },
    {
      "source": "pagesByType",
      "target": "typeGroup",
      "kind": "instantiates"
    },
    {
      "source": "pagesByType",
      "target": "typeLabel",
      "kind": "calls"
    },
    {
      "source": "navGroups",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "navGroups",
      "target": "navGroup",
      "kind": "references"
    },
    {
      "source": "navGroups",
      "target": "pagesByType",
      "kind": "calls"
    },
    {
      "source": "navGroups",
      "target": "navGroup",
      "kind": "instantiates"
    },
    {
      "source": "navGroups",
      "target": "navItem",
      "kind": "instantiates"
    },
    {
      "source": "navGroups",
      "target": "navGroup",
      "kind": "instantiates"
    },
    {
      "source": "navGroups",
      "target": "navItem",
      "kind": "instantiates"
    },
    {
      "source": "navGroups",
      "target": "navItem",
      "kind": "instantiates"
    },
    {
      "source": "shell::ShortCommit",
      "target": "shortSHA",
      "kind": "calls"
    },
    {
      "source": "newShell",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "newShell",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "newShell",
      "target": "shell",
      "kind": "references"
    },
    {
      "source": "newShell",
      "target": "shell",
      "kind": "instantiates"
    },
    {
      "source": "newShell",
      "target": "navGroups",
      "kind": "calls"
    },
    {
      "source": "newShell",
      "target": "shortSHA",
      "kind": "calls"
    },
    {
      "source": "designBody",
      "target": "tocEntry",
      "kind": "references"
    },
    {
      "source": "designBody",
      "target": "tocEntry",
      "kind": "instantiates"
    },
    {
      "source": "pageSources",
      "target": "sourceFile",
      "kind": "references"
    },
    {
      "source": "pageSources",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "pageSources",
      "target": "rewriteDest",
      "kind": "calls"
    },
    {
      "source": "pageSources",
      "target": "sourceFile",
      "kind": "instantiates"
    },
    {
      "source": "renderPageHTML",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "renderPageHTML",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "renderPageHTML",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "renderPageHTML",
      "target": "rewriteSourceLinks",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "rewriteWikiLinksForHTML",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "versionFooterMD",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "designBody",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "execTemplate",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "statusOf",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "pageSources",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "newShell",
      "kind": "calls"
    },
    {
      "source": "renderPageHTML",
      "target": "execTemplate",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "renderIndexHTML",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "renderIndexHTML",
      "target": "pagesByType",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "ExtractCitations",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "statusOf",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "tocEntry",
      "kind": "instantiates"
    },
    {
      "source": "renderIndexHTML",
      "target": "shortSHA",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "execTemplate",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "newShell",
      "kind": "calls"
    },
    {
      "source": "renderIndexHTML",
      "target": "execTemplate",
      "kind": "calls"
    },
    {
      "source": "funcs",
      "target": "iconHTML",
      "kind": "references"
    },
    {
      "source": "funcs",
      "target": "verifyIcon",
      "kind": "references"
    },
    {
      "source": "internal/wiki/html.go",
      "target": "iconHTML",
      "kind": "references"
    },
    {
      "source": "internal/wiki/html.go",
      "target": "verifyIcon",
      "kind": "references"
    },
    {
      "source": "Page::Normalize",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "Page::Markdown",
      "target": "frontmatter",
      "kind": "instantiates"
    },
    {
      "source": "ParsePage",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "ExtractCitations",
      "target": "Citation",
      "kind": "references"
    },
    {
      "source": "ExtractCitations",
      "target": "Citation",
      "kind": "instantiates"
    },
    {
      "source": "SortPages",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "IndexSearch",
      "target": "Agent::Run",
      "kind": "calls"
    },
    {
      "source": "IndexSearch",
      "target": "Truncate",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/search/search.js",
      "target": "enable",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "run",
      "kind": "calls"
    },
    {
      "source": "open",
      "target": "build",
      "kind": "calls"
    },
    {
      "source": "open",
      "target": "load",
      "kind": "calls"
    },
    {
      "source": "enable",
      "target": "open",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "render",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "load",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "render",
      "kind": "calls"
    },
    {
      "source": "run",
      "target": "render",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "el",
      "kind": "calls"
    },
    {
      "source": "build",
      "target": "onKey",
      "kind": "references"
    },
    {
      "source": "enable",
      "target": "open",
      "kind": "references"
    },
    {
      "source": "TestParseSearchMode",
      "target": "ParseSearchMode",
      "kind": "calls"
    },
    {
      "source": "TestParseSearchMode",
      "target": "ParseSearchMode",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchMissingBinary",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchMissingBinary",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchMissingBinary",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchReplacesStaleIndex",
      "target": "fakePagefind",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchReplacesStaleIndex",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchNoPages",
      "target": "fakePagefind",
      "kind": "calls"
    },
    {
      "source": "TestIndexSearchNoPages",
      "target": "IndexSearch",
      "kind": "calls"
    },
    {
      "source": "get",
      "target": "url",
      "kind": "calls"
    },
    {
      "source": "optional",
      "target": "get",
      "kind": "calls"
    },
    {
      "source": "index",
      "target": "get",
      "kind": "calls"
    },
    {
      "source": "graph",
      "target": "get",
      "kind": "calls"
    },
    {
      "source": "page",
      "target": "get",
      "kind": "calls"
    },
    {
      "source": "allPages",
      "target": "index",
      "kind": "calls"
    },
    {
      "source": "allPages",
      "target": "page",
      "kind": "calls"
    },
    {
      "source": "sourceLink",
      "target": "url",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "index",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "optional",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "page",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "terms",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "clamp",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "allPages",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "clamp",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "graph",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "graph",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "index",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "sourceLink",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "index",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "clamp",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "clamp",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "sourceLink",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "get",
      "kind": "calls"
    },
    {
      "source": "registerSpec",
      "target": "WebMCP::registerTool",
      "kind": "calls"
    },
    {
      "source": "registerWidget",
      "target": "WebMCP::registerTool",
      "kind": "calls"
    },
    {
      "source": "init",
      "target": "registerSpec",
      "kind": "calls"
    },
    {
      "source": "init",
      "target": "registerWidget",
      "kind": "calls"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "init",
      "kind": "calls"
    },
    {
      "source": "registerSpec",
      "target": "text",
      "kind": "references"
    },
    {
      "source": "registerWidget",
      "target": "text",
      "kind": "references"
    },
    {
      "source": "internal/wiki/webmcp/astrolabe-mcp.js",
      "target": "init",
      "kind": "references"
    },
    {
      "source": "WebMCP::constructor",
      "target": "WebMCP::_init",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_init",
      "target": "WebMCP::_createWidget",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_init",
      "target": "WebMCP::_setupEventListeners",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_init",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_init",
      "target": "WebMCP::_checkStoredToken",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_checkStoredToken",
      "target": "WebMCP::_format",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_checkStoredToken",
      "target": "WebMCP::_loadStoredItems",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_checkStoredToken",
      "target": "WebMCP::connect",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_checkStoredToken",
      "target": "WebMCP::_clearStoredItems",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_loadStoredItems",
      "target": "WebMCP::_updateToolsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_loadStoredItems",
      "target": "WebMCP::_updatePromptsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_loadStoredItems",
      "target": "WebMCP::_updateResourcesList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_loadStoredItems",
      "target": "WebMCP::_clearStoredItems",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_createWidget",
      "target": "WebMCP::_setWidgetPosition",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_createWidget",
      "target": "WebMCP::_createConnectionForm",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_toggleExpanded",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_toggleExpanded",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::connect",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::disconnect",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupEventListeners",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_toggleExpanded",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_resetInactivityTimer",
      "target": "WebMCP::_handleInactivity",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleInactivity",
      "target": "WebMCP::disconnect",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleInactivity",
      "target": "WebMCP::_toggleExpanded",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_processConnectionToken",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_format",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_format",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_registerWithServer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_setupSocketListeners",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_resetInactivityTimer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::connect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::disconnect",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::disconnect",
      "target": "WebMCP::_updateConnectionUI",
      "kind": "calls"
    },
    {
      "source": "WebMCP::disconnect",
      "target": "WebMCP::_clearStoredItems",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_processConnectionToken",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_processConnectionToken",
      "target": "WebMCP::_format",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_processConnectionToken",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_format",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerWithServer",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateConnectionUI",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_registerItemsWithServer",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateConnectionUI",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_updateStatus",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_setupSocketListeners",
      "target": "WebMCP::_handleServerMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_handleToolCall",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_handleGetPrompt",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_handleReadResource",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_handleCreateSamplingMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_sendToolsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_sendPromptsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_sendResourcesList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleServerMessage",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleToolCall",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleToolCall",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleToolCall",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleToolCall",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleToolCall",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleGetPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleGetPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleGetPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleGetPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleGetPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleReadResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleReadResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleReadResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleReadResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleReadResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_sendToolsList",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_sendPromptsList",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_sendResourcesList",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerItemsWithServer",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerItemsWithServer",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_registerItemsWithServer",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerTool",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerTool",
      "target": "WebMCP::_saveItemsToStorage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerTool",
      "target": "WebMCP::_updateToolsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerPrompt",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerPrompt",
      "target": "WebMCP::_saveItemsToStorage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerPrompt",
      "target": "WebMCP::_updatePromptsList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerResource",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerResource",
      "target": "WebMCP::_saveItemsToStorage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::registerResource",
      "target": "WebMCP::_updateResourcesList",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleCreateSamplingMessage",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "WebMCP::_handleCreateSamplingMessage",
      "target": "WebMCP::_sendMessage",
      "kind": "calls"
    },
    {
      "source": "samplePages",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "samplePages",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "samplePages",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "samplePages",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "samplePages",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "writeBundle",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "writeBundle",
      "target": "writeBundleSite",
      "kind": "calls"
    },
    {
      "source": "writeBundleSite",
      "target": "Page",
      "kind": "references"
    },
    {
      "source": "writeBundleSite",
      "target": "Site",
      "kind": "references"
    },
    {
      "source": "writeBundleSite",
      "target": "Writer",
      "kind": "instantiates"
    },
    {
      "source": "writeBundleSite",
      "target": "Site",
      "kind": "instantiates"
    },
    {
      "source": "writeBundleSite",
      "target": "Writer::Write",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "writeBundle",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleSnapshotMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeMode",
      "target": "writeBundle",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeMode",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeMode",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "writeBundleSite",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "VersionInfo",
      "kind": "instantiates"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleForgeModePinsCommit",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleCommitTemplateNeedsCommit",
      "target": "Writer",
      "kind": "instantiates"
    },
    {
      "source": "TestWriteBundleCommitTemplateNeedsCommit",
      "target": "Writer::Write",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleCommitTemplateNeedsCommit",
      "target": "Site",
      "kind": "instantiates"
    },
    {
      "source": "TestWriteBundleCommitTemplateNeedsCommit",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleCommitTemplateNeedsCommit",
      "target": "errTransient::Error",
      "kind": "calls"
    },
    {
      "source": "TestPageRoundTrip",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestPageRoundTrip",
      "target": "Page::Markdown",
      "kind": "calls"
    },
    {
      "source": "TestPageRoundTrip",
      "target": "ParsePage",
      "kind": "calls"
    },
    {
      "source": "TestNormalizeRejectsBadPages",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "TestNormalizeRejectsBadPages",
      "target": "Page",
      "kind": "instantiates"
    },
    {
      "source": "TestNormalizeRejectsBadPages",
      "target": "Page::Normalize",
      "kind": "calls"
    },
    {
      "source": "TestSlugify",
      "target": "Slugify",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "VersionInfo",
      "kind": "instantiates"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "writeBundleSite",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleVersionStamps",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleNoVersionNoStamp",
      "target": "writeBundle",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleNoVersionNoStamp",
      "target": "samplePages",
      "kind": "calls"
    },
    {
      "source": "TestWriteBundleNoVersionNoStamp",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestCanonicalSourceLinksRoundTrip",
      "target": "writeBundle",
      "kind": "calls"
    },
    {
      "source": "TestCanonicalSourceLinksRoundTrip",
      "target": "read",
      "kind": "calls"
    },
    {
      "source": "TestCanonicalSourceLinksRoundTrip",
      "target": "CanonicalSourceLinks",
      "kind": "calls"
    },
    {
      "source": "TestCanonicalSourceLinksRoundTrip",
      "target": "CanonicalSourceLinks",
      "kind": "calls"
    },
    {
      "source": "testdata/fixture/cmd/server/main.go::route:/users",
      "target": "UserHandler::ListUsers",
      "kind": "references"
    },
    {
      "source": "testdata/fixture/cmd/server/main.go::route:/users",
      "target": "UserHandler::CreateUser",
      "kind": "references"
    },
    {
      "source": "testdata/fixture/cmd/server/main.go::route:/users/{id}",
      "target": "UserHandler::GetUser",
      "kind": "references"
    },
    {
      "source": "testdata/fixture/cmd/server/main.go::route:/users/{id}",
      "target": "UserHandler::DeleteUser",
      "kind": "references"
    },
    {
      "source": "NewUserHandler",
      "target": "Store",
      "kind": "references"
    },
    {
      "source": "NewUserHandler",
      "target": "UserHandler",
      "kind": "references"
    },
    {
      "source": "NewUserHandler",
      "target": "UserHandler",
      "kind": "instantiates"
    },
    {
      "source": "UserHandler::ListUsers",
      "target": "writeJSON",
      "kind": "calls"
    },
    {
      "source": "UserHandler::CreateUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::CreateUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::CreateUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::CreateUser",
      "target": "writeJSON",
      "kind": "calls"
    },
    {
      "source": "UserHandler::GetUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::GetUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::GetUser",
      "target": "writeJSON",
      "kind": "calls"
    },
    {
      "source": "UserHandler::DeleteUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "UserHandler::DeleteUser",
      "target": "writeError",
      "kind": "calls"
    },
    {
      "source": "writeError",
      "target": "writeJSON",
      "kind": "calls"
    },
    {
      "source": "NewMemoryStore",
      "target": "MemoryStore",
      "kind": "references"
    },
    {
      "source": "NewMemoryStore",
      "target": "MemoryStore",
      "kind": "instantiates"
    },
    {
      "source": "MemoryStore::Create",
      "target": "User",
      "kind": "references"
    },
    {
      "source": "MemoryStore::Create",
      "target": "User",
      "kind": "instantiates"
    },
    {
      "source": "MemoryStore::Get",
      "target": "User",
      "kind": "references"
    },
    {
      "source": "MemoryStore::Get",
      "target": "User",
      "kind": "instantiates"
    },
    {
      "source": "MemoryStore::List",
      "target": "User",
      "kind": "references"
    },
    {
      "source": "theme/scripts/stage-assets.mjs",
      "target": "stageDir",
      "kind": "calls"
    },
    {
      "source": "theme/scripts/stage-assets.mjs",
      "target": "stageDir",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::node",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::node",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "styles::px",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "styles",
      "target": "token",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "Graph",
      "kind": "references"
    },
    {
      "source": "render",
      "target": "styles",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "styles",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "styles",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "render",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "jump",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "onSearch",
      "target": "select",
      "kind": "calls"
    },
    {
      "source": "onSearchKey",
      "target": "jump",
      "kind": "calls"
    },
    {
      "source": "onKey",
      "target": "toggleFullscreen",
      "kind": "calls"
    },
    {
      "source": "onTheme",
      "target": "styles",
      "kind": "calls"
    },
    {
      "source": "readIndex",
      "target": "IndexManifest",
      "kind": "references"
    },
    {
      "source": "readIndex",
      "target": "bundleDir",
      "kind": "calls"
    },
    {
      "source": "readVersion",
      "target": "VersionInfo",
      "kind": "references"
    },
    {
      "source": "readVersion",
      "target": "bundleDir",
      "kind": "calls"
    },
    {
      "source": "hasFile",
      "target": "bundleDir",
      "kind": "calls"
    },
    {
      "source": "pageSlugs",
      "target": "readIndex",
      "kind": "calls"
    },
    {
      "source": "pagesByType",
      "target": "PageEntry",
      "kind": "references"
    },
    {
      "source": "pagesByType",
      "target": "PageEntry",
      "kind": "references"
    },
    {
      "source": "pagesByType",
      "target": "PageEntry",
      "kind": "references"
    },
    {
      "source": "repoCache",
      "target": "RepoInfo",
      "kind": "references"
    },
    {
      "source": "readRepo",
      "target": "RepoInfo",
      "kind": "references"
    },
    {
      "source": "readRepo",
      "target": "bundleDir",
      "kind": "calls"
    },
    {
      "source": "navGroups",
      "target": "PageEntry",
      "kind": "references"
    },
    {
      "source": "navGroups",
      "target": "NavGroup",
      "kind": "references"
    },
    {
      "source": "navGroups",
      "target": "NavGroup",
      "kind": "references"
    },
    {
      "source": "navGroups",
      "target": "pagesByType",
      "kind": "calls"
    },
    {
      "source": "navGroups",
      "target": "typeLabel",
      "kind": "calls"
    },
    {
      "source": "rewriteLinks",
      "target": "rewriteHref",
      "kind": "calls"
    },
    {
      "source": "addSource",
      "target": "SourceFile",
      "kind": "references"
    },
    {
      "source": "addSource",
      "target": "rewriteHref",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "ParsedPage",
      "kind": "references"
    },
    {
      "source": "parsePage",
      "target": "Heading",
      "kind": "references"
    },
    {
      "source": "parsePage",
      "target": "addSource",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "plainText",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "slug",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "escapeHtml",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "escapeHtml",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "escapeHtml",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "escapeHtml",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "escapeHtml",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "rewriteLinks",
      "kind": "calls"
    },
    {
      "source": "parsePage",
      "target": "mergeRanges",
      "kind": "calls"
    },
    {
      "source": "getStaticPaths",
      "target": "bundleDir",
      "kind": "calls"
    },
    {
      "source": "getStaticPaths",
      "target": "parsePage",
      "kind": "calls"
    },
    {
      "source": "lines",
      "target": "SourceFile",
      "kind": "references"
    },
    {
      "source": "firstLine",
      "target": "SourceFile",
      "kind": "references"
    },
    {
      "source": "theme/src/scripts/site.ts",
      "target": "mountVersions",
      "kind": "calls"
    },
    {
      "source": "theme/src/scripts/site.ts",
      "target": "mountDiagrams",
      "kind": "calls"
    },
    {
      "source": "toVersion",
      "target": "Version",
      "kind": "references"
    },
    {
      "source": "toVersion",
      "target": "LegacyVersion",
      "kind": "references"
    },
    {
      "source": "toVersion",
      "target": "Version",
      "kind": "references"
    },
    {
      "source": "mountVersions",
      "target": "Version",
      "kind": "references"
    },
    {
      "source": "mountVersions",
      "target": "Version",
      "kind": "references"
    },
    {
      "source": "mountVersions",
      "target": "toVersion",
      "kind": "references"
    },
    {
      "source": "FixtureProvider",
      "target": "Provider",
      "kind": "implements"
    },
    {
      "source": "SQLiteProvider",
      "target": "Provider",
      "kind": "implements"
    },
    {
      "source": "Client",
      "target": "Client",
      "kind": "implements"
    },
    {
      "source": "chatOnlyClient",
      "target": "Client",
      "kind": "implements"
    },
    {
      "source": "MockClient",
      "target": "Client",
      "kind": "implements"
    },
    {
      "source": "OpenAIClient",
      "target": "Client",
      "kind": "implements"
    },
    {
      "source": "Client",
      "target": "ToolClient",
      "kind": "implements"
    },
    {
      "source": "toolMock",
      "target": "ToolClient",
      "kind": "implements"
    },
    {
      "source": "MockClient",
      "target": "ToolClient",
      "kind": "implements"
    },
    {
      "source": "OpenAIClient",
      "target": "ToolClient",
      "kind": "implements"
    },
    {
      "source": "MemoryStore",
      "target": "Store",
      "kind": "implements"
    },
    {
      "source": "ToolClient::ChatTools",
      "target": "Client::ChatTools",
      "kind": "calls"
    },
    {
      "source": "Client::Chat",
      "target": "Client::Chat",
      "kind": "calls"
    },
    {
      "source": "Client::Chat",
      "target": "chatOnlyClient::Chat",
      "kind": "calls"
    },
    {
      "source": "ToolClient::ChatTools",
      "target": "toolMock::ChatTools",
      "kind": "calls"
    },
    {
      "source": "Provider::Stats",
      "target": "FixtureProvider::Stats",
      "kind": "calls"
    },
    {
      "source": "Provider::Close",
      "target": "FixtureProvider::Close",
      "kind": "calls"
    },
    {
      "source": "Provider::Edges",
      "target": "FixtureProvider::Edges",
      "kind": "calls"
    },
    {
      "source": "Provider::Files",
      "target": "FixtureProvider::Files",
      "kind": "calls"
    },
    {
      "source": "Provider::Open",
      "target": "FixtureProvider::Open",
      "kind": "calls"
    },
    {
      "source": "Provider::Nodes",
      "target": "FixtureProvider::Nodes",
      "kind": "calls"
    },
    {
      "source": "Provider::Stats",
      "target": "SQLiteProvider::Stats",
      "kind": "calls"
    },
    {
      "source": "Provider::Close",
      "target": "SQLiteProvider::Close",
      "kind": "calls"
    },
    {
      "source": "Provider::Edges",
      "target": "SQLiteProvider::Edges",
      "kind": "calls"
    },
    {
      "source": "Provider::Files",
      "target": "SQLiteProvider::Files",
      "kind": "calls"
    },
    {
      "source": "Provider::Open",
      "target": "SQLiteProvider::Open",
      "kind": "calls"
    },
    {
      "source": "Provider::Nodes",
      "target": "SQLiteProvider::Nodes",
      "kind": "calls"
    },
    {
      "source": "ToolClient::ChatTools",
      "target": "MockClient::ChatTools",
      "kind": "calls"
    },
    {
      "source": "Client::Chat",
      "target": "MockClient::Chat",
      "kind": "calls"
    },
    {
      "source": "ToolClient::ChatTools",
      "target": "OpenAIClient::ChatTools",
      "kind": "calls"
    },
    {
      "source": "Client::Chat",
      "target": "OpenAIClient::Chat",
      "kind": "calls"
    },
    {
      "source": "Store::Delete",
      "target": "MemoryStore::Delete",
      "kind": "calls"
    },
    {
      "source": "Store::List",
      "target": "MemoryStore::List",
      "kind": "calls"
    },
    {
      "source": "Store::Create",
      "target": "MemoryStore::Create",
      "kind": "calls"
    },
    {
      "source": "Store::Get",
      "target": "MemoryStore::Get",
      "kind": "calls"
    }
  ]
}
