{
  "ml": {
    "v": "7",
    "eng": "2.11.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000060419243,
        "rte": "az",
        "prob": 0.000060419243
      },
      {
        "cls": 0,
        "raw": 0.00019431114,
        "rte": "az/gem",
        "prob": 0.00019431114
      }
    ],
    "prob": 0.000060419243,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000060419242799980566,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000017801919966586865,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014513731002807617,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014603137969970703,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015815099686733447,
        "type": "ruby"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013560056686401367,
        "type": "ruby"
      },
      {
        "id": 19,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014613072380598169,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-14T21:20:23Z"
  },
  "path": "gloo-cli-1.9.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgm",
            "ln": 0
          }
        ],
        "mol": "H₃(DbPoU)",
        "sha": "ffe032944d4a0563f25f120a4cfb658facfa40df3324828b1d4c1480f95bde3d",
        "path": "gloo-cli-1.9.gem",
        "risk": 3,
        "size": 15872,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 0,
              "runtime_dependency_count": 0,
              "development_dependency_count": 0
            },
            "file": {
              "size": 15872,
              "entropy": 7.09
            },
            "binary": {
              "peak_region_bytes": 11264,
              "peak_region_entropy": 7.82
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 12459,
              "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": "gloo-cli",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/ecrane/gloo",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Eric Crane",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "1.9",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "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/hook/event::ruby-before-action-hook",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby before-action hook"
          },
          {
            "id": "micro-behaviors/ui/terminal::cli-menu-select",
            "conf": 0.7,
            "crit": 3,
            "desc": "CLI interactive menu"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 11612,
              "entropy": 7.98
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 11612,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 1,
        "mol": "H₃(DbPoU)",
        "path": "gloo-cli-1.9.gem!!data.tar.gz",
        "pid": 0,
        "risk": 3,
        "sha": "6efaf972d566c21d6353e0da0cbb333b22726d27ebd39799d38281c8943e0c19",
        "size": 11612,
        "traits": [
          {
            "id": "micro-behaviors/process/hook/event::ruby-before-action-hook",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby before-action hook"
          },
          {
            "id": "micro-behaviors/ui/terminal::cli-menu-select",
            "conf": 0.7,
            "crit": 3,
            "desc": "CLI interactive menu"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boPo{BzbPkiYXxaarT9[x\u003e5nMA:-\u0026%arS7HvqfL1z-RDIx\u003e5=9A:-\u0026%kY6}te[n*pdgdpxlVl{?A+Pf1BuhD9lVl{?A+Pf1Brz#wdiHx1gb6?tA+P2alVMQMwIb8Fl2puWA+Pf1BAnNBwPIB6C4Chp3l])5avdbqoI3vzwO#Sy3l{V)xK@r6wO#Skv@DmbvqfR2ayMy5z!%l3v@#B6zxJ\u003efaz\u003eXcBS+yuwO(GtayMyiA=k/lBp6lnvqYP#vqWiaAcb/jzxK4taz+$mA3fpvBzkLlwn=u%e^-*g3s^)XB8@D#wO#SkjrNdgz/mV$lVm0RiYZ5Cy6\u003ep\u003cawkdas5hZZauZ?{zdNQccOx1KwO3g03lQD:moJW",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "3lQDlayO!\u003euVyj5Bye:7wO?+%az2C33jm)#bmkLoboPx)wPF#oxK@r6wO#SkxKM6}ayMymx([f5kmeIQbmkLowmYu}Bzk\u0026kwJ{IAarR!BauZ\u0026Vx(mD*v}YN)wfs\u0026yr7]Z/arR^HA+funA=91rau{#\u003cA=\u003e}oiV@3yy\u0026:d{arUlkwc@U^ar}joar@10",
            "ln": 1981,
            "col": 19,
            "line": 101
          },
          {
            "b": "eIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeEz?car}joar@0%z!i#jBzbxfaA7.7wN/*8xKM6}ay/80y?dM$zxK4tayO!\u003eaA}HgzxJw9aA7.7wN//?arR)Kx(+zbA+eW3wN(]$zxJUhBy/G3v@#BdwGU\u0026dwmW$jarR)Kra]#!ay]z4B0bvs",
            "ln": 2351,
            "col": 41,
            "line": 123
          },
          {
            "b": "B0bQDwN(])C{3QnzGGr3zE)\u003cfaARJAvpS)\u003ev}YN)wo8m0az$+4wmYoUarR)Kw]zYjwmYvYB.(dxv@Dl%x\u003eINevruj4zGvAqarR)oarUiaw/$I)wm5\u003eUw)]*#ByeJ\u003ex(4s2wO}?$arR!svpHAyav6HQxk8l{e[OK4Bz(hB3lQDlazb4(e[n{kvru5",
            "ln": 2633,
            "col": 11,
            "line": 136
          },
          {
            "b": "eIeLaeIeLaeIdqparR)oarR)Km}D=+vixx2B95Kyw/$@4B8$=5wGU(0zdN=hBzb98aARphB0bygygQ)%aAz46wODs0B1N!xar}joay]4}aAIagw?E}iB8$=5wPFh3arR!EwPS6nzxK1yAaK5jd\u003ce4scVTuEcM(X4arUlkwc@U^ar}joar@1cxM58q",
            "ln": 4357,
            "col": 64,
            "line": 212
          },
          {
            "b": "z/f01j0nlHaz#ataAhvtC4\u003eF#wftq6wmYvYB.(dxBzkP6B97\u0026cA3f7rBzkVhazC)tB-Rb8e*abbwGU@jz/6DnaAIjmCwXKnz/M$qwO#Skx(){6aAIagwN/*@z/dfKed9HxarR^HarS4CBy/rgasH-rzGGr3zE)\u0026qaMv{oaxi2=az++kBrCHlaz\u003eXcBS+yuwO(GvcObPEarR^HarR^Oy\u0026slhasHYqz!@#[zyDZ/FrRfOB-5szxK@r6wO#Skx(k54az+$mA6CEpw/#hoB.99Dz/f4",
            "ln": 8780,
            "col": 49,
            "line": 389
          },
          {
            "b": "vruf]AV/EqvqWi8vqZi@y\u00261wtx(d*9wO(0@BzkS9ayMyfwO#SkxK$Q.wPxyCs7#+\u0026ayMymx([f5efG4FwGUI{w)]*#BrC1fwftt)w]zZ3uU%v(BS+yuwO(Ghvrb{4zF%RtzE)x\u0026wN)zved9HxarR^HarS4Bx\u003eg^Zx(){6B08(uz/oD6vqWIp\u0026^^mo",
            "ln": 9176,
            "col": 52,
            "line": 392
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "running"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "set_value"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "create_bool"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "create_bool"
            ],
            [
              "",
              "create"
            ],
            [
              "",
              "pn"
            ],
            [
              "",
              "create_script"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "create_string"
            ],
            [
              "",
              "create_can"
            ],
            [
              "",
              "create_bool"
            ],
            [
              "",
              "create_script"
            ],
            [
              "",
              "count"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "blank?"
            ],
            [
              "",
              "title"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "pop"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "count"
            ],
            [
              "",
              "pop"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "set_value"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "set_value"
            ],
            [
              "",
              "loop"
            ],
            [
              "",
              "push_menu"
            ],
            [
              "",
              "loop"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "now"
            ],
            [
              "",
              "strftime"
            ],
            [
              "",
              "strftime"
            ],
            [
              "",
              "theme"
            ],
            [
              "",
              "ask"
            ],
            [
              "",
              "prompt"
            ],
            [
              "",
              "platform"
            ],
            [
              "",
              "accent"
            ],
            [
              "",
              "emphasis"
            ],
            [
              "",
              "ask"
            ],
            [
              "",
              "prompt"
            ],
            [
              "",
              "platform"
            ],
            [
              "",
              "run_command"
            ],
            [
              "",
              "loop?"
            ],
            [
              "",
              "pop_menu"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "children"
            ],
            [
              "",
              "resolve_alias"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "shortcut_value"
            ],
            [
              "",
              "description_value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "each"
            ],
            [
              "",
              "children"
            ],
            [
              "",
              "resolve_alias"
            ],
            [
              "",
              "downcase"
            ],
            [
              "",
              "shortcut_value"
            ],
            [
              "",
              "downcase"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "run"
            ],
            [
              "",
              "title?"
            ],
            [
              "",
              "clear_screen"
            ],
            [
              "",
              "platform"
            ],
            [
              "",
              "puts"
            ],
            [
              "",
              "box"
            ],
            [
              "",
              "table"
            ],
            [
              "",
              "platform"
            ],
            [
              "",
              "info"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "find_cmd"
            ],
            [
              "",
              "do_script"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "run"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "stop_running"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "starts_with?"
            ],
            [
              "",
              "strip"
            ],
            [
              "",
              "blank?"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "debug"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "process_cmd"
            ],
            [
              "",
              "warn"
            ],
            [
              "",
              "log"
            ],
            [
              "",
              "strip"
            ]
          ],
          "mbr": [
            "@@menu_stack.count",
            "@@menu_stack.each",
            "@@menu_stack.pop",
            "@engine.factory",
            "@engine.log",
            "@engine.log.debug",
            "@engine.log.info",
            "@engine.log.warn",
            "@engine.loop",
            "@engine.platform",
            "@engine.platform.clear_screen",
            "@engine.platform.prompt",
            "@engine.platform.prompt.ask",
            "@engine.platform.table",
            "@engine.platform.table.box",
            "@engine.process_cmd",
            "@engine.running",
            "@engine.stop_running",
            "@engine.theme",
            "DateTime.now",
            "cmd.downcase",
            "cmd.starts_with?",
            "dt.strftime",
            "fac.create",
            "fac.create_bool",
            "fac.create_can",
            "fac.create_script",
            "fac.create_string",
            "gloo_cmd.blank?",
            "items.find_child",
            "menu.find_child",
            "menu.title",
            "mitem.description_value",
            "mitem.shortcut_value",
            "mitem.shortcut_value.downcase",
            "msg.blank?",
            "o.children",
            "o.children.each",
            "o.set_value",
            "o.value",
            "obj.do_script",
            "obj.value",
            "prompt_value.empty?",
            "s.run",
            "theme.accent",
            "theme.emphasis"
          ],
          "tgt": [
            "accent",
            "ask",
            "blank?",
            "box",
            "children",
            "clear_screen",
            "count",
            "create",
            "create_bool",
            "create_can",
            "create_script",
            "create_string",
            "debug",
            "description_value",
            "do_script",
            "downcase",
            "each",
            "emphasis",
            "empty?",
            "factory",
            "find_child",
            "find_cmd",
            "freeze",
            "info",
            "log",
            "loop",
            "loop?",
            "message",
            "new",
            "now",
            "platform",
            "pn",
            "pop",
            "pop_menu",
            "process_cmd",
            "prompt",
            "push_menu",
            "puts",
            "resolve_alias",
            "run",
            "run_command",
            "running",
            "set_value",
            "shortcut_value",
            "starts_with?",
            "stop_running",
            "strftime",
            "strip",
            "table",
            "theme",
            "title",
            "title?",
            "value",
            "warn"
          ],
          "funcs": [
            [
              "typename",
              648
            ],
            [
              "short_typename",
              741
            ],
            [
              "prompt_value",
              887
            ],
            [
              "loop?",
              1080
            ],
            [
              "add_loop_child",
              1259
            ],
            [
              "add_quit_item",
              1464
            ],
            [
              "lazy_add_children",
              1941
            ],
            [
              "title?",
              2049
            ],
            [
              "title",
              2156
            ],
            [
              "add_children_on_create?",
              2535
            ],
            [
              "add_default_children",
              2715
            ],
            [
              "show_menu_stack",
              3147
            ],
            [
              "push_menu",
              3448
            ],
            [
              "pop_menu",
              3607
            ],
            [
              "pop_to_top_level_menu",
              3746
            ],
            [
              "quit_all_menus",
              4015
            ],
            [
              "messages",
              4438
            ],
            [
              "msg_run",
              4556
            ],
            [
              "begin_menu",
              5407
            ],
            [
              "run_before_menu",
              5644
            ],
            [
              "show_options",
              5822
            ],
            [
              "find_cmd",
              6115
            ],
            [
              "run_default",
              6417
            ],
            [
              "run_default_title",
              6908
            ],
            [
              "run_command",
              7078
            ],
            [
              "doc_data",
              8272
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 6,
              "op.gt": 1,
              "op.lt": 1,
              "op.add": 1,
              "op.shl": 4,
              "op.sub": 3,
              "op.land": 1,
              "max_depth": 18,
              "op.concat": 101,
              "call_count": 124,
              "node_count": 1677,
              "member_count": 46,
              "max_array_len": 7,
              "op_density.eq": 0,
              "op_density.gt": 0,
              "op_density.lt": 0,
              "op_density.add": 0,
              "op_density.shl": 0,
              "op_density.sub": 0,
              "op_density.land": 0,
              "max_concat_chain": 2,
              "member_depth_max": 4,
              "op_density.concat": 0.06
            },
            "file": {
              "size": 11202,
              "entropy": 4.64
            },
            "text": {
              "lines": 436,
              "top_char": 101,
              "max_ws_run": 4,
              "digit_ratio": 0,
              "space_count": 2758,
              "char_entropy": 4.64,
              "unique_chars": 85,
              "top_char_null": 0,
              "string_density": 0.14,
              "top_char_ratio": 0.07,
              "ascii_art_lines": 10,
              "avg_line_length": 24.69,
              "max_line_length": 200,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.12,
              "last_line_length": 3,
              "whitespace_ratio": 0.29,
              "identifier_density": 0.87,
              "line_length_stddev": 26.34,
              "normalized_string_count": 2.97,
              "repeated_char_sequences": 35,
              "suspicious_string_ratio": 0.02,
              "trailing_whitespace_lines": 17,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 12.77
            },
            "binds": {
              "count": 48
            },
            "binary": {
              "peak_region_bytes": 6144,
              "peak_region_entropy": 4.89
            },
            "source": {
              "class_count": 1,
              "function_count": 26
            },
            "strings": {
              "sql": 1,
              "bytes": 2927,
              "count": 62,
              "avg_length": 47.21,
              "max_length": 746,
              "avg_entropy": 2.87,
              "empty_count": 3,
              "entropy_stddev": 1.37
            },
            "comments": {
              "chars": 2606,
              "count": 117,
              "empty": 55,
              "lines": 78,
              "to_code_ratio": 0.22
            },
            "functions": {
              "count": 27
            },
            "identifiers": {
              "count": 380,
              "unique": 112,
              "avg_length": 7.7,
              "max_length": 23,
              "min_length": 1,
              "avg_entropy": 2.4,
              "reuse_ratio": 0.29,
              "length_stddev": 4.55,
              "sequential_names": 5,
              "single_char_count": 5,
              "single_char_ratio": 0.04,
              "high_entropy_count": 6,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.74,
              "all_uppercase_ratio": 0.1
            }
          }
        },
        "id": 2,
        "mol": "H(U)",
        "path": "gloo-cli-1.9.gem!!data.tar.gz!!lib/menu.rb",
        "risk": 1,
        "sha": "84795e06b581d7c59e92c4206190887866c03719cc11a6cb5c93061dbcc30648",
        "size": 11202,
        "traits": [
          {
            "id": "micro-behaviors/ui/terminal::cli-menu-select",
            "conf": 0.7,
            "crit": 3,
            "desc": "CLI interactive menu",
            "spans": [
              [
                8859,
                16
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "boPo{BzbPkiYXxaarT9[x\u003e5nMA:-\u0026%arS7HvqfL1z-RDIx\u003e5=9A:-\u0026%kY6}te[n*pdgdpxlVl{?A+Pf1BuhD9lVl{?A+Pf1Brz#wdiHx1gb6?tA+P2alVMQMwIb8Fl2puWA+Pf1BAnNBwPIB6C4Chp3l])5avdbqoI3vzwO#Skx(){6e*8ojzE\u003c@4y?mD{zGE1nzxJvglJ",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "wmY*(A+PGmx(v(pe[PcnwQm[{arT6FauZ?{wn-?Fw].D]DsWA\u003carR)oarR)Kra]?=zEEx[aA7\u003cmBzbkdz^)D)v@@\u0026nD2NsE3lQDo3lQE4wO96awO+%hBA}?pzEEx[3lQDlaAz4nB-Ivxogq#+pF%N/arUlkwc@U^ar}joar@1dxK@rcxM4{kaz$P",
            "ln": 319,
            "col": 18,
            "line": 12
          },
          {
            "b": "eIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeEz?car@0%z!i#jBzbxfaA7.7wN/*8xKM6}ay/80y?dM$zxK4tayO!\u003eaA}HgzxJw9aA7.7wN//?arR)Kx(+zbA+eW3wN(]$zxJUhBy/G3v@#BdwGU\u0026dwmW$jarR)Kra]#!ay]z4B0bvsBrC1hAbo!xwoz{b",
            "ln": 1178,
            "col": 37,
            "line": 61
          },
          {
            "b": "B0bQDwN(])C{3QnzGGr3zE)\u003cfaARJAvpS)\u003ev}YN)wo8m0az$+4wmYoUarR)Kw]zYjwmYvYB.(dxv@Dl%x\u003eINevruj4zGvAqarUiaw/$I)wm5\u003eUw)]*#ByeJ\u003ex(4s2wO}?$arR!svpHAyav6HQxk8l{e[OK4Bz(hB3lQDlazb4(e[n{kvru6/B98B",
            "ln": 1452,
            "col": 11,
            "line": 71
          },
          {
            "b": "eIeLaeIeLaeIdqparR)oarR)Km}D=+vixx2B95Kyw/$@4B8$=5wGU(0zdN=hBzb98aARphB0bygygQ)%aAz46wODs0B1N!xar}joay]4}aAIagw?E}iB8$=5wPFh3arR!EwPS6nzxK1yAaK4%arUlkwc@U^ar@0XeIeLaeIeLaeIeLaeIeLaeIeLa",
            "ln": 1861,
            "col": 64,
            "line": 82
          },
          {
            "b": "e*\u0026gSarR^HarR^HcUdcrd05)sx(FeyaMv{oaxi2=aAI4kx(FepBzb98aA}Koy-)g#aAzQxazCBgBzbkdzdNQcazC}ez6iLlaAIagwN/*[wg/kparR^HarT}%arR^HEf}8twO#2=3t19=3i",
            "ln": 2674,
            "col": 151,
            "line": 105
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "name"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "create_string"
            ],
            [
              "",
              "create_string"
            ],
            [
              "",
              "create_script"
            ]
          ],
          "mbr": [
            "@engine.factory",
            "fac.create_script",
            "fac.create_string",
            "o.value"
          ],
          "tgt": [
            "create_script",
            "create_string",
            "factory",
            "find_child",
            "freeze",
            "name",
            "value"
          ],
          "funcs": [
            [
              "typename",
              402
            ],
            [
              "short_typename",
              495
            ],
            [
              "shortcut_value",
              640
            ],
            [
              "description_value",
              822
            ],
            [
              "do_script",
              1006
            ],
            [
              "add_children_on_create?",
              1358
            ],
            [
              "add_default_children",
              1530
            ],
            [
              "messages",
              1942
            ],
            [
              "doc_data",
              2212
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 9,
              "op.concat": 13,
              "call_count": 16,
              "node_count": 317,
              "member_count": 4,
              "max_array_len": 3,
              "member_depth_max": 2,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 2787,
              "entropy": 4.55
            },
            "text": {
              "lines": 111,
              "top_char": 45,
              "max_ws_run": 4,
              "digit_ratio": 0,
              "space_count": 526,
              "char_entropy": 4.55,
              "unique_chars": 68,
              "top_char_null": 0,
              "string_density": 0.11,
              "top_char_ratio": 0.15,
              "ascii_art_lines": 6,
              "avg_line_length": 24.11,
              "max_line_length": 153,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.23,
              "identifier_density": 0.5,
              "line_length_stddev": 27.08,
              "normalized_string_count": 1.14,
              "repeated_char_sequences": 6,
              "suspicious_identifier_ratio": 0.04,
              "normalized_unique_identifiers": 4.12
            },
            "binds": {
              "count": 8
            },
            "binary": {
              "peak_region_bytes": 1763,
              "peak_region_entropy": 4.68
            },
            "source": {
              "class_count": 1,
              "function_count": 9
            },
            "strings": {
              "bytes": 421,
              "count": 12,
              "avg_length": 35.08,
              "max_length": 142,
              "avg_entropy": 3.09,
              "empty_count": 3,
              "entropy_stddev": 1.05
            },
            "comments": {
              "chars": 1206,
              "count": 44,
              "empty": 16,
              "lines": 28,
              "to_code_ratio": 0.34
            },
            "functions": {
              "count": 10
            },
            "identifiers": {
              "count": 55,
              "unique": 28,
              "avg_length": 8.93,
              "max_length": 23,
              "min_length": 1,
              "avg_entropy": 2.56,
              "reuse_ratio": 0.51,
              "length_stddev": 5.3,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.04,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.18,
              "all_lowercase_ratio": 0.61,
              "all_uppercase_ratio": 0.18
            }
          }
        },
        "id": 3,
        "mol": "H(U)",
        "path": "gloo-cli-1.9.gem!!data.tar.gz!!lib/menu_item.rb",
        "risk": 1,
        "sha": "844eafa226e605a8a5be3b210db192266d37343360bb5eb922b384bd53429b2d",
        "size": 2787,
        "traits": [
          {
            "id": "micro-behaviors/ui/terminal::cli-menu-select",
            "conf": 0.7,
            "crit": 3,
            "desc": "CLI interactive menu",
            "spans": [
              [
                2738,
                19
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "boPo{BzbPkiYXxaarT9[x\u003e5nMA:-\u0026%arS7HvqfL1z-RDIx\u003e5=9A:-\u0026%kY6}te[n*pdgdpxlVl{?A+Pf1BuhD9lVl{?A+Pf1Brz#wdiHx1gbZmzA+P2alVMQMwIb8Fl2puWA+Pf1BAnNBwPIB6C4Chp3l])5avdbqoI3vFxK#0@e^-*g3s^)XB8@E5xK#0@auQ=py\u0026skMiS",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "wEoL5pFLm=o\u0026a!(uQEKQauZ?{z/e][ze:PxuT[1\u003ezddr)cOx1KwO3g03lQDTmmH6JmpetFr7P\u003eXauZ?{vR6d\u0026A+eP^v@#B6zym5GA+e*dwEoL5k$j*xqEqZSr7P\u003eXauZ?{vp\u003cQ)A:Jl+BzkVhcOx1KwO3g03lQD)nMnk/lR*AJk#6/\u003cjS(a@x([2}v@Dj3vqYQ6e[PcnwQm[{3lQDo3lQDoaxi2=az$R8wGU]6aARpdaA7.7wN/*8BA}?pe^-ZzbmkLowmYu}B7Gf1e{8wTwO${[wEoL5arUYoBAIRwawkdas5hZZ3lQE5zE:7YarR)oarR)Kra]?=B7/GjBrCEf",
            "ln": 417,
            "col": 46,
            "line": 15
          },
          {
            "b": "eIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeIeLaeEz?car}joar@0%z!i#jBzbxfaA7.7wN/*8xKM6}ay/80y?dM$zxK4tayO!\u003eaA}HgzxJw9aA7.7wN//?arR)Kx(+zbA+eW3wN(]$zxJUhBy/G3v@#BdwGU\u0026dwmW$jarR)Kra]#!ay]z4B0bvsBrC1hAbo!xwoz{b",
            "ln": 1283,
            "col": 41,
            "line": 59
          },
          {
            "b": "B0bQDwN(])C{3QnzGGr3zE)\u003cfaARJAvpS)\u003ev}YN)wo8m0az$+4wmYoUarR)Kw]zYjwmYvYB.(dxv@Dl%x\u003eINevruj4zGvAqarR)oarUiaw/$I)wm5\u003eUw)]*#ByeJ\u003ex(4s2wO}?$arR!svpHAyav6HQxk8l{e[OK4Bz(hB3lQDlazb4(e[n{kvru5",
            "ln": 1565,
            "col": 11,
            "line": 72
          },
          {
            "b": "eIeLaeIeLaeIdqparR)oarR)Km}D=+vixx2B95Kyw/$@4B8$=5wGU(0zdN=hBzb98aARphB0bygygQ)%aAz46wODs0B1N!xar}joay]4}aAIagw?E}iB8$=5wPFh3arR!EwPS6nzxK1yAaK5jd\u003ce4scV:xrA=-VWaszkLz/v6Dt).X%wO#2=3lQDo",
            "ln": 1947,
            "col": 64,
            "line": 84
          },
          {
            "b": "uVZj4wO#MidgdguwO#2=3lQDo3lQDoaw3e/Bzbkdvq{fdCvtLnx(n9jyH}30CwhejayMylB-qqox\u003ep/$v@Dj3vqYQbaAz46z/Pwhx(\u003eFozxJu{arR)KCwhejuT[1\u003ezddr)ay/80y?aUpv@=c?BzkS9azC{ux\u003ewGfxK@rcv@=p5BrCm9B8AvEay]4[",
            "ln": 2536,
            "col": 85,
            "line": 102
          },
          {
            "b": "aARJAB8bGeayMy4vqY%]AV/pv3lQDoaz\u003eXcBTX{=oL4*TaA.Nzz/]M6wN(]ivqYP#B-7YfwNPW(wgnTBxK#67zF{Ucz/6u1zE:(lvriM7x)a69e^-ZzbmkLowmYu}B7GD2CwhejuT[1\u003ezddr)3lQDlaARKqwO#MijS)13zF9W3wIdzixlbXnz/6s",
            "ln": 2810,
            "col": 49,
            "line": 109
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "freeze"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "create_string"
            ],
            [
              "",
              "create_script"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "command_tokens"
            ],
            [
              "",
              "args"
            ],
            [
              "",
              "command_tokens"
            ],
            [
              "",
              "args"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "create_string"
            ],
            [
              "",
              "factory"
            ],
            [
              "",
              "set_value"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "start"
            ],
            [
              "",
              "stop"
            ],
            [
              "",
              "add_command_node"
            ],
            [
              "",
              "set_context"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "find_child"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "include_quit?"
            ],
            [
              "",
              "add_command_node"
            ]
          ],
          "mbr": [
            "@engine.args",
            "@engine.args.command_tokens",
            "@engine.factory",
            "@engine.factory.create_string",
            "@runner.add_command_node",
            "@runner.set_context",
            "@runner.stop",
            "ShellRunner.new",
            "fac.create_script",
            "fac.create_string",
            "o.set_value",
            "o.value",
            "runner.add_command_node",
            "runner.start",
            "tokens.empty?",
            "tokens.join"
          ],
          "tgt": [
            "add_command_node",
            "args",
            "command_tokens",
            "create_script",
            "create_string",
            "empty?",
            "factory",
            "find_child",
            "freeze",
            "include_quit?",
            "join",
            "message",
            "new",
            "set_context",
            "set_value",
            "start",
            "stop",
            "value"
          ],
          "funcs": [
            [
              "typename",
              625
            ],
            [
              "short_typename",
              718
            ],
            [
              "prompt",
              864
            ],
            [
              "include_quit?",
              1050
            ],
            [
              "add_children_on_create?",
              1467
            ],
            [
              "add_default_children",
              1647
            ],
            [
              "messages",
              2028
            ],
            [
              "get_runner",
              2416
            ],
            [
              "set_with_command",
              2906
            ],
            [
              "msg_start",
              3309
            ],
            [
              "msg_stop",
              3448
            ],
            [
              "add_command",
              3538
            ],
            [
              "set_context",
              3816
            ],
            [
              "run_on_error",
              4008
            ],
            [
              "run_on_unknown_cmd",
              4283
            ],
            [
              "run_on_empty_cmd",
              4572
            ],
            [
              "run_before_action",
              4787
            ],
            [
              "run_after_action",
              4981
            ],
            [
              "add_quit_command",
              5312
            ],
            [
              "doc_data",
              5727
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.lor": 1,
              "max_depth": 13,
              "op.concat": 36,
              "call_count": 45,
              "node_count": 950,
              "member_count": 16,
              "max_array_len": 9,
              "op_density.add": 0,
              "op_density.lor": 0,
              "max_concat_chain": 2,
              "member_depth_max": 3,
              "op_density.concat": 0.04
            },
            "file": {
              "size": 8047,
              "entropy": 4.73
            },
            "text": {
              "lines": 276,
              "top_char": 45,
              "max_ws_run": 4,
              "digit_ratio": 0,
              "space_count": 1583,
              "char_entropy": 4.73,
              "unique_chars": 80,
              "top_char_null": 0,
              "string_density": 0.19,
              "top_char_ratio": 0.09,
              "ascii_art_lines": 10,
              "avg_line_length": 28.16,
              "max_line_length": 171,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.23,
              "identifier_density": 0.62,
              "line_length_stddev": 29.32,
              "normalized_string_count": 3.13,
              "repeated_char_sequences": 13,
              "trailing_whitespace_lines": 4,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 7.77
            },
            "binds": {
              "count": 24
            },
            "binary": {
              "peak_region_bytes": 4096,
              "peak_region_entropy": 4.99
            },
            "source": {
              "class_count": 1,
              "function_count": 20
            },
            "strings": {
              "bytes": 1987,
              "count": 52,
              "avg_length": 38.21,
              "max_length": 159,
              "avg_entropy": 3.28,
              "empty_count": 3,
              "entropy_stddev": 1.14
            },
            "comments": {
              "chars": 2697,
              "count": 97,
              "empty": 40,
              "lines": 58,
              "to_code_ratio": 0.27
            },
            "functions": {
              "count": 21
            },
            "identifiers": {
              "count": 170,
              "unique": 63,
              "avg_length": 9.46,
              "max_length": 23,
              "min_length": 1,
              "avg_entropy": 2.62,
              "reuse_ratio": 0.37,
              "length_stddev": 4.82,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 5,
              "high_entropy_ratio": 0.08,
              "all_lowercase_ratio": 0.63,
              "all_uppercase_ratio": 0.17
            }
          }
        },
        "id": 4,
        "mol": "H(Po)",
        "path": "gloo-cli-1.9.gem!!data.tar.gz!!lib/shell.rb",
        "risk": 1,
        "sha": "dd1d0ccebcfb1ac01292e5c2d435d0b7ff84fe9ae60bc55430c6a910b3220e5a",
        "size": 8047,
        "traits": [
          {
            "id": "micro-behaviors/process/hook/event::ruby-before-action-hook",
            "conf": 0.8,
            "crit": 3,
            "desc": "Ruby before-action hook",
            "spans": [
              [
                481,
                13
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 5,
        "mol": "H(Db)",
        "sha": "f4aa715357e55d4d77154653806a0b3625343cc66b4a7d2c293544b03eb290cb",
        "path": "gloo-cli-1.9.gem!!data.tar.gz!!lib/shell_runner.rb",
        "risk": 1,
        "size": 7792,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]Xy\u0026skzv@b\u003c6efYmGA=U@kzx.a=f!LEgefY4QvR/+1xK$ZYvrrXOf/I6Lg+{:sf!+d5vp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(ki=o7Ry+c=sB-.qnAW0K*mri9LavyfTzE\u003e1yb6mKvy?j!KzGP=iefXRoB7ol8Acb/j",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 790,
              "entropy": 4.63
            },
            "binary": {
              "peak_region_bytes": 790,
              "peak_region_entropy": 4.63
            },
            "registry": {
              "age_days": 0,
              "published_at": 1789420010,
              "is_deprecated": 0,
              "downloads_total": 3230,
              "downloads_recent": 6
            }
          }
        },
        "id": 19,
        "mol": "O(S)Md(Re)",
        "path": "gloo-cli@1.9.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 2,
        "role": "sidecar",
        "sha": "af964496529213eb1fa6fdf0ad4b8488b460a77572920dff73986e402259499d",
        "size": 790,
        "traits": [
          {
            "id": "metadata/registry::low-adoption",
            "conf": 1.0,
            "crit": 1,
            "desc": "Near-zero recent downloads for registry package",
            "spans": [
              [
                0,
                0
              ]
            ]
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          },
          {
            "id": "objectives/supply-chain/impersonation/registry/publish::freshly-published-unestablished-package",
            "conf": 0.7,
            "crit": 3,
            "desc": "Fresh low-adoption registry release",
            "uses": [
              0,
              1
            ],
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "omitted_files": 1,
    "rev": "c7f7e",
    "v": "8"
  }
}