runline 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/plugins/actionNetwork/src/index.js +118 -25
  2. package/dist/plugins/activeCampaign/src/index.js +184 -38
  3. package/dist/plugins/adalo/src/index.js +40 -8
  4. package/dist/plugins/affinity/src/index.js +100 -20
  5. package/dist/plugins/agileCrm/src/index.js +115 -27
  6. package/dist/plugins/airtable/src/index.js +94 -19
  7. package/dist/plugins/airtop/src/index.js +266 -62
  8. package/dist/plugins/apiTemplateIo/src/index.js +25 -5
  9. package/dist/plugins/asana/src/index.js +195 -41
  10. package/dist/plugins/autopilot/src/index.js +39 -8
  11. package/dist/plugins/bambooHr/src/index.js +109 -22
  12. package/dist/plugins/bannerbear/src/index.js +36 -8
  13. package/dist/plugins/baserow/src/index.js +35 -7
  14. package/dist/plugins/beeminder/src/index.js +198 -40
  15. package/dist/plugins/bitly/src/index.js +46 -10
  16. package/dist/plugins/bitwarden/src/index.js +167 -36
  17. package/dist/plugins/box/src/index.js +172 -37
  18. package/dist/plugins/brandfetch/src/index.js +5 -1
  19. package/dist/plugins/brevo/src/index.js +136 -29
  20. package/dist/plugins/bubble/src/index.js +76 -17
  21. package/dist/plugins/chargebee/src/index.js +35 -7
  22. package/dist/plugins/circleci/src/index.js +50 -10
  23. package/dist/plugins/ciscoWebex/src/index.js +131 -27
  24. package/dist/plugins/clearbit/src/index.js +76 -17
  25. package/dist/plugins/clickup/src/index.js +500 -107
  26. package/dist/plugins/clockify/src/index.js +229 -47
  27. package/dist/plugins/cloudflare/src/index.js +28 -6
  28. package/dist/plugins/cockpit/src/index.js +54 -12
  29. package/dist/plugins/coda/src/index.js +81 -19
  30. package/dist/plugins/coingecko/src/index.js +157 -33
  31. package/dist/plugins/contentful/src/index.js +85 -17
  32. package/dist/plugins/convertkit/src/index.js +74 -18
  33. package/dist/plugins/copper/src/index.js +59 -11
  34. package/dist/plugins/cortex/src/index.js +55 -13
  35. package/dist/plugins/currents/src/index.js +310 -71
  36. package/dist/plugins/customerIo/src/index.js +112 -23
  37. package/dist/plugins/databricks/src/index.js +549 -115
  38. package/dist/plugins/deepl/src/index.js +26 -6
  39. package/dist/plugins/demio/src/index.js +56 -11
  40. package/dist/plugins/dhl/src/index.js +16 -3
  41. package/dist/plugins/discord/src/index.js +141 -31
  42. package/dist/plugins/discourse/src/index.js +136 -31
  43. package/dist/plugins/disqus/src/index.js +96 -20
  44. package/dist/plugins/docker/src/index.js +20 -4
  45. package/dist/plugins/drift/src/index.js +19 -5
  46. package/dist/plugins/dropbox/src/index.js +139 -30
  47. package/dist/plugins/dropcontact/src/index.js +21 -4
  48. package/dist/plugins/egoi/src/index.js +61 -15
  49. package/dist/plugins/elasticsearch/src/index.js +59 -13
  50. package/dist/plugins/emelia/src/index.js +95 -19
  51. package/dist/plugins/erpnext/src/index.js +74 -15
  52. package/dist/plugins/facebookGraph/src/index.js +52 -11
  53. package/dist/plugins/freshdesk/src/index.js +220 -48
  54. package/dist/plugins/freshservice/src/index.js +39 -9
  55. package/dist/plugins/freshworksCrm/src/index.js +58 -12
  56. package/dist/plugins/getresponse/src/index.js +87 -18
  57. package/dist/plugins/ghost/src/index.js +114 -26
  58. package/dist/plugins/github/src/index.js +483 -109
  59. package/dist/plugins/gitlab/src/index.js +193 -45
  60. package/dist/plugins/gong/src/index.js +68 -14
  61. package/dist/plugins/gotify/src/index.js +43 -9
  62. package/dist/plugins/gotowebinar/src/index.js +233 -47
  63. package/dist/plugins/grafana/src/index.js +92 -21
  64. package/dist/plugins/graphql/src/index.js +38 -8
  65. package/dist/plugins/grist/src/index.js +52 -10
  66. package/dist/plugins/hackernews/src/index.js +32 -6
  67. package/dist/plugins/halopsa/src/index.js +131 -26
  68. package/dist/plugins/harvest/src/index.js +182 -42
  69. package/dist/plugins/helpscout/src/index.js +153 -31
  70. package/dist/plugins/highlevel/src/index.js +291 -58
  71. package/dist/plugins/homeAssistant/src/index.js +124 -26
  72. package/dist/plugins/hubspot/src/index.js +163 -29
  73. package/dist/plugins/humanticAi/src/index.js +54 -5
  74. package/dist/plugins/hunter/src/index.js +21 -4
  75. package/dist/plugins/intercom/src/index.js +95 -20
  76. package/dist/plugins/iterable/src/index.js +96 -20
  77. package/dist/plugins/jenkins/src/index.js +75 -17
  78. package/dist/plugins/jira/src/index.js +193 -43
  79. package/dist/plugins/keap/src/index.js +222 -56
  80. package/dist/plugins/kobotoolbox/src/index.js +113 -25
  81. package/dist/plugins/lemlist/src/index.js +79 -18
  82. package/dist/plugins/linear/src/index.js +86 -19
  83. package/dist/plugins/lingvanex/src/index.js +38 -8
  84. package/dist/plugins/linkedin/src/index.js +37 -8
  85. package/dist/plugins/lonescale/src/index.js +41 -9
  86. package/dist/plugins/magento/src/index.js +98 -27
  87. package/dist/plugins/mailcheck/src/index.js +11 -2
  88. package/dist/plugins/mailchimp/src/index.js +193 -42
  89. package/dist/plugins/mailerlite/src/index.js +61 -12
  90. package/dist/plugins/mailgun/src/index.js +39 -7
  91. package/dist/plugins/mailjet/src/index.js +141 -30
  92. package/dist/plugins/mandrill/src/index.js +67 -14
  93. package/dist/plugins/marketstack/src/index.js +56 -10
  94. package/dist/plugins/matrix/src/index.js +97 -20
  95. package/dist/plugins/mattermost/src/index.js +124 -26
  96. package/dist/plugins/mautic/src/index.js +129 -26
  97. package/dist/plugins/medium/src/index.js +64 -13
  98. package/dist/plugins/messagebird/src/index.js +80 -15
  99. package/dist/plugins/metabase/src/index.js +57 -12
  100. package/dist/plugins/misp/src/index.js +135 -33
  101. package/dist/plugins/mocean/src/index.js +33 -7
  102. package/dist/plugins/monday/src/index.js +97 -23
  103. package/dist/plugins/monicaCrm/src/index.js +112 -23
  104. package/dist/plugins/msg91/src/index.js +11 -2
  105. package/dist/plugins/nasa/src/index.js +108 -21
  106. package/dist/plugins/netlify/src/index.js +28 -6
  107. package/dist/plugins/netscalerAdc/src/index.js +144 -29
  108. package/dist/plugins/nextcloud/src/index.js +103 -20
  109. package/dist/plugins/nocodb/src/index.js +57 -11
  110. package/dist/plugins/notion/src/index.js +148 -37
  111. package/dist/plugins/npm/src/index.js +59 -12
  112. package/dist/plugins/odoo/src/index.js +102 -20
  113. package/dist/plugins/okta/src/index.js +50 -10
  114. package/dist/plugins/oneSimpleApi/src/index.js +84 -17
  115. package/dist/plugins/onfleet/src/index.js +139 -32
  116. package/dist/plugins/openThesaurus/src/index.js +46 -9
  117. package/dist/plugins/openweathermap/src/index.js +31 -6
  118. package/dist/plugins/oura/src/index.js +36 -7
  119. package/dist/plugins/paddle/src/index.js +80 -17
  120. package/dist/plugins/pagerduty/src/index.js +53 -12
  121. package/dist/plugins/paypal/src/index.js +51 -11
  122. package/dist/plugins/peekalink/src/index.js +12 -3
  123. package/dist/plugins/phantombuster/src/index.js +39 -8
  124. package/dist/plugins/philipsHue/src/index.js +64 -13
  125. package/dist/plugins/pipedrive/src/index.js +167 -45
  126. package/dist/plugins/plivo/src/index.js +43 -8
  127. package/dist/plugins/postbin/src/index.js +9 -2
  128. package/dist/plugins/posthog/src/index.js +50 -13
  129. package/dist/plugins/profitwell/src/index.js +24 -5
  130. package/dist/plugins/pushbullet/src/index.js +45 -9
  131. package/dist/plugins/pushcut/src/index.js +31 -6
  132. package/dist/plugins/pushover/src/index.js +51 -10
  133. package/dist/plugins/quickbase/src/index.js +66 -13
  134. package/dist/plugins/quickbooks/src/index.js +86 -19
  135. package/dist/plugins/quickchart/src/index.js +35 -7
  136. package/dist/plugins/raindrop/src/index.js +54 -13
  137. package/dist/plugins/reddit/src/index.js +73 -18
  138. package/dist/plugins/rocketchat/src/index.js +47 -9
  139. package/dist/plugins/rundeck/src/index.js +26 -5
  140. package/dist/plugins/salesforce/src/index.js +161 -31
  141. package/dist/plugins/salesmate/src/index.js +75 -16
  142. package/dist/plugins/securityScorecard/src/index.js +73 -15
  143. package/dist/plugins/segment/src/index.js +21 -4
  144. package/dist/plugins/sendgrid/src/index.js +102 -24
  145. package/dist/plugins/sendy/src/index.js +54 -11
  146. package/dist/plugins/sentry/src/index.js +174 -34
  147. package/dist/plugins/servicenow/src/index.js +120 -27
  148. package/dist/plugins/shopify/src/index.js +53 -12
  149. package/dist/plugins/signl4/src/index.js +16 -3
  150. package/dist/plugins/slack/src/index.js +407 -105
  151. package/dist/plugins/sms77/src/index.js +26 -5
  152. package/dist/plugins/splunk/src/index.js +186 -45
  153. package/dist/plugins/spotify/src/index.js +265 -66
  154. package/dist/plugins/stackby/src/index.js +18 -6
  155. package/dist/plugins/storyblok/src/index.js +57 -11
  156. package/dist/plugins/strapi/src/index.js +63 -12
  157. package/dist/plugins/strava/src/index.js +58 -13
  158. package/dist/plugins/stripe/src/index.js +143 -30
  159. package/dist/plugins/supabase/src/index.js +49 -10
  160. package/dist/plugins/syncromsp/src/index.js +245 -67
  161. package/dist/plugins/tapfiliate/src/index.js +57 -14
  162. package/dist/plugins/telegram/src/index.js +202 -39
  163. package/dist/plugins/thehive/src/index.js +271 -66
  164. package/dist/plugins/thehiveProject/src/index.js +457 -89
  165. package/dist/plugins/todoist/src/index.js +326 -77
  166. package/dist/plugins/travisci/src/index.js +35 -8
  167. package/dist/plugins/trello/src/index.js +204 -46
  168. package/dist/plugins/twake/src/index.js +10 -2
  169. package/dist/plugins/twilio/src/index.js +56 -11
  170. package/dist/plugins/twist/src/index.js +241 -48
  171. package/dist/plugins/twitter/src/index.js +128 -30
  172. package/dist/plugins/unleashedSoftware/src/index.js +30 -6
  173. package/dist/plugins/uplead/src/index.js +9 -2
  174. package/dist/plugins/uproc/src/index.js +31 -6
  175. package/dist/plugins/uptimerobot/src/index.js +119 -25
  176. package/dist/plugins/urlscanio/src/index.js +25 -6
  177. package/dist/plugins/vero/src/index.js +68 -13
  178. package/dist/plugins/vonage/src/index.js +32 -6
  179. package/dist/plugins/wekan/src/index.js +297 -52
  180. package/dist/plugins/woocommerce/src/index.js +57 -12
  181. package/dist/plugins/wordpress/src/index.js +94 -18
  182. package/dist/plugins/xero/src/index.js +79 -13
  183. package/dist/plugins/yourls/src/index.js +33 -6
  184. package/dist/plugins/zammad/src/index.js +139 -36
  185. package/dist/plugins/zendesk/src/index.js +201 -48
  186. package/dist/plugins/zoho/src/index.js +88 -21
  187. package/dist/plugins/zoom/src/index.js +41 -7
  188. package/dist/plugins/zulip/src/index.js +101 -20
  189. package/package.json +1 -1
