LICENSE
README.md
pyproject.toml
src/attestroot/__init__.py
src/attestroot/bundle.py
src/attestroot/canon.py
src/attestroot/cli.py
src/attestroot/grade.py
src/attestroot/ledger.py
src/attestroot/merkle.py
src/attestroot/paths.py
src/attestroot/py.typed
src/attestroot/seal.py
src/attestroot/signing.py
src/attestroot/verify.py
src/attestroot/version.py
src/attestroot.egg-info/PKG-INFO
src/attestroot.egg-info/SOURCES.txt
src/attestroot.egg-info/dependency_links.txt
src/attestroot.egg-info/entry_points.txt
src/attestroot.egg-info/requires.txt
src/attestroot.egg-info/top_level.txt
src/attestroot/adapters/__init__.py
src/attestroot/adapters/base.py
src/attestroot/adapters/claude_code.py
src/attestroot/adapters/conformance/__init__.py
src/attestroot/adapters/conformance/runner.py
src/attestroot/adapters/conformance/cases/claude_code/clean/case.json
src/attestroot/adapters/conformance/cases/claude_code/clean/expected.json
src/attestroot/adapters/conformance/cases/claude_code/clean/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/clean/transcript.jsonl
src/attestroot/adapters/conformance/cases/claude_code/compacted/case.json
src/attestroot/adapters/conformance/cases/claude_code/compacted/expected.json
src/attestroot/adapters/conformance/cases/claude_code/compacted/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/compacted/transcript.jsonl
src/attestroot/adapters/conformance/cases/claude_code/concurrent_pair/case.json
src/attestroot/adapters/conformance/cases/claude_code/concurrent_pair/expected.json
src/attestroot/adapters/conformance/cases/claude_code/concurrent_pair/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/crashed/case.json
src/attestroot/adapters/conformance/cases/claude_code/crashed/expected.json
src/attestroot/adapters/conformance/cases/claude_code/crashed/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/crashed/transcript.jsonl
src/attestroot/adapters/conformance/cases/claude_code/gapped/case.json
src/attestroot/adapters/conformance/cases/claude_code/gapped/expected.json
src/attestroot/adapters/conformance/cases/claude_code/gapped/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/gapped/transcript.jsonl
src/attestroot/adapters/conformance/cases/claude_code/malformed/case.json
src/attestroot/adapters/conformance/cases/claude_code/malformed/expected.json
src/attestroot/adapters/conformance/cases/claude_code/malformed/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/resumed/case.json
src/attestroot/adapters/conformance/cases/claude_code/resumed/expected.json
src/attestroot/adapters/conformance/cases/claude_code/resumed/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/resumed/transcript.jsonl
src/attestroot/adapters/conformance/cases/claude_code/subagent/case.json
src/attestroot/adapters/conformance/cases/claude_code/subagent/expected.json
src/attestroot/adapters/conformance/cases/claude_code/subagent/hooks.jsonl
src/attestroot/adapters/conformance/cases/claude_code/subagent/transcript.jsonl
src/attestroot/crypto/__init__.py
src/attestroot/crypto/ed25519.py
src/attestroot/hooks/capture.py
tests/test_capture_and_seal.py
tests/test_conformance.py
tests/test_crypto.py
tests/test_standalone_verifier.py