"""Capture-side wrappers for Phase 17 forensics.

Each capture writes an artifact under the case dir and returns an
:class:`~mgf.vm.forensics.case.Artifact` ready for
``CaseStore.add_artifact``. Capture functions never mutate the case
YAML themselves — the CLI layer owns the orchestration so test
doubles can drive each step.
"""

from __future__ import annotations

from mgf.vm.forensics.capture.filesystem import (
    BASELINE_SCHEMA_VERSION,
    DIFF_SCHEMA_VERSION,
    FileEntry,
    FilesystemBaseline,
    FilesystemDiff,
    capture_filesystem_baseline,
    capture_filesystem_diff,
    load_baseline,
    walk_tree,
)
from mgf.vm.forensics.capture.memory import capture_memory
from mgf.vm.forensics.capture.network import (
    NetworkCaptureHandle,
    NetworkCaptureStatus,
    list_network_captures,
    network_capture_status,
    start_network_capture,
    stop_network_capture,
)
from mgf.vm.forensics.capture.screenshot import capture_screenshot

__all__ = [
    "BASELINE_SCHEMA_VERSION",
    "DIFF_SCHEMA_VERSION",
    "FileEntry",
    "FilesystemBaseline",
    "FilesystemDiff",
    "NetworkCaptureHandle",
    "NetworkCaptureStatus",
    "capture_filesystem_baseline",
    "capture_filesystem_diff",
    "capture_memory",
    "capture_screenshot",
    "list_network_captures",
    "load_baseline",
    "network_capture_status",
    "start_network_capture",
    "stop_network_capture",
    "walk_tree",
]
