LICENSE
MANIFEST.in
README.md
pyproject.toml
src/control_tower/__init__.py
src/control_tower/defaults.py
src/control_tower/inspect_tasks.py
src/control_tower/py.typed
src/control_tower/scanners.py
src/control_tower.egg-info/PKG-INFO
src/control_tower.egg-info/SOURCES.txt
src/control_tower.egg-info/dependency_links.txt
src/control_tower.egg-info/entry_points.txt
src/control_tower.egg-info/requires.txt
src/control_tower.egg-info/top_level.txt
src/control_tower/cli/__init__.py
src/control_tower/cli/base.py
src/control_tower/cli/cloud.py
src/control_tower/cli/ct_cli_group.py
src/control_tower/cli/extras.py
src/control_tower/cli/login.py
src/control_tower/cli/main.py
src/control_tower/cli/mcp_meta.py
src/control_tower/cli/task_sets.py
src/control_tower/cli/completions/completion_callbacks.py
src/control_tower/cli/completions/completions_build.py
src/control_tower/cli/completions/completions_hooks.py
src/control_tower/ct_runs/__init__.py
src/control_tower/ct_runs/claude_host.py
src/control_tower/ct_runs/dashboard.py
src/control_tower/ct_runs/dashboard_cli.py
src/control_tower/ct_runs/prompts.py
src/control_tower/ct_runs/run_cli.py
src/control_tower/ct_runs/storage.py
src/control_tower/ct_runs/env_description/__init__.py
src/control_tower/ct_runs/env_description/audit/README.md
src/control_tower/ct_runs/env_description/audit/__init__.py
src/control_tower/ct_runs/env_description/audit/cli.py
src/control_tower/ct_runs/env_description/audit/models.py
src/control_tower/ct_runs/env_description/audit/task.py
src/control_tower/ct_runs/env_description/audit/prompts/system.md
src/control_tower/ct_runs/env_description/audit/prompts/user.md
src/control_tower/ct_runs/env_description/generate/README.md
src/control_tower/ct_runs/env_description/generate/cli.py
src/control_tower/ct_runs/env_description/generate/task.py
src/control_tower/ct_runs/env_description/generate/prompts/system.md
src/control_tower/ct_runs/env_description/generate/prompts/user.md
src/control_tower/ct_runs/env_description/shared/concurrency.py
src/control_tower/ct_runs/env_description/shared/spec.md
src/control_tower/ct_runs/env_description/shared/spec_loader.py
src/control_tower/ct_runs/integration_test_quality/README.md
src/control_tower/ct_runs/integration_test_quality/cli.py
src/control_tower/ct_runs/integration_test_quality/task.py
src/control_tower/ct_runs/integration_test_quality/prompts/analyze.md
src/control_tower/ct_runs/integration_test_quality/prompts/check_tasks.md
src/control_tower/ct_runs/integration_test_quality/prompts/coverage.md
src/control_tower/ct_runs/integration_test_quality/prompts/fix.md
src/control_tower/ct_runs/pairing_analysis/README.md
src/control_tower/ct_runs/pairing_analysis/cli.py
src/control_tower/ct_runs/pairing_analysis/task.py
src/control_tower/ct_runs/pairing_analysis/prompts/turn1.md
src/control_tower/ct_runs/pairing_analysis/prompts/turn2.md
src/control_tower/ct_runs/scorer_idempotency/base.py
src/control_tower/ct_runs/scorer_idempotency/cli.py
src/control_tower/ct_runs/scorer_idempotency/compose_analyzer.py
src/control_tower/ct_runs/scorer_idempotency/detection.py
src/control_tower/ct_runs/scorer_idempotency/dockerfile_analyzer.py
src/control_tower/ct_runs/scorer_idempotency/llm_generator.py
src/control_tower/ct_runs/scorer_idempotency/runner.py
src/control_tower/ct_runs/scorer_idempotency/runtime_prober.py
src/control_tower/ct_runs/scorer_idempotency/checks/_json.py
src/control_tower/ct_runs/scorer_idempotency/checks/chroma.py
src/control_tower/ct_runs/scorer_idempotency/checks/docker.py
src/control_tower/ct_runs/scorer_idempotency/checks/elasticsearch.py
src/control_tower/ct_runs/scorer_idempotency/checks/filesystem.py
src/control_tower/ct_runs/scorer_idempotency/checks/generated_manifest.json
src/control_tower/ct_runs/scorer_idempotency/checks/influxdb.py
src/control_tower/ct_runs/scorer_idempotency/checks/listener.py
src/control_tower/ct_runs/scorer_idempotency/checks/minio.py
src/control_tower/ct_runs/scorer_idempotency/checks/mongo.py
src/control_tower/ct_runs/scorer_idempotency/checks/openldap.py
src/control_tower/ct_runs/scorer_idempotency/checks/postgres.py
src/control_tower/ct_runs/scorer_idempotency/checks/process.py
src/control_tower/ct_runs/scorer_idempotency/checks/rabbitmq.py
src/control_tower/ct_runs/scorer_idempotency/checks/redis.py
src/control_tower/ct_runs/scorer_idempotency/checks/sqlite.py
src/control_tower/ct_runs/scorer_idempotency/checks/sshd.py
src/control_tower/ct_runs/scorer_idempotency/checks/vault.py
src/control_tower/ct_runs/task_analysis/compare_side_tasks/README.md
src/control_tower/ct_runs/task_analysis/compare_side_tasks/cli.py
src/control_tower/ct_runs/task_analysis/compare_side_tasks/task.py
src/control_tower/ct_runs/task_analysis/doc_audit/README.md
src/control_tower/ct_runs/task_analysis/doc_audit/cli.py
src/control_tower/ct_runs/task_analysis/doc_audit/sd_audit_labels.json
src/control_tower/ct_runs/task_analysis/doc_audit/task.py
src/control_tower/ct_runs/task_analysis/doc_audit/audits/base.py
src/control_tower/ct_runs/task_analysis/doc_audit/audits/goal.py
src/control_tower/ct_runs/task_analysis/doc_audit/audits/sd.py
src/control_tower/ct_runs/task_analysis/doc_audit/heuristics/base.py
src/control_tower/ct_runs/task_analysis/doc_audit/heuristics/goal.py
src/control_tower/ct_runs/task_analysis/doc_audit/heuristics/sd.py
src/control_tower/ct_runs/task_analysis/doc_audit/prompts/goal/system.md
src/control_tower/ct_runs/task_analysis/doc_audit/prompts/goal/user.md
src/control_tower/ct_runs/task_analysis/doc_audit/prompts/sd/system.md
src/control_tower/ct_runs/task_analysis/doc_audit/prompts/sd/user.md
src/control_tower/ct_runs/task_analysis/failure_type_audit/cli.py
src/control_tower/ct_runs/task_analysis/failure_type_audit/task.py
src/control_tower/ct_runs/task_analysis/failure_type_audit/prompts/system.md
src/control_tower/ct_runs/task_analysis/failure_type_audit/prompts/user.md
src/control_tower/ct_runs/task_analysis/goal_completeness/README.md
src/control_tower/ct_runs/task_analysis/goal_completeness/cli.py
src/control_tower/ct_runs/task_analysis/goal_completeness/task.py
src/control_tower/ct_runs/task_analysis/goal_completeness/viewer.py
src/control_tower/ct_runs/task_analysis/goal_completeness/prompts/system.md
src/control_tower/ct_runs/task_analysis/goal_completeness/prompts/user.md
src/control_tower/ct_runs/task_analysis/reward_hacking/README.md
src/control_tower/ct_runs/task_analysis/reward_hacking/cli.py
src/control_tower/ct_runs/task_analysis/reward_hacking/task.py
src/control_tower/ct_runs/task_analysis/reward_hacking/viewer.py
src/control_tower/ct_runs/task_analysis/reward_hacking/prompts/system.md
src/control_tower/ct_runs/task_analysis/reward_hacking/prompts/user.md
src/control_tower/ct_runs/task_analysis/rt_alignment/README.md
src/control_tower/ct_runs/task_analysis/rt_alignment/cli.py
src/control_tower/ct_runs/task_analysis/rt_alignment/task.py
src/control_tower/ct_runs/task_analysis/rt_alignment/viewer.py
src/control_tower/ct_runs/task_analysis/rt_alignment/prompts/system.md
src/control_tower/ct_runs/task_analysis/rt_alignment/prompts/user.md
src/control_tower/ct_runs/task_analysis/side_task_review/README.md
src/control_tower/ct_runs/task_analysis/side_task_review/cli.py
src/control_tower/ct_runs/task_analysis/side_task_review/task.py
src/control_tower/ct_runs/task_analysis/side_task_review/prompts/review.md
src/control_tower/ct_runs/task_analysis/validate_cover/README.md
src/control_tower/ct_runs/task_analysis/validate_cover/cli.py
src/control_tower/ct_runs/task_analysis/validate_cover/task.py
src/control_tower/ct_runs/task_analysis/validate_cover/validate_cover_prompt.md
src/control_tower/ct_runs/timing_report/__init__.py
src/control_tower/ct_runs/timing_report/cli.py
src/control_tower/ct_runs/timing_report/report.py
src/control_tower/ct_runs/traj_analysis/submit_guessability/README.md
src/control_tower/ct_runs/traj_analysis/submit_guessability/cli.py
src/control_tower/ct_runs/traj_analysis/submit_guessability/task.py
src/control_tower/ct_runs/traj_analysis/submit_guessability/viewer.py
src/control_tower/ct_runs/traj_analysis/submit_guessability/prompts/system.md
src/control_tower/ct_runs/traj_analysis/submit_guessability/prompts/user.md
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/README.md
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/cli.py
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/task.py
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/viewer.py
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/prompts/system.md
src/control_tower/ct_runs/traj_analysis/submit_guessability_verified/prompts/user.md
src/control_tower/datasets/__init__.py
src/control_tower/datasets/check.py
src/control_tower/datasets/cli.py
src/control_tower/datasets/external.py
src/control_tower/datasets/model.py
src/control_tower/datasets/importers/__init__.py
src/control_tower/datasets/importers/eval_log.py
src/control_tower/datasets/importers/monitoring_bench.py
src/control_tower/datasets/importers/mythos_5_incident.py
src/control_tower/datasets/importers/shade_arena.py
src/control_tower/datasets/importers/sleight_bench.py
src/control_tower/environments/build.py
src/control_tower/environments/env_args.py
src/control_tower/environments/environment.py
src/control_tower/environments/list_utils.py
src/control_tower/environments/registry.py
src/control_tower/environments/requirements.py
src/control_tower/environments/setting_runtime.py
src/control_tower/environments/settings.py
src/control_tower/environments/settings.yml
src/control_tower/environments/settings_cli.py
src/control_tower/environments/source_utils.py
src/control_tower/environments/validate.py
src/control_tower/environments/internet_simulator/.dockerignore
src/control_tower/environments/internet_simulator/Dockerfile
src/control_tower/environments/internet_simulator/__init__.py
src/control_tower/environments/internet_simulator/__main__.py
src/control_tower/environments/internet_simulator/compose.yml
src/control_tower/environments/internet_simulator/constants.py
src/control_tower/environments/internet_simulator/env_values.py
src/control_tower/environments/internet_simulator/personas.py
src/control_tower/environments/internet_simulator/requirements.txt
src/control_tower/environments/internet_simulator/resolve_override.c
src/control_tower/environments/internet_simulator/server.py
src/control_tower/environments/internet_simulator/core/assets.py
src/control_tower/environments/internet_simulator/core/generate_ca.py
src/control_tower/environments/internet_simulator/core/logs.py
src/control_tower/environments/internet_simulator/core/network_mapping.py
src/control_tower/environments/internet_simulator/core/tls.py
src/control_tower/environments/internet_simulator/core/trajectory.py
src/control_tower/environments/internet_simulator/core/webhook.py
src/control_tower/environments/internet_simulator/malware/malware.c
src/control_tower/environments/internet_simulator/modules/forward_proxy.py
src/control_tower/environments/internet_simulator/modules/resolver.py
src/control_tower/environments/internet_simulator/modules/response_rules.py
src/control_tower/environments/internet_simulator/modules/shell_sessions.py
src/control_tower/environments/internet_simulator/modules/upstream_proxy.py
src/control_tower/environments/internet_simulator/modules/upstream_specs.py
src/control_tower/environments/internet_simulator/runtimes/__init__.py
src/control_tower/environments/internet_simulator/runtimes/docker.py
src/control_tower/environments/internet_simulator/runtimes/hawk.py
src/control_tower/environments/internet_simulator/runtimes/participants.py
src/control_tower/environments/internet_simulator/runtimes/provisioning.py
src/control_tower/environments/remote/__init__.py
src/control_tower/environments/remote/json_model.py
src/control_tower/environments/remote/process.py
src/control_tower/environments/remote/remote.py
src/control_tower/environments/remote/sample.py
src/control_tower/eval/README.md
src/control_tower/eval/__init__.py
src/control_tower/eval/blue.py
src/control_tower/eval/cli.py
src/control_tower/eval/dataset.py
src/control_tower/eval/dispatch.py
src/control_tower/eval/game_view.py
src/control_tower/eval/harness.py
src/control_tower/eval/history.py
src/control_tower/eval/metadata.py
src/control_tower/eval/monitor_cli.py
src/control_tower/eval/monitor_task.py
src/control_tower/eval/options.py
src/control_tower/eval/protocols_cli.py
src/control_tower/eval/red.py
src/control_tower/eval/registry.py
src/control_tower/eval/run.py
src/control_tower/eval/solver.py
src/control_tower/eval/task.py
src/control_tower/eval/task_messages.py
src/control_tower/eval/task_scorer_validation.py
src/control_tower/eval/task_selection.py
src/control_tower/eval/white.py
src/control_tower/eval/monitoring/__init__.py
src/control_tower/eval/monitoring/monitor.py
src/control_tower/eval/monitoring/posthoc.py
src/control_tower/eval_logs/__init__.py
src/control_tower/eval_logs/api_upload.py
src/control_tower/eval_logs/convert.py
src/control_tower/eval_logs/io.py
src/control_tower/eval_logs/merge.py
src/control_tower/eval_logs/monitor_scores.py
src/control_tower/eval_logs/run_metadata.py
src/control_tower/eval_logs/s3_upload.py
src/control_tower/eval_logs/seat.py
src/control_tower/eval_logs/source.py
src/control_tower/eval_logs/utils.py
src/control_tower/fleet/__init__.py
src/control_tower/fleet/ami.py
src/control_tower/fleet/aws_identity.py
src/control_tower/fleet/bootstrap.sh
src/control_tower/fleet/controller.py
src/control_tower/fleet/job.py
src/control_tower/fleet/run_job.py
src/control_tower/fleet/worker.py
src/control_tower/fleet/worker_cli.py
src/control_tower/hawk/__init__.py
src/control_tower/hawk/config.py
src/control_tower/hawk/download.py
src/control_tower/hawk/middleman.py
src/control_tower/hawk/model_closure.py
src/control_tower/hawk/preflight.py
src/control_tower/hawk/pull_envs.py
src/control_tower/hawk/runner.py
src/control_tower/hawk/sandbox.py
src/control_tower/hawk/yaml_generator.py
src/control_tower/live/__init__.py
src/control_tower/live/agents.py
src/control_tower/live/cli.py
src/control_tower/live/compose.py
src/control_tower/live/daemon.py
src/control_tower/live/integration_tests.py
src/control_tower/live/remote_sandbox.py
src/control_tower/live/rpc.py
src/control_tower/live/sandbox_ops.py
src/control_tower/live/score.py
src/control_tower/live/session.py
src/control_tower/live/setup.py
src/control_tower/live/task_state.py
src/control_tower/live/test.py
src/control_tower/live/assets/dev_container_extensions.json
src/control_tower/live/assets/pyrightconfig.json
src/control_tower/live/assets/settings.json
src/control_tower/live/context/print_context.py
src/control_tower/live/context/task_getters.py
src/control_tower/live/context/traj_dir.py
src/control_tower/live/traj/__init__.py
src/control_tower/live/traj/gen_traj.py
src/control_tower/live/traj/git_status.py
src/control_tower/live/traj/git_traj.py
src/control_tower/live/traj/macros.py
src/control_tower/live/traj/solution.py
src/control_tower/live/traj/tool_call_utils.py
src/control_tower/live/traj/traj.py
src/control_tower/live/traj/git_traj_helpers/FORMAT.md
src/control_tower/live/traj/git_traj_helpers/call_insert.py
src/control_tower/live/traj/git_traj_helpers/call_str_replace.py
src/control_tower/live/traj/templ/add.py
src/control_tower/live/traj/templ/add_tool_call.py
src/control_tower/live/traj/templ/bash.py
src/control_tower/live/traj/templ/git_utils.py
src/control_tower/live/traj/templ/input_utils.py
src/control_tower/live/traj/templ/template_from.py
src/control_tower/live/traj/templ/tool_call_builder.py
src/control_tower/live/tui/__init__.py
src/control_tower/live/tui/popup.py
src/control_tower/live/tui/tui.py
src/control_tower/live/tui/tui.tcss
src/control_tower/live/usage/collect_testers.py
src/control_tower/live/usage/commands.py
src/control_tower/live/usage/migrate_traj.py
src/control_tower/live/usage/patch.py
src/control_tower/live/usage/test_all.py
src/control_tower/live/usage/upload_helpers.py
src/control_tower/live/usage/full_env_context/container_script.py
src/control_tower/live/usage/full_env_context/full_env_context.py
src/control_tower/metrics/__init__.py
src/control_tower/metrics/audit.py
src/control_tower/metrics/control.py
src/control_tower/models/__init__.py
src/control_tower/models/aliases.py
src/control_tower/models/cache_scopes.py
src/control_tower/models/inspect_rates.py
src/control_tower/models/model_spec.py
src/control_tower/models/openrouter_provider.py
src/control_tower/models/pricing.py
src/control_tower/models/rates.py
src/control_tower/models/registry_hooks.py
src/control_tower/models/role_model.py
src/control_tower/models/usage_hooks.py
src/control_tower/monitors/__init__.py
src/control_tower/monitors/checklist.py
src/control_tower/monitors/jev.py
src/control_tower/monitors/jev_questions.yml
src/control_tower/monitors/monitor.py
src/control_tower/monitors/presets.yml
src/control_tower/monitors/registry.py
src/control_tower/monitors/single_goal.py
src/control_tower/monitors/three_scores.py
src/control_tower/monitors/prompts/action-no-goals.md
src/control_tower/monitors/prompts/action.md
src/control_tower/monitors/prompts/goal-analysis.md
src/control_tower/monitors/prompts/goals.md
src/control_tower/monitors/prompts/no-history.md
src/control_tower/monitors/prompts/orthogonal.md
src/control_tower/monitors/prompts/quick-no-goals.md
src/control_tower/monitors/prompts/quick.md
src/control_tower/monitors/prompts/simple.md
src/control_tower/monitors/prompts/strong-goals.md
src/control_tower/monitors/prompts/strong.md
src/control_tower/monitors/prompts/trajectory.md
src/control_tower/monitors/steps/checklist.md
src/control_tower/monitors/steps/single_goal.md
src/control_tower/monitors/steps/single_goal_analysis.md
src/control_tower/monitors/steps/three_scores.md
src/control_tower/policies/__init__.py
src/control_tower/policies/attack.py
src/control_tower/policies/honest.py
src/control_tower/policies/obvious_attack.py
src/control_tower/policies/replay.py
src/control_tower/policies/scripted.py
src/control_tower/policies/prompts/attack.md
src/control_tower/policies/prompts/attack_planning.md
src/control_tower/protocols/__init__.py
src/control_tower/protocols/block_all.py
src/control_tower/protocols/block_every_other.py
src/control_tower/protocols/defer_to_trusted.py
src/control_tower/protocols/null_blue.py
src/control_tower/protocols/resample.py
src/control_tower/protocols/trusted_editing.py
src/control_tower/protocols/trusted_monitoring.py
src/control_tower/protocols/watcher.py
src/control_tower/protocols/prompts/trusted_editing.md
src/control_tower/runs/README.md
src/control_tower/runs/convert.py
src/control_tower/runs/convert_eval_log_to_run.py
src/control_tower/runs/io.py
src/control_tower/runs/models.py
src/control_tower/runs/producer.py
src/control_tower/runs/runs_cli.py
src/control_tower/sandbox/__init__.py
src/control_tower/sandbox/_alpine_rootfs.py
src/control_tower/sandbox/_ssh.py
src/control_tower/sandbox/cli.py
src/control_tower/sandbox/constants.py
src/control_tower/sandbox/docker.py
src/control_tower/sandbox/docker_in_vm.py
src/control_tower/sandbox/firecracker.py
src/control_tower/sandbox/inspect_tools.py
src/control_tower/sandbox/intranet.py
src/control_tower/sandbox/qemu.py
src/control_tower/sandbox/shared_containers.py
src/control_tower/sandbox/intranet_guard/Dockerfile
src/control_tower/sandbox/intranet_guard/firewall.sh
src/control_tower/sandbox/replay/__init__.py
src/control_tower/sandbox/replay/environment.py
src/control_tower/sandbox/replay/score.py
src/control_tower/sandbox/simulated/__init__.py
src/control_tower/sandbox/simulated/actions.py
src/control_tower/sandbox/simulated/compose.py
src/control_tower/sandbox/simulated/environment.py
src/control_tower/sandbox/simulated/judge.py
src/control_tower/sandbox/simulated/session.py
src/control_tower/sandbox/simulated/prompts/judge.md
src/control_tower/sandbox/simulated/prompts/simulator.md
src/control_tower/sandbox/simulated/prompts/simulator_no_exec.md
src/control_tower/sandbox/simulated/scratch/compose.yaml
src/control_tower/task/__init__.py
src/control_tower/task/collection.py
src/control_tower/task/final_diff.py
src/control_tower/task/sample_metadata.py
src/control_tower/task/scorers.py
src/control_tower/task/select_utils.py
src/control_tower/task/selectors.py
src/control_tower/task/setup.py
src/control_tower/task/space.py
src/control_tower/task/task.py
src/control_tower/task/traj_dir.py
src/control_tower/task/workspace_baseline.py
src/control_tower/task/strat_sets/model_registry_strats.txt
src/control_tower/task/task_sets/__init__.py
src/control_tower/tools/__init__.py
src/control_tower/tools/answer.py
src/control_tower/tools/bash_tools.py
src/control_tower/tools/declarations.py
src/control_tower/tools/diff_display_text_editor.py
src/control_tower/tools/registry.py
src/control_tower/tools/split_text_editor_tools.py
src/control_tower/tools/submit.py
src/control_tower/tools/task_tools.py
src/control_tower/tools/tool_calls.py
src/control_tower/tools/tool_registry.py
src/control_tower/trajectories/README.md
src/control_tower/trajectories/__init__.py
src/control_tower/trajectories/action.py
src/control_tower/trajectories/api.py
src/control_tower/trajectories/eval_trace_metadata.py
src/control_tower/trajectories/extended_thinking.py
src/control_tower/trajectories/format_history.py
src/control_tower/trajectories/from_eval_log.py
src/control_tower/trajectories/io.py
src/control_tower/trajectories/models.py
src/control_tower/trajectories/mongo_docs.py
src/control_tower/trajectories/monitor_score.py
src/control_tower/trajectories/sample.py
src/control_tower/trajectories/task_scores.py
src/control_tower/trajectories/text_editor_output.py
src/control_tower/trajectories/timing_utils.py
src/control_tower/trajectories/tool_calls.py
src/control_tower/trajectories/utils.py
src/control_tower/trajectories/viewer_api.py
src/control_tower/trajectories/viewer_auth.py
src/control_tower/trajectories/workspace_diff.py
src/control_tower/utils/__init__.py
src/control_tower/utils/cli_args.py
src/control_tower/utils/direct_api_generator.py
src/control_tower/utils/docs_utils.py
src/control_tower/utils/env.py
src/control_tower/utils/file_patterns.py
src/control_tower/utils/fs.py
src/control_tower/utils/imports.py
src/control_tower/utils/paths.py
src/control_tower/utils/sanitize.py
src/control_tower/utils/serde.py
src/control_tower/utils/suggestions.py
src/control_tower/utils/time.py
src/control_tower/utils/transcript.py
src/control_tower/utils/versioning.py
src/control_tower/utils/function_registry/__init__.py
src/control_tower/utils/function_registry/arg_type.py
src/control_tower/utils/function_registry/base_model.py
src/control_tower/utils/function_registry/custom_handlers.py
src/control_tower/utils/function_registry/display.py
src/control_tower/utils/function_registry/function_info.py
src/control_tower/utils/function_registry/naming.py
src/control_tower/utils/function_registry/registry.py
src/control_tower/utils/function_registry/selection.py
src/control_tower/utils/function_registry/signature_info.py
src/control_tower/utils/function_registry/validation.py
tests/test_correct_environments.py
tests/test_serde.py