Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/assmaa-sec_pentrai.json
T
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
3.0 KiB
JSON

{"repo": "assmaa-sec/pentrai", "files": {"pentrai_pipeline/config.py": {"180fed09e6dba542a1e817ae47a308f6467f32d3": {"t": 1786068460.1548612, "n": 2745, "h": "8bb5858e26c07087", "c": "\"\"\"\nRuntime configuration for the pipeline.\n\nEverything the stages need to reach the outside world (the PentrAI tool server,\nthe LLM, Docker) is centralized here and sourced from the environment so the same\ncode runs on a dev laptop and in the eventual hosted product. Defaults match the\nexisting PentrAI setup (server on :8888, the llm_proxy on :8889).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nfrom dataclasses import dataclass, field\n\nfrom .contracts import Posture\n\n\n@dataclass\nclass LLMSettings:\n # Provider-agnostic, OpenAI-compatible. Points at the existing llm_proxy by\n # default (which forwards to DeepSeek and logs tool calls); override to hit any\n # OpenAI-compatible endpoint directly.\n base_url: str = field(default_factory=lambda: os.getenv(\"PENTRAI_LLM_BASE_URL\", \"http://127.0.0.1:8889/v1\"))\n api_key: str = field(default_factory=lambda: os.getenv(\"PENTRAI_LLM_API_KEY\", \"\"))\n model: str = field(default_factory=lambda: os.getenv(\"PENTRAI_LLM_MODEL\", \"deepseek-chat\"))\n request_timeout_s: int = 300\n\n\n@dataclass\nclass SandboxSettings:\n # The containment boundary. See docs/THREAT_MODEL.md.\n docker_bin: str = field(default_factory=lambda: os.getenv(\"PENTRAI_DOCKER_BIN\", \"docker\"))\n # The sandbox network gets NO route to the public internet by default: the\n # target and the attacker tooling can reach each other and nothing else.\n allow_egress: bool = False\n # Hosts the sandbox may still reach even when egress is off (e.g. a local CVE\n # mirror). Keep empty for full isolation.\n egress_allowlist: list[str] = field(default_factory=list)\n build_timeout_s: int = 900\n healthcheck_timeout_s: int = 120\n\n\n@dataclass\nclass Settings:\n # The existing PentrAI tool server (150-tool catalog) that stages drive.\n pentrai_server_url: str = field(default_factory=lambda: os.getenv(\"PENTRAI_SERVER_URL\", \"http://127.0.0.1:8888\"))\n\n # Where the pipeline stages write working copies, logs and artifacts.\n work_dir: str = field(default_factory=lambda: os.getenv(\"PENTRAI_WORK_DIR\", os.path.join(os.getcwd(), \".pentrai_runs\")))\n\n default_posture: Posture = Posture.EXTERNAL\n\n # Which SCA backend to shell out to (all deterministic CVE scanners).\n sca_tool: str = field(default_factory=lambda: os.getenv(\"PENTRAI_SCA_TOOL\", \"osv-scanner\"))\n\n # Budget guards for the exploitation agent so a job can't run forever / spend\n # unbounded tokens attempting one hypothesis.\n max_exploit_steps_per_finding: int = 20\n max_findings_to_validate: int = 25\n\n llm: LLMSettings = field(default_factory=LLMSettings)\n sandbox: SandboxSettings = field(default_factory=SandboxSettings)\n\n @classmethod\n def from_env(cls) -> \"Settings\":\n return cls()\n"}}}}