@@ -2,20 +2,45 @@ export default function uproc(rl) {
2
2
  rl.setName("uproc");
3
3
  rl.setVersion("0.1.0");
4
4
  rl.setConnectionSchema({
5
- email: { type: "string", required: true, description: "uProc account email", env: "UPROC_EMAIL" },
6
- apiKey: { type: "string", required: true, description: "uProc API key", env: "UPROC_API_KEY" },
5
+ email: {
6
+ type: "string",
7
+ required: true,
8
+ description: "uProc account email",
9
+ env: "UPROC_EMAIL",
10
+ },
11
+ apiKey: {
12
+ type: "string",
13
+ required: true,
14
+ description: "uProc API key",
15
+ env: "UPROC_API_KEY",
16
+ },
7
17
  });
8
18
  rl.registerAction("process.run", {
9
19
  description: "Run a uProc data processor tool",
10
20
  inputSchema: {
11
- processor: { type: "string", required: true, description: "Processor key (e.g. get-email-from-name-and-domain)" },
12
- params: { type: "object", required: true, description: "Processor parameters as key-value pairs" },
13
- dataWebhook: { type: "string", required: false, description: "URL for async callback" },
21
+ processor: {
22
+ type: "string",
23
+ required: true,
24
+ description: "Processor key (e.g. get-email-from-name-and-domain)",
25
+ },
26
+ params: {
27
+ type: "object",
28
+ required: true,
29
+ description: "Processor parameters as key-value pairs",
30
+ },
31
+ dataWebhook: {
32
+ type: "string",
33
+ required: false,
34
+ description: "URL for async callback",
35
+ },
14
36
  },
15
37
  async execute(input, ctx) {
16
38
  const c = ctx.connection.config;
17
39
  const p = input;
18
- const body = { processor: p.processor, params: p.params };
40
+ const body = {
41
+ processor: p.processor,
42
+ params: p.params,
43
+ };
19
44
  if (p.dataWebhook)
20
45
  body.callback = { data: p.dataWebhook };
21
46
  const res = await fetch("https://api.uproc.io/api/v2/process", {
@@ -21,7 +21,14 @@ async function apiRequest(apiKey, endpoint, body = {}) {
21
21
  export default function uptimerobot(rl) {
22
22
  rl.setName("uptimerobot");
23
23
  rl.setVersion("0.1.0");
24
- rl.setConnectionSchema({ apiKey: { type: "string", required: true, description: "UptimeRobot API key", env: "UPTIMEROBOT_API_KEY" } });
24
+ rl.setConnectionSchema({
25
+ apiKey: {
26
+ type: "string",
27
+ required: true,
28
+ description: "UptimeRobot API key",
29
+ env: "UPTIMEROBOT_API_KEY",
30
+ },
31
+ });
25
32
  const key = (ctx) => ctx.connection.config.apiKey;
26
33
  // ── Account ─────────────────────────────────────────
27
34
  rl.registerAction("account.get", {
@@ -38,11 +45,19 @@ export default function uptimerobot(rl) {
38
45
  inputSchema: {
39
46
  friendlyName: { type: "string", required: true },
40
47
  url: { type: "string", required: true },
41
- type: { type: "number", required: true, description: "1=HTTP(s), 2=Keyword, 3=Ping, 4=Port, 5=Heartbeat" },
48
+ type: {
49
+ type: "number",
50
+ required: true,
51
+ description: "1=HTTP(s), 2=Keyword, 3=Ping, 4=Port, 5=Heartbeat",
52
+ },
42
53
  },
43
54
  async execute(input, ctx) {
44
55
  const p = input;
45
- const data = (await apiRequest(key(ctx), "/newMonitor", { friendly_name: p.friendlyName, url: p.url, type: p.type }));
56
+ const data = (await apiRequest(key(ctx), "/newMonitor", {
57
+ friendly_name: p.friendlyName,
58
+ url: p.url,
59
+ type: p.type,
60
+ }));
46
61
  return data.monitor;
47
62
  },
48
63
  });
@@ -50,7 +65,9 @@ export default function uptimerobot(rl) {
50
65
  description: "Get a monitor by ID",
51
66
  inputSchema: { id: { type: "string", required: true } },
52
67
  async execute(input, ctx) {
53
- const data = (await apiRequest(key(ctx), "/getMonitors", { monitors: input.id }));
68
+ const data = (await apiRequest(key(ctx), "/getMonitors", {
69
+ monitors: input.id,
70
+ }));
54
71
  return data.monitors;
55
72
  },
56
73
  });
@@ -68,7 +85,12 @@ export default function uptimerobot(rl) {
68
85
  });
69
86
  rl.registerAction("monitor.update", {
70
87
  description: "Update a monitor",
71
- inputSchema: { id: { type: "string", required: true }, friendlyName: { type: "string", required: false }, url: { type: "string", required: false }, type: { type: "number", required: false } },
88
+ inputSchema: {
89
+ id: { type: "string", required: true },
90
+ friendlyName: { type: "string", required: false },
91
+ url: { type: "string", required: false },
92
+ type: { type: "number", required: false },
93
+ },
72
94
  async execute(input, ctx) {
73
95
  const { id, ...fields } = input;
74
96
  const body = { id };
@@ -86,7 +108,9 @@ export default function uptimerobot(rl) {
86
108
  description: "Delete a monitor",
87
109
  inputSchema: { id: { type: "string", required: true } },
88
110
  async execute(input, ctx) {
89
- const data = (await apiRequest(key(ctx), "/deleteMonitor", { id: input.id }));
111
+ const data = (await apiRequest(key(ctx), "/deleteMonitor", {
112
+ id: input.id,
113
+ }));
90
114
  return data.monitor;
91
115
  },
92
116
  });
@@ -94,17 +118,31 @@ export default function uptimerobot(rl) {
94
118
  description: "Reset a monitor's stats",
95
119
  inputSchema: { id: { type: "string", required: true } },
96
120
  async execute(input, ctx) {
97
- const data = (await apiRequest(key(ctx), "/resetMonitor", { id: input.id }));
121
+ const data = (await apiRequest(key(ctx), "/resetMonitor", {
122
+ id: input.id,
123
+ }));
98
124
  return data.monitor;
99
125
  },
100
126
  });
101
127
  // ── Alert Contact ───────────────────────────────────
102
128
  rl.registerAction("alertContact.create", {
103
129
  description: "Create an alert contact",
104
- inputSchema: { friendlyName: { type: "string", required: true }, value: { type: "string", required: true, description: "Email or phone" }, type: { type: "number", required: true, description: "1=SMS, 2=Email, 3=Twitter, 5=Pushbullet, 11=Slack" } },
130
+ inputSchema: {
131
+ friendlyName: { type: "string", required: true },
132
+ value: { type: "string", required: true, description: "Email or phone" },
133
+ type: {
134
+ type: "number",
135
+ required: true,
136
+ description: "1=SMS, 2=Email, 3=Twitter, 5=Pushbullet, 11=Slack",
137
+ },
138
+ },
105
139
  async execute(input, ctx) {
106
140
  const p = input;
107
- const data = (await apiRequest(key(ctx), "/newAlertContact", { friendly_name: p.friendlyName, value: p.value, type: p.type }));
141
+ const data = (await apiRequest(key(ctx), "/newAlertContact", {
142
+ friendly_name: p.friendlyName,
143
+ value: p.value,
144
+ type: p.type,
145
+ }));
108
146
  return data.alertcontact;
109
147
  },
110
148
  });
@@ -112,7 +150,9 @@ export default function uptimerobot(rl) {
112
150
  description: "Get an alert contact by ID",
113
151
  inputSchema: { id: { type: "string", required: true } },
114
152
  async execute(input, ctx) {
115
- const data = (await apiRequest(key(ctx), "/getAlertContacts", { alert_contacts: input.id }));
153
+ const data = (await apiRequest(key(ctx), "/getAlertContacts", {
154
+ alert_contacts: input.id,
155
+ }));
116
156
  return data.alert_contacts;
117
157
  },
118
158
  });
@@ -129,7 +169,11 @@ export default function uptimerobot(rl) {
129
169
  });
130
170
  rl.registerAction("alertContact.update", {
131
171
  description: "Update an alert contact",
132
- inputSchema: { id: { type: "string", required: true }, friendlyName: { type: "string", required: false }, value: { type: "string", required: false } },
172
+ inputSchema: {
173
+ id: { type: "string", required: true },
174
+ friendlyName: { type: "string", required: false },
175
+ value: { type: "string", required: false },
176
+ },
133
177
  async execute(input, ctx) {
134
178
  const { id, ...fields } = input;
135
179
  const body = { id };
@@ -145,7 +189,9 @@ export default function uptimerobot(rl) {
145
189
  description: "Delete an alert contact",
146
190
  inputSchema: { id: { type: "string", required: true } },
147
191
  async execute(input, ctx) {
148
- const data = (await apiRequest(key(ctx), "/deleteAlertContact", { id: input.id }));
192
+ const data = (await apiRequest(key(ctx), "/deleteAlertContact", {
193
+ id: input.id,
194
+ }));
149
195
  return data.alert_contact;
150
196
  },
151
197
  });
@@ -154,14 +200,35 @@ export default function uptimerobot(rl) {
154
200
  description: "Create a maintenance window",
155
201
  inputSchema: {
156
202
  friendlyName: { type: "string", required: true },
157
- type: { type: "number", required: true, description: "1=Once, 2=Daily, 3=Weekly, 4=Monthly" },
158
- startTime: { type: "string", required: true, description: "ISO datetime for once, HH:mm for recurring" },
159
- duration: { type: "number", required: true, description: "Duration in minutes" },
160
- value: { type: "number", required: false, description: "Day of week (1-7) or month (1-28) for weekly/monthly" },
203
+ type: {
204
+ type: "number",
205
+ required: true,
206
+ description: "1=Once, 2=Daily, 3=Weekly, 4=Monthly",
207
+ },
208
+ startTime: {
209
+ type: "string",
210
+ required: true,
211
+ description: "ISO datetime for once, HH:mm for recurring",
212
+ },
213
+ duration: {
214
+ type: "number",
215
+ required: true,
216
+ description: "Duration in minutes",
217
+ },
218
+ value: {
219
+ type: "number",
220
+ required: false,
221
+ description: "Day of week (1-7) or month (1-28) for weekly/monthly",
222
+ },
161
223
  },
162
224
  async execute(input, ctx) {
163
225
  const p = input;
164
- const body = { friendly_name: p.friendlyName, type: p.type, start_time: p.startTime, duration: p.duration };
226
+ const body = {
227
+ friendly_name: p.friendlyName,
228
+ type: p.type,
229
+ start_time: p.startTime,
230
+ duration: p.duration,
231
+ };
165
232
  if (p.value)
166
233
  body.value = p.value;
167
234
  const data = (await apiRequest(key(ctx), "/newMWindow", body));
@@ -172,7 +239,9 @@ export default function uptimerobot(rl) {
172
239
  description: "Get a maintenance window",
173
240
  inputSchema: { id: { type: "string", required: true } },
174
241
  async execute(input, ctx) {
175
- const data = (await apiRequest(key(ctx), "/getMWindows", { mwindows: input.id }));
242
+ const data = (await apiRequest(key(ctx), "/getMWindows", {
243
+ mwindows: input.id,
244
+ }));
176
245
  return data.mwindows;
177
246
  },
178
247
  });
@@ -189,7 +258,12 @@ export default function uptimerobot(rl) {
189
258
  });
190
259
  rl.registerAction("maintenanceWindow.update", {
191
260
  description: "Update a maintenance window",
192
- inputSchema: { id: { type: "string", required: true }, friendlyName: { type: "string", required: false }, duration: { type: "number", required: false }, startTime: { type: "string", required: false } },
261
+ inputSchema: {
262
+ id: { type: "string", required: true },
263
+ friendlyName: { type: "string", required: false },
264
+ duration: { type: "number", required: false },
265
+ startTime: { type: "string", required: false },
266
+ },
193
267
  async execute(input, ctx) {
194
268
  const { id, ...fields } = input;
195
269
  const body = { id };
@@ -207,16 +281,28 @@ export default function uptimerobot(rl) {
207
281
  description: "Delete a maintenance window",
208
282
  inputSchema: { id: { type: "string", required: true } },
209
283
  async execute(input, ctx) {
210
- return apiRequest(key(ctx), "/deleteMWindow", { id: input.id });
284
+ return apiRequest(key(ctx), "/deleteMWindow", {
285
+ id: input.id,
286
+ });
211
287
  },
212
288
  });
213
289
  // ── Public Status Page ──────────────────────────────
214
290
  rl.registerAction("publicStatusPage.create", {
215
291
  description: "Create a public status page",
216
- inputSchema: { friendlyName: { type: "string", required: true }, monitors: { type: "string", required: true, description: "Monitor IDs (comma-separated or 0 for all)" } },
292
+ inputSchema: {
293
+ friendlyName: { type: "string", required: true },
294
+ monitors: {
295
+ type: "string",
296
+ required: true,
297
+ description: "Monitor IDs (comma-separated or 0 for all)",
298
+ },
299
+ },
217
300
  async execute(input, ctx) {
218
301
  const p = input;
219
- const data = (await apiRequest(key(ctx), "/newPSP", { friendly_name: p.friendlyName, monitors: p.monitors }));
302
+ const data = (await apiRequest(key(ctx), "/newPSP", {
303
+ friendly_name: p.friendlyName,
304
+ monitors: p.monitors,
305
+ }));
220
306
  return data.psp;
221
307
  },
222
308
  });
@@ -224,7 +310,9 @@ export default function uptimerobot(rl) {
224
310
  description: "Get a public status page",
225
311
  inputSchema: { id: { type: "string", required: true } },
226
312
  async execute(input, ctx) {
227
- const data = (await apiRequest(key(ctx), "/getPSPs", { psps: input.id }));
313
+ const data = (await apiRequest(key(ctx), "/getPSPs", {
314
+ psps: input.id,
315
+ }));
228
316
  return data.psps;
229
317
  },
230
318
  });
@@ -241,7 +329,11 @@ export default function uptimerobot(rl) {
241
329
  });
242
330
  rl.registerAction("publicStatusPage.update", {
243
331
  description: "Update a public status page",
244
- inputSchema: { id: { type: "string", required: true }, friendlyName: { type: "string", required: false }, monitors: { type: "string", required: false } },
332
+ inputSchema: {
333
+ id: { type: "string", required: true },
334
+ friendlyName: { type: "string", required: false },
335
+ monitors: { type: "string", required: false },
336
+ },
245
337
  async execute(input, ctx) {
246
338
  const { id, ...fields } = input;
247
339
  const body = { id };
@@ -257,7 +349,9 @@ export default function uptimerobot(rl) {
257
349
  description: "Delete a public status page",
258
350
  inputSchema: { id: { type: "string", required: true } },
259
351
  async execute(input, ctx) {
260
- const data = (await apiRequest(key(ctx), "/deletePSP", { id: input.id }));
352
+ const data = (await apiRequest(key(ctx), "/deletePSP", {
353
+ id: input.id,
354
+ }));
261
355
  return data.psp;
262
356
  },
263
357
  });
@@ -7,7 +7,10 @@ async function apiRequest(apiKey, method, endpoint, body, qs) {
7
7
  url.searchParams.set(k, String(v));
8
8
  }
9
9
  }
10
- const init = { method, headers: { "API-Key": apiKey, "Content-Type": "application/json" } };
10
+ const init = {
11
+ method,
12
+ headers: { "API-Key": apiKey, "Content-Type": "application/json" },
13
+ };
11
14
  if (body && Object.keys(body).length > 0)
12
15
  init.body = JSON.stringify(body);
13
16
  const res = await fetch(url.toString(), init);
@@ -19,15 +22,28 @@ export default function urlscanio(rl) {
19
22
  rl.setName("urlscanio");
20
23
  rl.setVersion("0.1.0");
21
24
  rl.setConnectionSchema({
22
- apiKey: { type: "string", required: true, description: "urlscan.io API key", env: "URLSCANIO_API_KEY" },
25
+ apiKey: {
26
+ type: "string",
27
+ required: true,
28
+ description: "urlscan.io API key",
29
+ env: "URLSCANIO_API_KEY",
30
+ },
23
31
  });
24
32
  const key = (ctx) => ctx.connection.config.apiKey;
25
33
  rl.registerAction("scan.perform", {
26
34
  description: "Submit a URL for scanning",
27
35
  inputSchema: {
28
36
  url: { type: "string", required: true },
29
- visibility: { type: "string", required: false, description: "public, private, or unlisted" },
30
- tags: { type: "string", required: false, description: "Comma-separated tags (max 10)" },
37
+ visibility: {
38
+ type: "string",
39
+ required: false,
40
+ description: "public, private, or unlisted",
41
+ },
42
+ tags: {
43
+ type: "string",
44
+ required: false,
45
+ description: "Comma-separated tags (max 10)",
46
+ },
31
47
  customAgent: { type: "string", required: false },
32
48
  },
33
49
  async execute(input, ctx) {
@@ -36,7 +52,7 @@ export default function urlscanio(rl) {
36
52
  if (p.visibility)
37
53
  body.visibility = p.visibility;
38
54
  if (p.tags)
39
- body.tags = p.tags.split(",").map(t => t.trim());
55
+ body.tags = p.tags.split(",").map((t) => t.trim());
40
56
  if (p.customAgent)
41
57
  body.customAgent = p.customAgent;
42
58
  return apiRequest(key(ctx), "POST", "/scan", body);
@@ -51,7 +67,10 @@ export default function urlscanio(rl) {
51
67
  });
52
68
  rl.registerAction("scan.search", {
53
69
  description: "Search scan results",
54
- inputSchema: { query: { type: "string", required: false, description: "Search query" }, limit: { type: "number", required: false } },
70
+ inputSchema: {
71
+ query: { type: "string", required: false, description: "Search query" },
72
+ limit: { type: "number", required: false },
73
+ },
55
74
  async execute(input, ctx) {
56
75
  const p = (input ?? {});
57
76
  const qs = { size: p.limit ?? 100 };
@@ -6,7 +6,11 @@ async function apiRequest(token, method, endpoint, body) {
6
6
  if (v !== undefined && v !== null)
7
7
  form.set(k, typeof v === "object" ? JSON.stringify(v) : String(v));
8
8
  }
9
- const res = await fetch(`${BASE}${endpoint}`, { method, headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: form });
9
+ const res = await fetch(`${BASE}${endpoint}`, {
10
+ method,
11
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
12
+ body: form,
13
+ });
10
14
  if (!res.ok)
11
15
  throw new Error(`Vero error ${res.status}: ${await res.text()}`);
12
16
  return res.json();
@@ -14,11 +18,26 @@ async function apiRequest(token, method, endpoint, body) {
14
18
  export default function vero(rl) {
15
19
  rl.setName("vero");
16
20
  rl.setVersion("0.1.0");
17
- rl.setConnectionSchema({ authToken: { type: "string", required: true, description: "Vero auth token", env: "VERO_AUTH_TOKEN" } });
21
+ rl.setConnectionSchema({
22
+ authToken: {
23
+ type: "string",
24
+ required: true,
25
+ description: "Vero auth token",
26
+ env: "VERO_AUTH_TOKEN",
27
+ },
28
+ });
18
29
  const key = (ctx) => ctx.connection.config.authToken;
19
30
  rl.registerAction("user.create", {
20
31
  description: "Create/identify a user",
21
- inputSchema: { id: { type: "string", required: true }, email: { type: "string", required: false }, data: { type: "object", required: false, description: "Custom attributes" } },
32
+ inputSchema: {
33
+ id: { type: "string", required: true },
34
+ email: { type: "string", required: false },
35
+ data: {
36
+ type: "object",
37
+ required: false,
38
+ description: "Custom attributes",
39
+ },
40
+ },
22
41
  async execute(input, ctx) {
23
42
  const p = input;
24
43
  const body = { id: p.id };
@@ -31,45 +50,81 @@ export default function vero(rl) {
31
50
  });
32
51
  rl.registerAction("user.alias", {
33
52
  description: "Alias (re-identify) a user",
34
- inputSchema: { id: { type: "string", required: true }, newId: { type: "string", required: true } },
53
+ inputSchema: {
54
+ id: { type: "string", required: true },
55
+ newId: { type: "string", required: true },
56
+ },
35
57
  async execute(input, ctx) {
36
58
  const p = input;
37
- return apiRequest(key(ctx), "PUT", "/users/reidentify", { id: p.id, new_id: p.newId });
59
+ return apiRequest(key(ctx), "PUT", "/users/reidentify", {
60
+ id: p.id,
61
+ new_id: p.newId,
62
+ });
38
63
  },
39
64
  });
40
65
  for (const op of ["unsubscribe", "resubscribe", "delete"]) {
41
66
  rl.registerAction(`user.${op}`, {
42
67
  description: `${op.charAt(0).toUpperCase() + op.slice(1)} a user`,
43
68
  inputSchema: { id: { type: "string", required: true } },
44
- async execute(input, ctx) { return apiRequest(key(ctx), "POST", `/users/${op}`, { id: input.id }); },
69
+ async execute(input, ctx) {
70
+ return apiRequest(key(ctx), "POST", `/users/${op}`, {
71
+ id: input.id,
72
+ });
73
+ },
45
74
  });
46
75
  }
47
76
  rl.registerAction("user.addTags", {
48
77
  description: "Add tags to a user",
49
- inputSchema: { id: { type: "string", required: true }, tags: { type: "string", required: true, description: "Comma-separated tags" } },
78
+ inputSchema: {
79
+ id: { type: "string", required: true },
80
+ tags: {
81
+ type: "string",
82
+ required: true,
83
+ description: "Comma-separated tags",
84
+ },
85
+ },
50
86
  async execute(input, ctx) {
51
87
  const p = input;
52
- return apiRequest(key(ctx), "PUT", "/users/tags/edit", { id: p.id, add: JSON.stringify(p.tags.split(",").map(t => t.trim())) });
88
+ return apiRequest(key(ctx), "PUT", "/users/tags/edit", {
89
+ id: p.id,
90
+ add: JSON.stringify(p.tags.split(",").map((t) => t.trim())),
91
+ });
53
92
  },
54
93
  });
55
94
  rl.registerAction("user.removeTags", {
56
95
  description: "Remove tags from a user",
57
- inputSchema: { id: { type: "string", required: true }, tags: { type: "string", required: true, description: "Comma-separated tags" } },
96
+ inputSchema: {
97
+ id: { type: "string", required: true },
98
+ tags: {
99
+ type: "string",
100
+ required: true,
101
+ description: "Comma-separated tags",
102
+ },
103
+ },
58
104
  async execute(input, ctx) {
59
105
  const p = input;
60
- return apiRequest(key(ctx), "PUT", "/users/tags/edit", { id: p.id, remove: JSON.stringify(p.tags.split(",").map(t => t.trim())) });
106
+ return apiRequest(key(ctx), "PUT", "/users/tags/edit", {
107
+ id: p.id,
108
+ remove: JSON.stringify(p.tags.split(",").map((t) => t.trim())),
109
+ });
61
110
  },
62
111
  });
63
112
  rl.registerAction("event.track", {
64
113
  description: "Track an event",
65
114
  inputSchema: {
66
- id: { type: "string", required: true }, email: { type: "string", required: true },
67
- eventName: { type: "string", required: true }, data: { type: "object", required: false },
115
+ id: { type: "string", required: true },
116
+ email: { type: "string", required: true },
117
+ eventName: { type: "string", required: true },
118
+ data: { type: "object", required: false },
68
119
  extras: { type: "object", required: false },
69
120
  },
70
121
  async execute(input, ctx) {
71
122
  const p = input;
72
- const body = { identity: { id: p.id, email: p.email }, event_name: p.eventName, email: p.email };
123
+ const body = {
124
+ identity: { id: p.id, email: p.email },
125
+ event_name: p.eventName,
126
+ email: p.email,
127
+ };
73
128
  if (p.data)
74
129
  body.data = JSON.stringify(p.data);
75
130
  if (p.extras)
@@ -2,17 +2,43 @@ export default function vonage(rl) {
2
2
  rl.setName("vonage");
3
3
  rl.setVersion("0.1.0");
4
4
  rl.setConnectionSchema({
5
- apiKey: { type: "string", required: true, description: "Vonage API key", env: "VONAGE_API_KEY" },
6
- apiSecret: { type: "string", required: true, description: "Vonage API secret", env: "VONAGE_API_SECRET" },
5
+ apiKey: {
6
+ type: "string",
7
+ required: true,
8
+ description: "Vonage API key",
9
+ env: "VONAGE_API_KEY",
10
+ },
11
+ apiSecret: {
12
+ type: "string",
13
+ required: true,
14
+ description: "Vonage API secret",
15
+ env: "VONAGE_API_SECRET",
16
+ },
7
17
  });
8
18
  rl.registerAction("sms.send", {
9
19
  description: "Send an SMS",
10
20
  inputSchema: {
11
- from: { type: "string", required: true, description: "Sender name or number" },
12
- to: { type: "string", required: true, description: "Recipient number in E.164 format" },
21
+ from: {
22
+ type: "string",
23
+ required: true,
24
+ description: "Sender name or number",
25
+ },
26
+ to: {
27
+ type: "string",
28
+ required: true,
29
+ description: "Recipient number in E.164 format",
30
+ },
13
31
  text: { type: "string", required: true, description: "Message text" },
14
- ttl: { type: "number", required: false, description: "Time-to-live in minutes (default 4320 = 72h)" },
15
- callback: { type: "string", required: false, description: "Webhook URL for delivery receipt" },
32
+ ttl: {
33
+ type: "number",
34
+ required: false,
35
+ description: "Time-to-live in minutes (default 4320 = 72h)",
36
+ },
37
+ callback: {
38
+ type: "string",
39
+ required: false,
40
+ description: "Webhook URL for delivery receipt",
41
+ },
16
42
  },
17
43
  async execute(input, ctx) {
18
44
  const c = ctx.connection.config;