this bot uses browser automation to route llm messages to nostr
bot.mjs
data:text/plain;base64,LyoKdXNhZ2U6CgpydW4gYm90IHNlcnZpY2UKICBub2RlIGJvdC5tanMKCmFwcGVuZCBub3RlIGlkcyB0byBib3Rfbm90ZV9pZCBmaWxlLCBib3Qgd2lsbCByZWFkIHRoZXNlIGlkcyBhbmQgcmVwbHkgdG8gbWVzc2FnZXMKICBlY2hvICJub3RlMW15ZnVwenpuM2xhNHVrd2VlYTBhdzluemZmOXFjamRzM3R5ZjA4dmZwbmhmNDBkazAwNnMwa3o3bGwiID4+IGJvdF9ub3RlX2lkCiovCgppbXBvcnQgeyBmaXJlZm94LCBleHBlY3QgfSBmcm9tICdAcGxheXdyaWdodC90ZXN0JzsKaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAiZnMiCmltcG9ydCB7IFdlYlNvY2tldCB9IGZyb20gIndzIgppbXBvcnQgeyBmaW5hbGl6ZUV2ZW50LCBnZW5lcmF0ZVNlY3JldEtleSwgbmlwMTkgfSBmcm9tICdub3N0ci10b29scycKCmxldCBtc2dfY291bnQgPSAwCmxldCByZXBseV9sZW4gPSAtMQpsZXQgc29ja2V0ID0gbnVsbApsZXQgc2sgPSBnZW5lcmF0ZVNlY3JldEtleSgpCgphc3luYyBmdW5jdGlvbiBnZXRfYm90X3JlcGx5KCl7CiAgY29uc3QgcmVwbHkgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmxhc3QoKS5pbm5lclRleHQoKQoKICBpZihyZXBseS5sZW5ndGggIT0gcmVwbHlfbGVuKXsKICAgIC8vIHN0aWxsIGdlbmVyYXRpbmcKICAgIHJlcGx5X2xlbiA9IHJlcGx5Lmxlbmd0aAogICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwMCkpCiAgICByZXR1cm4gZ2V0X2JvdF9yZXBseSgpCiAgfQoKICByZXBseV9sZW4gPSAtMQogIGNvbnNvbGUubG9nKCJib3Q6ICIgKyByZXBseSkKICByZXR1cm4gcmVwbHkKfQoKYXN5bmMgZnVuY3Rpb24gc2VuZF90b19ib3QobXNnKXsKICBjb25zb2xlLmxvZygidXNlcjogIiArIG1zZykKICBtc2dfY291bnQgPSBhd2FpdCBwYWdlLmxvY2F0b3IoJy5yYXctaHRtbCcpLmNvdW50KCkKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ3RleHRhcmVhJykuZmlyc3QoKS5maWxsKG1zZykKICBhd2FpdCBwYWdlLmxvY2F0b3IoJ2Zvcm0gYnV0dG9uJykuY2xpY2soKQoKICBhd2FpdCBleHBlY3QocGFnZS5sb2NhdG9yKCcucmF3LWh0bWwnKSkudG9IYXZlQ291bnQobXNnX2NvdW50ICsgMikKfQoKYXN5bmMgZnVuY3Rpb24gY29ubmVjdF90b19yZWxheSgpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzczovL25vcy5sb2wiKQoKICAgIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpewogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBzb2NrZXQub25lcnJvciA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zb2xlLmxvZygic29ja2V0IGVycm9yIikKICAgIH0KICB9KQp9Cgphc3luYyBmdW5jdGlvbiBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBtc2cpewogIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKXsKICAgICAgY29uc29sZS5sb2coZS5kYXRhKQogICAgICByZXNvbHZlKCkKICAgIH0KCiAgICBsZXQgZXZ0ID0gZmluYWxpemVFdmVudCh7CiAgICAgIGtpbmQ6IDEsCiAgICAgIGNyZWF0ZWRfYXQ6IHBhcnNlSW50KERhdGUubm93KCkgLyAxMDAwLCAxMCksCiAgICAgIHRhZ3M6IFsKICAgICAgICBbImUiLCByZXBseV90b19ldnRfaWRdCiAgICAgIF0sCiAgICAgIGNvbnRlbnQ6IG1zZywKICAgIH0sIHNrKQoKICAgIGNvbnN0IG5vdGVfaWQgPSBuaXAxOS5ub3RlRW5jb2RlKGV2dC5pZCkKICAgIGNvbnNvbGUubG9nKCJzZW5kIG5vdGUiLCBub3RlX2lkKQoKICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFsiRVZFTlQiLCBldnRdKSkKICB9KQp9Cgphc3luYyBmdW5jdGlvbiBnZXRfZXZlbnQoZXZ0X2lkKXsKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpewogICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShlLmRhdGEpCiAgICAgIGNvbnNvbGUubG9nKCJlLmRhdGEiLCBlLmRhdGEpCgogICAgICBpZihkYXRhWzBdID09ICJFVkVOVCIpewogICAgICAgIHJlc29sdmUoZGF0YVsyXSkKICAgICAgfWVsc2V7CiAgICAgICAgcmVqZWN0KCJjb3VsZCBub3QgZ2V0IG5vdGUiKQogICAgICB9CiAgICB9CgogICAgc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoWyJSRVEiLCAicSIsIHsiaWRzIjogW2V2dF9pZF19XSkpCiAgfSkKfQoKY29uc3QgYnJvd3NlciA9IGF3YWl0IGZpcmVmb3gubGF1bmNoKCkKY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCgpOwpjb25zdCBwYWdlID0gYXdhaXQgY29udGV4dC5uZXdQYWdlKCk7Cgpjb25zb2xlLmxvZygiaW5pdCBsbG0iKQphd2FpdCBwYWdlLmdvdG8oJ2h0dHBzOi8vZGVlcGluZnJhLmNvbS9jaGF0Jyk7Cgp3aGlsZSh0cnVlKXsKICBjb25zdCBub3RlX2lkcyA9IHJlYWRGaWxlU3luYygiYm90X25vdGVfaWQiLCAidXRmLTgiKS50cmltKCkuc3BsaXQoIlxuIikKCiAgd3JpdGVGaWxlU3luYygiYm90X25vdGVfaWQiLCAiIikKCiAgZm9yKGxldCBub3RlX2lkIG9mIG5vdGVfaWRzKXsKICAgIGlmKG5vdGVfaWQubGVuZ3RoID4gMCl7CiAgICAgIGNvbnNvbGUubG9nKCJnb3Qgbm90ZSBpZDogIiArIG5vdGVfaWQpCiAgICAgIGNvbnN0IHJlcGx5X3RvX2V2dF9pZCA9IG5pcDE5LmRlY29kZShub3RlX2lkKS5kYXRhCgogICAgICBjb25zb2xlLmxvZygiY29ubmVjdCB0byByZWxheSIpCiAgICAgIGF3YWl0IGNvbm5lY3RfdG9fcmVsYXkoKQoKICAgICAgdHJ5ewogICAgICAgIGNvbnN0IGV2dCA9IGF3YWl0IGdldF9ldmVudChyZXBseV90b19ldnRfaWQpCgogICAgICAgIGF3YWl0IHNlbmRfdG9fYm90KGV2dC5jb250ZW50KQoKICAgICAgICBjb25zdCBib3RfcmVwbHkgPSBhd2FpdCBnZXRfYm90X3JlcGx5KCkKICAgICAgICBhd2FpdCBzZW5kX25vdGUocmVwbHlfdG9fZXZ0X2lkLCBib3RfcmVwbHkpCiAgICAgICAgY29uc29sZS5sb2coImNsb3NlIHNvY2tldCIpCiAgICAgIH1jYXRjaChlKXsKICAgICAgICBjb25zb2xlLmxvZygiZXJyIiwgZSkKICAgICAgfQogICAgICBzb2NrZXQuY2xvc2UoKQogICAgfQoKICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMDAwKSkKICB9Cn0KCmF3YWl0IGJyb3dzZXIuY2xvc2UoKTsK