{"data":{"format":"sidebud-widget-pack","formatVersion":2,"exportedAt":"2026-09-26T11:45:08.344Z","manifest":{"id":"dev.remotevoiceagent.gmail","mcp":{"env":{"GOOGLE_ACCESS_TOKEN":"{{oauth.accessToken}}"},"args":["server/index.mjs"],"command":"node","transport":"stdio"},"auth":{"type":"oauth2","scopes":["https://www.googleapis.com/auth/gmail.modify"],"tokenUrl":"https://oauth2.googleapis.com/token","clientIdSecret":"GOOGLE_OAUTH_CLIENT_ID","authorizationUrl":"https://accounts.google.com/o/oauth2/v2/auth","clientSecretSecret":"GOOGLE_OAUTH_CLIENT_SECRET","authorizationParams":{"prompt":"consent","access_type":"offline"}},"data":[{"id":"unread","tool":"search_threads","arguments":{"view":"THREAD_VIEW_IDS","query":"is:unread {{setting.scope}}","pageSize":50},"refreshSeconds":60},{"id":"recent","tool":"search_threads","arguments":{"view":"THREAD_VIEW_MINIMAL","query":"is:unread {{setting.scope}}","pageSize":8},"refreshSeconds":60},{"id":"vip","tool":"search_threads","arguments":{"view":"THREAD_VIEW_MINIMAL","query":"is:unread {{setting.vipQuery}}","pageSize":20},"refreshSeconds":60},{"id":"newsletters","tool":"search_threads","arguments":{"view":"THREAD_VIEW_IDS","query":"is:unread category:promotions in:inbox","pageSize":50},"refreshSeconds":60}],"logo":{"kind":"file","path":"logo.png"},"name":"Gmail","tile":{"size":"small"},"setup":{"steps":["In a Google Cloud project, enable the Gmail API and create a Desktop OAuth client.","Save the OAuth client ID and secret as the pack keys, then connect the Google account on this computer."],"prerequisites":[{"name":"Node.js","command":"node"}]},"skill":{"path":"SKILL.md"},"author":{"name":"Sidebud"},"blocks":[{"type":"stats","items":[{"tone":"warning","label":"Unread","value":"{{unread/threads|count}}"},{"tone":"info","label":"VIP unread","value":"{{vip/threads|count}}"},{"label":"Newsletters","value":"{{newsletters/threads|count}}"}]},{"item":{"title":"{{item/messages/0/subject}}","status":"VIP","subtitle":"{{item/messages/0/sender}}","statusTone":"info"},"type":"list","items":"{{vip/threads}}","limit":5,"emptyText":"No unread VIP mail."},{"item":{"title":"{{item/messages/0/subject}}","subtitle":"{{item/messages/0/sender}}"},"type":"list","items":"{{recent/threads}}","limit":8,"emptyText":"Inbox zero."}],"glance":{"stats":[{"tone":"warning","label":"Unread","value":"{{unread/threads|count}}"},{"tone":"info","label":"VIP","value":"{{vip/threads|count}}"}]},"notify":[{"id":"vip","key":"{{item/id}}","items":"{{vip/threads}}","rules":[{"new":true,"text":"New mail from {{item/messages/0/sender}}: {{item/messages/0/subject}}","priority":"update"}],"category":"mail"}],"license":"MIT","listing":{"account":"Google account","category":"communication","homepage":"https://developers.google.com/gmail/api","connectsTo":"The Gmail API, through the server in this pack"},"preview":{"at":"2026-09-25T09:00:00.000Z","data":{"vip":{"threads":[{"id":"v1","messages":[{"sender":"Priya Shah","subject":"Contract draft for review"}]}]},"recent":{"threads":[{"id":"r1","messages":[{"sender":"Priya Shah","subject":"Contract draft for review"}]},{"id":"r2","messages":[{"sender":"Acme Billing","subject":"Your invoice for September"}]},{"id":"r3","messages":[{"sender":"Sam Lee","subject":"Photos from the offsite"}]}]},"unread":{"threads":[{"id":"0"},{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"},{"id":"7"},{"id":"8"},{"id":"9"},{"id":"10"},{"id":"11"}]},"newsletters":{"threads":[{"id":"0"},{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"}]}}},"secrets":[{"name":"GOOGLE_OAUTH_CLIENT_ID","description":"Desktop OAuth client ID from your Google Cloud project with Gmail API enabled"},{"name":"GOOGLE_OAUTH_CLIENT_SECRET","description":"That OAuth client's secret"}],"version":"3.0.1","controls":[{"id":"clean","kind":"prompt","label":"Clean up my inbox","prompt":"Clean up my inbox: archive the newsletters and tell me what needs a reply.","default":true},{"id":"summarize","kind":"prompt","label":"Summarize unread","prompt":"Summarize my unread email.","default":true},{"id":"vip","kind":"prompt","label":"Unread from VIPs","prompt":"Read me my unread emails from VIPs.","default":false},{"id":"archive-newsletters","kind":"tool","tool":"unlabel_thread","label":"Archive newsletters","effect":"consequential","confirm":"Archive {{newsletters/threads|count}} unread newsletter threads?","default":false,"forEach":"{{newsletters/threads}}","arguments":{"labelIds":["INBOX"],"threadId":"{{item/id}}"}},{"id":"mark-all-read","kind":"tool","tool":"unlabel_thread","label":"Mark all read","effect":"consequential","confirm":"Mark {{unread/threads|count}} threads as read?","default":false,"forEach":"{{unread/threads}}","arguments":{"labelIds":["UNREAD"],"threadId":"{{item/id}}"}}],"settings":[{"id":"scope","type":"select","label":"Mailbox","default":"in:inbox","options":[{"id":"in:inbox","label":"Inbox"},{"id":"label:important","label":"Important"},{"id":"in:anywhere","label":"All mail"}]},{"id":"vipQuery","type":"text","label":"VIP senders","default":"is:starred","description":"A Gmail search for VIP mail, e.g. from:(boss@example.com OR partner@example.com)"}],"description":"Unread and VIP mail, with inbox clean-up controls. Google API access and tokens stay on your companion computer.","permissions":{"reach":["messages"],"tools":[{"name":"search_threads","access":"read","description":"Search threads with Gmail query syntax"},{"name":"get_thread","access":"read","description":"Read one thread"},{"name":"list_labels","access":"read","description":"List labels"},{"name":"unlabel_thread","access":"write","description":"Remove labels from a thread (archive = remove INBOX, mark read = remove UNREAD)"}],"network":["gmail.googleapis.com","accounts.google.com","oauth2.googleapis.com"]},"schemaVersion":3,"refreshSeconds":60,"contentHash":"sha256:b8f177af34638443571ac4c347e8594d333b8814be8c2e394f54820ba392e452"},"files":{"logo.png":"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","server/index.mjs":"Ly8gR21haWwgTUNQIHNlcnZlciBmb3IgdGhpcyBwYWNrOiBmaXhlZCBHbWFpbCBBUEkgZW5kcG9pbnRzIG9ubHkuIFRoZSBjb21wYW5pb24KLy8gcGFzc2VzIHRoZSBhY2NvdW50J3MgT0F1dGggYWNjZXNzIHRva2VuIGluIEdPT0dMRV9BQ0NFU1NfVE9LRU4gYW5kIHJlc3RhcnRzCi8vIHRoaXMgc2VydmVyIHdoZW4gdGhlIHRva2VuIHJlZnJlc2hlczsgdGhlIHRva2VuIG5ldmVyIGVudGVycyB0b29sIGFyZ3VtZW50cwovLyBvciByZXN1bHRzLgppbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnCmltcG9ydCB7IGFyZywgc2VydmUgfSBmcm9tICcuL21jcC5tanMnCgpjb25zdCBCQVNFID0gJ2h0dHBzOi8vZ21haWwuZ29vZ2xlYXBpcy5jb20vZ21haWwvdjEvdXNlcnMvbWUvJwpjb25zdCByZWFkID0geyByZWFkT25seUhpbnQ6IHRydWUsIGRlc3RydWN0aXZlSGludDogZmFsc2UsIGlkZW1wb3RlbnRIaW50OiB0cnVlIH0KY29uc3QgSUQgPSAvXltcdy4tXXsxLDUwMH0kLwoKLyoqIE5hbWVzIHRoZSBhY3R1YWwgY2F1c2UgZnJvbSBHb29nbGUncyBlcnJvciByZWFzb247IHRoZSByZXNwb25zZSdzIG1lc3NhZ2UgdGV4dCBpcyBub3QgZWNob2VkLiAqLwpleHBvcnQgZnVuY3Rpb24gZ29vZ2xlRmFpbHVyZShzdGF0dXMsIGJvZHkpIHsKICBjb25zdCBlcnJvciA9IGJvZHkgJiYgdHlwZW9mIGJvZHkgPT09ICdvYmplY3QnICYmIGJvZHkuZXJyb3IgJiYgdHlwZW9mIGJvZHkuZXJyb3IgPT09ICdvYmplY3QnID8gYm9keS5lcnJvciA6IG51bGwKICBjb25zdCByZWFzb25zID0gW2Vycm9yPy5zdGF0dXMsIC4uLihBcnJheS5pc0FycmF5KGVycm9yPy5kZXRhaWxzKSA/IGVycm9yLmRldGFpbHMgOiBbXSkubWFwKChkKSA9PiBkPy5yZWFzb24pLCAuLi4oQXJyYXkuaXNBcnJheShlcnJvcj8uZXJyb3JzKSA/IGVycm9yLmVycm9ycyA6IFtdKS5tYXAoKGUpID0+IGU/LnJlYXNvbildLmZpbHRlcigocikgPT4gdHlwZW9mIHIgPT09ICdzdHJpbmcnICYmIHIpCiAgY29uc3QgaGFzID0gKC4uLm5hbWVzKSA9PiByZWFzb25zLnNvbWUoKHJlYXNvbikgPT4gbmFtZXMuaW5jbHVkZXMocmVhc29uKSkKICBpZiAoc3RhdHVzID09PSA0MjkgfHwgaGFzKCdSQVRFX0xJTUlUX0VYQ0VFREVEJywgJ1JFU09VUkNFX0VYSEFVU1RFRCcsICdyYXRlTGltaXRFeGNlZWRlZCcsICd1c2VyUmF0ZUxpbWl0RXhjZWVkZWQnLCAncXVvdGFFeGNlZWRlZCcpKQogICAgcmV0dXJuICdHb29nbGUgaXMgcmF0ZS1saW1pdGluZyBHbWFpbCByZXF1ZXN0cyBmb3IgdGhpcyBhY2NvdW50LiBUaGUgd2lkZ2V0IGtlZXBzIGl0cyBsYXN0IHJlc3VsdHMgYW5kIHJldHJpZXMgb24gaXRzIG5leHQgcmVmcmVzaC4nCiAgaWYgKGhhcygnU0VSVklDRV9ESVNBQkxFRCcsICdhY2Nlc3NOb3RDb25maWd1cmVkJykpIHJldHVybiAnVGhlIEdtYWlsIEFQSSBpcyBub3QgZW5hYmxlZCBpbiB0aGUgR29vZ2xlIENsb3VkIHByb2plY3QgZm9yIHRoaXMgT0F1dGggY2xpZW50LiBFbmFibGUgaXQsIHRoZW4gYWxsb3cgYSBmZXcgbWludXRlcy4nCiAgaWYgKGhhcygnQUNDRVNTX1RPS0VOX1NDT1BFX0lOU1VGRklDSUVOVCcsICdpbnN1ZmZpY2llbnRQZXJtaXNzaW9ucycpKSByZXR1cm4gJ1RoaXMgR29vZ2xlIGFjY291bnQgZGlkIG5vdCBncmFudCB0aGUgR21haWwgcGVybWlzc2lvbiB0aGlzIG5lZWRzLiBSZWNvbm5lY3QgaXQgb24gdGhlIGNvbXB1dGVyLicKICBpZiAoc3RhdHVzID09PSA0MDMpIHJldHVybiBgR29vZ2xlIGRlbmllZCB0aGlzIEdtYWlsIHJlcXVlc3QgKCR7cmVhc29uc1swXSA/PyAnZm9yYmlkZGVuJ30pLmAKICByZXR1cm4gYEdvb2dsZSBHbWFpbCByZXF1ZXN0IGZhaWxlZCAoJHtzdGF0dXN9JHtyZWFzb25zWzBdID8gYCwgJHtyZWFzb25zWzBdfWAgOiAnJ30pLmAKfQoKZnVuY3Rpb24gdGhyZWFkVmlldyh0aHJlYWQpIHsKICByZXR1cm4gewogICAgaWQ6IFN0cmluZyh0aHJlYWQuaWQpLAogICAgbWVzc2FnZXM6IChBcnJheS5pc0FycmF5KHRocmVhZC5tZXNzYWdlcykgPyB0aHJlYWQubWVzc2FnZXMgOiBbXSkubWFwKChtZXNzYWdlKSA9PiB7CiAgICAgIGNvbnN0IGhlYWRlciA9IChuYW1lKSA9PiBtZXNzYWdlLnBheWxvYWQ/LmhlYWRlcnM/LmZpbmQoKGgpID0+IFN0cmluZyhoLm5hbWUpLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUpPy52YWx1ZSA/PyAnJwogICAgICByZXR1cm4geyBpZDogU3RyaW5nKG1lc3NhZ2UuaWQpLCBzdWJqZWN0OiBoZWFkZXIoJ3N1YmplY3QnKSwgc2VuZGVyOiBoZWFkZXIoJ2Zyb20nKSwgZGF0ZTogaGVhZGVyKCdkYXRlJyksIHNuaXBwZXQ6IG1lc3NhZ2Uuc25pcHBldCA/PyAnJywgbGFiZWxJZHM6IG1lc3NhZ2UubGFiZWxJZHMgPz8gW10gfQogICAgfSksCiAgfQp9CgovKiogVGhlIHNlcnZlcidzIHRvb2xzOyBgdG9rZW4oKWAgcmVhZHMgdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuLiAqLwpleHBvcnQgZnVuY3Rpb24gZ21haWxUb29scyh7IHRva2VuLCBmZXRjaCA9IGdsb2JhbFRoaXMuZmV0Y2ggfSkgewogIGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3QocGF0aCwgcGFyYW1zID0ge30sIGJvZHkpIHsKICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdG9rZW4oKQogICAgaWYgKCFhY2Nlc3NUb2tlbikgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0IHRoaXMgR29vZ2xlIGFjY291bnQgb24gdGhlIGNvbXB1dGVyIGZpcnN0LicpCiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKEJBU0UgKyBwYXRoKQogICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB1cmwuc2VhcmNoUGFyYW1zLnNldChuYW1lLCB2YWx1ZSkKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7CiAgICAgIG1ldGhvZDogYm9keSA/ICdQT1NUJyA6ICdHRVQnLAogICAgICByZWRpcmVjdDogJ2Vycm9yJywKICAgICAgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KDIwXzAwMCksCiAgICAgIGhlYWRlcnM6IHsgYXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsIC4uLihib2R5ID8geyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0gOiB7fSkgfSwKICAgICAgLi4uKGJvZHkgPyB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpIH0gOiB7fSksCiAgICB9KQogICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB0aHJvdyBuZXcgRXJyb3IoJ0dvb2dsZSBhdXRob3JpemF0aW9uIGV4cGlyZWQgb3Igd2FzIHJldm9rZWQuIFJlY29ubmVjdCB0aGlzIGFjY291bnQuJykKICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihnb29nbGVGYWlsdXJlKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UuanNvbigpLmNhdGNoKCgpID0+IG51bGwpKSkKICAgIHJldHVybiByZXNwb25zZS5qc29uKCkKICB9CiAgY29uc3QgcGFnZSA9IHsKICAgIHBhZ2VTaXplOiB7IHR5cGU6ICdpbnRlZ2VyJywgbWluaW11bTogMSwgbWF4aW11bTogNTAsIGRlZmF1bHQ6IDIwIH0sCiAgICBwYWdlVG9rZW46IHsgdHlwZTogJ3N0cmluZycsIG1heExlbmd0aDogMjAwMCB9LAogIH0KICByZXR1cm4gWwogICAgeyBuYW1lOiAnbGlzdF9sYWJlbHMnLCBkZXNjcmlwdGlvbjogJ0xpc3QgR21haWwgbGFiZWxzJywgaW5wdXRTY2hlbWE6IHsgdHlwZTogJ29iamVjdCcsIHByb3BlcnRpZXM6IHt9IH0sIGFubm90YXRpb25zOiByZWFkLCBydW46ICgpID0+IHJlcXVlc3QoJ2xhYmVscycpIH0sCiAgICB7CiAgICAgIG5hbWU6ICdzZWFyY2hfdGhyZWFkcycsCiAgICAgIGRlc2NyaXB0aW9uOiAnU2VhcmNoIEdtYWlsIHRocmVhZHM7IHJldHVybnMgYm91bmRlZCBtZXNzYWdlIG1ldGFkYXRhIGFuZCBzbmlwcGV0cywgbm90IGF0dGFjaG1lbnRzLicsCiAgICAgIGlucHV0U2NoZW1hOiB7CiAgICAgICAgdHlwZTogJ29iamVjdCcsCiAgICAgICAgcHJvcGVydGllczogewogICAgICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIG1heExlbmd0aDogMjAwMCwgZGVmYXVsdDogJ2luOmluYm94JyB9LAogICAgICAgICAgLi4ucGFnZSwKICAgICAgICAgIGluY2x1ZGVUcmFzaDogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0sCiAgICAgICAgICB2aWV3OiB7IHR5cGU6ICdzdHJpbmcnLCBlbnVtOiBbJ1RIUkVBRF9WSUVXX01JTklNQUwnLCAnVEhSRUFEX1ZJRVdfTUVUQURBVEFfT05MWScsICdUSFJFQURfVklFV19JRFMnXSwgZGVmYXVsdDogJ1RIUkVBRF9WSUVXX01JTklNQUwnIH0sCiAgICAgICAgfSwKICAgICAgfSwKICAgICAgYW5ub3RhdGlvbnM6IHJlYWQsCiAgICAgIHJ1bjogYXN5bmMgKGFyZ3MpID0+IHsKICAgICAgICBjb25zdCBxdWVyeSA9IGFyZy5zdHJpbmcoYXJncywgJ3F1ZXJ5JywgeyBtYXg6IDIwMDAsIGZhbGxiYWNrOiAnaW46aW5ib3gnIH0pCiAgICAgICAgY29uc3QgcGFnZVNpemUgPSBhcmcuaW50ZWdlcihhcmdzLCAncGFnZVNpemUnLCB7IG1pbjogMSwgbWF4OiA1MCwgZmFsbGJhY2s6IDIwIH0pCiAgICAgICAgY29uc3QgcGFnZVRva2VuID0gYXJnLm9wdGlvbmFsU3RyaW5nKGFyZ3MsICdwYWdlVG9rZW4nKQogICAgICAgIGNvbnN0IGluY2x1ZGVUcmFzaCA9IGFyZy5ib29sZWFuKGFyZ3MsICdpbmNsdWRlVHJhc2gnLCBmYWxzZSkKICAgICAgICBjb25zdCB2aWV3ID0gYXJnLm9uZU9mKGFyZ3MsICd2aWV3JywgWydUSFJFQURfVklFV19NSU5JTUFMJywgJ1RIUkVBRF9WSUVXX01FVEFEQVRBX09OTFknLCAnVEhSRUFEX1ZJRVdfSURTJ10sICdUSFJFQURfVklFV19NSU5JTUFMJykKICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3QoJ3RocmVhZHMnLCB7IHE6IHF1ZXJ5LCBtYXhSZXN1bHRzOiBTdHJpbmcocGFnZVNpemUpLCBwYWdlVG9rZW4sIGluY2x1ZGVTcGFtVHJhc2g6IFN0cmluZyhpbmNsdWRlVHJhc2gpIH0pCiAgICAgICAgY29uc3QgbGlzdGVkID0gKEFycmF5LmlzQXJyYXkocmVzcG9uc2UudGhyZWFkcykgPyByZXNwb25zZS50aHJlYWRzIDogW10pLm1hcCgodGhyZWFkKSA9PiAoeyBpZDogU3RyaW5nKHRocmVhZC5pZCkgfSkpCiAgICAgICAgLy8gSWRzIG9ubHkgaXMgb25lIHJlcXVlc3QsIGZvciBjb3VudHMgYW5kIGJ1bGsgY29udHJvbHM7IHRoZSBvdGhlciB2aWV3cyByZWFkIGVhY2ggdGhyZWFkLgogICAgICAgIGlmICh2aWV3ID09PSAnVEhSRUFEX1ZJRVdfSURTJykgcmV0dXJuIHsgdGhyZWFkczogbGlzdGVkLm1hcCgodCkgPT4gKHsgaWQ6IHQuaWQsIG1lc3NhZ2VzOiBbXSB9KSksIG5leHRQYWdlVG9rZW46IHJlc3BvbnNlLm5leHRQYWdlVG9rZW4sIHJlc3VsdENvdW50RXN0aW1hdGU6IFN0cmluZyhyZXNwb25zZS5yZXN1bHRTaXplRXN0aW1hdGUgPz8gbGlzdGVkLmxlbmd0aCkgfQogICAgICAgIGNvbnN0IHRocmVhZHMgPSBbXQogICAgICAgIC8vIEZpdmUgcmVxdWVzdHMgYXQgYSB0aW1lIGJvdW5kcyBBUEkgcHJlc3N1cmUgd2hpbGUgcHJlc2VydmluZyBwYWdlIG9yZGVyLgogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdGVkLmxlbmd0aDsgaSArPSA1KSB0aHJlYWRzLnB1c2goLi4uKGF3YWl0IFByb21pc2UuYWxsKGxpc3RlZC5zbGljZShpLCBpICsgNSkubWFwKGFzeW5jICh0KSA9PiB0aHJlYWRWaWV3KGF3YWl0IHJlcXVlc3QoYHRocmVhZHMvJHtlbmNvZGVVUklDb21wb25lbnQodC5pZCl9YCwgeyBmb3JtYXQ6ICdtZXRhZGF0YScgfSkpKSkpKQogICAgICAgIHJldHVybiB7IHRocmVhZHMsIG5leHRQYWdlVG9rZW46IHJlc3BvbnNlLm5leHRQYWdlVG9rZW4sIHJlc3VsdENvdW50RXN0aW1hdGU6IFN0cmluZyhyZXNwb25zZS5yZXN1bHRTaXplRXN0aW1hdGUgPz8gdGhyZWFkcy5sZW5ndGgpIH0KICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICdnZXRfdGhyZWFkJywKICAgICAgZGVzY3JpcHRpb246ICdSZWFkIHRocmVhZCBtZXRhZGF0YSBhbmQgbWVzc2FnZSBzbmlwcGV0cycsCiAgICAgIGlucHV0U2NoZW1hOiB7IHR5cGU6ICdvYmplY3QnLCBwcm9wZXJ0aWVzOiB7IHRocmVhZElkOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXhMZW5ndGg6IDUwMCB9IH0sIHJlcXVpcmVkOiBbJ3RocmVhZElkJ10gfSwKICAgICAgYW5ub3RhdGlvbnM6IHJlYWQsCiAgICAgIHJ1bjogYXN5bmMgKGFyZ3MpID0+IHRocmVhZFZpZXcoYXdhaXQgcmVxdWVzdChgdGhyZWFkcy8ke2VuY29kZVVSSUNvbXBvbmVudChhcmcuc3RyaW5nKGFyZ3MsICd0aHJlYWRJZCcsIHsgcGF0dGVybjogSUQgfSkpfWAsIHsgZm9ybWF0OiAnbWV0YWRhdGEnIH0pKSwKICAgIH0sCiAgICB7CiAgICAgIG5hbWU6ICd1bmxhYmVsX3RocmVhZCcsCiAgICAgIGRlc2NyaXB0aW9uOiAnUmVtb3ZlIElOQk9YIG9yIFVOUkVBRCBsYWJlbHMgYWZ0ZXIgZXhwbGljaXQgdXNlciBhdXRob3JpemF0aW9uLiBEb2VzIG5vdCBzZW5kIG9yIGRlbGV0ZSBtYWlsLicsCiAgICAgIGlucHV0U2NoZW1hOiB7CiAgICAgICAgdHlwZTogJ29iamVjdCcsCiAgICAgICAgcHJvcGVydGllczogeyB0aHJlYWRJZDogeyB0eXBlOiAnc3RyaW5nJywgbWF4TGVuZ3RoOiA1MDAgfSwgbGFiZWxJZHM6IHsgdHlwZTogJ2FycmF5JywgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycsIGVudW06IFsnSU5CT1gnLCAnVU5SRUFEJ10gfSwgbWluSXRlbXM6IDEsIG1heEl0ZW1zOiAyIH0gfSwKICAgICAgICByZXF1aXJlZDogWyd0aHJlYWRJZCcsICdsYWJlbElkcyddLAogICAgICB9LAogICAgICBhbm5vdGF0aW9uczogeyByZWFkT25seUhpbnQ6IGZhbHNlLCBkZXN0cnVjdGl2ZUhpbnQ6IGZhbHNlLCBpZGVtcG90ZW50SGludDogdHJ1ZSB9LAogICAgICBydW46IGFzeW5jIChhcmdzKSA9PiB7CiAgICAgICAgY29uc3QgdGhyZWFkSWQgPSBhcmcuc3RyaW5nKGFyZ3MsICd0aHJlYWRJZCcsIHsgcGF0dGVybjogSUQgfSkKICAgICAgICBjb25zdCBsYWJlbElkcyA9IGFyZy5saXN0KGFyZ3MsICdsYWJlbElkcycsIHsgbWluOiAxLCBtYXg6IDIsIGl0ZW06IChsYWJlbCkgPT4gbGFiZWwgPT09ICdJTkJPWCcgfHwgbGFiZWwgPT09ICdVTlJFQUQnIH0pCiAgICAgICAgcmV0dXJuIHJlcXVlc3QoYHRocmVhZHMvJHtlbmNvZGVVUklDb21wb25lbnQodGhyZWFkSWQpfS9tb2RpZnlgLCB7fSwgeyByZW1vdmVMYWJlbElkczogbGFiZWxJZHMgfSkKICAgICAgfSwKICAgIH0sCiAgXQp9CgppZiAoaW1wb3J0Lm1ldGEudXJsID09PSBwYXRoVG9GaWxlVVJMKHByb2Nlc3MuYXJndlsxXSA/PyAnJykuaHJlZikgewogIHNlcnZlKHsgbmFtZTogJ3NpZGVidWQtcGFjay1nbWFpbCcsIHZlcnNpb246ICczLjAuMCcsIHRvb2xzOiBnbWFpbFRvb2xzKHsgdG9rZW46ICgpID0+IHByb2Nlc3MuZW52LkdPT0dMRV9BQ0NFU1NfVE9LRU4gPz8gJycgfSkgfSkKfQo=","server/mcp.mjs":"Ly8gQSBtaW5pbWFsIE1DUCBzZXJ2ZXIgb3ZlciBzdGRpbzogbmV3bGluZS1kZWxpbWl0ZWQgSlNPTi1SUEMgMi4wIHdpdGggdGhlCi8vIGluaXRpYWxpemUsIHBpbmcsIHRvb2xzL2xpc3QsIGFuZCB0b29scy9jYWxsIG1ldGhvZHMuIE5vIGRlcGVuZGVuY2llcywgc28gYQovLyBwYWNrJ3Mgc2VydmVyIHJ1bnMgd2l0aCBwbGFpbiBgbm9kZWAgYW5kIG5vdGhpbmcgdG8gaW5zdGFsbC4gQ29weSB0aGlzIGZpbGUKLy8gaW50byBhbnkgcGFjayB0aGF0IHNoaXBzIGl0cyBvd24gc2VydmVyLgppbXBvcnQgeyBjcmVhdGVJbnRlcmZhY2UgfSBmcm9tICdub2RlOnJlYWRsaW5lJwoKLyoqCiAqIEVhY2ggdG9vbCBpcyBgeyBuYW1lLCBkZXNjcmlwdGlvbiwgaW5wdXRTY2hlbWEsIGFubm90YXRpb25zLCBydW4gfWAsIHdoZXJlCiAqIGBydW4oYXJncylgIHJldHVybnMgSlNPTiBkYXRhIChzZW50IGFzIHN0cnVjdHVyZWQgY29udGVudCBhbmQgYXMgdGV4dCkgb3IKICogdGhyb3dzIGFuIEVycm9yIHdob3NlIG1lc3NhZ2UgdGhlIGNhbGxlciBzZWVzLgogKi8KZXhwb3J0IGZ1bmN0aW9uIHNlcnZlKHsgbmFtZSwgdmVyc2lvbiwgdG9vbHMgfSkgewogIGNvbnN0IHNlbmQgPSAobWVzc2FnZSkgPT4gcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7SlNPTi5zdHJpbmdpZnkobWVzc2FnZSl9XG5gKQogIGNvbnN0IGhhbmRsZXJzID0gewogICAgaW5pdGlhbGl6ZTogKHBhcmFtcykgPT4gKHsgcHJvdG9jb2xWZXJzaW9uOiBwYXJhbXM/LnByb3RvY29sVmVyc2lvbiA/PyAnMjAyNS0wNi0xOCcsIGNhcGFiaWxpdGllczogeyB0b29sczoge30gfSwgc2VydmVySW5mbzogeyBuYW1lLCB2ZXJzaW9uIH0gfSksCiAgICBwaW5nOiAoKSA9PiAoe30pLAogICAgJ3Rvb2xzL2xpc3QnOiAoKSA9PiAoeyB0b29sczogdG9vbHMubWFwKCh7IHJ1bjogX3J1biwgLi4udG9vbCB9KSA9PiB0b29sKSB9KSwKICAgICd0b29scy9jYWxsJzogKHBhcmFtcykgPT4gY2FsbFRvb2wodG9vbHMsIHBhcmFtcz8ubmFtZSwgcGFyYW1zPy5hcmd1bWVudHMgPz8ge30pLAogIH0KICBjb25zdCBpbnB1dCA9IGNyZWF0ZUludGVyZmFjZSh7IGlucHV0OiBwcm9jZXNzLnN0ZGluIH0pCiAgaW5wdXQub24oJ2xpbmUnLCBhc3luYyAobGluZSkgPT4gewogICAgbGV0IG1lc3NhZ2UKICAgIHRyeSB7CiAgICAgIG1lc3NhZ2UgPSBKU09OLnBhcnNlKGxpbmUpCiAgICB9IGNhdGNoIHsKICAgICAgcmV0dXJuCiAgICB9CiAgICAvLyBOb3RpZmljYXRpb25zIChubyBpZCkgbmVlZCBubyByZXBseS4KICAgIGlmIChtZXNzYWdlPy5pZCA9PT0gdW5kZWZpbmVkIHx8IG1lc3NhZ2UuaWQgPT09IG51bGwpIHJldHVybgogICAgY29uc3QgaGFuZGxlciA9IGhhbmRsZXJzW21lc3NhZ2UubWV0aG9kXQogICAgaWYgKCFoYW5kbGVyKSByZXR1cm4gc2VuZCh7IGpzb25ycGM6ICcyLjAnLCBpZDogbWVzc2FnZS5pZCwgZXJyb3I6IHsgY29kZTogLTMyNjAxLCBtZXNzYWdlOiBgTWV0aG9kIG5vdCBmb3VuZDogJHttZXNzYWdlLm1ldGhvZH1gIH0gfSkKICAgIHRyeSB7CiAgICAgIHNlbmQoeyBqc29ucnBjOiAnMi4wJywgaWQ6IG1lc3NhZ2UuaWQsIHJlc3VsdDogYXdhaXQgaGFuZGxlcihtZXNzYWdlLnBhcmFtcykgfSkKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgIHNlbmQoeyBqc29ucnBjOiAnMi4wJywgaWQ6IG1lc3NhZ2UuaWQsIGVycm9yOiB7IGNvZGU6IC0zMjYwMywgbWVzc2FnZTogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpIH0gfSkKICAgIH0KICB9KQogIGlucHV0Lm9uKCdjbG9zZScsICgpID0+IHByb2Nlc3MuZXhpdCgwKSkKfQoKLyoqIFJ1bnMgb25lIHRvb2w7IGZhaWx1cmVzIGJlY29tZSBhbiBlcnJvciByZXN1bHQgdGhlIGFnZW50IGNhbiByZWFkLCBuZXZlciBhIGNyYXNoLiAqLwpleHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFRvb2wodG9vbHMsIG5hbWUsIGFyZ3MpIHsKICBjb25zdCB0b29sID0gdG9vbHMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUubmFtZSA9PT0gbmFtZSkKICBpZiAoIXRvb2wpIHJldHVybiB7IGNvbnRlbnQ6IFt7IHR5cGU6ICd0ZXh0JywgdGV4dDogYFVua25vd24gdG9vbCAke25hbWV9YCB9XSwgaXNFcnJvcjogdHJ1ZSB9CiAgdHJ5IHsKICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0b29sLnJ1bihhcmdzKQogICAgcmV0dXJuIHsgY29udGVudDogW3sgdHlwZTogJ3RleHQnLCB0ZXh0OiBKU09OLnN0cmluZ2lmeShkYXRhKSB9XSwgc3RydWN0dXJlZENvbnRlbnQ6IGRhdGEgfQogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBjb250ZW50OiBbeyB0eXBlOiAndGV4dCcsIHRleHQ6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSB9XSwgaXNFcnJvcjogdHJ1ZSB9CiAgfQp9CgovKiogQXJndW1lbnQgY2hlY2tzIHRoYXQgdGhyb3cgYSByZWFkYWJsZSBtZXNzYWdlOyBlYWNoIHJldHVybnMgdGhlIHZhbHVlIG9yIGl0cyBkZWZhdWx0LiAqLwpleHBvcnQgY29uc3QgYXJnID0gewogIHN0cmluZyhhcmdzLCBrZXksIHsgbWF4ID0gNTAwLCBwYXR0ZXJuLCBmYWxsYmFjayB9ID0ge30pIHsKICAgIGNvbnN0IHZhbHVlID0gYXJnc1trZXldID8/IGZhbGxiYWNrCiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCAhdmFsdWUubGVuZ3RoIHx8IHZhbHVlLmxlbmd0aCA+IG1heCB8fCAocGF0dGVybiAmJiAhcGF0dGVybi50ZXN0KHZhbHVlKSkpIHRocm93IG5ldyBFcnJvcihgJHtrZXl9IGlzIG1pc3Npbmcgb3IgaW52YWxpZGApCiAgICByZXR1cm4gdmFsdWUKICB9LAogIG9wdGlvbmFsU3RyaW5nKGFyZ3MsIGtleSwgeyBtYXggPSAyXzAwMCB9ID0ge30pIHsKICAgIGNvbnN0IHZhbHVlID0gYXJnc1trZXldCiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZAogICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgdmFsdWUubGVuZ3RoID4gbWF4KSB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBpcyBpbnZhbGlkYCkKICAgIHJldHVybiB2YWx1ZQogIH0sCiAgaW50ZWdlcihhcmdzLCBrZXksIHsgbWluLCBtYXgsIGZhbGxiYWNrIH0pIHsKICAgIGNvbnN0IHZhbHVlID0gYXJnc1trZXldID8/IGZhbGxiYWNrCiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpIHx8IHZhbHVlIDwgbWluIHx8IHZhbHVlID4gbWF4KSB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyIGZyb20gJHttaW59IHRvICR7bWF4fWApCiAgICByZXR1cm4gdmFsdWUKICB9LAogIGJvb2xlYW4oYXJncywga2V5LCBmYWxsYmFjaykgewogICAgY29uc3QgdmFsdWUgPSBhcmdzW2tleV0gPz8gZmFsbGJhY2sKICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgdGhyb3cgbmV3IEVycm9yKGAke2tleX0gbXVzdCBiZSB0cnVlIG9yIGZhbHNlYCkKICAgIHJldHVybiB2YWx1ZQogIH0sCiAgb25lT2YoYXJncywga2V5LCBvcHRpb25zLCBmYWxsYmFjaykgewogICAgY29uc3QgdmFsdWUgPSBhcmdzW2tleV0gPz8gZmFsbGJhY2sKICAgIGlmICghb3B0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHRocm93IG5ldyBFcnJvcihgJHtrZXl9IG11c3QgYmUgb25lIG9mICR7b3B0aW9ucy5qb2luKCcsICcpfWApCiAgICByZXR1cm4gdmFsdWUKICB9LAogIGxpc3QoYXJncywga2V5LCB7IG1pbiA9IDAsIG1heCA9IDIwLCBpdGVtIH0pIHsKICAgIGNvbnN0IHZhbHVlID0gYXJnc1trZXldCiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmxlbmd0aCA8IG1pbiB8fCB2YWx1ZS5sZW5ndGggPiBtYXggfHwgIXZhbHVlLmV2ZXJ5KGl0ZW0pKSB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBpcyBtaXNzaW5nIG9yIGludmFsaWRgKQogICAgcmV0dXJuIHZhbHVlCiAgfSwKICBkYXRlVGltZShhcmdzLCBrZXksIGZhbGxiYWNrKSB7CiAgICBjb25zdCB2YWx1ZSA9IGFyZ3Nba2V5XSA/PyBmYWxsYmFjawogICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQKICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8ICEvXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9KDpcZHsyfShcLlxkKyk/KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJC8udGVzdCh2YWx1ZSkpIHRocm93IG5ldyBFcnJvcihgJHtrZXl9IG11c3QgYmUgYW4gSVNPIGRhdGUtdGltZSB3aXRoIGEgdGltZSB6b25lYCkKICAgIHJldHVybiB2YWx1ZQogIH0sCn0K","SKILL.md":"LS0tCm5hbWU6IEdtYWlsCmRlc2NyaXB0aW9uOiBTZWFyY2ggYW5kIHJlYWQgdGhlIHVzZXIncyBHbWFpbCwgYW5kIGFyY2hpdmUgb3IgbWFyayB0aHJlYWRzIHJlYWQgd2l0aCB0aGUgdXNlcidzIHNheS1zby4KLS0tCgojIEdtYWlsCgpUaGlzIHBhY2sncyBvd24gc2VydmVyIChgc2VydmVyL2luZGV4Lm1qc2ApIGNhbGxzIHRoZSBHbWFpbCBBUEkgd2l0aCB0aGUgYWNjb3VudCBjb25uZWN0ZWQgb24gdGhpcyBjb21wdXRlci4gVG9vbCBuYW1lcyBhcmUgdGhlIHNlcnZlcidzOyB5b3VyIE1DUCBjbGllbnQgbWF5IHNob3cgdGhlbSB3aXRoIHRoaXMgaW50ZWdyYXRpb24ncyBwcmVmaXguCgojIyBGaW5kaW5nIG1haWwKCi0gYHNlYXJjaF90aHJlYWRzYCB0YWtlcyBHbWFpbCBzZWFyY2ggc3ludGF4IGluIGBxdWVyeWA6IGBpczp1bnJlYWRgLCBgaW46aW5ib3hgLCBgZnJvbTpkYW5hYCwgYHN1YmplY3Q6aW52b2ljZWAsIGBuZXdlcl90aGFuOjJkYCwgYGNhdGVnb3J5OnByb21vdGlvbnNgLCBjb21iaW5lZCB3aXRoIHNwYWNlcy4gVXNlIGB2aWV3OiAiVEhSRUFEX1ZJRVdfSURTImAgd2hlbiBvbmx5IGNvdW50cyBvciBpZHMgYXJlIG5lZWRlZDsgaXQgaXMgb25lIHJlcXVlc3QuCi0gYGdldF90aHJlYWRgIHJlYWRzIG9uZSB0aHJlYWQncyBtZXNzYWdlcyAoc2VuZGVyLCBzdWJqZWN0LCBkYXRlLCBzbmlwcGV0KS4gVGhlcmUgYXJlIG5vIGF0dGFjaG1lbnRzIG9yIGZ1bGwgYm9kaWVzLgotIE1hdGNoIHRoZSB1c2VyJ3Mgd29yZHMgKCJ0aGUgaW52b2ljZSBmcm9tIGJpbGxpbmciLCAiRGFuYSdzIGVtYWlsIikgdG8gb25lIHRocmVhZDsgaWYgc2V2ZXJhbCBmaXQsIG5hbWUgdGhlbSBhbmQgYXNrLgoKIyMgUmVhZGluZyBmb3Igdm9pY2UKClN1bW1hcml6ZTogd2hvLCB3aGF0IHRoZXkgd2FudCwgYW5kIHdoZXRoZXIgaXQgbmVlZHMgYSByZXBseS4gQSBoYW5kZnVsIG9mIHRocmVhZHMgYXQgbW9zdCwgbW9zdCBpbXBvcnRhbnQgZmlyc3QuIE5ldmVyIHJlYWQgcmF3IGhlYWRlcnMgb3IgaWRzIGFsb3VkLgoKIyMgQ2hhbmdpbmcgbWFpbAoKYHVubGFiZWxfdGhyZWFkYCByZW1vdmVzIGBJTkJPWGAgKGFyY2hpdmUpIG9yIGBVTlJFQURgIChtYXJrIHJlYWQpLiBJdCBuZXZlciBzZW5kcywgZGVsZXRlcywgb3IgbGFiZWxzIGFueXRoaW5nIGVsc2UuIFVzZSBpdCBvbmx5IGZvciB0aHJlYWRzIHRoZSB1c2VyIGNsZWFybHkgYXNrZWQgYWJvdXQ7IGZvciBtb3JlIHRoYW4gYSBmZXcsIHNheSBob3cgbWFueSBmaXJzdC4KCiMjIExpbWl0cyBhbmQgZXJyb3JzCgotIFRoZXJlIGlzIG5vIHNlbmQsIHJlcGx5LCBkcmFmdCwgb3IgZGVsZXRlLgotICJDb25uZWN0IHRoaXMgR29vZ2xlIGFjY291bnQiIG9yICJhdXRob3JpemF0aW9uIGV4cGlyZWQiIG1lYW5zIHRoZSBhY2NvdW50IG5lZWRzIGNvbm5lY3RpbmcgYWdhaW4gb24gdGhlIGNvbXB1dGVyIChpbnRlZ3JhdGlvbnNfX2Nvbm5lY3RfYWNjb3VudCkuIEEgcmF0ZS1saW1pdCBlcnJvciBtZWFucyB3YWl0aW5nOyB0aGUgd2lkZ2V0IGtlZXBzIGl0cyBsYXN0IHJlc3VsdHMuCg=="},"signature":{"publicKey":"4d9b98c280e248815370a0c3fe152828a508cc7955e60e1910c9a90c97e9a674","value":"213caaec8725083ade0857a7f1be32f333f7b3320cfca3f136129b785d32df0e5d7a1c0fa9e03bdc5b67c1f3df8d098e5b347cceb06fc2f006903e03031c5702"}},"error":null}