{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000008145968,
        "rte": "az",
        "prob": 0.000008145968
      },
      {
        "cls": 0,
        "raw": 0.00008871158,
        "rte": "az/gem",
        "prob": 0.00008871158
      }
    ],
    "prob": 0.000012069941,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012069940567016602,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010738770470197778,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012069940567016602,
        "type": "ruby"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-12T18:05:56Z"
  },
  "path": "colsole-0.8.0.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "ln": 0
          }
        ],
        "mol": "H(U)",
        "sha": "9b78ed72c893160f24e0d0e4cbaf361f2dc2f8c38869adc80e968ff25263b04a",
        "path": "colsole-0.8.0.gem",
        "risk": 1,
        "size": 7680,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 0,
              "runtime_dependency_count": 0,
              "development_dependency_count": 0
            },
            "file": {
              "size": 7680,
              "entropy": 6.08
            },
            "binary": {
              "peak_region_bytes": 3072,
              "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": 4739,
              "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": "colsole",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/DannyBen/colsole",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Danny Ben Shitrit",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.8.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/ui/terminal::ansi-erase-op",
            "conf": 0.86,
            "crit": 3,
            "desc": "ANSI erase-line/erase-screen sequence"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 3939,
              "entropy": 7.94
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 3939,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H(U)",
        "path": "colsole-0.8.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 1,
        "sha": "f44de99c02442edeae3723d405be87fe29d845c130460ee16a23bf0aab254901",
        "size": 3939,
        "traits": [
          {
            "id": "micro-behaviors/ui/terminal::ansi-erase-op",
            "conf": 0.86,
            "crit": 3,
            "desc": "ANSI erase-line/erase-screen sequence"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "A+flkx(W=ccUWGLv@Dmaz!@#j3uxY$B.L(casyVqy\u0026:JhwImLize-{9cKHh9axrI$y?X0pazb+lv@#B6zGu}jz/M$gz!%ujw{4]jv@Dmaz!@#cvq{g4x\u003e7N[x(v)ge^=Dlwov",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "wc@U^ay]4}azC.nwPzV%y*Rl(C{)=CCYUFVB98ClvqNLrA+fiavpJ\u003efazb4#B7D^carR^HBy/YsauZ?\u003etRE@\u0026tqw\u0026RAWb{MwQ5rBa%pPiaAz4jy***+asnATBy/Gfx(mu}kmeIQarUGeB95J/aARgtBxZsKefDVM3lQDlazth3wnC*$auZ\u0026\u0026B7FY*z!%ujB3z6]BAg@3z7cO(auB1Jy\u0026sudDsXiWauBN=A+PG1v@Dg4A=RM{arR^Hx\u003ewE",
            "ln": 3567,
            "col": 5,
            "line": 131
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "internal_say"
            ],
            [
              "",
              "internal_say"
            ],
            [
              "",
              "tty?"
            ],
            [
              "",
              "any?"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "exist?"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "exist?"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "terminal?"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "to_i"
            ],
            [
              "",
              "safe_get_tty_size"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "positive?"
            ],
            [
              "",
              "positive?"
            ],
            [
              "",
              "strip!"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "collect!"
            ],
            [
              "",
              "split"
            ],
            [
              "",
              "length"
            ],
            [
              "",
              "gsub!"
            ],
            [
              "",
              "rstrip"
            ],
            [
              "",
              "gsub"
            ],
            [
              "",
              "old_colorize"
            ],
            [
              "",
              "process_color_markers"
            ],
            [
              "",
              "old_strip_colors"
            ],
            [
              "",
              "process_color_markers"
            ],
            [
              "",
              "gsub"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "chars"
            ],
            [
              "",
              "terminal?"
            ],
            [
              "",
              "use_colors?"
            ],
            [
              "",
              "terminal?"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "reverse"
            ],
            [
              "",
              "winsize"
            ],
            [
              "",
              "colsole/compat"
            ],
            [
              "",
              "io/console"
            ]
          ],
          "mbr": [
            "File.exist?",
            "File.join",
            "lead.length",
            "line.gsub",
            "line.gsub!",
            "line.gsub.rstrip",
            "line.length",
            "stream.print",
            "stream.tty?",
            "string.gsub",
            "text.split",
            "text.split.collect!",
            "text.strip!"
          ],
          "tgt": [
            "any?",
            "chars",
            "collect!",
            "exist?",
            "gsub",
            "gsub!",
            "internal_say",
            "is_a?",
            "join",
            "length",
            "map",
            "old_colorize",
            "old_strip_colors",
            "positive?",
            "print",
            "process_color_markers",
            "require",
            "reverse",
            "rstrip",
            "safe_get_tty_size",
            "send",
            "split",
            "strip!",
            "terminal?",
            "to_i",
            "tty?",
            "use_colors?",
            "winsize"
          ],
          "funcs": [
            [
              "say",
              714
            ],
            [
              "say!",
              894
            ],
            [
              "terminal?",
              1032
            ],
            [
              "command_exist?",
              1230
            ],
            [
              "use_colors?",
              1487
            ],
            [
              "terminal_size",
              1694
            ],
            [
              "terminal_width",
              2117
            ],
            [
              "terminal_height",
              2216
            ],
            [
              "word_wrap",
              2456
            ],
            [
              "colorize",
              2896
            ],
            [
              "strip_colors",
              3144
            ],
            [
              "process_color_markers",
              3332
            ],
            [
              "internal_say",
              3572
            ],
            [
              "safe_get_tty_size",
              3924
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 2,
              "op.gt": 1,
              "op.lor": 3,
              "op.mul": 1,
              "op.sub": 2,
              "op.land": 7,
              "op.lnot": 1,
              "max_depth": 16,
              "op.concat": 29,
              "call_count": 44,
              "node_count": 1088,
              "member_count": 13,
              "max_array_len": 2,
              "op_density.eq": 0,
              "op_density.gt": 0,
              "op_density.lor": 0,
              "op_density.mul": 0,
              "op_density.sub": 0,
              "op_density.land": 0.01,
              "op_density.lnot": 0,
              "member_depth_max": 3,
              "max_numeric_array": 2,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 4039,
              "entropy": 4.98
            },
            "text": {
              "lines": 150,
              "top_char": 101,
              "max_ws_run": 7,
              "digit_ratio": 0.02,
              "space_count": 802,
              "char_entropy": 4.98,
              "unique_chars": 84,
              "top_char_null": 0,
              "escape_density": 0.1,
              "string_density": 0.33,
              "top_char_ratio": 0.08,
              "avg_line_length": 25.93,
              "max_line_length": 109,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.24,
              "identifier_density": 1.21,
              "line_length_stddev": 22.23,
              "octal_escape_count": 4,
              "normalized_string_count": 4,
              "suspicious_comment_ratio": 0.03,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 8.99
            },
            "binds": {
              "count": 15
            },
            "binary": {
              "peak_region_bytes": 4039,
              "peak_region_entropy": 5.01
            },
            "source": {
              "class_count": 1,
              "function_count": 14
            },
            "imports": {
              "count": 2,
              "third_party_count": 2,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 272,
              "count": 49,
              "avg_length": 5.55,
              "max_length": 43,
              "avg_entropy": 1.63,
              "empty_count": 1,
              "entropy_stddev": 1.34
            },
            "comments": {
              "chars": 1067,
              "count": 35,
              "lines": 35,
              "high_entropy": 1,
              "to_code_ratio": 0.3
            },
            "functions": {
              "count": 15
            },
            "identifiers": {
              "count": 181,
              "unique": 65,
              "avg_length": 7.42,
              "max_length": 21,
              "min_length": 1,
              "avg_entropy": 2.45,
              "reuse_ratio": 0.36,
              "length_stddev": 3.98,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 3,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.68,
              "all_uppercase_ratio": 0.08,
              "underscore_prefix_count": 2
            }
          }
        },
        "id": 2,
        "mol": "H(U)",
        "path": "colsole-0.8.0.gem!!data.tar.gz!!lib/colsole.rb",
        "risk": 1,
        "sha": "990fffc3d5a5f984ad5f111d163ade6293417d42ae1c15c191fe2164993c71dc",
        "size": 4039,
        "traits": [
          {
            "id": "micro-behaviors/ui/terminal::ansi-erase-op",
            "conf": 0.86,
            "crit": 3,
            "desc": "ANSI erase-line/erase-screen sequence",
            "spans": [
              [
                3631,
                7
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 878,
              "entropy": 4.7
            },
            "binary": {
              "peak_region_bytes": 878,
              "peak_region_entropy": 4.7
            },
            "registry": {
              "age_days": 1331,
              "published_at": 1674210133,
              "is_deprecated": 0,
              "downloads_total": 922063,
              "downloads_recent": 58653
            }
          }
        },
        "id": 8,
        "path": "colsole@0.8.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "role": "sidecar",
        "sha": "6397f95be0fbfb0efbe20391d23c37b3ae1eefff9a061a15db96058b85561f2c",
        "size": 878,
        "type": "registry"
      }
    ],
    "rev": "c7f7e",
    "v": "8"
  }
}