"""mindXtrain autoresearch — iterated search with verifiable per-attempt provenance. A thin iteration shell over primitives that already pass their suite (`proof_loop`, `feedback`, `mei`, `manifest`): the declarative `AttemptContract` decouples the keep/reset loop from the benchmark, the git guard fences every attempt to one editable file and dedups by commit, and the durable `Ledger` records the trail. See `docs/mindXtrain_autoresearch_strategy.md`. Import-light: stdlib + pydantic only, so `import mindxtrain.research` works on the base install. Heavier eval metric sources are lazy-imported by the attempt runner. """ from __future__ import annotations from mindxtrain.research.anchor import ( AutoresearchReceipt, anchor_on_chain, build_research_receipt, ) from mindxtrain.research.attempt import AttemptResult, read_metric, run_attempt, run_logged from mindxtrain.research.contract import AttemptContract, MetricSource from mindxtrain.research.guard import ( ResearchAbort, assert_clean_and_committed, assert_new_commit, repo_root, ) from mindxtrain.research.ledger import AttemptMetric, Ledger, LedgerEntry from mindxtrain.research.search import search, search_from_contract __all__ = [ "AttemptContract", "AttemptMetric", "AttemptResult", "AutoresearchReceipt", "Ledger", "LedgerEntry", "MetricSource", "ResearchAbort", "anchor_on_chain", "assert_clean_and_committed", "assert_new_commit", "build_research_receipt", "read_metric", "repo_root", "run_attempt", "run_logged", "search", "search_from_contract", ]