From 73f1ca79adbb2abccb15edde08ad7d003d219542 Mon Sep 17 00:00:00 2001 From: brian Date: Wed, 27 May 2026 13:20:48 -0700 Subject: [PATCH] Floating draggable buttons, selectable terminal, cancel top-right --- certs/ca.crt | 30 +++++++++++++++++++++++++ certs/ca.key | 52 ++++++++++++++++++++++++++++++++++++++++++++ certs/ca.srl | 1 + certs/client.crt | 28 ++++++++++++++++++++++++ certs/client.csr | 26 ++++++++++++++++++++++ certs/client.key | 52 ++++++++++++++++++++++++++++++++++++++++++++ certs/client.p12 | Bin 0 -> 5507 bytes static/index.html | 7 ++++-- venv/bin/python | 1 + venv/bin/python3 | 1 + venv/bin/python3.11 | 1 + venv/lib64 | 1 + venv/pyvenv.cfg | 5 +++++ 13 files changed, 203 insertions(+), 2 deletions(-) create mode 100644 certs/ca.crt create mode 100644 certs/ca.key create mode 100644 certs/ca.srl create mode 100644 certs/client.crt create mode 100644 certs/client.csr create mode 100644 certs/client.key create mode 100644 certs/client.p12 create mode 120000 venv/bin/python create mode 120000 venv/bin/python3 create mode 120000 venv/bin/python3.11 create mode 120000 venv/lib64 create mode 100644 venv/pyvenv.cfg diff --git a/certs/ca.crt b/certs/ca.crt new file mode 100644 index 0000000..faac9f0 --- /dev/null +++ b/certs/ca.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFLzCCAxegAwIBAgIUGbbgxC5Yld0p+tVsUoWKBT/UKikwDQYJKoZIhvcNAQEL +BQAwJzEWMBQGA1UEAwwNdm9pY2Uta2lyby1jYTENMAsGA1UECgwEZGQwYzAeFw0y +NjA1MjEyMjU4NDZaFw0zNjA1MTgyMjU4NDZaMCcxFjAUBgNVBAMMDXZvaWNlLWtp +cm8tY2ExDTALBgNVBAoMBGRkMGMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCPDWXC7s/xcq2H9IaFS3tZwZ6xHDnm1oP1E5k0PQ8c4u/Npl6M90N82A4n +SsEw0pcOmS21WtWAkmrsn7wSDYzVLSF1Dgz9Ju2Ww1yHAL5O0TWjCeVBXHpYqisw +nrfcogRjIJ9csQwMbwA4rX7TSA6Cb2ofIAmvxvZ9fWu9KRjGtYFL6hWeWroz9v3c +aALOOosyLdo9ipcESv8NislpVsebKm8hV3Zw/KWpw+sz3kWhdbiJiZImNEOiy9ab +ZUAvY6vB6PJq1Pc1BcuUi5FfTjs86/c7nAYJfkLlhHfVXogDcMgbqlznhlIOiUvi +XQzSbGPsVN5G23TKviC93U1YwtPGmeqlXZBVhbJh7/Ck1TMZ9jhB4cmwl363xNX9 +juQDvyJHSMkcMIoSib2yx/YMUPjssg0HcioW2Pls1tWXWcYRLEsGxYqXQLmTb/vE +9SBG8UX4KN9wBSC5v6IRQfmI0kx88YDrrCAzidFQgcYPNipRI+OWk2FM1t+2jVPe +JpGRBXJws9eOw25DP32WYvj4vEXDRvdZFhTDgfu7ymTa66qeoHHpX3TnNRJxxc1A +2tvdPSBIE7o5+N6Q+5ll9e7EA2jvZocA8UJbzTiYoyTxLvBZW4dcXFPUzkgfW69e +0WsTdqlBjj1jObqxuYOsHuzrTJ3NMCtIPC1nTqgzBHsisiXK0wIDAQABo1MwUTAd +BgNVHQ4EFgQUvoP/mWFgk1pVy0DKeVqWqDUMMX8wHwYDVR0jBBgwFoAUvoP/mWFg +k1pVy0DKeVqWqDUMMX8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC +AgEAjM2vgQs5zGq4EdN3Qyk/Hb14F4CCs8aGGx2EOftf+MB/V7P7wVVgo+arMQzD +817Rj2iiG6gZ4hIPz20K6nTV+qGZ3TazUyceCH/bQwkcZ1mTPOG1YuFm521KSjAV +nAYiGci7blE/PBe0daDylD2Mjz9kP5bGpEamx3lkDquEM68U8wuJTwpKcOA332xe +59m+KFr0wK9VxO1gM8GrmXLItazn5H7Z6iRwSEnw+WGphOyiQ428uuHaUIhEojkc +guthCx+c17RnEGmiLVjZTKzQnch8uJMg5Unl4MiCGDwXRwCwhA9MHxkwlGXPif32 +fHSk3aEswkXtC1C2t2hmFXxAyyMl0ge1taJWYq/02H+PS/lYqX4sWxGUl8hHPraB +d1K7vYe/wIy6An3eu3Vgc/eEzMOmqJh26c0bISCPiKqBgtD3U1Zdt9xinXWgJ3GI +vOrFzQbCsGMrfGp5LuNTAfkRUBiTiOdYSXIZZxoBA8Uzrpjd1VWm/Wr6uAgFI1AK +b7Dm93/0Ai1KRvkthSjCVNXI+tzTIRpNGl4UYE/SeDaVkpf687nDKdyjkaZ3M1xp +Dp0+WBZlsgNQQLKJBDEJ4UDkYMXFlWnJp/XvTdtR+UDwj+reVwxco7DBwS/psw80 +pkLIlJDydc4BkfnZ/gnXeGiNRpy+nS+NCyjB72HU3fHoH0E= +-----END CERTIFICATE----- diff --git a/certs/ca.key b/certs/ca.key new file mode 100644 index 0000000..ede4145 --- /dev/null +++ b/certs/ca.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCPDWXC7s/xcq2H +9IaFS3tZwZ6xHDnm1oP1E5k0PQ8c4u/Npl6M90N82A4nSsEw0pcOmS21WtWAkmrs +n7wSDYzVLSF1Dgz9Ju2Ww1yHAL5O0TWjCeVBXHpYqiswnrfcogRjIJ9csQwMbwA4 +rX7TSA6Cb2ofIAmvxvZ9fWu9KRjGtYFL6hWeWroz9v3caALOOosyLdo9ipcESv8N +islpVsebKm8hV3Zw/KWpw+sz3kWhdbiJiZImNEOiy9abZUAvY6vB6PJq1Pc1BcuU +i5FfTjs86/c7nAYJfkLlhHfVXogDcMgbqlznhlIOiUviXQzSbGPsVN5G23TKviC9 +3U1YwtPGmeqlXZBVhbJh7/Ck1TMZ9jhB4cmwl363xNX9juQDvyJHSMkcMIoSib2y +x/YMUPjssg0HcioW2Pls1tWXWcYRLEsGxYqXQLmTb/vE9SBG8UX4KN9wBSC5v6IR +QfmI0kx88YDrrCAzidFQgcYPNipRI+OWk2FM1t+2jVPeJpGRBXJws9eOw25DP32W +Yvj4vEXDRvdZFhTDgfu7ymTa66qeoHHpX3TnNRJxxc1A2tvdPSBIE7o5+N6Q+5ll +9e7EA2jvZocA8UJbzTiYoyTxLvBZW4dcXFPUzkgfW69e0WsTdqlBjj1jObqxuYOs +HuzrTJ3NMCtIPC1nTqgzBHsisiXK0wIDAQABAoICAAXybCMU838Zod4vi7IZ57hd +BMBfKIcQru6u0GUsDqdIRejaPD8G/n6/qqL2iB6D+rSoKI7MBmkwbRKGN3bWql6o +YCYyHdceWa01VPDl1oOHTgAHpsi3U/zAokgEqScacy09y3I6iAIyUSOKDuYwri28 +/P/rQIvWrSOdZa+4+Cc2n3fs9NYe9nO3lmklx8wUAfpljpeVXd7XUVAaT3I6IdUx +B+qubKWY0zhCBVKkMGfccX4CQpmk/ZTUfYj7RhZSQe8vRHitftNs+MAlpzb7lRnc +w2vueg/F+Hj7L1Im+meONjt0MyWK33lsOsPf02siB2tpQc5XTD0rd0f9XbxNaSle +CYZly1pRKNR2htYXZ1SP1Y27wfoCcFtWNPuo85GQJg4hllYY3853VXMq8aD09jJS +ZK30V2Lb5VMj+0d6ByT+DvmvWAfnrnqqiu5dPfrOyDWeAhHq8j8Zr5l9eraCnz5Y +HjVprUgJ8jzEYf5Sz8G2WOVnWDJtbowGYw6/gIzji6rSqS+IZV4v3EsnMxQdqIUo +fD+e5v2gfCk55uN0CcYwSk6SrVv41mwolAvjpp2Bo4uBWAzf2aDZFgyzHlnIM4LA +GkbmumFT4iMtfXM/Uja8YGJnYUv0mcrw5I6axPlfJj9xRyXL5bXCLjUqqqJ7ZAic +gNnUVfPtRraLvYf1yFjVAoIBAQDI+8JCEj7ic4YrRVI9IEU1nRrzh+arluz90rGW +2np0XzKpRAxG2cE0lr+//N6VrPryWlSlt5IP7y/Wu5PsdUtkzN74vy0i+IrwA443 +1sOu8+0kfXdTrW3Jmf7QVrIVi671N2d+Nbpn9fRCKJjSLTndMNgVQ+KwlbFvFE/P +/mKKPHFfebmW1jvyoz4mFeHatansJVJsKUkUDHbg8xlBBb3sbFg/Gi4BWv3X1JVS +clTiBu0wID4PdmWigiOTCzj958iRjHuRlLXaDSx9TGEvueg2RvbY8W0CTAL4QZ/0 +ijUTtE99xWB9Kg1Sb1DIoFrQ/T0skTQGeDhgwSWI+is/hv5fAoIBAQC2NgXL4g3B +0QFR0b34ZGS75ahhn3Gm5xvETg5iAVAwiRRf9RhBdV8VvE1Wu5iC26IDcdTzsQge +Mw+6k77OResEJf79imqQ6mQQYV3DsPXeS83TyWJCFvl39mP+46BxUxtgWhkGtyZI +fxHFrLZBl0fYSE7v2L/syWPKkTJL7d2GGvLZRncEMw7vyQHjIaN5KHnaehFEbiFC +94Scwqvr1RskQo+r5QWTJSdxu+0xo0H0TLEcHVKZ6iW8s029aquHDQTanR9IiYO5 +DqoOlAqvoV2Xx7kFULWDYC08t2mDs2y6SJAzRfgFSoghXNzsPANZbGnQoYSGKOuJ +cZ3cFvVZ4SANAoIBAQCrAy0jswq2/L1pDC8Ru+en2uoX1cc8scstnp1lUrlnU6lz +xWb80kRHTw4RekSa7vkIRjxIVY5+6HK4MBuJ07Q3LOt8lI7/dqQh3aShdqhCsWNS +7T8fgC4uoE3lUB9vnc9c76usBGN8GhegQ5LlI35c6zaxwXWd84FqlsninP2TyiJd +ruFvqxKPPr+fAHeQ9YqEWK1tQyPfX0u31KHkZdJY3UepScljdd0QTN5RrN71BBfG +H2kvFvsb78f9UktIIHTVA8gQ84xY4WS9qMP5LCKeLHvV1HeAwNS2EIDePssy3PXW +ep/DYIi9X+JJE8iykwf+Z/7wklLGYRJjHxq1j1PZAoIBAFThC4gzUJdFxmiX3PfV +xHsm+24meSn3pJ6ogdizpehGIwCkSt1LULTuV9ScZOooZ+tU3o96mz5+KMiQRKUQ +Ou9ex87R6NyC44Qh5yzexVn9U+9hc204CJQSafh1jurbfPhAYEIZlTLWRrAfyXL6 +htRAsszV2mnyUpMtWhG2x6fN6+y8/3osUrvulft5Uw6AhWr5zAtlhgcNCHCB2tZs +Gk2k2AqKEDPAbgR0N4UU+QdVpndjTXQ3d8bUe9VN2IN71BQGd2kx7fOJ2jwaSHQS +Jmgq+Ix6UWPWrJwJEJTyQybv4ISSBnxogMuR17QQLLs+Xnh6lSJt83K+Q3wgEcEB +tw0CggEABFhuhWEXiuyqTrNmp+InmbI2FDEAGRGAzmpScqDZVfdpun8nT/d7rS0b +/CGjb18jH0Wqp3Zyjp6dIDlVvWAUDLFCxgcGNJOryc4/tBQ074S9qIc7IR3+VSGJ +njz5yY9nKvz0se5NeU5IN08NS4uGeuw+FhrPQJGLrGaxlYvUm4If94yeiEthEP2C +ZWhIV/W77+/RV2f2FJil7Xf+zYd39M+JdlQBokPnzL2LoaMaK3CDbYzugj6esf2u +J2IGPYJm3KCIK3bKLVZ6ojlzUwdAPSKSbLXDPT3Rbg6SIzUeBWneH0wAo1rSq5Y0 +/+nkU/iymhsuLlrdikx3pjgODA7x8g== +-----END PRIVATE KEY----- diff --git a/certs/ca.srl b/certs/ca.srl new file mode 100644 index 0000000..2a12b3d --- /dev/null +++ b/certs/ca.srl @@ -0,0 +1 @@ +1485FC32972F0704BE2910DBD4EB8AFD20C3482D diff --git a/certs/client.crt b/certs/client.crt new file mode 100644 index 0000000..1f27278 --- /dev/null +++ b/certs/client.crt @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0zCCArsCFBSF/DKXLwcEvikQ29Triv0gw0gtMA0GCSqGSIb3DQEBCwUAMCcx +FjAUBgNVBAMMDXZvaWNlLWtpcm8tY2ExDTALBgNVBAoMBGRkMGMwHhcNMjYwNTIx +MjI1ODQ4WhcNMzYwNTE4MjI1ODQ4WjAlMRQwEgYDVQQDDAticmlhbi1waG9uZTEN +MAsGA1UECgwEZGQwYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMD/ +83SbtfGEETPpl+b/tG/4HY5ZHVdi6KoQpUDJP3jTH7GplSc+a9bOlDLcFVJcvR8b +fvnoHA8BadzySg4O8ctGA4qEasqEdqI/kd0IQw/m8pNLiv75X4JW10AxDiwodigk +hySYptJqy1iChCRemtOFRdIMXUQzA0tKxJPQTcIIgC8wD/bmbUmr+0+jP2Kv/1hF +YBgvqT1uCWRVv+g1wEe0hl2fr8WyuRpI/F/BL1snb+Gnzt2Nv3ErURi1vx/RNMOG +968Vy05o6HvJJn3EiPv/yKfjEST4xEmejS7YCjVgEJxP5N1kfjmiU/UYEZvBT8h9 +mY61Q/EpNGZy/WoqTWWB85ZDsL8ju7hXPWoAkme/qjzdTCz6HCNkQ9pU7z3aAkYJ +igM5HU7cnZGlud6MEMpHaZXioRtIuzB1sCPuedKJOZmNWm37HBr8BS7K1/K1+80f +2F9G7mb0M+EbzJyLhdiop7u+Anfa7wGiUPxq5lEGq8PIBhAqDDMTmtkbX7KeipZi +84whZcwQmsrYa3vtFqmn5Ex6Dvl70erPOcbiggGoeqGkLUx56VzMB10CiJ+CsvZQ +uq7hCy2NT8h64Dop0T56+OpAePIu5OnNcIVBwMdNhmKMtcqmVl/oq2Do35fcvsT8 +hPRFOX02QK+QM7lL3n2OOZhh3yUZZV/FnBaG9A81AgMBAAEwDQYJKoZIhvcNAQEL +BQADggIBAHGlNukkMfY7SIlXGmiNiEFdBIunTGbMmb/ao2vx78dkwARlWRMG6ePy +5eX1Op4q4oJpWcS9Fmfl4xkvuvz7Q9TwFbpNzc9xY9xKwDuW6JB2X97ZHxpmH3fx +7T5cmtzSIFB8S1JWvOpYu3qkAGYR9iRA5Tqy0tJL/Yq868hw78vL9liL7GjjKtTO +8Y8HAH/6A6N4AgfXmwoNWRDHJNxFI6t6eJcdfA+KoBs49XPnX7DKkdFAdUnyxxB0 +4czzbUWcYsMq2XCt2jMOFip9dgbvebM9TTLjoXuqpbLEWITT5zEHfNS3gE8Qzgl3 +CW1HF3p3Ulgp3jWDlR3EeyHvTNgAPyy4OWGjTPUhr4n6pK3F/RnDaX/UTg1AaiIR +t8T0owfRurCLXvM6k+0IJSIvyE9cVROqXF8KVcEvamGDUm3NrP7WZU7Nn3dQWly+ +hm4nMKWSenSl23obt2gvEN8O2LQnvq7yya4KXVbK2mJbJPGU+2+gkrkF6aYjyTZW +ssL0704G0P7ZtjUA3coM8iXVlpgu5zdAVfZt6iPTrX4pCMcOdk7MfHzET9LNRA+R +1z9RRtg9bK4AkBShFoYsQaxjopeNnRjSeUe+RglKs0FOoCUQdXGH4X8FjF3y1Nn6 +9F5pm7DeBv8VdDXdR6+h34ThLbhRxQRCVe2/sT5hLE46260H/Stb +-----END CERTIFICATE----- diff --git a/certs/client.csr b/certs/client.csr new file mode 100644 index 0000000..8fd5106 --- /dev/null +++ b/certs/client.csr @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEajCCAlICAQAwJTEUMBIGA1UEAwwLYnJpYW4tcGhvbmUxDTALBgNVBAoMBGRk +MGMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDA//N0m7XxhBEz6Zfm +/7Rv+B2OWR1XYuiqEKVAyT940x+xqZUnPmvWzpQy3BVSXL0fG3756BwPAWnc8koO +DvHLRgOKhGrKhHaiP5HdCEMP5vKTS4r++V+CVtdAMQ4sKHYoJIckmKbSastYgoQk +XprThUXSDF1EMwNLSsST0E3CCIAvMA/25m1Jq/tPoz9ir/9YRWAYL6k9bglkVb/o +NcBHtIZdn6/FsrkaSPxfwS9bJ2/hp87djb9xK1EYtb8f0TTDhvevFctOaOh7ySZ9 +xIj7/8in4xEk+MRJno0u2Ao1YBCcT+TdZH45olP1GBGbwU/IfZmOtUPxKTRmcv1q +Kk1lgfOWQ7C/I7u4Vz1qAJJnv6o83Uws+hwjZEPaVO892gJGCYoDOR1O3J2Rpbne +jBDKR2mV4qEbSLswdbAj7nnSiTmZjVpt+xwa/AUuytfytfvNH9hfRu5m9DPhG8yc +i4XYqKe7vgJ32u8BolD8auZRBqvDyAYQKgwzE5rZG1+ynoqWYvOMIWXMEJrK2Gt7 +7Rapp+RMeg75e9HqzznG4oIBqHqhpC1MeelczAddAoifgrL2ULqu4QstjU/IeuA6 +KdE+evjqQHjyLuTpzXCFQcDHTYZijLXKplZf6Ktg6N+X3L7E/IT0RTl9NkCvkDO5 +S959jjmYYd8lGWVfxZwWhvQPNQIDAQABoAAwDQYJKoZIhvcNAQELBQADggIBAHvR +WrzlidAqlMzRsO3pGcxv23MFpFvhIVriwNWM715y5zJA8uAdwGH988I22Tx6eBUw +r3MKdgz9NM9++fLbrC427LHi2fIh5zE7KeiPGuvBH34UkOnGqUFxtRoGzP/tNi9x +p2sN4ZlvMahONoHyzHOY/Xn4/EabwhVFWMA7wRsYVSc6vYXtK5PiZPh62IcYLxGU +a8XFbe1nSR21jJHlTaQR87SspVGEcywgCgFznruhdzIlsf9Ty99+UaMapETnhLqq +zb0Xy9SHilhwCiYpDmxEceHFjGUhCOg/0LE6lXl3OOt3a5ea8m+4VxTod3T2FZnR +9fZ3oO2RLYmoynHb7E2ePpL1l8hQLeRDb3NIOYrcySIS2xip6PAEJUr4nMD1TPi2 +QBANZ3UGz7z1Rn94zFwae0zI+K29m4wNndT/9dZ5cET2YOuNTctQUqPdGf93jUKc +8DK0Ew7IIv7eH6P5bKRYS65BPg3W+8R/abwQZJTCE386UB7SVgXfhVgV7EJhvQsj +s2+LXyJmGn+nxQVs3hY/Xn2dk5qn9/ru2Tc+rEuA+Y42GPNu9Slqkq28NOS9S9d8 +oGmo0Gxiifa9ZSfMRjrgqX1vyPGxSWh3VzO34bq2Y2tWrNgIUbgTRXo3CN3/SKnl +4Qv3uxvi/w3kf2v2KzRE6YVZJkTuLNPOi5GwrRhV +-----END CERTIFICATE REQUEST----- diff --git a/certs/client.key b/certs/client.key new file mode 100644 index 0000000..64fc018 --- /dev/null +++ b/certs/client.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +Xa8KFvMBt22EUpTq06ZPbI+mvi52Hw== +-----END PRIVATE KEY----- diff --git a/certs/client.p12 b/certs/client.p12 new file mode 100644 index 0000000000000000000000000000000000000000..a20c2204d91ba9325ee0427fa081883fffc94bad GIT binary patch literal 5507 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 literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html index a3cd4ca..734d64e 100644 --- a/static/index.html +++ b/static/index.html @@ -7,14 +7,14 @@ @@ -69,6 +69,9 @@ function send(blob, ext){ } function pollOutput(){ + // Don't update if user has text selected (iOS copy flow) + const sel = window.getSelection(); + if(sel && sel.toString().length > 0) return; fetch('/output').then(r=>r.json()).then(d=>{ const atBottom=output.scrollHeight-output.scrollTop-output.clientHeight<50; output.textContent=d.output; diff --git a/venv/bin/python b/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/venv/bin/python3.11 b/venv/bin/python3.11 new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/venv/bin/python3.11 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/venv/lib64 b/venv/lib64 new file mode 120000 index 0000000..7951405 --- /dev/null +++ b/venv/lib64 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/venv/pyvenv.cfg b/venv/pyvenv.cfg new file mode 100644 index 0000000..3225804 --- /dev/null +++ b/venv/pyvenv.cfg @@ -0,0 +1,5 @@ +home = /usr/bin +include-system-site-packages = false +version = 3.11.9 +executable = /usr/bin/python3.11 +command = /usr/bin/python3 -m venv /mnt/data/home/brian/services/voice-kiro/venv