Gyanateet Dutta
Fix Space loading: direct Streamlit, lazy imports, ReNova page, fix deps
9f8cf99
Raw
History Blame Contribute Delete
1.19 kB
"""SQKD protocol scaffolding for quantum key distribution flows."""
from __future__ import annotations
from dataclasses import replace
from surface_code_in_stem.rl_control.envs.base import EnvBuildContext
from surface_code_in_stem.protocols.base import ProtocolContract, QuantumProtocol
class SQKDProtocol:
"""Experimental SQKD protocol contract."""
contract = ProtocolContract(
name="sqkd",
family="qkd",
description="Pluggable contract for satellite QKD-oriented execution flows.",
capabilities=["bb84_mapping", "satellite_channel", "basis_sifting"],
)
def supports(self, context: EnvBuildContext) -> bool:
return context.distance >= 3 and context.rounds >= 1
def normalize_context(self, context: EnvBuildContext) -> EnvBuildContext:
metadata = dict(context.protocol_metadata)
metadata.setdefault("qkd_mode", "bb84")
return replace(context, protocol_metadata=metadata)
def validate_context(self, context: EnvBuildContext) -> None:
self.contract.validate_context(context)
if context.distance < 3:
raise ValueError("SQKD protocol currently requires distance >= 3.")