{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000192523,
        "rte": "az",
        "prob": 0.000192523
      },
      {
        "cls": 0,
        "raw": 0.00022323926,
        "rte": "az/tar",
        "prob": 0.00022323926
      }
    ],
    "prob": 0.000192523,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00019252300262451172,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000017702579498291016,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013321638107299805,
        "type": "ruby"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014344851479108911,
        "type": "ruby"
      },
      {
        "id": 5,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013709068298339844,
        "type": "ruby"
      },
      {
        "id": 33,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 34,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013689200386579614,
        "type": "registry"
      },
      {
        "id": 35,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 36,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015785297364345752,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-07T20:34:08Z"
  },
  "path": "sidekiq-batch-jobs-0.3.0.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFCfXfFCgmfFCfX",
            "ln": 0
          }
        ],
        "mol": "H₂(DbOs)",
        "sha": "3e39d7c317296a00c14e80da7e5808fe9fa653fe5ff36712c53f9e53abe6603d",
        "path": "sidekiq-batch-jobs-0.3.0.gem",
        "refs": [
          {
            "to": "pkg:gem/activerecord",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/railties",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/sidekiq",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 3,
        "size": 39424,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 3,
              "runtime_dependency_count": 3,
              "development_dependency_count": 0
            },
            "file": {
              "size": 39424,
              "entropy": 7.7
            },
            "binary": {
              "peak_region_bytes": 33792,
              "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": 35729,
              "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
            },
            "references": {
              "declared_count": 3,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "sidekiq-batch-jobs",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/douglasgreyling/sidekiq-batch-jobs",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Douglas Greyling",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "0.3.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "micro-behaviors/data/runtime/keywords::pipe-to-ruby",
            "conf": 0.88,
            "crit": 1,
            "desc": "Pipe to Ruby interpreter token"
          },
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\""
          },
          {
            "id": "micro-behaviors/data/db/sql::sql-select",
            "conf": 0.6,
            "crit": 3,
            "desc": "SQL SELECT syntax reference"
          },
          {
            "id": "micro-behaviors/data/db/sql::sql-update",
            "conf": 0.5,
            "crit": 3,
            "desc": "SQL UPDATE syntax reference"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 34402,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 34402,
              "peak_region_entropy": 7.83
            }
          }
        },
        "id": 1,
        "mol": "H₂(DbOs)",
        "path": "sidekiq-batch-jobs-0.3.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 3,
        "sha": "5c606573cc3b223bd29b6843dc041cb8296c157b2d063b5e6d5055a736dca4b7",
        "size": 34402,
        "traits": [
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module"
          },
          {
            "id": "micro-behaviors/data/db/sql::sql-select",
            "conf": 0.6,
            "crit": 3,
            "desc": "SQL SELECT syntax reference"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-2",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"and\""
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant"
          },
          {
            "id": "metadata/file/profile/language::lang-english--atom-1",
            "conf": 0.8,
            "crit": 2,
            "desc": "English function-word token \"the\""
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch"
          },
          {
            "id": "micro-behaviors/data/db/sql::sql-update",
            "conf": 0.5,
            "crit": 3,
            "desc": "SQL UPDATE syntax reference"
          },
          {
            "id": "micro-behaviors/data/runtime/keywords::pipe-to-ruby",
            "conf": 0.88,
            "crit": 1,
            "desc": "Pipe to Ruby interpreter token"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=Oy*?yaax8#+wOV11lsB$CxBk\u003e8v@bN{B09+^zF%Vnv}xH*zGDjdarR^@x(W=}auZ\u0026CBAhIlBs}DxCpkH-C4CMkefD#*z^)6-y*?yaefFZ",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "Cw?IjuUKy(BugK^A=\u003e}x3jm)#arR)Ku[BL+cU)pscM\u003e#VawL{goKGy]zF%RtBzbkdyiarhvJY5yu)6xbwPzj3z/N(YB75%2Bzl5juVQj6uTW$}vr\u0026#9z/]@tA%:3jarR)KwP?T9C{3GVu)6f3aARpdaAITkBy/r2zGE1fB0a)lvRGZ\u003caAhd9v}xr",
            "ln": 117,
            "col": 47,
            "line": 5
          },
          {
            "b": "z/cXtxK@rgvr\u0026#qzY\u003cdnwGUI(BywS!B7D%harR^HlRG^qo\u003cZ*@oDVFvjuO6\u003eqa@P-ADL#pxBk\u003e8arR^HrzV7Hr7d{Jx\u003eg^\u003cx(NG?vru0)wPFh3arR^Hax7Zday!?@y*{*.yJA\u0026{x(W=}auZ\u0026SvqG:?vpK7]uUj1)wN({hD)0fBz/f2\u003evS=y3wm6m:ygQ)%c{Gm9Bz\u003eJ3B8L@9c@9Mtc[cO]ed9HxarR^HarR^HB-p(1By!#\u0026vrrRmarR^HjS)G}s12H8arR^HarT-Rmn=L%x\u003eetHau{#mpdcjmvqG:?vpK7]uUj1)wN(]nj%i6jnMc:brzl6[arR^Hq=ci}3lQDlay]4}aAIagw?EO4y?$Ievru0)dgdguarR^HzE[2uvQTv*xELMzvqG-!arR^HwO#2=3lP",
            "ln": 337,
            "col": 46,
            "line": 9
          },
          {
            "b": "v}WG8vqG:?vpK7]tv?$?zGGd\u003e3lQDlarR^KawM\u0026%xLzu%aAz4ax(!xcA+e=7w]zYjBzbxfaz2.czGEALB8JgyxK#i}azC)tzF%Sgx(mMaBz\u0026pywO#33\u0026^^movS==nBzbj)arR^HarR)KvqY$3B-7Y2zdNQbazC)tB98bjy-)+fB8L(rwN)tmvqYP#Bzbkdv@bN/z6iLlaA}HcBrCQnv@Dx#B0bNrvrsaearR^HarR)Ks7#+\u0026z/{dAx(\u003eFtxK@q}vru0)az\u003eLev}YB{aARpdaA8ptxKL^\u0026wg.q1y\u00260M?v@0idv@Dr$aA8cuwP?T9C{4cIzvdHearR^HboRbDBzkLlxl0",
            "ln": 1277,
            "col": 27,
            "line": 48
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "new"
            ],
            [
              "",
              "squish"
            ],
            [
              "",
              "call"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "terminal?"
            ],
            [
              "",
              "filter_map"
            ],
            [
              "",
              "fire"
            ],
            [
              "",
              "resolve!"
            ],
            [
              "",
              "reload"
            ],
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "failed_status?"
            ],
            [
              "",
              "callbacks"
            ],
            [
              "",
              "claim_only"
            ],
            [
              "",
              "blank?"
            ],
            [
              "",
              "push"
            ],
            [
              "",
              "constantize"
            ],
            [
              "",
              "alert"
            ],
            [
              "",
              "config"
            ],
            [
              "",
              "id"
            ],
            [
              "",
              "class"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "claim!"
            ],
            [
              "",
              "transaction"
            ],
            [
              "",
              "claim!"
            ],
            [
              "",
              "perform_async"
            ],
            [
              "",
              "id"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "positive?"
            ],
            [
              "",
              "execute"
            ],
            [
              "",
              "id"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "size"
            ],
            [
              "",
              "execute"
            ],
            [
              "",
              "squish"
            ],
            [
              "",
              "id"
            ],
            [
              "",
              "exec_update"
            ],
            [
              "",
              "connection"
            ],
            [
              "",
              "sanitize_sql_array"
            ]
          ],
          "mbr": [
            "@batch.reload",
            "@batch.terminal?",
            "Array.new",
            "Array.new.join",
            "Fired.new",
            "SidekiqBatch.connection",
            "SidekiqBatch.connection.exec_update",
            "SidekiqBatch.sanitize_sql_array",
            "SidekiqBatch.transaction",
            "Struct.new",
            "batch.callbacks",
            "batch.failed_status?",
            "batch.id",
            "e.class",
            "e.message",
            "events.filter_map",
            "events.size",
            "job_class_name.blank?",
            "job_class_name.constantize",
            "worker.perform_async"
          ],
          "tgt": [
            "alert",
            "attr_reader",
            "blank?",
            "call",
            "callbacks",
            "claim!",
            "claim_only",
            "class",
            "config",
            "connection",
            "constantize",
            "exec_update",
            "execute",
            "failed_status?",
            "filter_map",
            "fire",
            "id",
            "join",
            "message",
            "new",
            "perform_async",
            "positive?",
            "push",
            "reload",
            "resolve!",
            "sanitize_sql_array",
            "size",
            "squish",
            "terminal?",
            "transaction"
          ],
          "funcs": [
            [
              "call",
              610
            ],
            [
              "initialize",
              666
            ],
            [
              "call",
              792
            ],
            [
              "events",
              1146
            ],
            [
              "fire",
              1235
            ],
            [
              "claim_only",
              2124
            ],
            [
              "push",
              2190
            ],
            [
              "claim!",
              2461
            ],
            [
              "resolve!",
              2551
            ],
            [
              "execute",
              2878
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 15,
              "op.concat": 29,
              "call_count": 39,
              "node_count": 487,
              "member_count": 20,
              "max_array_len": 2,
              "member_depth_max": 3,
              "op_density.concat": 0.06
            },
            "file": {
              "size": 3011,
              "entropy": 4.74
            },
            "text": {
              "lines": 106,
              "top_char": 101,
              "max_ws_run": 6,
              "space_count": 677,
              "char_entropy": 4.74,
              "unique_chars": 76,
              "top_char_null": 0,
              "string_density": 0.08,
              "top_char_ratio": 0.08,
              "avg_line_length": 27.41,
              "max_line_length": 91,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.25,
              "last_line_length": 3,
              "whitespace_ratio": 0.26,
              "identifier_density": 1.11,
              "line_length_stddev": 28.15,
              "normalized_string_count": 0.87,
              "repeated_char_sequences": 1,
              "suspicious_string_ratio": 0.33,
              "suspicious_comment_ratio": 0.07,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 7.88
            },
            "binds": {
              "count": 8
            },
            "binary": {
              "peak_region_bytes": 3011,
              "peak_region_entropy": 4.76
            },
            "source": {
              "class_count": 2,
              "function_count": 9
            },
            "strings": {
              "sql": 2,
              "bytes": 548,
              "count": 9,
              "shell": 1,
              "avg_length": 60.89,
              "max_length": 210,
              "avg_entropy": 3.5,
              "entropy_stddev": 1.1
            },
            "comments": {
              "chars": 852,
              "count": 15,
              "lines": 15,
              "high_entropy": 1,
              "to_code_ratio": 0.16
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 118,
              "unique": 53,
              "avg_length": 7.43,
              "max_length": 18,
              "min_length": 1,
              "avg_entropy": 2.45,
              "reuse_ratio": 0.45,
              "length_stddev": 3.5,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.68,
              "all_uppercase_ratio": 0.02
            }
          }
        },
        "id": 2,
        "path": "sidekiq-batch-jobs-0.3.0.gem!!data.tar.gz!!app/models/sidekiq_batch/announcement.rb",
        "risk": 1,
        "sha": "16f1c25e8543671582ae8ce476bca7b6074adfbcce2db05aa03009296b0ef6ab",
        "size": 3011,
        "traits": [
          {
            "id": "micro-behaviors/data/db/sql::sql-update",
            "conf": 0.5,
            "crit": 3,
            "desc": "SQL UPDATE syntax reference",
            "spans": [
              [
                401,
                32
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 3,
        "sha": "141a5c2a4eb0895129727261c833a8924c7e8d04592d0d0215c42bfd9ef090ad",
        "path": "sidekiq-batch-jobs-0.3.0.gem!!data.tar.gz!!app/models/sidekiq_batch/completion_query.rb",
        "risk": 1,
        "size": 3821,
        "type": "ruby",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "boQPsz*C#juVQsfx(mM\u003cy?X05A:-=BaARTDwEn=+wPq\u003cbA+cvqB7]e@yIv=j3uxY$B.L(cuVGZ]vrujbwGSgiz^)=vC4CYnx(v(k3uxY$B.L(cuVGZ]vrujbwGSgiz^)=vB7n({zdaQ}A+flkx(W=(A+f5}Bzk]far\u003eMsvSKhlzGP/6v@Dj6vrrX2A+flkx(W=(A+f5}Bzk]far\u003eMsvSKhmvqfL2A+eP%z!%b$C{iPowPq\u003cbAS",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "AV^E!q/(C=wmoH?mriA!AYUyPzE:7YarR^HarR)KqE%uRzEWx%wPF#ez^)=gBzb98ay]g$wfu8gBzbPnBrCQneOe*wwPzH5xcqqfwGV59A=#2maz\u003e?6wnC?3vrb]^arR^HarR)Kc@SYcog./JefE.:o!mAaz!6#4C4\u003eDdx(v(re*9C5v@DmaByx6eefF?GBrC1fazC.fx(mG8y*?f\u0026wmmIwBzbkdvG",
            "ln": 346,
            "col": 17,
            "line": 14
          },
          {
            "b": "zY\u003c7ixk8BewPzH5xcq86C4CXpvrDWgy\u0026r-)A%:3jarR^HboQAlA3eUewmWqmvqYP#z/fbeB97\u00261y?j-6wmYU2x([Ryy?mZfaA.-FA+e($B97#lazC{uwQ4S[BzMjBz/f5@e^-ZzarR^Hl}6yvnma[Npdd=AqxOaBeJ$N$z^\u003emuwPz*fAW-bTauzK",
            "ln": 577,
            "col": 51,
            "line": 18
          },
          {
            "b": "zE:7YarR^HarR)Knn\u0026M\u003eaz2CjA^n^Dz!T9he*a87wGTuUzF0P}B-H]jx(v(iw]zYjBzbkdw{4{aaAIaoaA7\u003cmyI[61B1N!xarR^Hay]4}aAIagw?EOizF0P}B-I42arR^HarR^HD1*\u0026awftx2zF0P}3jm)#arR^HarUfjzF0P}3lQDlarR!rzE:7",
            "ln": 903,
            "col": 8,
            "line": 28
          },
          {
            "b": "AaHXzB-qquwPI{bz/cXmx\u003eg:\u003cwP}N6wGUz(wmYoUarR^HarR^HboQ/hBy/FnCwhejayFX)vqfQivpS[Razth8aARpdazbt9vqE6cvr\u0026#lzxKdpwPRP%AV!^kAclknazth5AaJ{diV@ST3lQDlarR^Har@1uzGoViy-)Uly\u003cvdrz^)=gBzbkdA+frl",
            "ln": 1936,
            "col": 49,
            "line": 59
          },
          {
            "b": "aAhvtv}x.53lQDlarR^Har@1xvriM9BAnNyCwXKky?WD#BrC7bvqfQgaAIDzBzbxfay/tkwPz\u0026mvScv4e^-ZzarR^HarU-twmYK\u003cABii]zF0P}e[nZiwO#P%ze0J\u003ey?m*0A+cwuaBEWjvqfRbaAz45x(mDfv}Yp+zy=[\u003ei-x:6wOV11lsB$CxGwgw",
            "ln": 2122,
            "col": 74,
            "line": 61
          },
          {
            "b": "wPGFmwO+}1wNxd-aBtkUwO#QgD3*-CzGG]Ae]boiB8@%Qz^NMdjV%{6y*?yae{82sB0b(rarR^HarR^Hv}Yp+zz2)JvR/:*uVP^@wghznB7]-gz/d9GyIWB2B14CsarR^Haz2C33lQDlarR!CA+PY9By!/?y*?yauU%v@xM4A7i=X!vx(mC*3lQDlarR!qwO96awO+%hA+e($B97#luU0.RBzb2{vqYQ(wPxhux\u003eg^\u003cx(NG\u0026z/ff3xdjfgarR^",
            "ln": 2974,
            "col": 20,
            "line": 77
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "require"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "require_relative"
            ],
            [
              "",
              "handle_death"
            ],
            [
              "",
              "attr_writer"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "base_class"
            ],
            [
              "",
              "auto_install"
            ],
            [
              "",
              "default_configuration"
            ],
            [
              "",
              "register_death_handler"
            ],
            [
              "",
              "client_middleware"
            ],
            [
              "",
              "rebind"
            ],
            [
              "",
              "server?"
            ],
            [
              "",
              "server_middleware"
            ],
            [
              "",
              "rebind"
            ],
            [
              "",
              "delete_if"
            ],
            [
              "",
              "entries"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "klass"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "public_send"
            ],
            [
              "",
              "private_class_method"
            ],
            [
              "",
              "include?"
            ],
            [
              "",
              "death_handlers"
            ],
            [
              "",
              "death_handlers"
            ],
            [
              "",
              "private_class_method"
            ],
            [
              "",
              "jobs/configuration"
            ],
            [
              "",
              "jobs/engine"
            ],
            [
              "",
              "jobs/enum_compat"
            ],
            [
              "",
              "jobs/failure_policy"
            ],
            [
              "",
              "jobs/schema"
            ],
            [
              "",
              "jobs/version"
            ],
            [
              "",
              "sidekiq"
            ]
          ],
          "mbr": [
            "Configuration.new",
            "chain.entries",
            "chain.entries.delete_if",
            "chain.public_send",
            "config.auto_install",
            "config.base_class",
            "entry.klass",
            "entry.klass.to_s",
            "klass.to_s",
            "sidekiq_config.client_middleware",
            "sidekiq_config.death_handlers",
            "sidekiq_config.death_handlers.include?",
            "sidekiq_config.server_middleware"
          ],
          "tgt": [
            "attr_writer",
            "auto_install",
            "base_class",
            "client_middleware",
            "death_handlers",
            "default_configuration",
            "delete_if",
            "entries",
            "handle_death",
            "include?",
            "klass",
            "new",
            "private_class_method",
            "public_send",
            "rebind",
            "register_death_handler",
            "require",
            "require_relative",
            "server?",
            "server_middleware",
            "to_s"
          ],
          "funcs": [
            [
              "config",
              842
            ],
            [
              "configure",
              984
            ],
            [
              "base_class",
              1214
            ],
            [
              "auto_install",
              1277
            ],
            [
              "install!",
              1764
            ],
            [
              "rebind",
              2915
            ],
            [
              "register_death_handler",
              3125
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 1,
              "op.shl": 1,
              "max_depth": 16,
              "op.concat": 17,
              "call_count": 30,
              "node_count": 377,
              "member_count": 13,
              "op_density.eq": 0,
              "op_density.shl": 0,
              "member_depth_max": 3,
              "op_density.concat": 0.05
            },
            "file": {
              "size": 3380,
              "entropy": 4.58
            },
            "text": {
              "lines": 90,
              "top_char": 101,
              "max_ws_run": 1,
              "space_count": 714,
              "char_entropy": 4.58,
              "unique_chars": 67,
              "top_char_null": 0,
              "string_density": 0.08,
              "top_char_ratio": 0.09,
              "avg_line_length": 36.56,
              "max_line_length": 110,
              "empty_line_ratio": 0.19,
              "last_line_length": 3,
              "whitespace_ratio": 0.24,
              "identifier_density": 0.96,
              "line_length_stddev": 31.23,
              "normalized_string_count": 0.74,
              "suspicious_comment_ratio": 0.04,
              "normalized_unique_identifiers": 6.62
            },
            "binds": {
              "count": 3
            },
            "binary": {
              "peak_region_bytes": 3380,
              "peak_region_entropy": 4.71
            },
            "source": {
              "class_count": 4,
              "function_count": 7
            },
            "imports": {
              "count": 7,
              "third_party_count": 7,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 94,
              "count": 7,
              "avg_length": 13.43,
              "max_length": 19,
              "avg_entropy": 3.36,
              "entropy_stddev": 0.44
            },
            "comments": {
              "chars": 1541,
              "count": 25,
              "empty": 1,
              "lines": 24,
              "high_entropy": 1,
              "to_code_ratio": 0.36
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 86,
              "unique": 43,
              "avg_length": 9.72,
              "max_length": 22,
              "min_length": 3,
              "avg_entropy": 2.69,
              "reuse_ratio": 0.5,
              "length_stddev": 4.96,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.05,
              "all_lowercase_ratio": 0.63,
              "all_uppercase_ratio": 0.02
            }
          }
        },
        "id": 4,
        "mol": "H₂(DbOs)",
        "path": "sidekiq-batch-jobs-0.3.0.gem!!data.tar.gz!!lib/sidekiq/batch/jobs.rb",
        "risk": 2,
        "sha": "e71447ae3523dacd1a4b0afcb45b05fd6c450a7b170803f04eb17cf407040211",
        "size": 3380,
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-public-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby public_send method dispatch",
            "spans": [
              [
                3038,
                11
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/module/load::ruby-require-relative",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby loads a relative source module",
            "spans": [
              [
                49,
                16
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "ByO#Bi.Bs1B1Q%vzF0P}B-I53e*9C$3lQDlarR^KazC.cBzkf1x)KuhazC)tBzbkdA+Pf1BrCKsvpJ\u003efazC{uA=(nvayX[]z/PzivqZukzeS@@y-)CkayPzmz!%u2wmYp53lQDlarR^KaA}Hkv}V#)vQTs?uT)[XB8$YavqPN-aAz4kB.L(cB1N!",
            "ln": 133,
            "col": 57,
            "line": 6
          },
          {
            "b": "EiH9.Ef{r7arR^HarR!nBAzLgvpJ!UB8#nuauA}NBz\u003eJ2zGx]dy?$TBi=eqtzGGDcvqYN^uVyj1B.7)!arR^HarR^HboPM}ay/7[A:-E1wPz\u0026yaz#atayYRrwPGEh",
            "ln": 880,
            "col": 95,
            "line": 19
          },
          {
            "b": "B-.Lrz^^f0vq{g4x\u003e7N[x(v(iv@C)?ay]Rnx(mMax(mTbx\u003c\u003e*(Dsp]fz/d9GvqYP#vixSkz/PA1avx%NB8}WharR^HarR^KazkR7B0bKCvqGG$BzbkdzeTo5zGE1yxK@rbwO=o[wmY^7B9z5iB0bgsaA8yAe*9C5lU{gLB0bgrayO+\u0026wPh:5wgO6garR^HarR^KayYFnazULcBrC4raz$R8wGUP6AV/EqwGV55zdK\u0026gwNPT#zy#nsarR^HarR!qwO95]vrl0!v@bN{B6\u0026/[zdL\u003cUC42ifwHN%earR^HarR^Hav6yAB7FY*y*?yauV6p?wGTbUC42ifwIe7yuVML%ao",
            "ln": 1761,
            "col": 12,
            "line": 43
          },
          {
            "b": "e*aLiz/fSruUr}(u)6F#BzblaaARp9zxJs%z/fSrvqZg3DsZFbvR64TB-RapBzbxfaAzQxB0b7nz/3R93lQDlarR^Har@1Cz!9A}ay/j@B8@Ekz!abAaA}HgA+cvVv@#BdwM9.\u003cAbP=saz\u003eLjaz#atayX[8y\u0026r-)wN({ewPPKiarR^HarR^HwmYu}vQTs?uT)[XB8}WharR^HarR^HauzLVvRPE:Bs}6wzGx]bxjVfkvQTs?uT)[XB8$YavqPN83lQDlarR^Haz2C33jm)#arR^HarR)Koj.WNay/tbw]zZivpB4#az+$lxjV9aBzb92ax8#+wOV11cVZzVgCA\u003e)xK$Q)ByF/\u0026BrCdtAa%urefG1LaARpd3lQDlarR^Har@1HwNPK?AV/mhC4CXpA:-D?B0ay}wmYK\u003cAvk/Iz*c7wA+e:0C4CYtaA7\u003cmvix62vrl9[wft\u0026iz!0v1B0(2KyhWN5e=",
            "ln": 2137,
            "col": 17,
            "line": 51
          },
          {
            "b": "aztXoA=Svtvru73azC.mx\u003eg=$Bzbkdz/fbeB97\u0026jwO(0@Bp6ckarR^HarR)KBzb98ay]4[x\u003eg^@ayMy4vru0)cVZzGB-.bizdLsxq!oI.mQZ1EB-I4\u0026z!%b$C{3ZqAV/EqwGUP6A=2\u003eI3lQDlarR^Hay]4}azb4@y\u0026%=fuVo}1x\u003e8AKd0x3nB.90e",
            "ln": 2843,
            "col": 42,
            "line": 68
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "warn"
            ],
            [
              "",
              "logger"
            ],
            [
              "",
              "attr_accessor"
            ],
            [
              "",
              "attr_accessor"
            ],
            [
              "",
              "attr_accessor"
            ],
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "normalize"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "const_get"
            ],
            [
              "",
              "coerce_seconds"
            ],
            [
              "",
              "coerce_seconds"
            ],
            [
              "",
              "normalize"
            ],
            [
              "",
              "call"
            ],
            [
              "",
              "error"
            ],
            [
              "",
              "logger"
            ],
            [
              "",
              "class"
            ],
            [
              "",
              "message"
            ],
            [
              "",
              "is_a?"
            ],
            [
              "",
              "raise"
            ],
            [
              "",
              "inspect"
            ],
            [
              "",
              "to_i"
            ]
          ],
          "mbr": [
            "FailurePolicy.normalize",
            "e.class",
            "e.message",
            "on_alert.call",
            "value.inspect",
            "value.is_a?",
            "value.to_i",
            "value.to_s"
          ],
          "tgt": [
            "attr_accessor",
            "attr_reader",
            "call",
            "class",
            "coerce_seconds",
            "const_get",
            "error",
            "inspect",
            "is_a?",
            "logger",
            "message",
            "normalize",
            "raise",
            "to_i",
            "to_s",
            "warn"
          ],
          "funcs": [
            [
              "initialize",
              1210
            ],
            [
              "base_class_name",
              1964
            ],
            [
              "base_class",
              2281
            ],
            [
              "stuck_after",
              2523
            ],
            [
              "retention",
              2629
            ],
            [
              "failure_policy",
              2964
            ],
            [
              "alert",
              3186
            ],
            [
              "coerce_seconds",
              3643
            ]
          ],
          "metrics": {
            "ast": {
              "op.mul": 5,
              "max_depth": 18,
              "op.concat": 13,
              "call_count": 21,
              "node_count": 402,
              "member_count": 8,
              "op_density.mul": 0.01,
              "member_depth_max": 2,
              "op_density.concat": 0.03
            },
            "file": {
              "size": 3930,
              "entropy": 4.61
            },
            "text": {
              "lines": 100,
              "top_char": 101,
              "max_ws_run": 10,
              "digit_ratio": 0.01,
              "space_count": 1070,
              "char_entropy": 4.61,
              "unique_chars": 81,
              "top_char_null": 0,
              "string_density": 0.05,
              "top_char_ratio": 0.08,
              "avg_line_length": 38.3,
              "max_line_length": 108,
              "non_ascii_ratio": 0,
              "empty_line_ratio": 0.16,
              "last_line_length": 3,
              "whitespace_ratio": 0.3,
              "identifier_density": 0.92,
              "line_length_stddev": 29.79,
              "normalized_string_count": 0.5,
              "repeated_char_sequences": 23,
              "suspicious_comment_ratio": 0.04,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 7.83
            },
            "binds": {
              "count": 19
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 4.92
            },
            "source": {
              "class_count": 4,
              "function_count": 4
            },
            "strings": {
              "bytes": 237,
              "count": 5,
              "avg_length": 47.4,
              "max_length": 94,
              "avg_entropy": 3.94,
              "entropy_stddev": 0.64
            },
            "comments": {
              "chars": 1473,
              "count": 27,
              "lines": 27,
              "high_entropy": 1,
              "to_code_ratio": 0.37
            },
            "functions": {
              "count": 8
            },
            "identifiers": {
              "count": 92,
              "unique": 52,
              "avg_length": 10.58,
              "max_length": 25,
              "min_length": 1,
              "avg_entropy": 2.73,
              "reuse_ratio": 0.57,
              "length_stddev": 5.84,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.08,
              "all_lowercase_ratio": 0.52,
              "all_uppercase_ratio": 0.13
            }
          }
        },
        "id": 5,
        "mol": "H(Db)",
        "path": "sidekiq-batch-jobs-0.3.0.gem!!data.tar.gz!!lib/sidekiq/batch/jobs/configuration.rb",
        "pid": 1,
        "risk": 1,
        "sha": "7386f8bb6e2086eb28a376a7ea2a7d4b8a043eb8b1149bf209d7e44b425116a1",
        "size": 3930,
        "traits": [
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                181,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                1809,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                2891,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                1935,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                2185,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-const-get",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically resolves a constant",
            "spans": [
              [
                2306,
                9
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "id": 33,
        "sha": "7db2ee2ec0f3fde89fb84826472712514b2f5cd192415cde6edeaaa74c42dcb3",
        "path": "activerecord@8.1.3.1.registry.json",
        "size": 1045,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 34,
        "sha": "d63774e3416243ff46ad1f29843a5c5bb5c4190eefa0504390870f69650bec7b",
        "path": "railties@8.1.3.1.registry.json",
        "size": 912,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 35,
        "sha": "04221e6becc4f5f92aa0a10780f44b6b4a45abf4da514c748c8011aa188438f3",
        "path": "sidekiq@8.1.7.registry.json",
        "size": 853,
        "type": "registry",
        "depth": 1
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]?x\u003eg^\u003cx(L.lvru0)eOYikB0rdVC4CYnx(v(kiWcmggCgv9efY4QvR/+1xK$ZYvrrXOf/I6Ki50lHi58%dvp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(ki=o7Ry+c=sB-.qnAW0K*l#NiXy*?xcm@\u0026f^y?W^1a$K{Wx([f5",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 1071,
              "entropy": 4.83
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.84
            },
            "registry": {
              "age_days": 0,
              "published_at": 1788806781,
              "is_deprecated": 0,
              "downloads_total": 413,
              "downloads_recent": 0
            }
          }
        },
        "id": 36,
        "mol": "O(S)Md(Re)",
        "path": "sidekiq-batch-jobs@0.3.0.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 2,
        "role": "sidecar",
        "sha": "e0ecf8ec3b93dcc81febe605e29eaebbe265cd3f5944546afa30db9bc5e64bcc",
        "size": 1071,
        "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": 4,
    "rev": "479f3",
    "v": "8"
  }
}