{"files": {"main.py": "from core import run\nfrom policy import POLICY\ndef evaluate(payload):\n    return run(payload, POLICY)\n", "core.py": "from helpers import deep_copy, merge_into, normalize_id\n\nALLOWED_FIELDS = {\"name\", \"tags\", \"meta\"}\n\ndef run(payload, policy):\n    if isinstance(payload, dict):\n        if \"events\" in payload:\n            raw_events = payload.get(\"events\") or []\n        elif \"items\" in payload:\n            raw_events = payload.get(\"items\") or []\n        else:\n            raw_events = []\n    elif isinstance(payload, (list, tuple)):\n        raw_events = list(payload)\n    else:\n        raw_events = []\n    floor = policy.get(\"version_floor\", 0)\n    duplicate_policy = policy.get(\"duplicate_policy\", \"first\")\n    deduped = {}\n    for original_index, event in enumerate(raw_events):\n        if not isinstance(event, dict):\n            continue\n        raw_id = event.get(\"id\", \"\")\n        if raw_id is None:\n            raw_id = \"\"\n        elif not isinstance(raw_id, str):\n            raw_id = str(raw_id)\n        normalized = normalize_id(raw_id, policy)\n        if normalized == \"\":\n            if policy.get(\"empty_id\") == \"raise\":\n                raise ValueError(\"empty id\")\n            continue\n        version = event.get(\"version\", 0)\n        if version < floor:\n            continue\n        key = (normalized, version)\n        if key not in deduped:\n            deduped[key] = (original_index, normalized, version, event)\n        elif duplicate_policy == \"last\":\n            deduped[key] = (original_index, normalized, version, event)\n    processed = sorted(deduped.values(), key=lambda item: (item[2], item[0]))\n    records_map = {}\n    tombstones = set()\n    first_processed = {}\n    audit = []\n    tombstone_wins = policy.get(\"tombstone_wins\", False)\n    audit_all = policy.get(\"audit_all\", False)\n    drop_unknown = policy.get(\"unknown_fields\") == \"drop\"\n    for processed_index, (original_index, normalized, version, event) in enumerate(processed):\n        if normalized not in first_processed:\n            first_processed[normalized] = processed_index\n        deleted = bool(event.get(\"deleted\", False))\n        applied = False\n        if deleted:\n            if normalized in records_map:\n                del records_map[normalized]\n                if tombstone_wins:\n                    tombstones.add(normalized)\n                applied = True\n            elif tombstone_wins and normalized not in tombstones:\n                tombstones.add(normalized)\n                applied = True\n            else:\n                applied = False\n        else:\n            if tombstone_wins and normalized in tombstones:\n                applied = False\n            else:\n                if normalized not in records_map:\n                    records_map[normalized] = {}\n                fields = event.get(\"fields\") or {}\n                if not isinstance(fields, dict):\n                    fields = {}\n                if drop_unknown:\n                    fields = {k: v for k, v in fields.items() if k in ALLOWED_FIELDS}\n                merge_into(records_map[normalized], fields, policy)\n                applied = True\n        if audit_all or applied:\n            audit.append(f\"{normalized}:{version}:{'applied' if applied else 'blocked'}\")\n    if policy.get(\"order\") == \"id\":\n        ordered_ids = sorted(records_map.keys())\n    else:\n        ordered_ids = sorted(records_map.keys(), key=lambda nid: (first_processed.get(nid, 0), nid))\n    records = [{\"id\": nid, \"fields\": deep_copy(records_map[nid])} for nid in ordered_ids]\n    return {\"records\": records, \"audit\": audit}\n", "policy.py": "POLICY = {\"audit_all\": True, \"duplicate_policy\": \"first\", \"empty_id\": \"skip\", \"fold_case\": True, \"list_merge\": \"replace\", \"nested_merge\": True, \"null_mode\": \"ignore\", \"order\": \"id\", \"tombstone_wins\": True, \"trim_ids\": True, \"unknown_fields\": \"keep\", \"version_floor\": 2}\n", "helpers.py": "import copy\n\ndef deep_copy(value):\n    return copy.deepcopy(value)\n\ndef ascii_fold(value):\n    return \"\".join(chr(ord(ch) + 32) if \"A\" <= ch <= \"Z\" else ch for ch in value)\n\ndef normalize_id(raw_id, policy):\n    normalized = raw_id\n    if policy.get(\"trim_ids\"):\n        normalized = normalized.strip()\n    if policy.get(\"fold_case\"):\n        normalized = ascii_fold(normalized)\n    return normalized\n\ndef json_equal(left, right):\n    if isinstance(left, bool) or isinstance(right, bool):\n        return type(left) is type(right) and left == right\n    if isinstance(left, dict) and isinstance(right, dict):\n        if set(left.keys()) != set(right.keys()):\n            return False\n        return all(json_equal(left[key], right[key]) for key in left)\n    if isinstance(left, list) and isinstance(right, list):\n        if len(left) != len(right):\n            return False\n        return 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    if type(left) is not type(right):\n        return False\n    return left == right\n\ndef merge_into(target, source, policy):\n    null_mode = policy.get(\"null_mode\", \"ignore\")\n    nested_merge = policy.get(\"nested_merge\", False)\n    list_merge = policy.get(\"list_merge\", \"replace\")\n    for key, value in source.items():\n        if value is None:\n            if null_mode == \"delete\":\n                target.pop(key, None)\n            continue\n        if nested_merge and key in target and isinstance(target[key], dict) and isinstance(value, dict):\n            merge_into(target[key], value, policy)\n        elif list_merge == \"unique\" and key in target and isinstance(target[key], list) and isinstance(value, list):\n            old_items = target[key]\n            appended = [deep_copy(item) for item in value if not any(json_equal(item, old_item) for old_item in old_items)]\n            target[key] = list(old_items) + appended\n        else:\n            target[key] = deep_copy(value)\n    return target\n"}}