{
  "llm": {
    "conf": 0.00012053747,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "outcome": "benign",
    "interpretation": "Standard web serial library"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.00017990668,
        "rte": "az",
        "prob": 0.00017990668
      },
      {
        "cls": 0,
        "raw": 0.00033691525,
        "rte": "az/zip",
        "prob": 0.00033691525
      }
    ],
    "prob": 0.00017990668,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00017990668129641563,
        "type": "zip"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003135204315185547,
        "type": "github_actions"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000031183164537651464,
        "type": "github_actions"
      },
      {
        "id": 14,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000032335519790649414,
        "type": "c"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-03T21:23:42Z"
  },
  "path": "github.com-ayushsharma82-webserial-v2.0.7+incompatible.zip",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awys2MK\u00268000000000000000002B/003UCBzb/ae[n*pfjxcGB7/Sdvrci[i5idhwNYZ(A+O@#kZ1[nfFkpmx(mB0ze-{9x\u003c$)\u0026fd{)KByxokA+P09By/H[lia.0boPo{Bz\u0026pjwPRG[BrCWpCYU6ux(4v4ayPd#aAg[jw]zZbawtlEzF%MjvqGU7vrq",
            "ln": 0
          }
        ],
        "mol": "H₂(Cm₂Db)Md(Bk)",
        "sha": "96a7f5bf40ab0e8054075aa43d76d9c0391d1cb6b6b400245f12255e1a5678d8",
        "path": "github.com-ayushsharma82-webserial-v2.0.7+incompatible.zip",
        "risk": 3,
        "size": 721676,
        "type": "zip",
        "facts": {
          "metrics": {
            "file": {
              "size": 721676,
              "entropy": 8
            },
            "binary": {
              "peak_region_bytes": 711680,
              "peak_region_entropy": 7.85
            },
            "archive": {
              "file_count": 22,
              "member_count": 22,
              "script_count": 0,
              "zip_bomb_ratio": 4.37,
              "compressed_size": 716450,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.72,
              "hidden_file_count": 5,
              "uncompressed_size": 998912,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 85,
              "rtlo_filename_count": 0,
              "format.regular_count": 22,
              "nested_archive_count": 0,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "duplicate_member_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "security.encrypted_count": 0,
              "misplaced_executable_count": 0,
              "timing.mtime_dominant_count": 22,
              "timing.sentinel_mtime_count": 22,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 1,
              "compression.method_counts.deflate": 22
            }
          }
        },
        "ident": {
          "name": {
            "value": "github.com-ayushsharma82-webserial",
            "source": "file.basename",
            "verified": false
          },
          "trust": "unsigned",
          "version": {
            "value": "v2.0.7+incompatible",
            "source": "file.basename",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/build/ci/trigger::scheduled-workflow-trigger",
            "conf": 0.9,
            "crit": 3,
            "desc": "GitHub scheduled workflow trigger"
          },
          {
            "id": "micro-behaviors/data/buffer::native-memcpy-byte-copy",
            "conf": 0.85,
            "crit": 3,
            "desc": "Copies bytes with native memcpy",
            "from": [
              {
                "file": 14
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/socket/receive::recv-symbol",
            "mbc": "C0001",
            "conf": 0.66,
            "crit": 3,
            "desc": "Uses recv socket call",
            "from": [
              {
                "file": 14
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/socket/send::send-symbol",
            "mbc": "C0001",
            "conf": 0.66,
            "crit": 3,
            "desc": "Uses send socket call",
            "from": [
              {
                "file": 14
              }
            ]
          },
          {
            "id": "metadata/package/files/included::github-module-zip-basename",
            "conf": 0.86,
            "crit": 1,
            "desc": "GitHub versioned zip filename",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 5260,
              "entropy": 4.95
            },
            "binary": {
              "peak_region_bytes": 3212,
              "peak_region_entropy": 5.27
            }
          }
        },
        "id": 1,
        "path": "github.com-ayushsharma82-webserial-v2.0.7+incompatible.zip!!github.com/ayushsharma82/webserial@v2.0.7+incompatible/.github/workflows/ci.yml",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/actions/checkout@v4",
            "off": 1269,
            "kind": "dependency"
          },
          {
            "to": "pkg:github/arduino/arduino-lint-action@v1",
            "off": 1331,
            "kind": "dependency"
          },
          {
            "to": "pkg:github/actions/checkout@v4",
            "off": 3785,
            "kind": "dependency"
          },
          {
            "to": "pkg:github/actions/cache@v4",
            "off": 3851,
            "kind": "dependency"
          },
          {
            "to": "pkg:github/actions/setup-python@v5",
            "off": 4023,
            "kind": "dependency"
          }
        ],
        "risk": 1,
        "sha": "a70a2ef16435fe17ae1d56d652c72cfeea7aa681f2d969582014edc10eaa1b3e",
        "size": 5260,
        "traits": [
          {
            "id": "metadata/build/ci/step::actions-checkout-yaml",
            "conf": 0.92,
            "crit": 2,
            "desc": "actions/checkout workflow step"
          },
          {
            "id": "micro-behaviors/communications/http/download/cli::hidden-writable-output-path-structured--home",
            "conf": 0.8,
            "crit": 1,
            "desc": "Hidden writable home output path",
            "spans": [
              [
                3948,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/os/service/legitimate::installer-script",
            "conf": 0.8,
            "crit": 2,
            "desc": "HTTP installer script pattern",
            "spans": [
              [
                1458,
                0
              ]
            ]
          }
        ],
        "type": "github_actions"
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 725,
              "entropy": 4.27
            },
            "binary": {
              "peak_region_bytes": 725,
              "peak_region_entropy": 4.27
            }
          }
        },
        "id": 2,
        "mol": "Md(Bk)",
        "path": "github.com-ayushsharma82-webserial-v2.0.7+incompatible.zip!!github.com/ayushsharma82/webserial@v2.0.7+incompatible/.github/workflows/stale.yml",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/actions/stale@v9",
            "off": 143,
            "kind": "dependency"
          }
        ],
        "risk": 1,
        "sha": "6df8889c550b1f10cb261d0138340db6c3c38b3486075ed31e0f6f88e3f1bf02",
        "size": 725,
        "traits": [
          {
            "id": "metadata/build/ci/trigger::scheduled-workflow-trigger",
            "conf": 0.9,
            "crit": 3,
            "desc": "GitHub scheduled workflow trigger"
          }
        ],
        "type": "github_actions"
      },
      {
        "ctx": [
          {
            "b": "arSr\u003caw3S}B.8X9vqG:?vpK6WarR^HarR^HarUxgc%}1av%e$rjS[S+y\u002616jAW=txarR^HarR^HarR^HuVGZ/B%{)fByupxat\u003eX)zdN^fvp%dUB7]@idlv\u003eVarR^HarR^HaBKOtarR^HarR!Paz2wgwGUY0asH=eBywxet{8o[axIGnp*)\u003cHwPQ)%AaI6\u003es5R!1p!szLdiJ%AarR^HarR^HarSr\u003cax8\u0026?wft\u0026fzF6q0arR^HarR^H",
            "ln": 2989,
            "col": 9,
            "line": 84
          },
          {
            "b": "arR^HarV7tarR^HEf}8tEjmk+3lQDAfcAM5BywV)avg6]zEV:VvPc\u0026UC4CXpCwhejaxJb-B8LM7wPR#2arU3jwPz%9AXfE-wmOktzE^M{AWUpsB16fTEf{rmfcCgJo\u003ewx!vp%c]lT:!EvQS+Zav]{UwnC*$3u*u4wfs@+vPc\u0026Ux\u003c\u003e*By*?yaiY.g%",
            "ln": 3244,
            "col": 1,
            "line": 92
          },
          {
            "b": "ay]ykzF%RtB9hCvz/P}xzF%zAvS=o{wPzu)aA}\u003cuBy=OkzxKdmvSMa3x\u003c\u003e*2w]zYjBzbkdnj=rxuR\u003cf?mJ=\u003e=A=U@kzvdHefe1C(wGUO[x(1]ox([2hvixSkvpK6}BAg/1wGUz$y\u0026sJizF78lxK@reB7GwmBz\u0026pixKL^\u003ewGV8dwGUG3wmV)9zY\u003cgzwGVf",
            "ln": 3830,
            "col": 8,
            "line": 123
          },
          {
            "b": "dlv\u003eVarR!EwPS6nzxHR{3lQEt3l%b1wnbS#fe1CHq+QK?nK(rUp^[nK3jm)#CxdztwHF)xefDU@i%)8MA+funA=9oWdlv(+3jnBtaw^8)zGGYjatj\u003clA+PAkw/@-Hs8@1%wGUPczET2{x)Kt$BrBT@vPc\u0026Ux\u003c\u003e*By*?yaiY.F9x()]mv@DmaBrCZuzu",
            "ln": 4337,
            "col": 17,
            "line": 131
          },
          {
            "b": "C{%\u003e.3lQDlaAImywGTbUvS=o{wPz0@x)KtkeG==Nau.\u003egcTpKpau{#\u0026x)KtkeG=+\u003ciV@GTDsYeBarR^HuVP^@wgg]fw[CQ{efG1FDsXJ!3lQDlaAz4nB-IvxB7]@ii%)8MEf{r7atkw\u003cw[=6$aARpdayYF9w[u09Cw7YbwGV59zE^E0xcp.[Byuq7z/M$ivpJ%[mnDO:arU-tDsZD9aAITkA=-A!attt?wO#33jS(Bu3lQEnxLzo]",
            "ln": 4668,
            "col": 29,
            "line": 147
          },
          {
            "b": "y\u0026%/jaAhvnzGE1gB.kk%AV/7dazb+jyZIpcarU36y\u0026%/juVp41zGGk{B.kk%AWSv#3lQEt3lQDlapoklzdNM]AcS\u003csAb]VgByeH1w[CQ{as!NwAb]VgByeH1w[CQ{uVfK*B7GCAayYF9w[u0laAImywHPXFarU3gA+PAkuT!d\u0026w[u0\u0026z!rQ5wPP4BjS[/WDsYeBarU3cvrlJ$Ab]VgByeH1w[CQ{uW3K8By!*3x(dA7jS[PQv@=Hec[b",
            "ln": 5360,
            "col": 9,
            "line": 173
          },
          {
            "b": "AWSv#3lQDlaBKO7arR^Hfe1Cqy\u0026%/jaAhvnzGE1yzY\u0026Xez^)c\u003eayYF9w[u09vqYP#v@=c?By=O6aAg+0yH}O{arR^HuW3K8By!*1z*9QpAb]VgByeH1w[CQ{efFqsA+PAkuT!d\u0026w[u0\u0026z!rQ5wPPv.3lQDlayx8dx(n31vS=o{wPzc@w[D9}BrAZ",
            "ln": 7346,
            "col": 26,
            "line": 242
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "username.isEmpty"
            ],
            [
              "",
              "password.isEmpty"
            ],
            [
              "",
              "ws.setAuthentication"
            ],
            [
              "",
              "username.c_str"
            ],
            [
              "",
              "password.c_str"
            ],
            [
              "",
              "AsyncWebSocket"
            ],
            [
              "",
              "ws.setAuthentication"
            ],
            [
              "",
              "username.c_str"
            ],
            [
              "",
              "password.c_str"
            ],
            [
              "",
              "server.on"
            ],
            [
              "",
              "request.authenticate"
            ],
            [
              "",
              "username.c_str"
            ],
            [
              "",
              "password.c_str"
            ],
            [
              "",
              "request.requestAuthentication"
            ],
            [
              "",
              "request.beginResponse"
            ],
            [
              "",
              "response.addHeader"
            ],
            [
              "",
              "request.send"
            ],
            [
              "",
              "client.setCloseClientOnQueueFull"
            ],
            [
              "",
              "recv"
            ],
            [
              "",
              "client.binary"
            ],
            [
              "",
              "server.addHandler"
            ],
            [
              "",
              "msg.reserve"
            ],
            [
              "",
              "msg.concat"
            ],
            [
              "",
              "recvString"
            ],
            [
              "",
              "ets_printf"
            ],
            [
              "",
              "log_e"
            ],
            [
              "",
              "assert"
            ],
            [
              "",
              "write"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "buffer.concat"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "buffer.c_str"
            ],
            [
              "",
              "buffer.length"
            ],
            [
              "",
              "buffer.concat"
            ],
            [
              "",
              "loop"
            ],
            [
              "",
              "flush_print_buffer"
            ],
            [
              "",
              "memcpy"
            ],
            [
              "",
              "micros"
            ],
            [
              "",
              "ws.cleanupClients"
            ],
            [
              "",
              "ws.count"
            ],
            [
              "",
              "ws.makeBuffer"
            ],
            [
              "",
              "write_row_packet"
            ],
            [
              "",
              "wsbuffer.get"
            ],
            [
              "",
              "ws.binaryAll"
            ],
            [
              "",
              "buffer.length"
            ],
            [
              "",
              "setBuffer"
            ],
            [
              "",
              "buffer.clear"
            ],
            [
              "",
              "WSL_CALC_LOG_PACKET_SIZE"
            ],
            [
              "",
              "has_enough_space"
            ],
            [
              "",
              "flush_global_buffer"
            ],
            [
              "",
              "write_row_packet"
            ],
            [
              "",
              "flush_global_buffer"
            ],
            [
              "",
              "write_row"
            ],
            [
              "",
              "millis"
            ],
            [
              "",
              "ws.binaryAll"
            ],
            [
              "",
              "millis"
            ],
            [
              "",
              "millis"
            ],
            [
              "",
              "ws.cleanupClients"
            ],
            [
              "",
              "micros"
            ],
            [
              "",
              "flush_print_buffer"
            ],
            [
              "",
              "millis"
            ],
            [
              "",
              "flush_global_buffer"
            ],
            [
              "",
              "assert"
            ],
            [
              "",
              "String"
            ],
            [
              "",
              "buffer.reserve"
            ],
            [
              "",
              "memmove"
            ],
            [
              "",
              "memset"
            ],
            [
              "",
              "memmove"
            ],
            [
              "",
              "\u003cassert.h\u003e"
            ],
            [
              "",
              "WebSerial.h"
            ],
            [
              "",
              "wslp.h"
            ]
          ],
          "mbr": [
            "_buffer.c_str",
            "_buffer.clear",
            "_buffer.concat",
            "_buffer.length",
            "_buffer.reserve",
            "_password.c_str",
            "_password.isEmpty",
            "_server.addHandler",
            "_server.on",
            "_username.c_str",
            "_username.isEmpty",
            "_ws.binaryAll",
            "_ws.cleanupClients",
            "_ws.count",
            "_ws.makeBuffer",
            "_ws.onEvent",
            "_ws.setAuthentication",
            "client.binary",
            "client.setCloseClientOnQueueFull",
            "msg.concat",
            "msg.reserve",
            "request.authenticate",
            "request.beginResponse",
            "request.requestAuthentication",
            "request.send",
            "response.addHeader",
            "wsbuffer.get"
          ],
          "tgt": [
            "AsyncWebSocket",
            "String",
            "WSL_CALC_LOG_PACKET_SIZE",
            "_buffer.c_str",
            "_buffer.clear",
            "_buffer.concat",
            "_buffer.length",
            "_buffer.reserve",
            "_flush_global_buffer",
            "_flush_print_buffer",
            "_has_enough_space",
            "_password.c_str",
            "_password.isEmpty",
            "_recv",
            "_recvString",
            "_send",
            "_server.addHandler",
            "_server.on",
            "_username.c_str",
            "_username.isEmpty",
            "_write_row",
            "_write_row_packet",
            "_ws.binaryAll",
            "_ws.cleanupClients",
            "_ws.count",
            "_ws.makeBuffer",
            "_ws.setAuthentication",
            "assert",
            "client.binary",
            "client.setCloseClientOnQueueFull",
            "ets_printf",
            "log_e",
            "loop",
            "memcpy",
            "memmove",
            "memset",
            "micros",
            "millis",
            "msg.concat",
            "msg.reserve",
            "request.authenticate",
            "request.beginResponse",
            "request.requestAuthentication",
            "request.send",
            "response.addHeader",
            "setBuffer",
            "write",
            "wsbuffer.get"
          ],
          "funcs": [
            [
              "setAuthentication(const String\u0026 username, const String\u0026 password)",
              1315
            ],
            [
              "begin(AsyncWebServer *server, const char* url)",
              1612
            ],
            [
              "onMessage(WSLMessageHandler recv)",
              3369
            ],
            [
              "onMessage(WSLStringMessageHandler callback)",
              3445
            ],
            [
              "write(uint8_t m)",
              3733
            ],
            [
              "write(const uint8_t* buffer, size_t size)",
              4448
            ],
            [
              "_send(const uint8_t* buffer, size_t size)",
              5607
            ],
            [
              "_has_enough_space(size_t size)",
              6281
            ],
            [
              "_write_row(uint8_t *data, size_t len)",
              6469
            ],
            [
              "_flush_print_buffer()",
              7133
            ],
            [
              "_flush_global_buffer()",
              7550
            ],
            [
              "loop()",
              7784
            ],
            [
              "setBuffer(size_t initialCapacity)",
              8530
            ],
            [
              "_write_row_packet(uint8_t* dest, const uint8_t *payload, size_t payload_size)",
              8761
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 9,
              "op.gt": 20,
              "op.le": 1,
              "op.lt": 5,
              "op.ne": 4,
              "op.add": 18,
              "op.bor": 1,
              "op.div": 2,
              "op.lor": 1,
              "op.mul": 6,
              "op.shl": 1,
              "op.sub": 8,
              "op.band": 4,
              "op.land": 4,
              "op.lnot": 8,
              "max_depth": 16,
              "op.concat": 17,
              "call_count": 70,
              "node_count": 2227,
              "member_count": 27,
              "max_array_len": 24,
              "op_density.eq": 0,
              "op_density.gt": 0.01,
              "op_density.le": 0,
              "op_density.lt": 0,
              "op_density.ne": 0,
              "op_density.add": 0.01,
              "op_density.bor": 0,
              "op_density.div": 0,
              "op_density.lor": 0,
              "op_density.mul": 0,
              "op_density.shl": 0,
              "op_density.sub": 0,
              "op_density.band": 0,
              "op_density.land": 0,
              "op_density.lnot": 0,
              "max_concat_chain": 3,
              "member_depth_max": 2,
              "op_density.concat": 0.01
            },
            "file": {
              "size": 9378,
              "entropy": 5.14
            },
            "text": {
              "lines": 308,
              "top_char": 101,
              "max_ws_run": 26,
              "digit_ratio": 0.02,
              "space_count": 1739,
              "char_entropy": 5.14,
              "unique_chars": 86,
              "top_char_null": 0,
              "string_density": 0.03,
              "top_char_ratio": 0.07,
              "avg_line_length": 29.45,
              "max_line_length": 169,
              "empty_line_ratio": 0.14,
              "last_line_length": 25,
              "whitespace_ratio": 0.22,
              "identifier_density": 1.34,
              "line_length_stddev": 27.99,
              "normalized_string_count": 0.46,
              "repeated_char_sequences": 21,
              "trailing_whitespace_lines": 2,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 16.21
            },
            "binds": {
              "count": 22
            },
            "binary": {
              "peak_region_bytes": 9378,
              "peak_region_entropy": 5.2
            },
            "source": {
              "function_count": 12
            },
            "imports": {
              "count": 3,
              "third_party_count": 3,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 250,
              "count": 8,
              "avg_length": 31.25,
              "max_length": 98,
              "path_count": 1,
              "avg_entropy": 3.17,
              "entropy_stddev": 0.75
            },
            "comments": {
              "chars": 1450,
              "count": 52,
              "lines": 52,
              "to_code_ratio": 0.2
            },
            "functions": {
              "count": 12
            },
            "identifiers": {
              "count": 414,
              "unique": 134,
              "avg_length": 10.97,
              "max_length": 31,
              "min_length": 1,
              "avg_entropy": 2.76,
              "reuse_ratio": 0.32,
              "length_stddev": 6.62,
              "has_digit_ratio": 0.04,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.01,
              "high_entropy_count": 22,
              "high_entropy_ratio": 0.16,
              "all_lowercase_ratio": 0.57,
              "all_uppercase_ratio": 0.17,
              "numeric_suffix_count": 3,
              "underscore_prefix_count": 22
            }
          }
        },
        "id": 14,
        "mol": "H₂(Cm₂Db)",
        "path": "github.com-ayushsharma82-webserial-v2.0.7+incompatible.zip!!github.com/ayushsharma82/webserial@v2.0.7+incompatible/src/WebSerial.cpp",
        "pid": 0,
        "risk": 2,
        "sha": "b4a4148e50b35aa660dcd5ca51907c29e01419b713758ed5a7ccacca4a4b9d17",
        "size": 9378,
        "traits": [
          {
            "id": "micro-behaviors/data/buffer::native-memcpy-byte-copy",
            "conf": 0.85,
            "crit": 3,
            "desc": "Copies bytes with native memcpy",
            "spans": [
              [
                5424,
                6
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/socket/receive::recv-symbol",
            "mbc": "C0001",
            "conf": 0.66,
            "crit": 3,
            "desc": "Uses recv socket call",
            "spans": [
              [
                3053,
                4
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/socket/send::send-symbol",
            "mbc": "C0001",
            "conf": 0.66,
            "crit": 3,
            "desc": "Uses send socket call",
            "spans": [
              [
                4732,
                4
              ]
            ]
          }
        ],
        "type": "c"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}