"""introspect.py —— 在沙箱镜像里跑，导出 pip 包清单 JSON 到 stdout.

build.sh / build.ps1 的第二阶段通过 `docker run --entrypoint python ... /tmp/introspect.py`
挂载本文件并执行；单独抽一个 .py 是为了避免跨 shell 的嵌套引号转义（bash + PowerShell
对 `python -c "..."` 里的单双引号处理方式不同，inline 容易崩）.
"""
import json
import importlib.metadata as m

pkgs = sorted({
    d.metadata["Name"].lower()
    for d in m.distributions()
    if d.metadata.get("Name")
})
print(json.dumps(pkgs))
