LICENSE
MANIFEST.in
README.md
SECURITY.md
pyproject.toml
src/ha_history_exporter/__init__.py
src/ha_history_exporter/__main__.py
src/ha_history_exporter/errors.py
src/ha_history_exporter/fsio.py
src/ha_history_exporter.egg-info/PKG-INFO
src/ha_history_exporter.egg-info/SOURCES.txt
src/ha_history_exporter.egg-info/dependency_links.txt
src/ha_history_exporter.egg-info/entry_points.txt
src/ha_history_exporter.egg-info/requires.txt
src/ha_history_exporter.egg-info/top_level.txt
src/ha_history_exporter/app/__init__.py
src/ha_history_exporter/app/capture.py
src/ha_history_exporter/app/connect.py
src/ha_history_exporter/app/context.py
src/ha_history_exporter/app/convert.py
src/ha_history_exporter/app/doctor.py
src/ha_history_exporter/app/export.py
src/ha_history_exporter/app/publish.py
src/ha_history_exporter/app/reading.py
src/ha_history_exporter/app/results.py
src/ha_history_exporter/app/setup.py
src/ha_history_exporter/app/status.py
src/ha_history_exporter/app/verify.py
src/ha_history_exporter/archive/__init__.py
src/ha_history_exporter/archive/descriptor.py
src/ha_history_exporter/archive/layout.py
src/ha_history_exporter/archive/lock.py
src/ha_history_exporter/archive/metadata.py
src/ha_history_exporter/archive/reader.py
src/ha_history_exporter/archive/session.py
src/ha_history_exporter/archive/store.py
src/ha_history_exporter/archive/transaction.py
src/ha_history_exporter/archive/workspace.py
src/ha_history_exporter/cli/__init__.py
src/ha_history_exporter/cli/days.py
src/ha_history_exporter/cli/logging.py
src/ha_history_exporter/cli/main.py
src/ha_history_exporter/cli/output.py
src/ha_history_exporter/cli/parser.py
src/ha_history_exporter/cli/services.py
src/ha_history_exporter/cli/commands/__init__.py
src/ha_history_exporter/cli/commands/config.py
src/ha_history_exporter/cli/commands/convert.py
src/ha_history_exporter/cli/commands/doctor.py
src/ha_history_exporter/cli/commands/export.py
src/ha_history_exporter/cli/commands/init.py
src/ha_history_exporter/cli/commands/status.py
src/ha_history_exporter/cli/commands/verify.py
src/ha_history_exporter/domain/__init__.py
src/ha_history_exporter/domain/clock.py
src/ha_history_exporter/domain/formats.py
src/ha_history_exporter/domain/manifest.py
src/ha_history_exporter/domain/plan.py
src/ha_history_exporter/domain/query.py
src/ha_history_exporter/domain/records.py
src/ha_history_exporter/domain/snapshot.py
src/ha_history_exporter/domain/stored.py
src/ha_history_exporter/domain/window.py
src/ha_history_exporter/domain/wire.py
src/ha_history_exporter/formats/__init__.py
src/ha_history_exporter/formats/base.py
src/ha_history_exporter/formats/csv.py
src/ha_history_exporter/formats/jsonl.py
src/ha_history_exporter/formats/parquet.py
src/ha_history_exporter/formats/validation.py
src/ha_history_exporter/schemas/manifest-1.4.schema.json
src/ha_history_exporter/settings/__init__.py
src/ha_history_exporter/settings/model.py
src/ha_history_exporter/settings/paths.py
src/ha_history_exporter/settings/registry.py
src/ha_history_exporter/settings/resolver.py
src/ha_history_exporter/settings/secrets.py
src/ha_history_exporter/settings/sources.py
src/ha_history_exporter/settings/toml_writer.py
src/ha_history_exporter/settings/user_file.py
src/ha_history_exporter/settings/validators.py
src/ha_history_exporter/source/__init__.py
src/ha_history_exporter/source/protocol.py
src/ha_history_exporter/source/rest.py
src/ha_history_exporter/source/retry.py
src/ha_history_exporter/source/transport.py
tests/README.md
tests/__init__.py
tests/conftest.py
tests/test_isolation.py
tests/contract/__init__.py
tests/contract/test_archive_compatibility.py
tests/contract/test_convert_contract.py
tests/contract/test_golden.py
tests/contract/test_manifest_schema.py
tests/contract/test_output_contract.py
tests/contract/test_snapshot_contract.py
tests/contract/test_suggested_commands.py
tests/contract/fixtures/legacy_manifests/schema-1.1/2026-07-28.manifest.json
tests/contract/fixtures/legacy_manifests/schema-1.2/2026-07-28.manifest.json
tests/contract/fixtures/legacy_manifests/schema-1.3/2026-07-28.manifest.json
tests/contract/golden/auth_abort/hhe-archive.json
tests/contract/golden/auth_abort/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/auth_abort/metadata/export_runs.jsonl
tests/contract/golden/carry_in/hhe-archive.json
tests/contract/golden/carry_in/exports/daily/2026/10/2026-10-24.csv
tests/contract/golden/carry_in/exports/daily/2026/10/2026-10-24.jsonl
tests/contract/golden/carry_in/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/carry_in/exports/daily/2026/10/2026-10-24.parquet.profile.json
tests/contract/golden/carry_in/metadata/export_runs.jsonl
tests/contract/golden/failed_day/hhe-archive.json
tests/contract/golden/failed_day/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/failed_day/metadata/export_runs.jsonl
tests/contract/golden/midnight/hhe-archive.json
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-23.csv
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-23.jsonl
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-23.manifest.json
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-24.csv
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-24.jsonl
tests/contract/golden/midnight/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/midnight/metadata/export_runs.jsonl
tests/contract/golden/partial_day/hhe-archive.json
tests/contract/golden/partial_day/exports/daily/2026/10/2026-10-26.csv
tests/contract/golden/partial_day/exports/daily/2026/10/2026-10-26.jsonl
tests/contract/golden/partial_day/exports/daily/2026/10/2026-10-26.manifest.json
tests/contract/golden/partial_day/metadata/export_runs.jsonl
tests/contract/golden/reference/hhe-archive.json
tests/contract/golden/reference/exports/daily/2026/10/2026-10-24.csv
tests/contract/golden/reference/exports/daily/2026/10/2026-10-24.jsonl
tests/contract/golden/reference/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/reference/exports/daily/2026/10/2026-10-24.parquet.profile.json
tests/contract/golden/reference/exports/daily/2026/10/2026-10-25.csv
tests/contract/golden/reference/exports/daily/2026/10/2026-10-25.jsonl
tests/contract/golden/reference/exports/daily/2026/10/2026-10-25.manifest.json
tests/contract/golden/reference/exports/daily/2026/10/2026-10-25.parquet.profile.json
tests/contract/golden/reference/metadata/export_runs.jsonl
tests/contract/golden/snapshot/entity_snapshot.json
tests/contract/golden/unreachable/hhe-archive.json
tests/contract/golden/unreachable/exports/daily/2026/10/2026-10-24.manifest.json
tests/contract/golden/unreachable/metadata/export_runs.jsonl
tests/integration/__init__.py
tests/integration/test_convert.py
tests/integration/test_export.py
tests/integration/test_plan_export.py
tests/integration/test_verify.py
tests/integration/cli/__init__.py
tests/integration/cli/test_archive_commands.py
tests/integration/cli/test_config_command.py
tests/integration/cli/test_doctor_command.py
tests/integration/cli/test_export_command.py
tests/integration/cli/test_init_command.py
tests/integration/cli/test_main.py
tests/support/__init__.py
tests/support/builders.py
tests/support/clock.py
tests/support/commands.py
tests/support/fake_source.py
tests/support/golden.py
tests/support/harness.py
tests/support/manifests.py
tests/support/records.py
tests/support/scenarios.py
tests/support/terminal.py
tests/system/__init__.py
tests/system/test_cli_process.py
tests/unit/__init__.py
tests/unit/test_errors.py
tests/unit/test_fsio.py
tests/unit/test_runtime_text.py
tests/unit/archive/__init__.py
tests/unit/archive/test_descriptor.py
tests/unit/archive/test_layout.py
tests/unit/archive/test_lock.py
tests/unit/archive/test_metadata.py
tests/unit/archive/test_session.py
tests/unit/archive/test_store.py
tests/unit/archive/test_transaction.py
tests/unit/archive/test_workspace.py
tests/unit/cli/__init__.py
tests/unit/cli/test_logging.py
tests/unit/cli/test_output.py
tests/unit/cli/test_parser.py
tests/unit/domain/__init__.py
tests/unit/domain/test_day_selection.py
tests/unit/domain/test_formats.py
tests/unit/domain/test_manifest.py
tests/unit/domain/test_plan.py
tests/unit/domain/test_records.py
tests/unit/domain/test_snapshot.py
tests/unit/domain/test_stored.py
tests/unit/domain/test_window.py
tests/unit/domain/test_wire.py
tests/unit/formats/__init__.py
tests/unit/formats/test_csv.py
tests/unit/formats/test_jsonl.py
tests/unit/formats/test_parquet.py
tests/unit/formats/test_registry.py
tests/unit/formats/test_roundtrip.py
tests/unit/formats/test_validation.py
tests/unit/settings/__init__.py
tests/unit/settings/samples.py
tests/unit/settings/test_paths.py
tests/unit/settings/test_registry.py
tests/unit/settings/test_resolver.py
tests/unit/settings/test_secrets.py
tests/unit/settings/test_toml_writer.py
tests/unit/settings/test_user_file.py
tests/unit/settings/test_validators.py
tests/unit/source/__init__.py
tests/unit/source/test_rest.py
tests/unit/source/test_retry.py
tests/unit/source/test_transport.py