"""确定性并行检查，展示委派契约；没有创建模型子 Agent。"""
from concurrent.futures import ThreadPoolExecutor
from contracts import ORDER, POLICY, correct_report, digest
from verifier import verify


def facts(report, source):
    return {"kind": "facts", "artifact_hash": digest(report), "result": verify(report, source)}


def representation(report):
    # 这里只检查表达结构是否可供确定性渲染；不声称完成主观文风评价。
    return {"kind": "representation", "artifact_hash": digest(report),
            "result": {"passed": type(report.get("policy_id")) is str}}

if __name__ == "__main__":
    source = {"order": ORDER, "policy": POLICY}
    report = correct_report(source)
    expected = digest(report)
    # 两个分支只读，没有共享文件写入；外部副作用不应照搬这种无锁并行。
    with ThreadPoolExecutor(max_workers=2) as pool:
        pending = [pool.submit(facts, report, source), pool.submit(representation, report)]
        results = [item.result() for item in pending]
    passed = all(item["artifact_hash"] == expected and item["result"]["passed"] for item in results)
    print({"passed": passed, "reports": results})
