{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:40:37",
  "duplicates" : [ {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 104,
      "endLine" : 302,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 89,
      "endLine" : 246,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 54,
      "endLine" : 68,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 104,
      "endLine" : 118,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 54,
      "endLine" : 68,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 89,
      "endLine" : 103,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 97,
      "endLine" : 107,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 126,
      "endLine" : 136,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 70,
      "endLine" : 118,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 105,
      "endLine" : 162,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 70,
      "endLine" : 118,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 120,
      "endLine" : 205,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 112,
      "endLine" : 122,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 126,
      "endLine" : 136,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 152,
      "endLine" : 295,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 182,
      "endLine" : 266,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mysql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 107,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 104,
      "endLine" : 111,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/snowflake_introspector.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 152,
      "endLine" : 268,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/mssql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 153,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 227,
      "endLine" : 302,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 108
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/introspection_scope.py",
        "extension" : "py",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 25,
      "endLine" : 31,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/introspection_scope.py",
        "extension" : "py",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/duckdb_introspector.py",
        "extension" : "py",
        "linesOfCode" : 82,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/plugins/databases/postgresql_introspector.py",
        "extension" : "py",
        "linesOfCode" : 161,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 126,
      "endLine" : 132,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/storage/repositories/embedding_repository.py",
        "extension" : "py",
        "linesOfCode" : 72,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 42,
      "endLine" : 53,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/storage/repositories/embedding_repository.py",
        "extension" : "py",
        "linesOfCode" : 72,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 78,
      "endLine" : 89,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/llm/service.py",
        "extension" : "py",
        "linesOfCode" : 115,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/llm/service.py",
        "extension" : "py",
        "linesOfCode" : 115,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 126,
      "endLine" : 131,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/databao_context_engine/storage/repositories/chunk_repository.py",
        "extension" : "py",
        "linesOfCode" : 81,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "src/databao_context_engine/storage/repositories/embedding_repository.py",
        "extension" : "py",
        "linesOfCode" : 72,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  } ],
  "overallDuplication" : null
}