{"files": {"main.py": "from core import run\nfrom policy import POLICY\ndef evaluate(payload):\n    return run(payload, POLICY)\n", "core.py": "import copy\nfrom helpers import ascii_fold, merge_fields\n\nALLOWED_FIELDS = {\"name\", \"tags\", \"meta\"}\n\ndef run(payload, policy):\n    policy = policy or {}\n    audit_all = policy.get(\"audit_all\", False)\n    duplicate_policy = policy.get(\"duplicate_policy\", \"last\")\n    empty_id = policy.get(\"empty_id\", \"error\")\n    fold_case = policy.get(\"fold_case\", False)\n    nested_merge = policy.get(\"nested_merge\", False)\n    list_merge = policy.get(\"list_merge\", \"unique\")\n    null_mode = policy.get(\"null_mode\", \"delete\")\n    order = policy.get(\"order\", \"input\")\n    tombstone_wins = policy.get(\"tombstone_wins\", False)\n    trim_ids = policy.get(\"trim_ids\", False)\n    unknown_fields = policy.get(\"unknown_fields\", \"drop\")\n    version_floor = policy.get(\"version_floor\", 3)\n    if payload is None:\n        events = []\n    elif isinstance(payload, dict):\n        events = payload.get(\"events\", [])\n    else:\n        events = payload\n    deduplicated = {}\n    for original_index, event in enumerate(events):\n        raw_id = event.get(\"id\", \"\")\n        normalized_id = raw_id\n        if trim_ids:\n            normalized_id = normalized_id.strip()\n        if fold_case:\n            normalized_id = ascii_fold(normalized_id)\n        if normalized_id == \"\":\n            if empty_id == \"error\":\n                raise ValueError(\"empty id\")\n            continue\n        version = event.get(\"version\")\n        if version < version_floor:\n            continue\n        key = (normalized_id, version)\n        if key not in deduplicated:\n            deduplicated[key] = (event, original_index, normalized_id, version)\n        elif duplicate_policy == \"last\":\n            deduplicated[key] = (event, original_index, normalized_id, version)\n    processed = sorted(deduplicated.values(), key=lambda item: (item[3], item[1]))\n    records_map = {}\n    tombstones = set()\n    first_processed_index = {}\n    audit = []\n    for processed_index, (event, original_index, normalized_id, version) in enumerate(processed):\n        if normalized_id not in first_processed_index:\n            first_processed_index[normalized_id] = processed_index\n        deleted = bool(event.get(\"deleted\", False))\n        applied = False\n        if deleted:\n            if normalized_id in records_map:\n                del records_map[normalized_id]\n                applied = True\n                if tombstone_wins:\n                    tombstones.add(normalized_id)\n            elif tombstone_wins and normalized_id not in tombstones:\n                tombstones.add(normalized_id)\n                applied = True\n            else:\n                applied = False\n        else:\n            if tombstone_wins and normalized_id in tombstones:\n                applied = False\n            else:\n                applied = True\n                if normalized_id not in records_map:\n                    records_map[normalized_id] = {}\n                fields = event.get(\"fields\", {})\n                if not isinstance(fields, dict):\n                    fields = {}\n                if unknown_fields == \"drop\":\n                    filtered = {k: v for k, v in fields.items() if k in ALLOWED_FIELDS}\n                else:\n                    filtered = dict(fields)\n                merge_fields(records_map[normalized_id], filtered, null_mode=null_mode, nested_merge=nested_merge, list_merge=list_merge)\n        if audit_all or applied:\n            status = \"applied\" if applied else \"blocked\"\n            audit.append(f\"{normalized_id}:{version}:{status}\")\n    if order == \"id\":\n        sorted_ids = sorted(records_map.keys())\n    else:\n        sorted_ids = sorted(records_map.keys(), key=lambda nid: (first_processed_index.get(nid, 0), nid))\n    records = [{\"id\": nid, \"fields\": copy.deepcopy(records_map[nid])} for nid in sorted_ids]\n    return {\"records\": records, \"audit\": audit}\n", "policy.py": "POLICY = {\"audit_all\": False, \"duplicate_policy\": \"last\", \"empty_id\": \"error\", \"fold_case\": False, \"list_merge\": \"unique\", \"nested_merge\": False, \"null_mode\": \"delete\", \"order\": \"input\", \"tombstone_wins\": False, \"trim_ids\": False, \"unknown_fields\": \"drop\", \"version_floor\": 3}\n", "helpers.py": "import copy\n\ndef ascii_fold(value):\n    result = []\n    for ch in value:\n        if \"A\" <= ch <= \"Z\":\n            result.append(chr(ord(ch) + 32))\n        else:\n            result.append(ch)\n    return \"\".join(result)\n\ndef json_equal(left, right):\n    if isinstance(left, bool) or isinstance(right, bool):\n        return isinstance(left, bool) and isinstance(right, bool) and left == right\n    if isinstance(left, dict) and isinstance(right, dict):\n        return set(left.keys()) == set(right.keys()) and all(json_equal(left[k], right[k]) for k in left)\n    if isinstance(left, list) and isinstance(right, list):\n        return len(left) == len(right) and all(json_equal(a, b) for a, b in zip(left, right))\n    if isinstance(left, (int, float)) and isinstance(right, (int, float)):\n        return left == right\n    return type(left) is type(right) and left == right\n\ndef merge_fields(target, incoming, null_mode=\"delete\", nested_merge=False, list_merge=\"unique\"):\n    for key, value in incoming.items():\n        if value is None:\n            if null_mode == \"delete\":\n                target.pop(key, None)\n            continue\n        if key not in target:\n            target[key] = copy.deepcopy(value)\n            continue\n        old = target[key]\n        if isinstance(old, dict) and isinstance(value, dict) and nested_merge:\n            merge_fields(old, value, null_mode=null_mode, nested_merge=nested_merge, list_merge=list_merge)\n        elif isinstance(old, list) and isinstance(value, list) and list_merge == \"unique\":\n            old_snapshot = list(old)\n            additions = [copy.deepcopy(item) for item in value if not any(json_equal(item, old_item) for old_item in old_snapshot)]\n            old.extend(additions)\n        else:\n            target[key] = copy.deepcopy(value)\n    return target\n"}}