"""VM isolation for malware analysis — pure-core subset (Wave 1).

This is the pure-domain part of the isolation subsystem:

- :mod:`.types` — :class:`IsolationLevel`, :class:`IsolationCategory`,
  :class:`FixKind`, :class:`IsolationFinding`, :class:`IsolationSummary`,
  :class:`IsolationReport`, plus the ``@isolation_check`` and
  ``@isolation_fix`` decorator registries.
- :mod:`.context` — the pure :class:`AnalysisContext` (parsed-XML
  walk) every check reads.
- :mod:`.checks` — per-category check modules (including the pure
  network checks); populated via side-effect imports.
- :mod:`.fixes` — per-target fix executor modules (including the pure
  network fix); populated via side-effect imports.

ADAPTER-bound parts (DEFERRED, still in ``mgf-vm``): ``static_analyzer``
(defusedxml parse), ``runtime_analyzer`` (/proc + provider), ``apply``,
``quarantine``, ``drift`` (DesktopDriftNotifier), and ``baseline``
(file-I/O persistence via ``mgf.common.versioned.VersionedFileStore`` —
file-store I/O does NOT belong in the pure core; it lands in an adapter
later). This package intentionally does NOT re-export any of them.
"""

from __future__ import annotations

# Side-effect imports — populate the @isolation_check + @isolation_fix
# registries at package-import time.
from mgf.vm.core.security.isolation import checks as _checks  # noqa: F401
from mgf.vm.core.security.isolation import fixes as _fixes  # noqa: F401
from mgf.vm.core.security.isolation.analyzers import (
    HostFacts,
    analyze_runtime,
    analyze_static,
)
from mgf.vm.core.security.isolation.context import (
    QUARANTINE_NETWORK_NAME,
    AnalysisContext,
)
from mgf.vm.core.security.isolation.types import (
    ISOLATION_REPORT_SCHEMA_VERSION,
    FixKind,
    IsolationCategory,
    IsolationFinding,
    IsolationFix,
    IsolationLevel,
    IsolationReport,
    IsolationSummary,
    all_checks,
    all_fixes,
    get_fix,
    isolation_check,
    isolation_fix,
    run_runtime_checks,
    run_static_checks,
    runtime_only_checks,
    static_checks,
)

__all__ = [
    "ISOLATION_REPORT_SCHEMA_VERSION",
    "QUARANTINE_NETWORK_NAME",
    "AnalysisContext",
    "FixKind",
    "HostFacts",
    "IsolationCategory",
    "IsolationFinding",
    "IsolationFix",
    "IsolationLevel",
    "IsolationReport",
    "IsolationSummary",
    "all_checks",
    "all_fixes",
    "analyze_runtime",
    "analyze_static",
    "get_fix",
    "isolation_check",
    "isolation_fix",
    "run_runtime_checks",
    "run_static_checks",
    "runtime_only_checks",
    "static_checks",
]
