CHANGELOG.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
uv.lock
docs/client.md
docs/development.md
docs/door.md
docs/operation.md
docs/protocol.md
docs/scripting.md
docs/simulator.md
docs/translations.md
docs/api/client.rst
docs/api/conf.py
docs/api/door.rst
docs/api/index.rst
schemas/asyncapi.json
schemas/script.schema.json
schemas/state.schema.json
schemas/vendor/README.md
schemas/vendor/asyncapi-3.0.0.json
scripts/build-docs.sh
scripts/check_dependencies.py
scripts/check_translations.py
scripts/generate_gaps_report.py
scripts/generate_schemas.py
scripts/generate_wiki.py
scripts/probe_protocol.py
scripts/render_asyncapi.py
scripts/setup-dev.sh
scripts/sync_gitea_workflow.py
src/powerpetdoor/__init__.py
src/powerpetdoor/client.py
src/powerpetdoor/const.py
src/powerpetdoor/door.py
src/powerpetdoor/framing.py
src/powerpetdoor/i18n.py
src/powerpetdoor/py.typed
src/powerpetdoor/sanitize.py
src/powerpetdoor/schedule.py
src/powerpetdoor/tz_utils.py
src/powerpetdoor/locales/messages.json
src/powerpetdoor/simulator/__init__.py
src/powerpetdoor/simulator/__main__.py
src/powerpetdoor/simulator/cli.py
src/powerpetdoor/simulator/coerce.py
src/powerpetdoor/simulator/control.py
src/powerpetdoor/simulator/ctl.py
src/powerpetdoor/simulator/engine.py
src/powerpetdoor/simulator/notifications.py
src/powerpetdoor/simulator/prompt_common.py
src/powerpetdoor/simulator/protocol.py
src/powerpetdoor/simulator/scripting.py
src/powerpetdoor/simulator/server.py
src/powerpetdoor/simulator/state.py
src/powerpetdoor/simulator/state_io.py
src/powerpetdoor/simulator/values.py
src/powerpetdoor/simulator/wire_values.py
src/powerpetdoor/simulator/commands/__init__.py
src/powerpetdoor/simulator/commands/base.py
src/powerpetdoor/simulator/commands/control.py
src/powerpetdoor/simulator/commands/door.py
src/powerpetdoor/simulator/commands/handler.py
src/powerpetdoor/simulator/commands/history.py
src/powerpetdoor/simulator/commands/info.py
src/powerpetdoor/simulator/commands/notifications.py
src/powerpetdoor/simulator/commands/schedules.py
src/powerpetdoor/simulator/commands/scripts.py
src/powerpetdoor/simulator/commands/settings.py
src/powerpetdoor/simulator/commands/simulation.py
src/powerpetdoor/simulator/commands/state.py
src/powerpetdoor/simulator/commands/values.py
src/powerpetdoor/simulator/scripts/basic_cycle.yaml
src/powerpetdoor/simulator/scripts/full_test_suite.yaml
src/powerpetdoor/simulator/scripts/obstruction_test.yaml
src/powerpetdoor/simulator/scripts/pet_presence_test.yaml
src/powerpetdoor/simulator/scripts/power_lockout_test.yaml
src/powerpetdoor/simulator/scripts/safety_lock_test.yaml
src/powerpetdoor/simulator/scripts/schedule_test.yaml
src/pypowerpetdoor.egg-info/PKG-INFO
src/pypowerpetdoor.egg-info/SOURCES.txt
src/pypowerpetdoor.egg-info/dependency_links.txt
src/pypowerpetdoor.egg-info/entry_points.txt
src/pypowerpetdoor.egg-info/requires.txt
src/pypowerpetdoor.egg-info/top_level.txt
tests/TESTING_GAPS.md
tests/__init__.py
tests/conftest.py
tests/test_ci_gates.py
tests/test_client.py
tests/test_docs_accuracy.py
tests/test_door.py
tests/test_exports.py
tests/test_framing.py
tests/test_i18n.py
tests/test_sanitize.py
tests/test_schedule.py
tests/test_schemas.py
tests/test_tz_utils.py
tests/test_wiki.py
tests/test_wire_constants.py
tests/fuzz/__init__.py
tests/fuzz/test_client_fuzz.py
tests/fuzz/test_framing_fuzz.py
tests/fuzz/test_schedule_fuzz.py
tests/fuzz/test_tz_fuzz.py
tests/fuzz/test_untrusted_input_fuzz.py
tests/simulator/__init__.py
tests/simulator/test_cli.py
tests/simulator/test_client_integration.py
tests/simulator/test_commands.py
tests/simulator/test_commands_base.py
tests/simulator/test_commands_handler.py
tests/simulator/test_commands_history.py
tests/simulator/test_commands_info.py
tests/simulator/test_commands_schedules.py
tests/simulator/test_commands_settings.py
tests/simulator/test_commands_state.py
tests/simulator/test_commands_toggles.py
tests/simulator/test_control.py
tests/simulator/test_ctl.py
tests/simulator/test_ctl_interactive.py
tests/simulator/test_engine.py
tests/simulator/test_integration.py
tests/simulator/test_prompt_common.py
tests/simulator/test_protocol.py
tests/simulator/test_scripting.py
tests/simulator/test_server.py
tests/simulator/test_shared_paths.py
tests/simulator/test_state.py
tests/simulator/test_state_io.py
tests/simulator/test_values.py
tests/simulator/test_wire.py
tests/simulator/wire.py
tests/simulator/scripts/__init__.py
tests/simulator/scripts/conftest.py
tests/simulator/scripts/test_basic_cycle.py
tests/simulator/scripts/test_full_test_suite.py
tests/simulator/scripts/test_obstruction_test.py
tests/simulator/scripts/test_pet_presence_test.py
tests/simulator/scripts/test_power_lockout_test.py
tests/simulator/scripts/test_safety_lock_test.py
tests/simulator/scripts/test_schedule_test.py