59593e812a3310563f444513028856c89eed3bd1ae28753e01affc07fb890abd  .env.example
c15de516590365a146277b2fed8fd4285865c31bbe9b48bad1fef945366a2745  .gitignore
2ef80037094e7bee2aba4c0b8363732d82a8102388c7f7eea80f302a1b246a23  README-PUBLIC.txt
e95d165ab4219a6adc7415ecc04576de34e9d9b52babc6ed6ecf26404a4a54fb  README.md
d992ceac85a806a6ccccab50c286ee237d0714854a91c5ff7220ac7d57523d5e  config/example.toml
860d057502f9657c0c0743e03f719f05788191c9d977b843d6e0b6369d52ae54  deploy/hardware-box.service
13b76c9a32845756a7d3261c7d408ffee2bb47d18ecccee2ad0c98c1c0365c65  design/build_model.py
7b6c2a099877fcb57a54245fe107682ee1952e703a7bf666fc3e56eb9de21a86  design/model_components.py
9a2cd52be8d0ba93890ed93ba8a39f4023900a6f5801f8c10eb956889d37e955  design/public_export.py
cb45b3df864a35defc81f5b41b6eab3643ad6e271534d991eb356a348870621b  design/v2/build_print_model.py
1154927a08bde8a058d83e14d56d437c790d47243df7b1bcfd3dc5415af13250  docs/HARDWARE.md
32177f98067af877101b94842656117b0aa786be2d5ceb09b9cc140fa22f6dae  docs/INSTALLATION.md
dd5fa05ebef24664d01871356346ee3fca49e62a52cdd5f024a14456d6e4e157  docs/OPENAI.md
92e51ee33d36e0ffd1b0dc0e1ae90daa2b1d9e9c4aa6e5de6e6d7ee4c9f88c6b  docs/PROTOCOL.md
e560197c21e2b78b72a59eb38a1ddd090beaba239748c50ef7a896b3b6bee6e7  docs/SAFETY.md
8df66844004e7f9c7fe5a8964aae9a4e93e1055526ca1133ba405df7c98fbdc8  docs/TESTPLAN.md
50f444d71d9c56a149d273309ba6c82f21a074ea12461eb141b638656083aa91  docs/VERIFICATION.md
955fd3eb1a364903a6bc0848fd63e57babcb2cdbf3fc1a7b09e37198fc45e4c9  docs/web-demo.jpg
2045e31c6a6d6dd6dc767081a1286cebc9ba7e266940cbafd010f1bfc6dff3ce  pico/.gitignore
6ee7f3e64b7a6783fa35f551cbbac0c3d5112de00ac499901a169473c57d0b27  pico/BUILD_VALIDATION.md
774045f2b58de55a7155a71287844f98e0f8ff35a3c5109ff0a1b6c5bbace9e9  pico/CMakeLists.txt
0c0ba2897094a84eec40f0e529f099d14d94492119426e0b9b2340e6c4423612  pico/main.c
e5a1810abd276f0ba83186df523692fb3ced35bdff4f20bcccd2acf5d0ce350c  pico/protocol.c
5534e9d25154308e2d5ae66b5cbb31b11bd2b30251a850ce52c1e7428a0b4eef  pico/protocol.h
6ced6fab19e81a39fc95b84f9f3784856d8041f6783a4128e425e8af6edf97eb  pico/tests/fake_pico/fake_sdk.h
cc36407d22c96f707d2eec95906a8bf87bc13357e38d2e35ca1bfe8596041a31  pico/tests/fake_pico/hardware/gpio.h
cc36407d22c96f707d2eec95906a8bf87bc13357e38d2e35ca1bfe8596041a31  pico/tests/fake_pico/hardware/uart.h
cc36407d22c96f707d2eec95906a8bf87bc13357e38d2e35ca1bfe8596041a31  pico/tests/fake_pico/hardware/watchdog.h
cc36407d22c96f707d2eec95906a8bf87bc13357e38d2e35ca1bfe8596041a31  pico/tests/fake_pico/pico/stdlib.h
24abba9791e57e77260daf7f3b15f0916ace70fd2faa7067580c92f1ca70df9d  pico/tests/fake_pico/pico/unique_id.h
cc36407d22c96f707d2eec95906a8bf87bc13357e38d2e35ca1bfe8596041a31  pico/tests/fake_pico/tusb.h
66318b41d4ef350949d70f117257c621f7fe4eb3c8c74b782ed9c82584549cc9  pico/tests/firmware_test.c
9edea21eaf95a288f463727f4435003b96094bbc7ffc4d7b233db57fc07cf52b  pico/tests/protocol_test.c
1f64834341882127e7a607261d26f41da3d0fd2d434d2f5ef9d350270eedf35a  pico/tests/run_native.sh
a84f9a5b8c6ea7f0e5a4e19bcfbc0b34f014c14815ebd26851eab609f0ef7f7c  pico/tests/usb_descriptor_test.c
2ab9c619bfb2deed70fbe3232f55ec1e56f3aff6b57636de52ed5b606d13bcdc  pico/tusb_config.h
55f7496b4cb7dcd0ecda8a070e269100702d1f32be04ebba488b9a584e064fef  pico/usb_descriptors.c
3206c38c0c63e3e508c68ff911e2560517e84012b4965a374065f3950326d792  pico/usb_descriptors.h
cfbce6c4daeb5cc3d387f11775321d9e831c3492a7af29473cddc43581d1938c  project-site/README.txt
ea12889154ae7968329e1886362ed6759db57aac31f494dcbc7520f8160c282a  project-site/THIRD_PARTY_NOTICES.txt
e398f94ea6b8c0215f59261c88a73ad8dcd2f7b9af2cc680bd7c25677c47363f  project-site/app.js
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  project-site/assets/vendor/model-viewer.LICENSE
283b0672384614b4847636c306fc93fe4b1fcadc76d668b4e47f0ca76bcf033b  project-site/assets/vendor/model-viewer.min.js
c07e002f668e9ea5fad27c0fe4209c866c80afd6138d75cb496690cbd6c563b9  project-site/build_downloads.py
27a05e249d2cdc81fc3444369983dc4c3924d38ca7d1571e3926977e1a8d630d  project-site/build_site.py
484408f9c91ecc9e4898f457c39905d8e57763f3974a6e25ed19fd8141ee73a6  project-site/deploy/nginx-http.conf
2a620d5c7290685a511dc7e21697a90936332c0a12f5d53b9e84ab63c72931b0  project-site/deploy/nginx-https.conf
5c0d83618f3a764249a56ae295cb9c9dcf759d3f3117497839d754d8b83e82c7  project-site/deploy/nginx-static.conf
80c54b20bd6055d5a46c662696dce266cc38474630e418740ee67b1b0f17ada3  project-site/index.html
92fe945b30781b4b7fe4558a97ae7c080468bc8e2e00eb7a243f7c330a94aebe  project-site/privacy_check.py
59220fb75171cf38305c45fa844d2d4fea1a7100ed16266798e11723518fab0c  project-site/requirements-build.txt
2395004017f65f32efc4192a0bca22bc69618ef85514e30a334ff111959a83db  project-site/styles.css
85f53bc52502e887b1047730a78e09a26aaf658142df063f19f069e461d26de2  project-site/test_privacy_check.py
b4f29c1bdba65ce3e3839adcaa49d5aee7c4542e7c6dbb4928fa98f7a60d1a2e  pyproject.toml
1c96fcf70a1ce07a404b8fd487b362a72f3138139ddc89736629be2dee8f760b  requirements-tested.txt
09d9856dcaf187fee2b931958d2c57a30d30cace89fc1162bb0dd94d304c4eb9  scripts/package.py
79ca6c95e3e7f36601e685d221124bbd580942a7adf9c4288c564b5f7c998402  src/hardware_box/__init__.py
3716edd6e4afe8271fd3178ea7fb71bb537e0fc4661f0e9f9d3cb203b0f253bc  src/hardware_box/capture/__init__.py
ac8b42c4b98d4ccb6265ea7d6ad5e64cc4a260bc2e43b97684aa22ec6749df13  src/hardware_box/capture/device.py
77b88c4680636fac4e21fcd13b21ce9c2f09a7df0aa20967475089641c7c5336  src/hardware_box/config.py
eb5b989549c08eb10da0e214db73d2018b8ba96a24385b301847b1bfbf758925  src/hardware_box/controller/__init__.py
21a786fe02daae2103ddf20bc51b190be0c7cb1ad95f2ffdd7b84d21aeaabbe3  src/hardware_box/controller/agent.py
98404099e155c2a9ffaac691089720881e621825437ff3e5344c996b33d2a644  src/hardware_box/hid/__init__.py
cb3bbfed17ebcd9cfd242cc34b4226127604b3307ccd43d9081cf4946f2ac307  src/hardware_box/hid/driver.py
df8d59301553e516452ff6231c00befc8eec4b0227af8337c6f249e123046f2d  src/hardware_box/hid/keyboard.py
add49860d84899bb2731189ceacfee26a0147ad22091622ca0f490b492940257  src/hardware_box/hid/mapping.py
ec4de1326ea638b50133bcb14d326998631accd265aa3a5e24a71d08d0881f47  src/hardware_box/hid/protocol.py
2f467407384eb2a0445edb92213910869df955660a5e3b459b59b622c5b119a8  src/hardware_box/logging/__init__.py
050d2123fc28c30f5905551e2850b01cfffa7e0c43d02d9b5e092982c4b8d55f  src/hardware_box/logging/audit.py
3970191bdc2fb4a88cf06c8b1e57487fce51a413596b901552c1db2490198d5a  src/hardware_box/main.py
7e5e75e3cbf799ca5e22704190ebc5ca96f7abcdf9a79ee1c004ba546a55fbba  src/hardware_box/openai/__init__.py
fa7e31cc0c5f2e8aa10110d2b0e9e3a069a64737fca4c26445d2202bc2b688cc  src/hardware_box/openai/client.py
2364d6e39192b77769b534a3e6bc1492f1c70004a2ca736b92c4a8f1f75eaec1  src/hardware_box/safety/__init__.py
8509cadfeb824c301ad5111dcb5dd8af266071d5c60d0631933b8ded074d08a0  src/hardware_box/safety/policy.py
1187b662432a6c098ec0895619df50f018df37681edde7ed57562e50af6befdd  src/hardware_box/vision/__init__.py
1497992b4a00ef65d073734b775fe1fc6bc845e77f6c419a3398f78acd489377  src/hardware_box/vision/frame.py
e2991cd61a201c2d80a90f31ae4f648b8a498733b0eea8e37c593e4c85794f4c  src/hardware_box/web/__init__.py
c61276ce4abb6ff0dba51169abcea59a243a95cec0189acc0582f2f57e21a63a  src/hardware_box/web/app.js
d1aea1fd1964b619321610d79b6f1d2e8d26bf2aa277f26f82fd4b68bda1ff45  src/hardware_box/web/app.py
c349791503257fa97c58f40851e5b5c7fc58fab9d355e294a6f0f2d75242cd6f  src/hardware_box/web/index.html
1e9f2e32bd71691da7c9910ae6c2c14a01a20070fc9b0bb0bce8420c54e2cc76  src/hardware_box/web/style.css
c7bbb6883507a9c95240e1c6d2cf1e56eb94c4fd53ee052c8e9d5332809df918  tests/test_api_policy_web.py
ab099d3d57a3aa3ce6d90c45834d261f0fc2056ebfdb9257cbf69f271344c106  tests/test_controller.py
1860588af67d62a7f46a746d8956da7612cd09ba96e1281c76e8308398aaf0f2  tests/test_hid.py
