"""通过 Result reference 和执行配置检查 Digital 执行记录。

除了 counts，本例还读取 program hash、bit order、模拟方法、seed 语义和诊断信息，
并明确检查独立 Digital 路径当前是否提供完整 RunTrace。
"""

from __future__ import annotations

import json

from cascaqit import Circuit, LocalBackend


def main() -> None:
    """运行一个 Digital Job，并校验跨对象引用。"""
    circuit = Circuit(2, program_id="lesson.digital.evidence")
    circuit.h(0).cx(0, 1).measure_all(key="readout")
    job = LocalBackend(seed=205).run(circuit, shots=32)
    result = job.result()
    config = result.metadata["simulation_execution_config"]

    payload = {
        "track": "digital_developer",
        "level": "expert",
        "lesson": "execution_evidence",
        "facts": {
            "job_state": job.status().state,
            "program_hash_matches": result.program_hash
            == circuit.to_ir().stable_hash(),
            "trace_available": "run_trace" in result.metadata,
            "reference_program_hash_matches": (
                result.metadata["references"]["program_hash"] == result.program_hash
            ),
            "method": config["method"],
            "seed": config["seed"],
            "bit_order": result.metadata["bitstring_ordering"]["qubit_order"],
            "diagnostic_codes": result.metadata["diagnostics_summary"]["codes"],
        },
        "boundaries": {
            "hardware_execution": False,
            "cloud_execution": False,
            "network_accessed": False,
            "credentials_loaded": False,
        },
    }
    print(json.dumps(payload, sort_keys=True))


if __name__ == "__main__":
    main()
