CHANGELOG.md
CITATION.cff
LICENSE
MANIFEST.in
README.md
pyproject.toml
src/pad_lattice/__init__.py
src/pad_lattice/audio.py
src/pad_lattice/cli.py
src/pad_lattice/client.py
src/pad_lattice/codex_exec.py
src/pad_lattice/codex_hook_entry.py
src/pad_lattice/codex_hooks.py
src/pad_lattice/codex_session.py
src/pad_lattice/control_plane.py
src/pad_lattice/daemon_runtime.py
src/pad_lattice/demo_agent.py
src/pad_lattice/diagnostics.py
src/pad_lattice/events.py
src/pad_lattice/experience_compiler.py
src/pad_lattice/experience_manifest.py
src/pad_lattice/experience_runtime.py
src/pad_lattice/identity_store.py
src/pad_lattice/protocol.py
src/pad_lattice/schema_validation.py
src/pad_lattice/show.py
src/pad_lattice/visual_protocol.py
src/pad_lattice/web_protocol.py
src/pad_lattice/web_surface.py
src/pad_lattice.egg-info/PKG-INFO
src/pad_lattice.egg-info/SOURCES.txt
src/pad_lattice.egg-info/dependency_links.txt
src/pad_lattice.egg-info/entry_points.txt
src/pad_lattice.egg-info/requires.txt
src/pad_lattice.egg-info/top_level.txt
src/pad_lattice/device_profiles/novation/launchpad/mini-mk3.json
src/pad_lattice/device_profiles/novation/launchpad/pro-mk1.json
src/pad_lattice/device_profiles/novation/launchpad/pro-mk3.json
src/pad_lattice/devices/__init__.py
src/pad_lattice/devices/base.py
src/pad_lattice/devices/composite.py
src/pad_lattice/devices/factory.py
src/pad_lattice/devices/midi_grid.py
src/pad_lattice/devices/profiles.py
src/pad_lattice/devices/testing.py
src/pad_lattice/schemas/demo-manifest-v1.json
src/pad_lattice/schemas/device-profile-v1.json
src/pad_lattice/schemas/performance-manifest-v1.json
src/pad_lattice/schemas/socket-protocol-v1.json
src/pad_lattice/schemas/web-surface-protocol-v1.json
src/pad_lattice/web_dist/play/config.json
src/pad_lattice/web_dist/play/index.html
src/pad_lattice/web_dist/play/pad-lattice-logo.svg
src/pad_lattice/web_dist/play/assets/index-DVFDf2Rz.js
src/pad_lattice/web_dist/play/assets/index-DlxxM3fU.css
src/pad_lattice/web_dist/play/experiences/constellation-v1.json
src/pad_lattice/web_dist/play/experiences/demo-v1.json
src/pad_lattice/web_dist/play/experiences/audio/constellation-v1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approval-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-approve-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-cancelled-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-error-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-question-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-reject-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-retry-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-session_selected-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-stop-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-success-none.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-0.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-1.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-2.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-3.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-4.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-5.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-6.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-7.wav
src/pad_lattice/web_dist/play/experiences/audio/earcon-unavailable-none.wav
src/pad_lattice/web_dist/play/experiences/audio/greeting.wav
tests/test_audio.py
tests/test_cli.py
tests/test_client.py
tests/test_codex_exec.py
tests/test_codex_hooks.py
tests/test_codex_session.py
tests/test_composite_surface.py
tests/test_control_plane.py
tests/test_daemon.py
tests/test_demo_agent.py
tests/test_device_profiles.py
tests/test_diagnostics.py
tests/test_experience_manifest.py
tests/test_identity_store.py
tests/test_midi_grid.py
tests/test_profile_testing.py
tests/test_protocol.py
tests/test_published_schemas.py
tests/test_schema_validation.py
tests/test_show.py
tests/test_visual_protocol.py
tests/test_web_protocol.py
tests/test_web_surface.py