#!/usr/bin/env python3
"""Standalone Harmonization reference recomputation (Python stdlib only).

Gaian Harmonization Theorem (ght_market_clears, ght_strong_duality_decentralized_eq_centralized):
lambda* = (sum(b) - X)/sum(1/a), x_i = b_i - lambda*/a_i, cost = sum (a_i/2)(x_i - b_i)^2.
"""
import argparse, json
from pathlib import Path

def harmonize(a, b, target):
    if not a or len(a) != len(b) or any(ai <= 0 for ai in a):
        raise ValueError("positive curvatures and ideals for the same stewards required")
    lam = (sum(b) - target) / sum(1 / ai for ai in a)
    x = [bi - lam / ai for ai, bi in zip(a, b)]
    cost = sum(ai / 2 * (xi - bi) ** 2 for ai, xi, bi in zip(a, x, b))
    return {"allocation": [f"{v:.9f}" for v in x], "clearing_price": f"{lam:.9f}", "market_clears": abs(sum(x) - target) <= 1e-9 * max(1.0, abs(target)), "total_allocated": f"{sum(x):.9f}", "total_cost": f"{cost:.9f}"}

def main():
    p=argparse.ArgumentParser(); p.add_argument("--inputs",type=Path,required=True); p.add_argument("--output",type=Path,required=True); a=p.parse_args()
    i=json.loads(a.inputs.read_text()); out={"module_id":"harmonization","publication_doi":i["publication_binding"]["doi"],"results":[{"case_id":c["case_id"],**harmonize([float(v) for v in c["curvatures"]],[float(v) for v in c["ideals"]],float(c["target"]))} for c in i["cases"]],"schema_version":"VRS-RECOMPUTE-1","scope":"deterministic runtime-kernel reproduction; not empirical calibration or proof of Python-Lean code equivalence"}
    a.output.write_text(json.dumps(out,indent=2,sort_keys=True)+"\n"); print(json.dumps({"status":"PASS","output":str(a.output)},sort_keys=True)); return 0
if __name__ == "__main__": raise SystemExit(main())
