"""
node_core — the portable, self-contained AI node engine (universal core only; no domain code).

Vendor this ONE folder into any project. It has NO third-party dependencies (stdlib only) and contains
NO domain logic — all accounting/cooking/etc. specifics live in SKILLS the consuming project supplies.

Public API:
  - The S036 compositional engine:  Skill, Registry, learn, save, load
  - The S045 simple loop:           learn_unique, consistent_set

A "skill" the consumer writes provides the domain pieces (a primitive family / a candidate list +
a metric or oracle); the core does discover -> verify -> adopt-or-refuse -> compose. The core is
domain-blind by construction; `node_core/engine.py` is byte-identical to the sealed canonical core
(sha first-16 7efaf4ac36129bbe) — run `python3 -m node_core.selftest` to prove it.
"""
from .engine import Skill, Registry, learn, save, load          # noqa: F401
from .loop import learn_unique, consistent_set                  # noqa: F401
from .skill_abi import (SkillManifest, Skill as DomainSkill, SkillRegistry,  # noqa: F401
                        ConformanceError, harden, check_conformance)

CORE_SHA16 = "7efaf4ac36129bbe"
__all__ = ["Skill", "Registry", "learn", "save", "load", "learn_unique", "consistent_set",
           "CORE_SHA16", "SkillManifest", "DomainSkill", "SkillRegistry", "ConformanceError",
           "harden", "check_conformance"]
