← Files AI-DM 4 EngineARCHIVED FILE

skills/run-ai-dm-4-engine/scripts/aidm4_core/jsonutil.py

668 Bytes · Oct 4, 2026 · 12:29 UTC

↓ Download file

from __future__ import annotations

import hashlib
import json
from typing import Any


def canonical_json(value: Any) -> str:
    """Return the only JSON encoding used in hashes and deterministic exports."""
    return json.dumps(
        value,
        ensure_ascii=False,
        sort_keys=True,
        separators=(",", ":"),
        allow_nan=False,
    )


def sha256_text(value: str) -> str:
    return hashlib.sha256(value.encode("utf-8")).hexdigest()


def sha256_json(value: Any) -> str:
    return sha256_text(canonical_json(value))


def normalize_json_text(value: str | None) -> Any:
    if value is None:
        return None
    return json.loads(value)

SHA-256: f6a13cad6dcefbd06d997866e84af0aa7b628cd7cc8bc31f2e60a3b16016facb