.gitignore
.gitmodules
.pre-commit-config.yaml
LICENSE
README.md
pyproject.toml
.github/workflows/ci.yml
.github/workflows/publish.yml
docs/config.md
docs/config_reference.yaml
docs/development.md
docs/invariants.md
docs/mcp.md
docs/mcp_setup.md
docs/mlflow.md
docs/runtime.md
docs/images/diagramA_dag.png
docs/images/diagramB_statemachine.png
docs/images/diagramE_guardlayer.png
examples/catalog.yaml
examples/example.yaml
examples/experiment.yaml
examples/mcp_experiment.yaml
examples/mlflow.yaml
examples/tiny_decoder_enwik8/README.md
examples/tiny_decoder_enwik8/catalog.yaml
examples/tiny_decoder_enwik8/experiment.yaml
examples/tiny_decoder_enwik8/gpu_smoke.yaml
examples/tiny_decoder_enwik8/mcp_experiment.yaml
examples/tiny_decoder_enwik8/mlflow_gpu_smoke.yaml
examples/tiny_decoder_enwik8/run_trial.py
scripts/check_module_size.sh
scripts/check_typing_escapes.py
src/phasesweep/__init__.py
src/phasesweep/__main__.py
src/phasesweep/_metadata.py
src/phasesweep/cli.py
src/phasesweep/errors.py
src/phasesweep/py.typed
src/phasesweep/reporting.py
src/phasesweep.egg-info/PKG-INFO
src/phasesweep.egg-info/SOURCES.txt
src/phasesweep.egg-info/dependency_links.txt
src/phasesweep.egg-info/entry_points.txt
src/phasesweep.egg-info/requires.txt
src/phasesweep.egg-info/scm_file_list.json
src/phasesweep.egg-info/scm_version.json
src/phasesweep.egg-info/top_level.txt
src/phasesweep/config/__init__.py
src/phasesweep/config/common.py
src/phasesweep/config/io.py
src/phasesweep/config/models.py
src/phasesweep/config/search.py
src/phasesweep/engine/__init__.py
src/phasesweep/engine/artifact_roots.py
src/phasesweep/engine/artifacts.py
src/phasesweep/engine/attempts.py
src/phasesweep/engine/cleanup.py
src/phasesweep/engine/confound.py
src/phasesweep/engine/errors.py
src/phasesweep/engine/evidence.py
src/phasesweep/engine/fingerprints.py
src/phasesweep/engine/generation.py
src/phasesweep/engine/guards.py
src/phasesweep/engine/ledger.py
src/phasesweep/engine/locking.py
src/phasesweep/engine/optuna.py
src/phasesweep/engine/paths.py
src/phasesweep/engine/phase.py
src/phasesweep/engine/provenance.py
src/phasesweep/engine/publication.py
src/phasesweep/engine/publication_validation.py
src/phasesweep/engine/read.py
src/phasesweep/engine/resume.py
src/phasesweep/engine/run.py
src/phasesweep/engine/selection.py
src/phasesweep/engine/state.py
src/phasesweep/engine/study_policy.py
src/phasesweep/engine/trial.py
src/phasesweep/evidence/__init__.py
src/phasesweep/evidence/evaluation.py
src/phasesweep/evidence/mlflow.py
src/phasesweep/evidence/models.py
src/phasesweep/evidence/wandb.py
src/phasesweep/examples/__init__.py
src/phasesweep/examples/fake_train.py
src/phasesweep/examples/mlflow_train.py
src/phasesweep/mcp/__init__.py
src/phasesweep/mcp/agent_prompt.md
src/phasesweep/mcp/audit.py
src/phasesweep/mcp/errors.py
src/phasesweep/mcp/recovery.py
src/phasesweep/mcp/redaction.py
src/phasesweep/mcp/registry.py
src/phasesweep/mcp/run_control.py
src/phasesweep/mcp/runner.py
src/phasesweep/mcp/runs.py
src/phasesweep/mcp/scaffold.py
src/phasesweep/mcp/server.py
src/phasesweep/mcp/snapshots.py
src/phasesweep/mcp/tool_names.py
src/phasesweep/mcp/tools.py
src/phasesweep/runtime/__init__.py
src/phasesweep/runtime/commands.py
src/phasesweep/runtime/files.py
src/phasesweep/runtime/gpu.py
src/phasesweep/runtime/json.py
src/phasesweep/runtime/process.py
src/phasesweep/runtime/reaper.py
src/phasesweep/runtime/remote_worker.py
src/phasesweep/runtime/shutdown.py
src/phasesweep/runtime/supervisor.py
src/phasesweep/runtime/time.py
src/phasesweep/templates/starter_experiment.yaml
src/phasesweep/tracking/__init__.py
src/phasesweep/tracking/mlflow.py
src/phasesweep/tracking/models.py
src/phasesweep/tracking/publication.py
src/phasesweep/tracking/records.py
src/phasesweep/tracking/session.py
tests/__init__.py
tests/conftest.py
tests/ledger_fixtures.py
tests/mcp_helpers.py
tests/recovery_helpers.py
tests/test_abort_recovery.py
tests/test_attempt_resolution.py
tests/test_cli.py
tests/test_config.py
tests/test_config_reference.py
tests/test_configuration_revalidation.py
tests/test_confound.py
tests/test_e2e.py
tests/test_engine_read.py
tests/test_engine_state.py
tests/test_engine_status_shape.py
tests/test_error_routing.py
tests/test_extractors.py
tests/test_filesystem_layout.py
tests/test_fingerprint.py
tests/test_format_cutover.py
tests/test_gates.py
tests/test_gpu_pool.py
tests/test_init.py
tests/test_ledger_contract.py
tests/test_ledger_read_paths.py
tests/test_locking.py
tests/test_mcp_cancel.py
tests/test_mcp_check.py
tests/test_mcp_e2e.py
tests/test_mcp_launch.py
tests/test_mcp_read_tools.py
tests/test_mcp_recovery.py
tests/test_mcp_redaction.py
tests/test_mcp_registry.py
tests/test_mcp_result_snapshot.py
tests/test_mcp_runner.py
tests/test_mcp_runs.py
tests/test_mcp_scaffold.py
tests/test_mcp_status_timing.py
tests/test_mlflow.py
tests/test_mlflow_integration.py
tests/test_mlflow_terminal_delivery.py
tests/test_overrides.py
tests/test_param_validation.py
tests/test_process_supervision.py
tests/test_public_metadata.py
tests/test_publication_transaction.py
tests/test_reporting.py
tests/test_runner_signal_guard.py
tests/test_runtime_behavior.py
tests/test_selector.py
tests/test_shutdown.py
tests/test_stale_reaper.py
tests/test_storage_urls.py
tests/test_tier_guard.py
tests/test_timeouts.py
tests/test_tiny_decoder_example.py
tests/test_trial_evidence.py
tests/test_trial_launch.py
tests/test_typing_escapes.py
tests/test_wandb_live.py
tests/tiers.py
tests/wandb_live_trainer.py
tests/fixtures/__init__.py
tests/fixtures/make_ledger_fixtures.py
tests/fixtures/ledgers/README.md
tests/fixtures/ledgers/current-journal/manifest.json
tests/fixtures/ledgers/current-journal/artifact_root/t/.gitignore
tests/fixtures/ledgers/current-journal/artifact_root/t/artifact_root_binding.json
tests/fixtures/ledgers/current-journal/artifact_root/t/generation.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/last_successful_generation.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/run.log
tests/fixtures/ledgers/current-journal/artifact_root/t/summary.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/generations/de5853ae14ef4e939d9d61f287d15ce3/config.snapshot.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/generations/de5853ae14ef4e939d9d61f287d15ce3/generation.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/generations/de5853ae14ef4e939d9d61f287d15ce3/reproducibility.json
tests/fixtures/ledgers/current-journal/artifact_root/t/generations/de5853ae14ef4e939d9d61f287d15ce3/summary.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/generations/de5853ae14ef4e939d9d61f287d15ce3/phases/p/winner.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trials.csv
tests/fixtures/ledgers/current-journal/artifact_root/t/p/winner.yaml
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/attempt_lifecycle.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/command.txt
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/overrides_resolved.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/process_identity.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/stderr.log
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00000__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_58489bcd09ed449b84ff57dba09df034/stdout.log
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/attempt_lifecycle.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/command.txt
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/overrides_resolved.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/process_identity.json
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/stderr.log
tests/fixtures/ledgers/current-journal/artifact_root/t/p/trial_00001__generation_de5853ae14ef4e939d9d61f287d15ce3__attempt_184bedb7b25b4891b104b33b864726a6/stdout.log
tests/fixtures/ledgers/current-journal/ledger/study.journal