{
  "llm": {
    "conf": 0.021020684,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "outcome": "benign",
    "interpretation": "Legitimate Rails breadcrumb gem"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.031374156,
        "rte": "az",
        "prob": 0.031374156
      },
      {
        "cls": 0,
        "raw": 0.006474624,
        "rte": "az/gem",
        "prob": 0.006474624
      }
    ],
    "prob": 0.031374156,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.03137415647506714,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000030269226044765674,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021298727006069385,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014017025932844263,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012973944649274927,
        "type": "ruby"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014136235222395044,
        "type": "ruby"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014334917068481445,
        "type": "ruby"
      },
      {
        "id": 7,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001531839370727539,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014662742614746094,
        "type": "ruby"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014543533325195312,
        "type": "ruby"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014026959433977026,
        "type": "ruby"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012308359146118164,
        "type": "ruby"
      },
      {
        "id": 12,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011583168998186011,
        "type": "ruby"
      },
      {
        "id": 13,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013540188774641138,
        "type": "ruby"
      },
      {
        "id": 57,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012685854926530737,
        "type": "registry"
      },
      {
        "id": 58,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012745459571306128,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-03T02:39:59Z"
  },
  "path": "gretel-3.0.8.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgm",
            "ln": 0
          }
        ],
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "sha": "10cea496bc2fb9e88f58e58504e16ed88c37bfb307dc0970a4d24e195baf5204",
        "path": "gretel-3.0.8.gem",
        "refs": [
          {
            "to": "pkg:gem/rails",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 7,
        "size": 26624,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 2,
              "runtime_dependency_count": 1,
              "development_dependency_count": 1
            },
            "file": {
              "size": 26624,
              "entropy": 7.54
            },
            "binary": {
              "peak_region_bytes": 20480,
              "peak_region_entropy": 7.83
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 23218,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "gretel",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "http://github.com/lassebunk/gretel",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Lasse Bunk",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "3.0.8",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal"
          },
          {
            "id": "metadata/package/testing/harness/runtime::is-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "Test, spec, or fixture file"
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\""
          },
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\""
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-6",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"with\""
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Test path basename"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-class-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby class_eval call"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 21722,
              "entropy": 7.98
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 21504,
              "peak_region_entropy": 7.81
            }
          }
        },
        "id": 1,
        "mol": "H₄(Cm₂DbF₂Po₂)Md(Pa)",
        "path": "gretel-3.0.8.gem!!data.tar.gz",
        "pid": 0,
        "risk": 7,
        "sha": "1628107b93f0edcb0db5ea077b47dcbeb95eaf255dd0ee8e05b126495f3e1a75",
        "size": 21722,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\""
          },
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-6",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"with\""
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal"
          },
          {
            "id": "metadata/package/testing/presence/harness::tests-path-filename",
            "conf": 0.85,
            "crit": 1,
            "desc": "File path or name indicates test code"
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal"
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\""
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-class-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby class_eval call"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-path-basename",
            "conf": 1.0,
            "crit": 1,
            "desc": "Test path basename"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory-path",
            "conf": 1.0,
            "crit": 1,
            "desc": "File is in common test directory"
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call"
          },
          {
            "id": "micro-behaviors/fs/directory/delete::ruby-fileutils-rm-rf",
            "atk": "T1070.004",
            "mbc": "C0047",
            "conf": 0.95,
            "crit": 3,
            "desc": "Ruby recursively deletes a directory tree"
          },
          {
            "id": "micro-behaviors/fs/enumerate/directory::ruby-recursive-glob",
            "atk": "T1083",
            "conf": 0.85,
            "crit": 3,
            "desc": "Enumerates files with a recursive Ruby glob"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-directory",
            "conf": 1.0,
            "crit": 2,
            "desc": "File identified as a test by path or name"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "metadata/package/testing/harness/runtime::is-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "Test, spec, or fixture file"
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boOM/eG!Rxv@C)(zF80MB-.jEi3o!5eEDrdvJW/RmRMWIe[GoDvqYQ.Aa9\u003c4c){S1fkLuicOcxEuQ^QXmpfyJ3m5qvk$26Rk#ZxcB-8nlx\u003ezDny?WucaA.NrwPI]nbUR01l%\u0026+Rr7FSQzEWH9wmW$Ny?Wuc3uxY$B.L(casy/xwPRH1flQ]EB7]MgcKHhJwO\u003cE?q/DqTx\u003ez6?vruj4zz2*rCoyBmaBE*kzf#Wkazkn5e]C9mwGS9rarR^HarR^\u0026ar\u003eDswPRH1a{]CnxjU{jC4CYnx(v(iarR^HarS/\u0026m@\u0026f.wO:y*rZ/[+nL-7*arUrdz7YmtBzbPkB08OFarR^HjS)@MoKS0-wGTrZzFHC43lQE7wO\u003c5hzddc{arR^HarR^HauZ\u0026Kb5yXeB7F*6zFIHIzddc{e[n*p",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "A+PGmx(v(iarS/\u0026c2[o4A+fu7y-)CkayMx\u003cBZ/Rsz/cW}vqfL0aAhdtxk8laBzb98az\u003eL5wPF#dBrCd6B9O)NwPP5by?m\u003c9vR/P#Bz\u0026piA+eW3wGUD5wNPaVA=(kdB1R\u003eFarUrdz7Y)LzeAZ4C{1jLarR^HjS(4\u003cDQ.*.CXHS6wGT([vTf8mzxI?=x(4\u0026kvSD3*wmGU5zdmMeAboVfx(kLK3lQE7wO\u003c5kz/668vp%c]arR^HauZ?\u003exMOuniXJd0x([3hvLheez7/ZlB8$]4B-7$Fxl4N9wO-K$arUrdz7YTsv}xL0wGS9rarR^HjS\u003e}ynMl(v3lQE7wO\u003c5ix(4v4arR^HarR^HauZ\u0026Pxk8Dgy\u0026.gux(4v4u[MIty?W#tbRHONarUrdz7Y{wB97=3x(4v4arR^HjS[xGz7YBmy?mVuxl4N5c)-[Xuux+1Bt54\u003e3lQE7wO\u003c5uwPq\u003cbA+eP%vrug7auZ\u0026Kb5y$5b3+J.arUrdz7Ymcwm5\u003eUAaJ]$wO#16ar\u003e\u0026mx(4\u0026mefDc2jS(Kkg5",
            "ln": 345,
            "col": 11,
            "line": 11
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "expand_path"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "version"
            ],
            [
              "",
              "authors"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "description"
            ],
            [
              "",
              "summary"
            ],
            [
              "",
              "homepage"
            ],
            [
              "",
              "license"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "test_files"
            ],
            [
              "",
              "grep"
            ],
            [
              "",
              "files"
            ],
            [
              "",
              "require_paths"
            ],
            [
              "",
              "add_dependency"
            ],
            [
              "",
              "add_development_dependency"
            ],
            [
              "",
              "gretel/version"
            ]
          ],
          "mbr": [
            "File.expand_path",
            "gem.add_dependency",
            "gem.add_development_dependency",
            "gem.authors",
            "gem.description",
            "gem.email",
            "gem.files",
            "gem.files.grep",
            "gem.homepage",
            "gem.license",
            "gem.name",
            "gem.require_paths",
            "gem.summary",
            "gem.test_files",
            "gem.version"
          ],
          "tgt": [
            "add_dependency",
            "add_development_dependency",
            "authors",
            "description",
            "email",
            "expand_path",
            "files",
            "grep",
            "homepage",
            "include?",
            "license",
            "name",
            "new",
            "require",
            "require_paths",
            "split",
            "summary",
            "test_files",
            "unshift",
            "version"
          ],
          "metrics": {
            "ast": {
              "max_depth": 8,
              "op.concat": 20,
              "call_count": 21,
              "node_count": 217,
              "member_count": 15,
              "max_array_len": 1,
              "member_depth_max": 3,
              "op_density.concat": 0.09
            },
            "file": {
              "size": 820,
              "entropy": 4.98
            },
            "text": {
              "lines": 22,
              "top_char": 101,
              "max_ws_run": 10,
              "digit_ratio": 0.01,
              "space_count": 145,
              "char_entropy": 4.98,
              "unique_chars": 72,
              "top_char_null": 0,
              "string_density": 0.59,
              "top_char_ratio": 0.1,
              "avg_line_length": 36.32,
              "max_line_length": 113,
              "empty_line_ratio": 0.14,
              "last_line_length": 3,
              "whitespace_ratio": 0.2,
              "identifier_density": 2.05,
              "line_length_stddev": 24.9,
              "normalized_string_count": 2.77,
              "repeated_char_sequences": 1,
              "normalized_unique_identifiers": 6.28
            },
            "binds": {
              "count": 12
            },
            "binary": {
              "peak_region_bytes": 820,
              "peak_region_entropy": 4.98
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 252,
              "count": 13,
              "url_count": 1,
              "avg_length": 19.38,
              "max_length": 91,
              "path_count": 1,
              "avg_entropy": 2.97,
              "email_count": 1,
              "entropy_stddev": 0.93
            },
            "comments": {
              "chars": 24,
              "count": 1,
              "lines": 1,
              "to_code_ratio": 0.05
            },
            "identifiers": {
              "count": 45,
              "unique": 28,
              "avg_length": 7.71,
              "max_length": 26,
              "min_length": 3,
              "avg_entropy": 2.48,
              "reuse_ratio": 0.62,
              "length_stddev": 4.69,
              "all_lowercase_ratio": 0.75,
              "all_uppercase_ratio": 0.07,
              "double_underscore_count": 1,
              "underscore_prefix_count": 1
            }
          }
        },
        "id": 2,
        "mol": "H₂(Cm₂Po)Md(Pa)",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!gretel.gemspec",
        "risk": 3,
        "sha": "58e6e23c08ef713bf4dee5e8afefbb049e26d2bba177c2e51748b70f150a41de",
        "size": 820,
        "traits": [
          {
            "id": "metadata/package/config::gemspec-name-assignment",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby gemspec assigns package name",
            "spans": [
              [
                151,
                53
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-prefix",
            "conf": 0.9,
            "crit": 2,
            "desc": "HTTP protocol prefix",
            "spans": [
              [
                541,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/forge::public-code-forge-url",
            "conf": 0.9,
            "crit": 3,
            "desc": "References a public code-forge URL",
            "spans": [
              [
                541,
                18
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/shell/lang::ruby-subshell-command",
            "conf": 0.93,
            "crit": 3,
            "desc": "Ruby subshell command execution",
            "spans": [
              [
                628,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/message::http-url-literal",
            "conf": 0.75,
            "crit": 2,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                541,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::cleartext-http-url-code-literal",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Code embeds cleartext HTTP URL literal",
            "spans": [
              [
                541,
                34
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccUEEhBy/nwC4CYnx(v(p3uxY$B.L(casy/xwPRH1flgSBwPS35vR/Q63uxY$B.L(casy/xwPRH1fjP3BzdmMl3uxY$B.L(casy/xwPRH1fjP3Bzdi",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "B09OcaAIagw^PU6arUxov@co#wGT(ZB7GDnvpB4:3jm)#arR)KqE%@)A=b}vBzbkdAa9\u003c4azbUjz6j4pBz8!aA+eV\u0026v@=ZevSJV2A+cwfz^^f/wg!#)wObv[y\u0026*!lB08#yz/ff3xd).mwNPaVA=(kdB1RGxd*^ywarR)Kx(k5nxK@q{AbV}dzE:\u003e#y?$kgz^^f/wftD3xk8l{B1OO4A+eV\u0026v@=ZevSJVkwPP5ezxK4mwGUA2A3fvsy?$kjC4CYmx\u003eg=ZarR^HboQDowNPaVA=(kdB0bKnBrCpnaz2C6x(mH6e^.",
            "ln": 227,
            "col": 7,
            "line": 11
          },
          {
            "b": "b4LndwO=p7zdNQbb3+J#arR!rzE:7YarR^HboP(}xk8BewPz\u0026mvixSkD2d4mw]zYjy*?A%AV/HCwIarjarR^KapoklarR)KarTf{wPRH1e]\u003eJox(!xcA:J)fD2d4mi^2l\u0026aBtkvz/fV9x(mH5uVYZ?iV{Fay+cYvA:-P$wO#P%Byw/yauBsMaBKN",
            "ln": 1873,
            "col": 33,
            "line": 58
          },
          {
            "b": "ayPwlA:K3hx(){bauBKOy\u0026r-)uUaa#x(XcfzdNQbA%-l%arR^Kax-z\u0026y?dPfBzbxfas/%5wPRH1d\u003ce}LayX[8v@Dl%x\u003eINewN)z2arR^HboNsoarR^KarR^%A+fu7y+xjozF0P}B-I4own-Prv@Dl%x\u003eI/2arR^HboO9KarUfjzF0P}e]\u003eJtz^^f-",
            "ln": 2230,
            "col": 4,
            "line": 69
          },
          {
            "b": "arR)KarUlkwc%C4arUiaw/$P4zF0P}B-I42arR^HarU@zwO+)1B7Gf13lQDlaz2C33lQE5zE:8=zE:7Yl1t1Jz/eP\u0026wP{f@lsB}De]$Pwwfr{EzEWH9wmWqmm@\u0026f.wO:y*r+Vb?nm=QRwPz?",
            "ln": 2406,
            "col": 3,
            "line": 75
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "include"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "engines"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "subclasses"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "root"
            ],
            [
              "",
              "config"
            ],
            [
              "",
              "flatten"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "root"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "suppress_deprecation_warnings?"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "warn"
            ],
            [
              "",
              "logger"
            ],
            [
              "",
              "register_style"
            ],
            [
              "",
              "attr_writer"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "gretel/crumb"
            ],
            [
              "",
              "gretel/crumbs"
            ],
            [
              "",
              "gretel/deprecated"
            ],
            [
              "",
              "gretel/link"
            ],
            [
              "",
              "gretel/renderer"
            ],
            [
              "",
              "gretel/resettable"
            ],
            [
              "",
              "gretel/version"
            ],
            [
              "",
              "gretel/view_helpers"
            ]
          ],
          "mbr": [
            "Rails.logger",
            "Rails.logger.warn",
            "Rails.root",
            "e.config",
            "e.config.root",
            "engines.map",
            "root.join"
          ],
          "tgt": [
            "attr_writer",
            "config",
            "engines",
            "flatten",
            "include",
            "join",
            "logger",
            "map",
            "puts",
            "register_style",
            "require",
            "respond_to?",
            "root",
            "send",
            "subclasses",
            "suppress_deprecation_warnings?",
            "warn"
          ],
          "funcs": [
            [
              "breadcrumb_paths",
              473
            ],
            [
              "breadcrumb_paths=",
              1127
            ],
            [
              "suppress_deprecation_warnings?",
              1249
            ],
            [
              "suppress_deprecation_warnings=",
              1389
            ],
            [
              "show_deprecation_warning",
              1524
            ],
            [
              "reload_environments",
              1817
            ],
            [
              "register_style",
              2024
            ],
            [
              "configure",
              2420
            ]
          ],
          "metrics": {
            "ast": {
              "op.lnot": 2,
              "max_depth": 17,
              "op.concat": 17,
              "call_count": 29,
              "node_count": 414,
              "member_count": 7,
              "max_array_len": 3,
              "op_density.lnot": 0,
              "member_depth_max": 3,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 2521,
              "entropy": 4.6
            },
            "text": {
              "lines": 82,
              "top_char": 101,
              "max_ws_run": 5,
              "space_count": 489,
              "char_entropy": 4.6,
              "unique_chars": 60,
              "top_char_null": 0,
              "string_density": 0.26,
              "top_char_ratio": 0.1,
              "avg_line_length": 29.76,
              "max_line_length": 105,
              "empty_line_ratio": 0.16,
              "last_line_length": 51,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.01,
              "line_length_stddev": 25.46,
              "normalized_string_count": 2.32,
              "repeated_char_sequences": 5,
              "suspicious_comment_ratio": 0.06,
              "trailing_whitespace_lines": 3,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 6.61
            },
            "binds": {
              "count": 7
            },
            "binary": {
              "peak_region_bytes": 2521,
              "peak_region_entropy": 4.62
            },
            "source": {
              "class_count": 1,
              "function_count": 6
            },
            "imports": {
              "count": 8,
              "third_party_count": 8,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 216,
              "count": 21,
              "avg_length": 10.29,
              "max_length": 19,
              "avg_entropy": 2.55,
              "entropy_stddev": 1.03
            },
            "comments": {
              "chars": 818,
              "count": 17,
              "empty": 2,
              "lines": 17,
              "base64": 1,
              "to_code_ratio": 0.26
            },
            "functions": {
              "count": 7
            },
            "identifiers": {
              "count": 83,
              "unique": 42,
              "avg_length": 10.1,
              "max_length": 30,
              "min_length": 1,
              "avg_entropy": 2.63,
              "reuse_ratio": 0.51,
              "length_stddev": 7.27,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 8,
              "high_entropy_ratio": 0.19,
              "all_lowercase_ratio": 0.64
            }
          }
        },
        "id": 3,
        "mol": "H(Db)",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel.rb",
        "risk": 2,
        "sha": "db19eaa9da6131fbdd471774c7eee4fb88cd946bcf2f1d5625d6e671ed92c71c",
        "size": 2521,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                275,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                370,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                1921,
                0
              ]
            ]
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-6",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                289,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                2470,
                4
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "zeS%cy?j.VA+fu7yZIpcv@bN{B09?\u003cB.$N{arR^HboPM}x([5$y?XibB0a)lzE[2mv@=ZevJYo6z/3RsxK@r0x)a69as?ksC}gGOarR^HboPN1azbt9woe(nxK@q}A+eV\u0026v@=ZevJYf3wNPW(wftP7as/%5wPRH1iYYSGB.$Pee]j%wz/{dLayPd#aAz4hwmY!5aARpdayYe9v@0ifB7]J8aARpdayPq6B.$YcBAnNCB-qqox\u003ep/$x(k4zvrc14d\u003eReKarR!qwO960zFsibvqGU7wHI5bzGGDmBsXLIwQb*HdQ^vg",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "e^-ZzarR)Ks-nB9v{%l$B9hCvy\u003cvdizxJ\u003epBzkVhvqE68Acb/jzGu}lvrl98Bzb98aA}Koy-)g#ayPC4x(4i!y?j-czxK4mwGU/6zFKq2arR^HboR5CaBd)Fay!?$aAg+gB0bgmw]w/oxK#67A+fc0wPzH5xcqqfwGUD5wNPaVA=(kdB0bsdzGPx7",
            "ln": 707,
            "col": 34,
            "line": 19
          },
          {
            "b": "yHq3?Bz817arR^KarR!yx(mYeb3eG2xM53naxqrka{]CnarR)KarUGmzFHvss7#+\u0026awV@#x(v)ga$K\u003cND0+J0Bz9iFBzk\u0026kwJy}TraQb)a$K\u003cPBzblaiV]RBz/65dz//V7AV/Kly\u0026%qk3lQDlay]4}az++fyByVvA+xCx3lQDlarR!BAcb/jzGu{-",
            "ln": 895,
            "col": 31,
            "line": 23
          },
          {
            "b": "y-)UdaARpdayYw5vpS\u003e*B.$OnB0bpkzFKqovriM1ayYw5vpS\u003e*B.$Ogv{%l$xKM6}az(mqBzkYgwGU/6zFKqC3lQDlay]4}az++fyJx?9arR^Hav6:SzFKqoE0!71tu}NUarR!rzE:7YarR^HboP]@BAnNyAV/1aBAnNDxK@r9vrb{%BrC4kwNPaV",
            "ln": 1250,
            "col": 15,
            "line": 36
          },
          {
            "b": "xLzu%azC)tB9hCvy?WD\u003eefFUGaA}Koy-)+fBAIRwaARpdaAg+fwO#PvazCBgBzbxfazth8ayX[[zxK1iBs)[yarR^K3lQDlar@0$CWUDdy?kTmarR^HboO9KAa9=#zGE0Zv{%E\u003cxk.*oefFChBy/96A^n0marR^K3lQDlar@18AV/Bpz/P}JaA}Hk",
            "ln": 1497,
            "col": 13,
            "line": 43
          },
          {
            "b": "wP]nbz/fVdCYULBarR^HwmYu}zdN*5z!9i(x(!ufzF7wmwPRQ7wgO\u0026Mvrc14efDoGy\u0026r*0dgdguarR^Hv@DmbwQ5qHB7Gl1c#AKqxM4AjasZ/uxlbQDcsQ!fv@0I2arR^HwO#2=arUlkwc#)=wc@",
            "ln": 1994,
            "col": 18,
            "line": 63
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "class"
            ],
            [
              "",
              "unshift"
            ],
            [
              "",
              "to_sym"
            ],
            [
              "",
              "underscore"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "model_name"
            ],
            [
              "",
              "class"
            ],
            [
              "",
              "crumbs"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "instance_exec"
            ],
            [
              "",
              "extract_options!"
            ],
            [
              "",
              "url_for"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "shift"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "send"
            ]
          ],
          "mbr": [
            "args.empty?",
            "args.extract_options!",
            "args.shift",
            "args.unshift",
            "context.send",
            "key.class",
            "key.class.model_name",
            "key.class.model_name.to_s",
            "key.class.model_name.to_s.underscore",
            "key.class.model_name.to_s.underscore.to_sym",
            "key.class.respond_to?"
          ],
          "tgt": [
            "attr_reader",
            "class",
            "crumbs",
            "empty?",
            "extract_options!",
            "instance_exec",
            "model_name",
            "new",
            "raise",
            "respond_to?",
            "send",
            "shift",
            "to_s",
            "to_sym",
            "underscore",
            "unshift",
            "url_for"
          ],
          "funcs": [
            [
              "initialize",
              211
            ],
            [
              "link",
              1012
            ],
            [
              "links",
              1323
            ],
            [
              "parent",
              1726
            ],
            [
              "method_missing",
              2010
            ]
          ],
          "metrics": {
            "ast": {
              "op.shl": 1,
              "max_depth": 15,
              "op.concat": 15,
              "call_count": 20,
              "node_count": 296,
              "member_count": 11,
              "op_density.shl": 0,
              "member_depth_max": 6,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 2112,
              "entropy": 4.56
            },
            "text": {
              "lines": 68,
              "top_char": 101,
              "max_ws_run": 3,
              "space_count": 502,
              "char_entropy": 4.56,
              "unique_chars": 68,
              "top_char_null": 0,
              "string_density": 0.01,
              "top_char_ratio": 0.08,
              "avg_line_length": 30.06,
              "max_line_length": 126,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.27,
              "identifier_density": 1.22,
              "line_length_stddev": 27.25,
              "normalized_string_count": 0.12,
              "trailing_whitespace_lines": 1,
              "normalized_unique_identifiers": 6.41
            },
            "binds": {
              "count": 9
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.62
            },
            "source": {
              "class_count": 2,
              "function_count": 5
            },
            "strings": {
              "bytes": 29,
              "count": 1,
              "avg_length": 29,
              "max_length": 29,
              "avg_entropy": 4.28
            },
            "comments": {
              "chars": 1028,
              "count": 24,
              "empty": 3,
              "lines": 21,
              "to_code_ratio": 0.45
            },
            "functions": {
              "count": 7
            },
            "identifiers": {
              "count": 83,
              "unique": 39,
              "avg_length": 6.82,
              "max_length": 16,
              "min_length": 3,
              "avg_entropy": 2.44,
              "reuse_ratio": 0.47,
              "length_stddev": 3.22,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.03,
              "all_lowercase_ratio": 0.69
            }
          }
        },
        "id": 4,
        "mol": "H(Db)",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/crumb.rb",
        "risk": 2,
        "sha": "2b4e39f1ccf11b9734c63ea8a09214d73aa2962e3edb720fc16e6016d2498b80",
        "size": 2112,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                145,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                2058,
                4
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "zeS%cy?j.VA+fu7yZIpczeS%cy?j.RA=(kdA%:3jarUfgvrlGjjuK:cwO+@=arR^HarUxov@co#wGT(ZB7GDnvpB4:3jm)#arR^HboP{bz/PAgaARpdaAIWAAbol1wftt$z!0M9w]zYjy*?A%AV/HCwIarjarR^Hay]4}ay/Cmzdj]ewQb*HcsQ!fv@0I2arR^HarR^Hv@=ZevSL:?wQdM7jS[iIz!0L\u0026arR^HarUlkwc@U^arR^Har@1bwPS6nzGu{",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "jS]913lQDlarR!rzE:7YarR^HarR)KqE%@)A=b}vBAhInazCBgvix62B.$OgCwhejaARpdazkziwO@SawQbzivriM2wO2:4B7GCC3lQDlarR!qwO95{A=(kduU0.Wx(mG)kpyqUC{%7yarR^HarR!pA=(kdB1RcmB6\u0026Y]C%rY)wQbZiarR^HarUlk",
            "ln": 277,
            "col": 19,
            "line": 13
          },
          {
            "b": "uU%[0zdN=vv@bZ+ATA{iarR^HarUclwNPaVA=(kduUj1*wPGFnvpJ%[wn-Prw[=6)D\u003cQ#sarR^HarR^Hx(n0lvqYN^uUay?y-)UnwO@]dx(4ufe]\u003eJiwgO\u003cnx(4t/arR^HarR^HarUGsvpS}WuUj1*wNxp@x(dB5auR+emRMWIe]tYAzdLbcx(4uf3lQDlarR^Haz2C33jm)#arR^HarS{=z^^f/wfs2TBAhIn3lQDlarR!rzE:7YarR^HarR)Kqu",
            "ln": 546,
            "col": 20,
            "line": 25
          },
          {
            "b": "z^^f$aARpdayYw5vpS\u003e*B.$Ogv@Dl%x\u003eINevruj4zxJL9y?mVgx\u003ewGfxK#DixKM6}ay/7[zF9J\u003ee^-ZzarR^HwmYu}A+f69vpS.Vw)YB!wN]v.3lQDlarR^Haz+$8wm5!^wNPaVA=(kdB0bgeaAz4fz^^fv3lQDlarR!rzE:7YarR^HarR)KqE%@)",
            "ln": 753,
            "col": 12,
            "line": 34
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "include"
            ],
            [
              "",
              "has_key?"
            ],
            [
              "",
              "clear"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "instance_eval"
            ],
            [
              "",
              "read"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "mtime"
            ],
            [
              "",
              "reload?"
            ],
            [
              "",
              "loaded?"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "reload_environments"
            ],
            [
              "",
              "env"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "mtime"
            ],
            [
              "",
              "breadcrumb_paths"
            ]
          ],
          "mbr": [
            "File.mtime",
            "Gretel.breadcrumb_paths",
            "Gretel.reload_environments",
            "Gretel.reload_environments.include?",
            "Rails.env",
            "breadcrumb_files.each",
            "breadcrumb_files.map",
            "crumbs.has_key?",
            "loaded_file_mtimes.clear"
          ],
          "tgt": [
            "breadcrumb_paths",
            "clear",
            "each",
            "env",
            "has_key?",
            "include",
            "include?",
            "instance_eval",
            "loaded?",
            "map",
            "mtime",
            "open",
            "read",
            "reload?",
            "reload_environments"
          ],
          "funcs": [
            [
              "crumb",
              129
            ],
            [
              "crumbs",
              248
            ],
            [
              "crumb_defined?",
              364
            ],
            [
              "load_breadcrumbs",
              484
            ],
            [
              "reload_if_needed",
              821
            ],
            [
              "reload?",
              987
            ],
            [
              "loaded?",
              1283
            ],
            [
              "breadcrumb_files",
              1378
            ],
            [
              "loaded_file_mtimes",
              1467
            ]
          ],
          "metrics": {
            "ast": {
              "op.ne": 1,
              "op.shl": 1,
              "op.lnot": 2,
              "max_depth": 17,
              "op.concat": 11,
              "call_count": 16,
              "node_count": 237,
              "member_count": 9,
              "op_density.ne": 0,
              "op_density.shl": 0,
              "op_density.lnot": 0.01,
              "member_depth_max": 3,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 1553,
              "entropy": 4.2
            },
            "text": {
              "lines": 64,
              "top_char": 101,
              "max_ws_run": 1,
              "space_count": 432,
              "char_entropy": 4.2,
              "unique_chars": 49,
              "top_char_null": 0,
              "top_char_ratio": 0.1,
              "avg_line_length": 23.27,
              "max_line_length": 91,
              "empty_line_ratio": 0.2,
              "last_line_length": 3,
              "whitespace_ratio": 0.32,
              "identifier_density": 0.94,
              "line_length_stddev": 22.43,
              "repeated_char_sequences": 2,
              "normalized_unique_identifiers": 5.83
            },
            "binds": {
              "count": 4
            },
            "binary": {
              "peak_region_bytes": 1553,
              "peak_region_entropy": 4.21
            },
            "source": {
              "class_count": 2,
              "function_count": 9
            },
            "comments": {
              "chars": 441,
              "count": 8,
              "lines": 8,
              "to_code_ratio": 0.14
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 60,
              "unique": 35,
              "avg_length": 8.29,
              "max_length": 19,
              "min_length": 3,
              "avg_entropy": 2.6,
              "reuse_ratio": 0.58,
              "length_stddev": 5.08,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.11,
              "all_lowercase_ratio": 0.6
            }
          }
        },
        "id": 5,
        "mol": "H(Po)",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/crumbs.rb",
        "risk": 2,
        "sha": "ac7d2fd90d6f0351c9429f7e52af848192549d3f063cf959c037f5166111a64e",
        "size": 1553,
        "traits": [
          {
            "id": "metadata/file/profile/language::lang-english--atom-5",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                108,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/eval::ruby-instance-eval",
            "atk": "T1059",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby instance_eval call",
            "spans": [
              [
                610,
                13
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 6,
        "mol": "H(Po)",
        "sha": "93b75fd23dd3545f37c94a7ce398622fc48aac9254609be42bdeeb1292a0988f",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/deprecated/default_style_key.rb",
        "risk": 2,
        "size": 449,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 7,
        "mol": "H₂(CmPo)",
        "sha": "6dc711f098206375c71c989093f5d70a96b5b5a6013d3102c8ca6a15fe510f9b",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/deprecated/layout.rb",
        "risk": 2,
        "size": 726,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 8,
        "mol": "H(Po)",
        "sha": "4eeacf81aac750d603375180f99a6236bc5da4b733619b643dcedae77dc8cf31",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/deprecated/show_root_alone.rb",
        "risk": 2,
        "size": 562,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 9,
        "mol": "H(Po)",
        "sha": "a924a027ccda19caba0cd7925a6b2c91e8f711b5237a08ed0191f45c0595fd75",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/deprecated/yield_links.rb",
        "risk": 2,
        "size": 651,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 10,
        "mol": "H₂(CmDb)",
        "sha": "de0c7bc230283e9bd70f52e26d3aa6e46deebc5a14606243e514242de6882b0a",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/renderer.rb",
        "risk": 2,
        "size": 7815,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 11,
        "mol": "H(Db)",
        "sha": "f5d0c9cbb54977b2efa02df10518f7b09b7740527bf73b3edf26f9014c0f4160",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!lib/gretel/resettable.rb",
        "risk": 2,
        "size": 354,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 12,
        "mol": "H(F)",
        "sha": "40a79ad8c52615ca85fe228e2cea419972a828c7c7ec718738cb7984d1c1961d",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!test/helper_methods_test.rb",
        "risk": 2,
        "size": 18166,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 13,
        "mol": "H(F)",
        "sha": "d0988f11746e4b209a6cd37e906661fc30d923b29e1e6331d2170f80774181aa",
        "path": "gretel-3.0.8.gem!!data.tar.gz!!test/test_helper.rb",
        "risk": 2,
        "size": 468,
        "type": "ruby",
        "depth": 2
      },
      {
        "id": 57,
        "sha": "c0c7831b170695222906cea9c2ef1c53c7bab62c97fa4d8d326ede1b7ec0566e",
        "path": "rails@8.1.3.1.registry.json",
        "size": 1007,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 58,
        "sha": "691f9da9705ffeb2465d6e5b4687a4986ac2f7fefa501e6182b032c81d627b86",
        "path": "gretel@3.0.8.registry.json",
        "size": 881,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 10,
    "rev": "479f3",
    "v": "8"
  }
}