"""fpcf — FablePool wire-format conformance toolkit (milestone 2). Reference implementation of canonical serialization, identifiers, Ed25519 envelope signatures, the verification pipeline, the append-only log with deterministic merge, and the conformance vector suite. The normative text lives in ``spec/02-wire-format/``; this package is the executable companion. """ __version__ = "0.2.0" from .errors import ( # noqa: F401 FpcfError, ALL_CODES, CODE_DESCRIPTIONS, E_JSON, E_NUMBER, E_CANONICAL, E_ENVELOPE, E_BODY, E_SIG, E_PREV, E_CAUSALITY, E_REF, E_DUP, ) from .canonical import canonicalize, loads_strict, check_canonical # noqa: F401 from .ids import ( # noqa: F401 op_id_for, actor_id, content_hash, is_op_id, is_content_hash, ) from .signing import ( # noqa: F401 generate_keypair, keypair_from_seed, public_str, make_envelope, sign_envelope, signature_payload, verify_signature, ) from .schemas import ( # noqa: F401 OP_TYPES, ENVELOPE_SCHEMA, BODY_SCHEMAS, validate_envelope, validate_body, ) from .verify import verify_op, ts_key # noqa: F401 from .log import OpLog # noqa: F401 from .vectors import ( # noqa: F401 VECTORS_FORMAT, build_suite, write_suite, load_suite, ) from .runner import Result, Report, run_vector, run_suite, run_dir # noqa: F401 __all__ = [ "__version__", "FpcfError", "ALL_CODES", "CODE_DESCRIPTIONS", "E_JSON", "E_NUMBER", "E_CANONICAL", "E_ENVELOPE", "E_BODY", "E_SIG", "E_PREV", "E_CAUSALITY", "E_REF", "E_DUP", "canonicalize", "loads_strict", "check_canonical", "op_id_for", "actor_id", "content_hash", "is_op_id", "is_content_hash", "generate_keypair", "keypair_from_seed", "public_str", "make_envelope", "sign_envelope", "signature_payload", "verify_signature", "OP_TYPES", "ENVELOPE_SCHEMA", "BODY_SCHEMAS", "validate_envelope", "validate_body", "verify_op", "ts_key", "OpLog", "VECTORS_FORMAT", "build_suite", "write_suite", "load_suite", "Result", "Report", "run_vector", "run_suite", "run_dir", ]