blob: 5f96febdd2477dbaf664af6f3c574591b203f3ef [file]
# Copyright 2026 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Driver-lab host tooling (phase 1).
Transport-neutral core: frozen data models, operator read-grant
resolution and persistence, and plan validation, canonicalization, and
digests. The target transport (fuchsia-controller over the
`fuchsia.driver.lab` wire contract) layers on top of these modules and is
deliberately kept out of them so this logic is testable on any host.
"""
from driver_lab.api import (
DriverLab,
DriverLabError,
PollRecord,
ReadRecord,
RunResult,
SequenceItemRecord,
SequenceRecord,
WriteRecord,
connect,
)
from driver_lab.models import AccessClass, AccessRequest, WritePrecondition
from driver_lab.recovery import (
FakeRecoveryController,
FakeSerialCapture,
FfxRecoveryController,
FfxSerialCapture,
PanioloRecoveryController,
PanioloSerialCapture,
RecoveryController,
SerialCapture,
SerialCaptureResult,
SerialCaptureSession,
detect_panic,
extract_panic_summary,
interpret_evidence,
)
from driver_lab.session import (
AccessRequirements,
Clock,
Gpio,
HardwareSession,
I2c,
Interrupt,
MmioRegion,
PollResult,
ProtocolProxy,
Reset,
SequenceOutcome,
Serial,
SessionCapabilities,
Spi,
StateHandle,
TranslationMetadata,
UnsupportedCapabilityError,
WriteResult,
)
from driver_lab.transport import (
AllowRule,
Denial,
DirectDescription,
DirectSession,
DirectTransport,
FidlCallOutcome,
OperationDenied,
PollOutcome,
ProxyDescription,
ProxySession,
ProxyTransport,
ResourceInfo,
SequenceItem,
SessionContext,
SessionMode,
SnapshotItem,
TransportError,
WriteOutcome,
)
__all__ = [
"AccessClass",
"AccessRequest",
"AccessRequirements",
"AllowRule",
"Clock",
"Denial",
"DirectDescription",
"DirectSession",
"DirectTransport",
"DriverLab",
"DriverLabError",
"FakeRecoveryController",
"FakeSerialCapture",
"FfxRecoveryController",
"FfxSerialCapture",
"FidlCallOutcome",
"Gpio",
"HardwareSession",
"I2c",
"Interrupt",
"MmioRegion",
"OperationDenied",
"PanioloRecoveryController",
"PanioloSerialCapture",
"PollOutcome",
"PollRecord",
"PollResult",
"ProtocolProxy",
"ProxyDescription",
"ProxySession",
"ProxyTransport",
"ReadRecord",
"RecoveryController",
"Reset",
"ResourceInfo",
"RunResult",
"SequenceItem",
"SequenceItemRecord",
"SequenceOutcome",
"SequenceRecord",
"Serial",
"SerialCapture",
"SerialCaptureResult",
"SerialCaptureSession",
"SessionCapabilities",
"SessionContext",
"SessionMode",
"SnapshotItem",
"Spi",
"StateHandle",
"TranslationMetadata",
"TransportError",
"UnsupportedCapabilityError",
"WriteOutcome",
"WritePrecondition",
"WriteRecord",
"WriteResult",
"connect",
"detect_panic",
"extract_panic_summary",
"interpret_evidence",
]