{
  "llm": {
    "conf": 0.000021638172,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "outcome": "benign",
    "interpretation": "Simple HTML template tool"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.000030229488,
        "rte": "az",
        "prob": 0.000030229488
      },
      {
        "cls": 0,
        "raw": 0.002939095,
        "rte": "az/whl",
        "prob": 0.002939095
      }
    ],
    "prob": 0.000032295782,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003229578214813955,
        "type": "whl"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00003229578214813955,
        "type": "python"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000027457872420200147,
        "type": "python"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001385807991027832,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-02T15:59:42Z"
  },
  "path": "pcarg-0.0.1-py3-none-any.whl",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "p!H([6Awak2MRbwb3\u0026!Sl@C-t002W)000Ph003$Fvrc0luTEI+x()Y?e]V8ee6ugrc}C)wpe1DypTgR(rlion:s/2e5-.$B11t-)o?XbL+1mN*pC4bDlLY+7p!H([6Awak2MRbwb3/\u003c5Z-x/-007yF000-l",
            "ln": 0
          }
        ],
        "mol": "H₂(FU)",
        "sha": "3a0b947d9a1cf137ca7024b321bf0637d4f6be283b2aaa4163e04193a6a96e93",
        "path": "pcarg-0.0.1-py3-none-any.whl",
        "risk": 2,
        "size": 3718,
        "type": "whl",
        "facts": {
          "metrics": {
            "whl": {
              "native_extension_count": 0
            },
            "file": {
              "size": 3718,
              "entropy": 7.54
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 7.74
            },
            "archive": {
              "file_count": 9,
              "member_count": 9,
              "script_count": 3,
              "zip_bomb_ratio": 1.84,
              "compressed_size": 2540,
              "directory_count": 0,
              "executable_count": 0,
              "extra_field_size": 0,
              "noise_file_count": 0,
              "compression.ratio": 0.65,
              "hidden_file_count": 0,
              "uncompressed_size": 3912,
              "crc_collision_count": 0,
              "entry_comment_count": 0,
              "max_filename_length": 38,
              "rtlo_filename_count": 0,
              "format.regular_count": 9,
              "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,
              "timing.mtime_unique_count": 3,
              "timing.mtime_unique_ratio": 0.33,
              "misplaced_executable_count": 0,
              "timing.mtime_outlier_count": 4,
              "timing.mtime_dominant_count": 5,
              "timing.mtime_spread_seconds": 8853198,
              "timing.sentinel_mtime_count": 0,
              "security.world_writable_count": 0,
              "timing.mtime_dominant_fraction": 0.56,
              "compression.method_counts.deflate": 9
            }
          }
        },
        "ident": {
          "name": {
            "value": "pcarg",
            "source": "whl.distribution",
            "verified": false
          },
          "trust": "unsigned",
          "emails": [
            "1272660211@qq.com"
          ],
          "authors": [
            {
              "name": "王梓明",
              "role": "author",
              "email": "1272660211@qq.com",
              "source": "whl.author"
            }
          ],
          "version": {
            "value": "0.0.1",
            "source": "whl.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/ui/dialog/prompt::python-input-literal-prompt",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python input prompt with literal text",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "from": [
              {
                "file": 2
              }
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append"
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BBD2\u003cA44glSSw/#53B8$=5wNw}=AcS\u0026XiT(AsarR!CA+PAkc[18?ZVQ\u0026W\u003cHHigIh*-4U\u0026SP=\u003ecZchUA!gUFAjj#\u003e!AIGGt3uQJP=2d(7LYIH]GEGZVQ\u0026W\u003ca8:zPOI^aNc76O\u003c?cVyYQE#QHV$L2\u003c=CFYFrY5zL\u0026W.4\u003c=CDHdgDRbarR!Gx([f5auZ\u0026YzG6-uc[1kZX9gL\u0026\u003c+oL[POI^aNd4XRcN/GiarR^HBzk\u0026kwH[%Cx([f5uTW?\u003cBzblaauZ\u0026?x([f5e]$#Fx(\u003e:J\u0026^^oMFrRAg4gjj2arUSzx(n2vc*m+y\u003eDZGsW6X$YHVUbd[4t8pdgDRbarR!yx(mH6auZ\u0026*D2\u003ePVByY96e]\u003eJiwnC%$wPGmG4gjj2arUGmzE)(ijS)%vcP(uiDU^zlwQMV]A6tS(w]zYjy?W=#azCZoy?W=#B0bgeaz++fwGScVasyAicTve*arR^Hv@DmbwO#PjjS(aSzym5Kz!T8qy?W=#B15.ZwPhD]v}v5otY8USA6tT2asxo8A6tS#4giKKarR^HCwhejaA8jgzyu(OwO(y5vru6kxMO9ccOcw/AWJpUvriM6iT(AsarR^HarR!GwO(y5vru66jS[t?A+eV\u0026c[bPj4gjj2arUogzEEu7jS[\u0026Tze:r1By^7BwPhD]v}v5oDWu(Sx([f5aBOU=efG4GBzLIqe]\u003eJxy***+c)%v*ay/tcBy/uiaBOU=efFCvzGGDcBsw?.wPhD]v}v5oDWu(Sx([f5uTW?\u003cBzblaaBOU=efG4GBzLI}vqZ19xK#ik4giKKarR^HCwhejaA8jgzyx9ADVS$zy?n2ExMO9ccOcw/Cpa{:wO#0@wnb{]jTUw]w?t$\u0026diJ5uaz9Uz3lQDlarR^Haz9lIA+PSbc$WghvqEw43i",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "print"
            ],
            [
              "",
              "input"
            ],
            [
              "",
              "title.split"
            ],
            [
              "",
              "print"
            ],
            [
              "",
              "sys.stdin.readlines"
            ],
            [
              "",
              "'\\n'.join(lines).replace"
            ],
            [
              "",
              "'\\n'.join"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "f.read"
            ],
            [
              "",
              "template.replace('{{ title }}', title).replace('{{ content }}', content).replace"
            ],
            [
              "",
              "template.replace('{{ title }}', title).replace"
            ],
            [
              "",
              "template.replace"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "f.write"
            ],
            [
              "",
              "sys"
            ]
          ],
          "mbr": [
            "f.read",
            "f.write",
            "sys.stdin",
            "sys.stdin.readlines",
            "template.replace",
            "template.replace().replace",
            "template.replace().replace().replace",
            "title.split"
          ],
          "tgt": [
            "f.read",
            "f.write",
            "input",
            "open",
            "print",
            "sys.stdin.readlines",
            "template.replace",
            "template.replace().replace",
            "template.replace().replace().replace",
            "title.split"
          ],
          "funcs": [
            [
              "passage_copy",
              14
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 12,
              "call_count": 14,
              "node_count": 271,
              "member_count": 8,
              "member_depth_max": 4
            },
            "file": {
              "size": 721,
              "entropy": 5.41
            },
            "text": {
              "lines": 18,
              "top_char": 116,
              "max_ws_run": 1,
              "digit_ratio": 0,
              "space_count": 100,
              "char_entropy": 5.41,
              "unique_chars": 92,
              "top_char_null": 0,
              "string_density": 0.94,
              "top_char_ratio": 0.06,
              "avg_line_length": 38.06,
              "max_line_length": 130,
              "non_ascii_ratio": 0.19,
              "empty_line_ratio": 0.22,
              "last_line_length": 22,
              "long_token_count": 1,
              "whitespace_ratio": 0.19,
              "identifier_density": 2.39,
              "line_length_stddev": 34.97,
              "normalized_string_count": 4.01,
              "suspicious_identifier_ratio": 0.05,
              "normalized_unique_identifiers": 5.04
            },
            "binds": {
              "count": 6
            },
            "binary": {
              "peak_region_bytes": 721,
              "peak_region_entropy": 5.41
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 1,
              "stdlib_count": 1,
              "stdlib_ratio": 1
            },
            "strings": {
              "bytes": 234,
              "count": 17,
              "avg_length": 13.76,
              "max_length": 93,
              "avg_entropy": 2.33,
              "entropy_stddev": 1.51,
              "high_entropy_count": 1
            },
            "functions": {
              "count": 1,
              "density": 5.56,
              "code_ratio": 0.89,
              "avg_name_length": 12,
              "no_params_count": 1,
              "avg_length_lines": 16,
              "max_length_lines": 16,
              "min_length_lines": 16
            },
            "identifiers": {
              "count": 43,
              "unique": 21,
              "avg_length": 5.9,
              "max_length": 13,
              "min_length": 1,
              "avg_entropy": 2.21,
              "reuse_ratio": 0.49,
              "length_stddev": 2.78,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.05,
              "all_lowercase_ratio": 1
            }
          }
        },
        "id": 2,
        "mol": "H₂(FU)",
        "path": "pcarg-0.0.1-py3-none-any.whl!!pcarg/passage_copy.py",
        "pid": 0,
        "risk": 2,
        "sha": "8bf22dccbb462db031f84aef3649606f84a4396ef50c8326315194d548547de1",
        "size": 721,
        "traits": [
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "spans": [
              [
                491,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/ui/dialog/prompt::python-input-literal-prompt",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python input prompt with literal text",
            "spans": [
              [
                155,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append",
            "spans": [
              [
                645,
                44
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "x(d*cA=-BBD2\u003cA44glSSw/#b9vpS!Qy?l%^wPPsHiT(AsarR!GauZ\u0026YzG6-uc[1kZX9gL\u0026\u003c+oL}Ql$bkUj62(cN/GiarR^HB9R*VB97@hB-YlWA+PSbc[1kZX8@{?\u003c+oKI\u003eaEH)T?KnpNP%.TdgDRbarR!FauZ\u0026*D2\u003ePVByY96e]\u003eJiwge(o3jNs+arR!Jx([2hz/xo9c$T\u0026NBBt=-CYUq:aszvXefFIwv@C)(zF89WB-.jEi43c$vriM6iT(AsarR^HarR!se{ztIBy=\u003ewe]\u003eJxy***+c)}bgA6vJAjA9FiefDrBzD}6bdk2TLAbn@)wHF]*A6tT2aswJ=e]\u003eJxy***+c)}bgA6tT2aswJ=dgDQ",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "input"
            ],
            [
              "",
              "sys.stdout.write"
            ],
            [
              "",
              "sys.stdin.read"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "f.write"
            ],
            [
              "",
              "s.replace('\u003c/p\u003e\\n\u003cp\u003e', '\\n\\n').replace('\u003cp\u003e', '').replace"
            ],
            [
              "",
              "s.replace('\u003c/p\u003e\\n\u003cp\u003e', '\\n\\n').replace"
            ],
            [
              "",
              "s.replace"
            ],
            [
              "",
              "sys"
            ]
          ],
          "mbr": [
            "f.write",
            "s.replace",
            "s.replace().replace",
            "s.replace().replace().replace",
            "sys.stdin",
            "sys.stdin.read",
            "sys.stdout",
            "sys.stdout.write"
          ],
          "tgt": [
            "f.write",
            "input",
            "open",
            "s.replace",
            "s.replace().replace",
            "s.replace().replace().replace",
            "sys.stdin.read",
            "sys.stdout.write"
          ],
          "funcs": [
            [
              "readable_get",
              14
            ]
          ],
          "metrics": {
            "ast": {
              "max_depth": 16,
              "call_count": 8,
              "node_count": 153,
              "member_count": 8,
              "member_depth_max": 4
            },
            "file": {
              "size": 291,
              "entropy": 5.21
            },
            "text": {
              "lines": 9,
              "top_char": 39,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 38,
              "char_entropy": 5.21,
              "unique_chars": 62,
              "top_char_null": 0,
              "string_density": 1.22,
              "top_char_ratio": 0.08,
              "avg_line_length": 30.33,
              "max_line_length": 86,
              "non_ascii_ratio": 0.12,
              "empty_line_ratio": 0.22,
              "last_line_length": 86,
              "whitespace_ratio": 0.19,
              "identifier_density": 2.33,
              "line_length_stddev": 26.5,
              "normalized_string_count": 3.67,
              "suspicious_identifier_ratio": 0.23,
              "normalized_unique_identifiers": 4.1
            },
            "binds": {
              "count": 2
            },
            "binary": {
              "peak_region_bytes": 291,
              "peak_region_entropy": 5.21
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 1,
              "stdlib_count": 1,
              "stdlib_ratio": 1
            },
            "strings": {
              "bytes": 68,
              "count": 11,
              "avg_length": 6.18,
              "max_length": 20,
              "avg_entropy": 2.05,
              "empty_count": 2,
              "entropy_stddev": 1.38
            },
            "functions": {
              "count": 1,
              "density": 11.11,
              "code_ratio": 0.78,
              "avg_name_length": 12,
              "no_params_count": 1,
              "avg_length_lines": 7,
              "max_length_lines": 7,
              "min_length_lines": 7
            },
            "identifiers": {
              "count": 21,
              "unique": 13,
              "avg_length": 4.77,
              "max_length": 12,
              "min_length": 1,
              "avg_entropy": 1.73,
              "reuse_ratio": 0.62,
              "length_stddev": 2.99,
              "sequential_names": 3,
              "single_char_count": 3,
              "single_char_ratio": 0.23,
              "all_lowercase_ratio": 1
            }
          }
        },
        "id": 3,
        "mol": "H₂(FU)",
        "path": "pcarg-0.0.1-py3-none-any.whl!!pcarg/readable_get.py",
        "pid": 0,
        "risk": 2,
        "sha": "1e6bc90e9130745e9ff401b28187eb5c28748605ca631d167451e0c608b36504",
        "size": 291,
        "traits": [
          {
            "id": "micro-behaviors/fs/read/file::file-read-content",
            "atk": "T1005",
            "mbc": "E1005",
            "conf": 0.6,
            "crit": 2,
            "desc": "Reads file content (Python)",
            "spans": [
              [
                136,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/ui/dialog/prompt::python-input-literal-prompt",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python input prompt with literal text",
            "spans": [
              [
                43,
                5
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/file/open::write-append-create-mode",
            "conf": 0.85,
            "crit": 3,
            "desc": "Python file opened for write or append",
            "spans": [
              [
                156,
                39
              ]
            ]
          }
        ],
        "type": "python"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeJ*Aa{HEb5Q?awG\u003ceVAarr%xcF(JC4CYnx(v(kiWcmgfFk77efY4QvR/+1xK$ZYvrrXOf/I6KgC}0Bh.V^bvp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(kiWcmgfFka8efXIBBzbPkb06Q:y?$TDBzk\u0026kwG\u003cfMB.\u003e\u003eBb4Lnav@=p5BzkVhb03}e",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 816,
              "entropy": 5.09
            },
            "binary": {
              "peak_region_bytes": 816,
              "peak_region_entropy": 5.09
            },
            "registry": {
              "age_days": 0,
              "published_at": 1788354370,
              "releases_24h": 2,
              "releases_48h": 2,
              "is_deprecated": 0,
              "release_count": 2,
              "package_age_days": 0,
              "first_published_at": 1788354370,
              "vulnerability_count": 0
            }
          }
        },
        "id": 8,
        "mol": "Md",
        "path": "pcarg@0.0.1.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "0e141876e1f125f02102f94a2f6a58f7dc96b69055713702eaeac2dada2a4948",
        "size": 816,
        "traits": [
          {
            "id": "metadata/registry::brand-new-package",
            "conf": 1.0,
            "crit": 3,
            "desc": "Package first published within seven days",
            "spans": [
              [
                0,
                32
              ]
            ]
          },
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}