Download scripts/contract_interop.py from weideyouni/holoaeon: direct link, hf CLI and curl.
- Browser
- Download file 3.88 kB
-
https://huggingface.co/weideyouni/holoaeon/resolve/main/scripts/contract_interop.py
- Command line
-
hf download hf://weideyouni/holoaeon/scripts/contract_interop.py
-
curl -L -o contract_interop.py https://huggingface.co/weideyouni/holoaeon/resolve/main/scripts/contract_interop.py
3.88 kB
| # -*- coding: utf-8 -*- | |
| """B1b 同参指纹互认实验(确定性、可跨进程复跑)。 | |
| 用法: | |
| python scripts/contract_interop.py --out reports/contract_v1_interop_a.json | |
| python scripts/contract_interop.py --out reports/contract_v1_interop_b.json | |
| python scripts/contract_interop_final.py # 比对两次运行并落最终回执 | |
| 判据: | |
| I1 同一 body 两次构造 → 指纹相等(跨进程由两次独立运行比对字节证明) | |
| I2 payload 改一个键 → 指纹不同 | |
| I3 nonce 不进指纹 → 再加 nonce 指纹不变 | |
| I4 全部样本 validate_v1 通过 | |
| 输出不含时间戳,保证两次运行字节一致。 | |
| """ | |
| import json | |
| import os | |
| import sys | |
| ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| if ROOT not in sys.path: | |
| sys.path.insert(0, ROOT) | |
| from holoaeon.fusion_upgrade import contract as c | |
| RED = {"zero_dose": True, "c0_not_efficacy": True, "emergency_120": True} | |
| def samples(): | |
| general = {"source": "local", "target": "gitee", "skill": "fusion_contract", | |
| "mechanism": "semantic_bus", "lane": "read", | |
| "payload": {"domain": "general", "notes": "B1b 最小样本"}} | |
| medical = {"source": "local", "target": "ivsa", "skill": "fusion_plan", | |
| "mechanism": "meridian", "lane": "read", | |
| "payload": {"domain": "medical", "inputs": {"case_id": "R-001"}, | |
| "evidence": {"sha256": "98940b774566543b"}, | |
| "redlines": dict(RED), "notes": "只交换契约,不搬代码"}} | |
| changed = json.loads(json.dumps(general)) | |
| changed["payload"]["notes"] = "改一个键" | |
| with_nonce = json.loads(json.dumps(general)) | |
| with_nonce["nonce"] = "n-20261102-01" | |
| return {"general": general, "medical": medical, "changed": changed, "with_nonce": with_nonce} | |
| def run(): | |
| raw = samples() | |
| docs = {} | |
| for name, body in raw.items(): | |
| doc = c.build(**{k: v for k, v in body.items() if k != "payload"}, | |
| payload=body.get("payload")) | |
| if "nonce" in body: | |
| doc["nonce"] = body["nonce"] | |
| docs[name] = doc | |
| # I1:同参再构造一次 | |
| again = c.build(source="local", target="gitee", skill="fusion_contract", | |
| mechanism="semantic_bus", lane="read", | |
| payload={"domain": "general", "notes": "B1b 最小样本"}) | |
| rows = [] | |
| for name in ("general", "medical", "changed", "with_nonce"): | |
| doc = docs[name] | |
| v = c.validate_v1(doc) | |
| rows.append({"name": name, "contract_id": doc["contract_id"], | |
| "valid": v["ok"], "errors": v["errors"]}) | |
| result = { | |
| "experiment": "B1b-cross-process-fingerprint", | |
| "dna_id": "SG-DNA-FIVE-SITE-SYNC-V1.1", | |
| "fingerprint_rule": "sha256(canonical(source,target,skill,mechanism,lane,payload))[:12]", | |
| "samples": rows, | |
| "same_params_equal": docs["general"]["contract_id"] == again["contract_id"], | |
| "payload_changed_differs": docs["general"]["contract_id"] != docs["changed"]["contract_id"], | |
| "nonce_not_in_fingerprint": c.fingerprint(docs["general"]) == c.fingerprint(docs["with_nonce"]), | |
| "all_valid": all(r["valid"] for r in rows), | |
| } | |
| return result | |
| def main(argv): | |
| result = run() | |
| out = None | |
| if "--out" in argv: | |
| idx = argv.index("--out") | |
| if idx + 1 < len(argv): | |
| out = argv[idx + 1] | |
| text = json.dumps(result, ensure_ascii=False, indent=2, sort_keys=True) | |
| if out: | |
| with open(out, "w", encoding="utf-8", newline="\n") as f: | |
| f.write(text + "\n") | |
| print(text) | |
| ok = (result["same_params_equal"] and result["payload_changed_differs"] | |
| and result["nonce_not_in_fingerprint"] and result["all_valid"]) | |
| return 0 if ok else 1 | |
| if __name__ == "__main__": | |
| sys.exit(main(sys.argv)) | |