runline 0.11.6 → 0.13.0

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 (256) hide show
  1. package/dist/commands/actions.js +3 -1
  2. package/dist/core/engine.js +3 -0
  3. package/dist/index.d.ts +1 -1
  4. package/dist/plugin/api.d.ts +2 -1
  5. package/dist/plugin/types.d.ts +2 -0
  6. package/dist/plugins/_shared/googleSchemas.js +23 -0
  7. package/dist/plugins/actionNetwork/src/index.js +23 -0
  8. package/dist/plugins/activeCampaign/src/index.js +48 -0
  9. package/dist/plugins/adalo/src/index.js +5 -0
  10. package/dist/plugins/affinity/src/index.js +16 -0
  11. package/dist/plugins/agileCrm/src/index.js +15 -0
  12. package/dist/plugins/airtable/src/index.js +10 -0
  13. package/dist/plugins/airtop/src/index.js +24 -0
  14. package/dist/plugins/apiTemplateIo/src/index.js +4 -0
  15. package/dist/plugins/asana/src/index.js +22 -0
  16. package/dist/plugins/autopilot/src/index.js +11 -0
  17. package/dist/plugins/bambooHr/src/index.js +11 -0
  18. package/dist/plugins/bannerbear/src/index.js +4 -0
  19. package/dist/plugins/baserow/src/index.js +8 -0
  20. package/dist/plugins/beeminder/src/index.js +18 -0
  21. package/dist/plugins/bitly/src/index.js +3 -0
  22. package/dist/plugins/bitwarden/src/index.js +19 -0
  23. package/dist/plugins/box/src/index.js +11 -0
  24. package/dist/plugins/brandfetch/src/index.js +5 -0
  25. package/dist/plugins/brevo/src/index.js +15 -0
  26. package/dist/plugins/bubble/src/index.js +5 -0
  27. package/dist/plugins/chargebee/src/index.js +5 -0
  28. package/dist/plugins/circleci/src/index.js +3 -0
  29. package/dist/plugins/ciscoWebex/src/index.js +10 -0
  30. package/dist/plugins/clearbit/src/index.js +3 -0
  31. package/dist/plugins/clickup/src/index.js +61 -0
  32. package/dist/plugins/clockify/src/index.js +25 -0
  33. package/dist/plugins/cloudflare/src/index.js +4 -0
  34. package/dist/plugins/cockpit/src/index.js +5 -0
  35. package/dist/plugins/coda/src/index.js +18 -0
  36. package/dist/plugins/coingecko/src/index.js +10 -0
  37. package/dist/plugins/contentful/src/index.js +7 -0
  38. package/dist/plugins/convertkit/src/index.js +16 -0
  39. package/dist/plugins/copper/src/index.js +7 -0
  40. package/dist/plugins/cortex/src/index.js +4 -0
  41. package/dist/plugins/currents/src/index.js +22 -0
  42. package/dist/plugins/customerIo/src/index.js +9 -0
  43. package/dist/plugins/databricks/src/index.js +34 -0
  44. package/dist/plugins/deepl/src/index.js +2 -0
  45. package/dist/plugins/demio/src/index.js +4 -0
  46. package/dist/plugins/dhl/src/index.js +1 -0
  47. package/dist/plugins/discord/src/index.js +13 -0
  48. package/dist/plugins/discourse/src/index.js +16 -0
  49. package/dist/plugins/disqus/src/index.js +4 -0
  50. package/dist/plugins/docker/src/index.js +5 -0
  51. package/dist/plugins/drift/src/index.js +5 -0
  52. package/dist/plugins/dropbox/src/index.js +9 -0
  53. package/dist/plugins/dropcontact/src/index.js +2 -0
  54. package/dist/plugins/egoi/src/index.js +4 -0
  55. package/dist/plugins/elasticsearch/src/index.js +9 -0
  56. package/dist/plugins/emelia/src/index.js +9 -0
  57. package/dist/plugins/erpnext/src/index.js +5 -0
  58. package/dist/plugins/facebookGraph/src/index.js +1 -0
  59. package/dist/plugins/freshdesk/src/index.js +10 -0
  60. package/dist/plugins/freshservice/src/index.js +7 -0
  61. package/dist/plugins/freshworksCrm/src/index.js +7 -0
  62. package/dist/plugins/getresponse/src/index.js +5 -0
  63. package/dist/plugins/ghost/src/index.js +5 -0
  64. package/dist/plugins/github/src/index.js +37 -0
  65. package/dist/plugins/gitlab/src/index.js +17 -0
  66. package/dist/plugins/gmail/src/index.js +200 -184
  67. package/dist/plugins/gong/src/index.js +4 -0
  68. package/dist/plugins/googleAppsScript/src/index.js +98 -43
  69. package/dist/plugins/googleCalendar/src/index.js +329 -250
  70. package/dist/plugins/googleContacts/src/index.js +144 -145
  71. package/dist/plugins/googleDocs/src/documents.js +31 -38
  72. package/dist/plugins/googleDocs/src/formatting.js +51 -47
  73. package/dist/plugins/googleDocs/src/images.js +23 -26
  74. package/dist/plugins/googleDocs/src/shared.js +55 -0
  75. package/dist/plugins/googleDocs/src/structure.js +111 -123
  76. package/dist/plugins/googleDocs/src/tables.js +103 -154
  77. package/dist/plugins/googleDocs/src/tabs.js +27 -23
  78. package/dist/plugins/googleDocs/src/text.js +106 -136
  79. package/dist/plugins/googleDrive/src/index.js +461 -408
  80. package/dist/plugins/googleImage/src/index.js +14 -16
  81. package/dist/plugins/googleSheets/src/index.js +527 -339
  82. package/dist/plugins/googleSlides/src/index.js +92 -72
  83. package/dist/plugins/googleTasks/src/index.js +94 -92
  84. package/dist/plugins/gotify/src/index.js +3 -0
  85. package/dist/plugins/gotowebinar/src/index.js +20 -0
  86. package/dist/plugins/grafana/src/index.js +17 -0
  87. package/dist/plugins/graphql/src/index.js +2 -0
  88. package/dist/plugins/grist/src/index.js +4 -0
  89. package/dist/plugins/hackernews/src/index.js +6 -0
  90. package/dist/plugins/halopsa/src/index.js +5 -0
  91. package/dist/plugins/harvest/src/index.js +14 -0
  92. package/dist/plugins/helpscout/src/index.js +13 -0
  93. package/dist/plugins/highlevel/src/index.js +17 -0
  94. package/dist/plugins/homeAssistant/src/index.js +13 -0
  95. package/dist/plugins/hubspot/src/index.js +14 -0
  96. package/dist/plugins/humanticAi/src/index.js +3 -0
  97. package/dist/plugins/hunter/src/index.js +3 -0
  98. package/dist/plugins/intercom/src/index.js +10 -0
  99. package/dist/plugins/iterable/src/index.js +6 -0
  100. package/dist/plugins/jenkins/src/index.js +11 -0
  101. package/dist/plugins/jira/src/index.js +16 -0
  102. package/dist/plugins/keap/src/index.js +28 -0
  103. package/dist/plugins/kobotoolbox/src/index.js +17 -0
  104. package/dist/plugins/lemlist/src/index.js +15 -0
  105. package/dist/plugins/linear/src/attachments.js +6 -0
  106. package/dist/plugins/linear/src/comments.js +5 -0
  107. package/dist/plugins/linear/src/cycles.js +2 -0
  108. package/dist/plugins/linear/src/initiatives.js +5 -0
  109. package/dist/plugins/linear/src/issues.js +14 -0
  110. package/dist/plugins/linear/src/labels.js +5 -0
  111. package/dist/plugins/linear/src/organization.js +1 -0
  112. package/dist/plugins/linear/src/projects.js +11 -0
  113. package/dist/plugins/linear/src/shared.js +2 -0
  114. package/dist/plugins/linear/src/states.js +2 -0
  115. package/dist/plugins/linear/src/teams.js +3 -0
  116. package/dist/plugins/linear/src/users.js +2 -0
  117. package/dist/plugins/linear/src/views.js +4 -0
  118. package/dist/plugins/linear/src/webhooks.js +4 -0
  119. package/dist/plugins/lingvanex/src/index.js +1 -0
  120. package/dist/plugins/linkedin/src/index.js +1 -0
  121. package/dist/plugins/lonescale/src/index.js +4 -0
  122. package/dist/plugins/magento/src/index.js +15 -0
  123. package/dist/plugins/mailcheck/src/index.js +1 -0
  124. package/dist/plugins/mailchimp/src/index.js +14 -0
  125. package/dist/plugins/mailerlite/src/index.js +4 -0
  126. package/dist/plugins/mailgun/src/index.js +1 -0
  127. package/dist/plugins/mailjet/src/index.js +3 -0
  128. package/dist/plugins/mandrill/src/index.js +2 -0
  129. package/dist/plugins/marketstack/src/index.js +3 -0
  130. package/dist/plugins/matrix/src/index.js +10 -0
  131. package/dist/plugins/mattermost/src/index.js +19 -0
  132. package/dist/plugins/mautic/src/index.js +20 -0
  133. package/dist/plugins/medium/src/index.js +3 -0
  134. package/dist/plugins/messagebird/src/index.js +2 -0
  135. package/dist/plugins/metabase/src/index.js +10 -0
  136. package/dist/plugins/microsoftCalendar/src/index.js +2 -0
  137. package/dist/plugins/microsoftFiles/src/index.js +5 -0
  138. package/dist/plugins/microsoftMail/src/index.js +4 -0
  139. package/dist/plugins/misp/src/index.js +44 -0
  140. package/dist/plugins/mocean/src/index.js +2 -0
  141. package/dist/plugins/monday/src/index.js +18 -0
  142. package/dist/plugins/monicaCrm/src/index.js +5 -0
  143. package/dist/plugins/msg91/src/index.js +1 -0
  144. package/dist/plugins/nasa/src/index.js +7 -0
  145. package/dist/plugins/netlify/src/index.js +7 -0
  146. package/dist/plugins/netscalerAdc/src/index.js +3 -0
  147. package/dist/plugins/nextcloud/src/index.js +13 -0
  148. package/dist/plugins/nocodb/src/index.js +5 -0
  149. package/dist/plugins/node/src/index.js +38 -0
  150. package/dist/plugins/notion/src/index.js +14 -0
  151. package/dist/plugins/npm/src/index.js +5 -0
  152. package/dist/plugins/odoo/src/index.js +6 -0
  153. package/dist/plugins/okta/src/index.js +5 -0
  154. package/dist/plugins/oneSimpleApi/src/index.js +10 -0
  155. package/dist/plugins/onfleet/src/index.js +24 -0
  156. package/dist/plugins/openThesaurus/src/index.js +1 -0
  157. package/dist/plugins/openai/src/index.js +1 -0
  158. package/dist/plugins/openweathermap/src/index.js +2 -0
  159. package/dist/plugins/oura/src/index.js +2 -0
  160. package/dist/plugins/paddle/src/index.js +9 -0
  161. package/dist/plugins/pagerduty/src/index.js +9 -0
  162. package/dist/plugins/parallel/src/index.js +1 -0
  163. package/dist/plugins/paypal/src/index.js +4 -0
  164. package/dist/plugins/peekalink/src/index.js +2 -0
  165. package/dist/plugins/phantombuster/src/index.js +5 -0
  166. package/dist/plugins/philipsHue/src/index.js +4 -0
  167. package/dist/plugins/pipedrive/src/index.js +14 -0
  168. package/dist/plugins/plivo/src/index.js +3 -0
  169. package/dist/plugins/postbin/src/index.js +6 -0
  170. package/dist/plugins/posthog/src/index.js +5 -0
  171. package/dist/plugins/profitwell/src/index.js +2 -0
  172. package/dist/plugins/pushbullet/src/index.js +4 -0
  173. package/dist/plugins/pushcut/src/index.js +1 -0
  174. package/dist/plugins/pushover/src/index.js +1 -0
  175. package/dist/plugins/quickbase/src/index.js +8 -0
  176. package/dist/plugins/quickbooks/src/index.js +5 -0
  177. package/dist/plugins/quickchart/src/index.js +1 -0
  178. package/dist/plugins/raindrop/src/index.js +13 -0
  179. package/dist/plugins/recraft/src/index.js +1 -0
  180. package/dist/plugins/reddit/src/index.js +10 -0
  181. package/dist/plugins/replicate/src/index.js +1 -0
  182. package/dist/plugins/rocketchat/src/index.js +1 -0
  183. package/dist/plugins/rundeck/src/index.js +2 -0
  184. package/dist/plugins/salesforce/src/metadata.js +4 -0
  185. package/dist/plugins/salesforce/src/query.js +5 -0
  186. package/dist/plugins/salesforce/src/sobjects.js +12 -0
  187. package/dist/plugins/salesmate/src/index.js +5 -0
  188. package/dist/plugins/securityScorecard/src/index.js +14 -0
  189. package/dist/plugins/segment/src/index.js +4 -0
  190. package/dist/plugins/sendgrid/src/index.js +10 -0
  191. package/dist/plugins/sendy/src/index.js +6 -0
  192. package/dist/plugins/sentry/src/index.js +24 -0
  193. package/dist/plugins/servicenow/src/index.js +10 -0
  194. package/dist/plugins/shiftLabs/src/index.js +6 -0
  195. package/dist/plugins/shiftLabs/src/issues.js +4 -0
  196. package/dist/plugins/shiftLabs/src/pages.js +10 -0
  197. package/dist/plugins/shiftLabs/src/shared.js +2 -0
  198. package/dist/plugins/shiftLabs/src/transcription.js +203 -0
  199. package/dist/plugins/shopify/src/index.js +10 -0
  200. package/dist/plugins/signl4/src/index.js +2 -0
  201. package/dist/plugins/slack/src/index.js +38 -0
  202. package/dist/plugins/sms77/src/index.js +2 -0
  203. package/dist/plugins/splunk/src/index.js +16 -0
  204. package/dist/plugins/spotify/src/index.js +30 -0
  205. package/dist/plugins/stackby/src/index.js +4 -0
  206. package/dist/plugins/steel/src/browser.js +7 -0
  207. package/dist/plugins/steel/src/captchas.js +3 -0
  208. package/dist/plugins/steel/src/credentials.js +4 -0
  209. package/dist/plugins/steel/src/extensions.js +5 -0
  210. package/dist/plugins/steel/src/files.js +10 -0
  211. package/dist/plugins/steel/src/profiles.js +4 -0
  212. package/dist/plugins/steel/src/sessions.js +11 -0
  213. package/dist/plugins/storyblok/src/index.js +7 -0
  214. package/dist/plugins/strapi/src/index.js +5 -0
  215. package/dist/plugins/strava/src/index.js +6 -0
  216. package/dist/plugins/stripe/src/index.js +20 -0
  217. package/dist/plugins/supabase/src/index.js +5 -0
  218. package/dist/plugins/syncromsp/src/index.js +20 -0
  219. package/dist/plugins/tapfiliate/src/index.js +11 -0
  220. package/dist/plugins/telegram/src/index.js +21 -0
  221. package/dist/plugins/thehive/src/index.js +23 -0
  222. package/dist/plugins/thehiveProject/src/index.js +31 -0
  223. package/dist/plugins/todoist/src/index.js +31 -0
  224. package/dist/plugins/together/src/index.js +1 -0
  225. package/dist/plugins/travisci/src/index.js +5 -0
  226. package/dist/plugins/trello/src/index.js +37 -0
  227. package/dist/plugins/twake/src/index.js +1 -0
  228. package/dist/plugins/twilio/src/index.js +2 -0
  229. package/dist/plugins/twist/src/index.js +22 -0
  230. package/dist/plugins/twitter/src/index.js +8 -0
  231. package/dist/plugins/unleashedSoftware/src/index.js +3 -0
  232. package/dist/plugins/uplead/src/index.js +2 -0
  233. package/dist/plugins/uproc/src/index.js +1 -0
  234. package/dist/plugins/uptimerobot/src/index.js +22 -0
  235. package/dist/plugins/urlscanio/src/index.js +3 -0
  236. package/dist/plugins/vercel/src/account.js +1 -0
  237. package/dist/plugins/vercel/src/deployments.js +5 -0
  238. package/dist/plugins/vercel/src/env.js +4 -0
  239. package/dist/plugins/vercel/src/projects.js +2 -0
  240. package/dist/plugins/vercel/src/shared.js +1 -0
  241. package/dist/plugins/vero/src/index.js +6 -0
  242. package/dist/plugins/vonage/src/index.js +1 -0
  243. package/dist/plugins/wekan/src/index.js +24 -0
  244. package/dist/plugins/woocommerce/src/index.js +5 -0
  245. package/dist/plugins/wordpress/src/index.js +10 -0
  246. package/dist/plugins/xai/src/index.js +1 -0
  247. package/dist/plugins/xero/src/index.js +8 -0
  248. package/dist/plugins/yourls/src/index.js +3 -0
  249. package/dist/plugins/zammad/src/index.js +12 -0
  250. package/dist/plugins/zendesk/src/index.js +18 -0
  251. package/dist/plugins/zoho/src/index.js +6 -0
  252. package/dist/plugins/zoom/src/index.js +5 -0
  253. package/dist/plugins/zulip/src/index.js +15 -0
  254. package/dist/sdk.d.ts +2 -1
  255. package/dist/sdk.js +1 -0
  256. package/package.json +1 -1
@@ -43,6 +43,7 @@ export default function mailchimp(rl) {
43
43
  const key = (ctx) => ctx.connection.config.apiKey;
44
44
  // ── Member ──────────────────────────────────────────
45
45
  rl.registerAction("member.create", {
46
+ access: "write",
46
47
  description: "Add a member to a list/audience",
47
48
  inputSchema: {
48
49
  listId: {
@@ -128,6 +129,7 @@ export default function mailchimp(rl) {
128
129
  },
129
130
  });
130
131
  rl.registerAction("member.get", {
132
+ access: "read",
131
133
  description: "Get a list member by email (used directly as subscriber hash)",
132
134
  inputSchema: {
133
135
  listId: { type: "string", required: true },
@@ -158,6 +160,7 @@ export default function mailchimp(rl) {
158
160
  },
159
161
  });
160
162
  rl.registerAction("member.list", {
163
+ access: "read",
161
164
  description: "List members in a list/audience",
162
165
  inputSchema: {
163
166
  listId: { type: "string", required: true },
@@ -215,6 +218,7 @@ export default function mailchimp(rl) {
215
218
  },
216
219
  });
217
220
  rl.registerAction("member.update", {
221
+ access: "write",
218
222
  description: "Update a list member (PUT — full replace)",
219
223
  inputSchema: {
220
224
  listId: { type: "string", required: true },
@@ -268,6 +272,7 @@ export default function mailchimp(rl) {
268
272
  },
269
273
  });
270
274
  rl.registerAction("member.delete", {
275
+ access: "write",
271
276
  description: "Permanently delete a list member",
272
277
  inputSchema: {
273
278
  listId: { type: "string", required: true },
@@ -281,6 +286,7 @@ export default function mailchimp(rl) {
281
286
  });
282
287
  // ── Member Tag ──────────────────────────────────────
283
288
  rl.registerAction("memberTag.add", {
289
+ access: "write",
284
290
  description: "Add tags to a member",
285
291
  inputSchema: {
286
292
  listId: { type: "string", required: true },
@@ -308,6 +314,7 @@ export default function mailchimp(rl) {
308
314
  },
309
315
  });
310
316
  rl.registerAction("memberTag.remove", {
317
+ access: "write",
311
318
  description: "Remove tags from a member",
312
319
  inputSchema: {
313
320
  listId: { type: "string", required: true },
@@ -332,6 +339,7 @@ export default function mailchimp(rl) {
332
339
  });
333
340
  // ── List Group ──────────────────────────────────────
334
341
  rl.registerAction("listGroup.list", {
342
+ access: "read",
335
343
  description: "List interests in a specific interest category for a list",
336
344
  inputSchema: {
337
345
  listId: { type: "string", required: true },
@@ -353,6 +361,7 @@ export default function mailchimp(rl) {
353
361
  });
354
362
  // ── Campaign ────────────────────────────────────────
355
363
  rl.registerAction("campaign.get", {
364
+ access: "read",
356
365
  description: "Get a campaign",
357
366
  inputSchema: { campaignId: { type: "string", required: true } },
358
367
  async execute(input, ctx) {
@@ -360,6 +369,7 @@ export default function mailchimp(rl) {
360
369
  },
361
370
  });
362
371
  rl.registerAction("campaign.list", {
372
+ access: "read",
363
373
  description: "List campaigns",
364
374
  inputSchema: {
365
375
  count: { type: "number", required: false, description: "Max results" },
@@ -440,6 +450,7 @@ export default function mailchimp(rl) {
440
450
  },
441
451
  });
442
452
  rl.registerAction("campaign.send", {
453
+ access: "write",
443
454
  description: "Send a campaign",
444
455
  inputSchema: { campaignId: { type: "string", required: true } },
445
456
  async execute(input, ctx) {
@@ -448,6 +459,7 @@ export default function mailchimp(rl) {
448
459
  },
449
460
  });
450
461
  rl.registerAction("campaign.replicate", {
462
+ access: "write",
451
463
  description: "Replicate a campaign",
452
464
  inputSchema: { campaignId: { type: "string", required: true } },
453
465
  async execute(input, ctx) {
@@ -455,6 +467,7 @@ export default function mailchimp(rl) {
455
467
  },
456
468
  });
457
469
  rl.registerAction("campaign.resend", {
470
+ access: "write",
458
471
  description: "Create a resend to non-openers",
459
472
  inputSchema: { campaignId: { type: "string", required: true } },
460
473
  async execute(input, ctx) {
@@ -462,6 +475,7 @@ export default function mailchimp(rl) {
462
475
  },
463
476
  });
464
477
  rl.registerAction("campaign.delete", {
478
+ access: "write",
465
479
  description: "Delete a campaign",
466
480
  inputSchema: { campaignId: { type: "string", required: true } },
467
481
  async execute(input, ctx) {
@@ -56,6 +56,7 @@ export default function mailerlite(rl) {
56
56
  });
57
57
  const tok = (ctx) => ctx.connection.config.apiKey;
58
58
  rl.registerAction("subscriber.create", {
59
+ access: "write",
59
60
  description: "Create a subscriber",
60
61
  inputSchema: {
61
62
  email: { type: "string", required: true },
@@ -97,6 +98,7 @@ export default function mailerlite(rl) {
97
98
  },
98
99
  });
99
100
  rl.registerAction("subscriber.get", {
101
+ access: "read",
100
102
  description: "Get a subscriber by ID or email",
101
103
  inputSchema: {
102
104
  subscriberId: {
@@ -111,6 +113,7 @@ export default function mailerlite(rl) {
111
113
  },
112
114
  });
113
115
  rl.registerAction("subscriber.list", {
116
+ access: "read",
114
117
  description: "List subscribers",
115
118
  inputSchema: {
116
119
  limit: { type: "number", required: false },
@@ -134,6 +137,7 @@ export default function mailerlite(rl) {
134
137
  },
135
138
  });
136
139
  rl.registerAction("subscriber.update", {
140
+ access: "write",
137
141
  description: "Update a subscriber",
138
142
  inputSchema: {
139
143
  subscriberId: {
@@ -23,6 +23,7 @@ export default function mailgun(rl) {
23
23
  },
24
24
  });
25
25
  rl.registerAction("email.send", {
26
+ access: "write",
26
27
  description: "Send an email via Mailgun",
27
28
  inputSchema: {
28
29
  to: {
@@ -31,6 +31,7 @@ export default function mailjet(rl) {
31
31
  const emailAuth = (ctx) => `Basic ${btoa(`${ctx.connection.config.apiKeyPublic}:${ctx.connection.config.apiKeyPrivate}`)}`;
32
32
  const sandbox = (ctx) => ctx.connection.config.sandboxMode ?? false;
33
33
  rl.registerAction("email.send", {
34
+ access: "write",
34
35
  description: "Send an email via Mailjet Send API v3.1",
35
36
  inputSchema: {
36
37
  fromEmail: { type: "string", required: true },
@@ -147,6 +148,7 @@ export default function mailjet(rl) {
147
148
  },
148
149
  });
149
150
  rl.registerAction("email.sendTemplate", {
151
+ access: "write",
150
152
  description: "Send an email using a Mailjet template",
151
153
  inputSchema: {
152
154
  fromEmail: { type: "string", required: true },
@@ -231,6 +233,7 @@ export default function mailjet(rl) {
231
233
  },
232
234
  });
233
235
  rl.registerAction("sms.send", {
236
+ access: "write",
234
237
  description: "Send an SMS via Mailjet SMS API",
235
238
  inputSchema: {
236
239
  from: {
@@ -160,6 +160,7 @@ export default function mandrill(rl) {
160
160
  },
161
161
  };
162
162
  rl.registerAction("message.sendHtml", {
163
+ access: "write",
163
164
  description: "Send an email with HTML/text content via Mandrill",
164
165
  inputSchema: messageInputSchema,
165
166
  async execute(input, ctx) {
@@ -174,6 +175,7 @@ export default function mandrill(rl) {
174
175
  },
175
176
  });
176
177
  rl.registerAction("message.sendTemplate", {
178
+ access: "write",
177
179
  description: "Send an email using a Mandrill template",
178
180
  inputSchema: {
179
181
  templateName: {
@@ -49,6 +49,7 @@ export default function marketstack(rl) {
49
49
  });
50
50
  // ── End-of-Day Data ─────────────────────────────────
51
51
  rl.registerAction("endOfDayData.list", {
52
+ access: "read",
52
53
  description: "Get end-of-day stock market closing data. Must specify exactly one of: latest, specificDate, or dateFrom+dateTo.",
53
54
  inputSchema: {
54
55
  symbols: {
@@ -112,6 +113,7 @@ export default function marketstack(rl) {
112
113
  });
113
114
  // ── Exchange ────────────────────────────────────────
114
115
  rl.registerAction("exchange.get", {
116
+ access: "read",
115
117
  description: "Get details about a stock exchange",
116
118
  inputSchema: {
117
119
  exchange: {
@@ -127,6 +129,7 @@ export default function marketstack(rl) {
127
129
  });
128
130
  // ── Ticker ──────────────────────────────────────────
129
131
  rl.registerAction("ticker.get", {
132
+ access: "read",
130
133
  description: "Get details about a stock ticker symbol",
131
134
  inputSchema: {
132
135
  symbol: {
@@ -49,6 +49,7 @@ export default function matrix(rl) {
49
49
  });
50
50
  // ── Account ─────────────────────────────────────────
51
51
  rl.registerAction("account.me", {
52
+ access: "read",
52
53
  description: "Get info about the authenticated user",
53
54
  async execute(_input, ctx) {
54
55
  const { homeserver, token } = conn(ctx);
@@ -57,6 +58,7 @@ export default function matrix(rl) {
57
58
  });
58
59
  // ── Room ────────────────────────────────────────────
59
60
  rl.registerAction("room.create", {
61
+ access: "write",
60
62
  description: "Create a new room",
61
63
  inputSchema: {
62
64
  name: { type: "string", required: true, description: "Room name" },
@@ -81,6 +83,7 @@ export default function matrix(rl) {
81
83
  },
82
84
  });
83
85
  rl.registerAction("room.join", {
86
+ access: "write",
84
87
  description: "Join a room",
85
88
  inputSchema: {
86
89
  roomIdOrAlias: {
@@ -95,6 +98,7 @@ export default function matrix(rl) {
95
98
  },
96
99
  });
97
100
  rl.registerAction("room.leave", {
101
+ access: "write",
98
102
  description: "Leave a room",
99
103
  inputSchema: { roomId: { type: "string", required: true } },
100
104
  async execute(input, ctx) {
@@ -103,6 +107,7 @@ export default function matrix(rl) {
103
107
  },
104
108
  });
105
109
  rl.registerAction("room.invite", {
110
+ access: "write",
106
111
  description: "Invite a user to a room",
107
112
  inputSchema: {
108
113
  roomId: { type: "string", required: true },
@@ -119,6 +124,7 @@ export default function matrix(rl) {
119
124
  },
120
125
  });
121
126
  rl.registerAction("room.kick", {
127
+ access: "write",
122
128
  description: "Kick a user from a room",
123
129
  inputSchema: {
124
130
  roomId: { type: "string", required: true },
@@ -140,6 +146,7 @@ export default function matrix(rl) {
140
146
  });
141
147
  // ── Message ─────────────────────────────────────────
142
148
  rl.registerAction("message.create", {
149
+ access: "write",
143
150
  description: "Send a message to a room",
144
151
  inputSchema: {
145
152
  roomId: { type: "string", required: true },
@@ -181,6 +188,7 @@ export default function matrix(rl) {
181
188
  },
182
189
  });
183
190
  rl.registerAction("message.list", {
191
+ access: "read",
184
192
  description: "Get messages from a room (newest first)",
185
193
  inputSchema: {
186
194
  roomId: { type: "string", required: true },
@@ -225,6 +233,7 @@ export default function matrix(rl) {
225
233
  });
226
234
  // ── Event ───────────────────────────────────────────
227
235
  rl.registerAction("event.get", {
236
+ access: "read",
228
237
  description: "Get a single event from a room",
229
238
  inputSchema: {
230
239
  roomId: { type: "string", required: true },
@@ -242,6 +251,7 @@ export default function matrix(rl) {
242
251
  });
243
252
  // ── Room Member ─────────────────────────────────────
244
253
  rl.registerAction("roomMember.list", {
254
+ access: "read",
245
255
  description: "List members of a room",
246
256
  inputSchema: {
247
257
  roomId: { type: "string", required: true },
@@ -58,6 +58,7 @@ export default function mattermost(rl) {
58
58
  });
59
59
  // ── Channel ─────────────────────────────────────────
60
60
  rl.registerAction("channel.create", {
61
+ access: "write",
61
62
  description: "Create a channel",
62
63
  inputSchema: {
63
64
  teamId: { type: "string", required: true },
@@ -89,6 +90,7 @@ export default function mattermost(rl) {
89
90
  },
90
91
  });
91
92
  rl.registerAction("channel.delete", {
93
+ access: "write",
92
94
  description: "Delete (archive) a channel",
93
95
  inputSchema: { channelId: { type: "string", required: true } },
94
96
  async execute(input, ctx) {
@@ -97,6 +99,7 @@ export default function mattermost(rl) {
97
99
  },
98
100
  });
99
101
  rl.registerAction("channel.addUser", {
102
+ access: "write",
100
103
  description: "Add a user to a channel",
101
104
  inputSchema: {
102
105
  channelId: { type: "string", required: true },
@@ -109,6 +112,7 @@ export default function mattermost(rl) {
109
112
  },
110
113
  });
111
114
  rl.registerAction("channel.members", {
115
+ access: "read",
112
116
  description: "List members of a channel",
113
117
  inputSchema: {
114
118
  channelId: { type: "string", required: true },
@@ -137,6 +141,7 @@ export default function mattermost(rl) {
137
141
  },
138
142
  });
139
143
  rl.registerAction("channel.restore", {
144
+ access: "write",
140
145
  description: "Restore (unarchive) a channel",
141
146
  inputSchema: { channelId: { type: "string", required: true } },
142
147
  async execute(input, ctx) {
@@ -145,6 +150,7 @@ export default function mattermost(rl) {
145
150
  },
146
151
  });
147
152
  rl.registerAction("channel.search", {
153
+ access: "read",
148
154
  description: "Search channels in a team",
149
155
  inputSchema: {
150
156
  teamId: { type: "string", required: true },
@@ -161,6 +167,7 @@ export default function mattermost(rl) {
161
167
  },
162
168
  });
163
169
  rl.registerAction("channel.statistics", {
170
+ access: "read",
164
171
  description: "Get channel statistics",
165
172
  inputSchema: { channelId: { type: "string", required: true } },
166
173
  async execute(input, ctx) {
@@ -170,6 +177,7 @@ export default function mattermost(rl) {
170
177
  });
171
178
  // ── Message ─────────────────────────────────────────
172
179
  rl.registerAction("message.post", {
180
+ access: "write",
173
181
  description: "Post a message to a channel",
174
182
  inputSchema: {
175
183
  channelId: { type: "string", required: true },
@@ -197,6 +205,7 @@ export default function mattermost(rl) {
197
205
  },
198
206
  });
199
207
  rl.registerAction("message.delete", {
208
+ access: "write",
200
209
  description: "Delete a message (post)",
201
210
  inputSchema: { postId: { type: "string", required: true } },
202
211
  async execute(input, ctx) {
@@ -205,6 +214,7 @@ export default function mattermost(rl) {
205
214
  },
206
215
  });
207
216
  rl.registerAction("message.postEphemeral", {
217
+ access: "write",
208
218
  description: "Post an ephemeral message (visible only to one user)",
209
219
  inputSchema: {
210
220
  channelId: { type: "string", required: true },
@@ -226,6 +236,7 @@ export default function mattermost(rl) {
226
236
  });
227
237
  // ── Reaction ────────────────────────────────────────
228
238
  rl.registerAction("reaction.create", {
239
+ access: "write",
229
240
  description: "Add a reaction to a post",
230
241
  inputSchema: {
231
242
  userId: { type: "string", required: true },
@@ -248,6 +259,7 @@ export default function mattermost(rl) {
248
259
  },
249
260
  });
250
261
  rl.registerAction("reaction.delete", {
262
+ access: "write",
251
263
  description: "Remove a reaction from a post",
252
264
  inputSchema: {
253
265
  userId: { type: "string", required: true },
@@ -262,6 +274,7 @@ export default function mattermost(rl) {
262
274
  },
263
275
  });
264
276
  rl.registerAction("reaction.list", {
277
+ access: "read",
265
278
  description: "List reactions on a post",
266
279
  inputSchema: {
267
280
  postId: { type: "string", required: true },
@@ -280,6 +293,7 @@ export default function mattermost(rl) {
280
293
  });
281
294
  // ── User ────────────────────────────────────────────
282
295
  rl.registerAction("user.create", {
296
+ access: "write",
283
297
  description: "Create a user",
284
298
  inputSchema: {
285
299
  username: { type: "string", required: true },
@@ -329,6 +343,7 @@ export default function mattermost(rl) {
329
343
  },
330
344
  });
331
345
  rl.registerAction("user.deactivate", {
346
+ access: "write",
332
347
  description: "Deactivate (delete) a user",
333
348
  inputSchema: { userId: { type: "string", required: true } },
334
349
  async execute(input, ctx) {
@@ -337,6 +352,7 @@ export default function mattermost(rl) {
337
352
  },
338
353
  });
339
354
  rl.registerAction("user.list", {
355
+ access: "read",
340
356
  description: "List users",
341
357
  inputSchema: {
342
358
  limit: { type: "number", required: false },
@@ -380,6 +396,7 @@ export default function mattermost(rl) {
380
396
  },
381
397
  });
382
398
  rl.registerAction("user.getByEmail", {
399
+ access: "read",
383
400
  description: "Get a user by email",
384
401
  inputSchema: { email: { type: "string", required: true } },
385
402
  async execute(input, ctx) {
@@ -388,6 +405,7 @@ export default function mattermost(rl) {
388
405
  },
389
406
  });
390
407
  rl.registerAction("user.getByIds", {
408
+ access: "read",
391
409
  description: "Get users by IDs",
392
410
  inputSchema: {
393
411
  userIds: {
@@ -411,6 +429,7 @@ export default function mattermost(rl) {
411
429
  },
412
430
  });
413
431
  rl.registerAction("user.invite", {
432
+ access: "write",
414
433
  description: "Invite users to a team by email",
415
434
  inputSchema: {
416
435
  teamId: { type: "string", required: true },
@@ -78,6 +78,7 @@ export default function mautic(rl) {
78
78
  };
79
79
  // ── Company ─────────────────────────────────────────
80
80
  rl.registerAction("company.create", {
81
+ access: "write",
81
82
  description: "Create a company",
82
83
  inputSchema: {
83
84
  companyname: { type: "string", required: true },
@@ -97,6 +98,7 @@ export default function mautic(rl) {
97
98
  },
98
99
  });
99
100
  rl.registerAction("company.update", {
101
+ access: "write",
100
102
  description: "Update a company",
101
103
  inputSchema: {
102
104
  companyId: { type: "string", required: true },
@@ -113,6 +115,7 @@ export default function mautic(rl) {
113
115
  },
114
116
  });
115
117
  rl.registerAction("company.get", {
118
+ access: "read",
116
119
  description: "Get a company by ID",
117
120
  inputSchema: { companyId: { type: "string", required: true } },
118
121
  async execute(input, ctx) {
@@ -121,6 +124,7 @@ export default function mautic(rl) {
121
124
  },
122
125
  });
123
126
  rl.registerAction("company.list", {
127
+ access: "read",
124
128
  description: "List companies",
125
129
  inputSchema: {
126
130
  limit: { type: "number", required: false },
@@ -151,6 +155,7 @@ export default function mautic(rl) {
151
155
  },
152
156
  });
153
157
  rl.registerAction("company.delete", {
158
+ access: "write",
154
159
  description: "Delete a company",
155
160
  inputSchema: { companyId: { type: "string", required: true } },
156
161
  async execute(input, ctx) {
@@ -160,6 +165,7 @@ export default function mautic(rl) {
160
165
  });
161
166
  // ── Contact ─────────────────────────────────────────
162
167
  rl.registerAction("contact.create", {
168
+ access: "write",
163
169
  description: "Create a contact",
164
170
  inputSchema: {
165
171
  email: { type: "string", required: false },
@@ -199,6 +205,7 @@ export default function mautic(rl) {
199
205
  },
200
206
  });
201
207
  rl.registerAction("contact.update", {
208
+ access: "write",
202
209
  description: "Update a contact",
203
210
  inputSchema: {
204
211
  contactId: { type: "string", required: true },
@@ -215,6 +222,7 @@ export default function mautic(rl) {
215
222
  },
216
223
  });
217
224
  rl.registerAction("contact.get", {
225
+ access: "read",
218
226
  description: "Get a contact by ID",
219
227
  inputSchema: { contactId: { type: "string", required: true } },
220
228
  async execute(input, ctx) {
@@ -223,6 +231,7 @@ export default function mautic(rl) {
223
231
  },
224
232
  });
225
233
  rl.registerAction("contact.list", {
234
+ access: "read",
226
235
  description: "List contacts",
227
236
  inputSchema: {
228
237
  limit: { type: "number", required: false },
@@ -257,6 +266,7 @@ export default function mautic(rl) {
257
266
  },
258
267
  });
259
268
  rl.registerAction("contact.delete", {
269
+ access: "write",
260
270
  description: "Delete a contact",
261
271
  inputSchema: { contactId: { type: "string", required: true } },
262
272
  async execute(input, ctx) {
@@ -265,6 +275,7 @@ export default function mautic(rl) {
265
275
  },
266
276
  });
267
277
  rl.registerAction("contact.sendEmail", {
278
+ access: "write",
268
279
  description: "Send a campaign/template email to a contact",
269
280
  inputSchema: {
270
281
  contactId: { type: "string", required: true },
@@ -280,6 +291,7 @@ export default function mautic(rl) {
280
291
  },
281
292
  });
282
293
  rl.registerAction("contact.editDoNotContact", {
294
+ access: "write",
283
295
  description: "Add or remove a contact from the Do Not Contact list",
284
296
  inputSchema: {
285
297
  contactId: { type: "string", required: true },
@@ -312,6 +324,7 @@ export default function mautic(rl) {
312
324
  },
313
325
  });
314
326
  rl.registerAction("contact.editPoints", {
327
+ access: "write",
315
328
  description: "Add or subtract points from a contact",
316
329
  inputSchema: {
317
330
  contactId: { type: "string", required: true },
@@ -330,6 +343,7 @@ export default function mautic(rl) {
330
343
  });
331
344
  // ── Contact Segment ─────────────────────────────────
332
345
  rl.registerAction("contactSegment.add", {
346
+ access: "write",
333
347
  description: "Add a contact to a segment",
334
348
  inputSchema: {
335
349
  segmentId: { type: "string", required: true },
@@ -341,6 +355,7 @@ export default function mautic(rl) {
341
355
  },
342
356
  });
343
357
  rl.registerAction("contactSegment.remove", {
358
+ access: "write",
344
359
  description: "Remove a contact from a segment",
345
360
  inputSchema: {
346
361
  segmentId: { type: "string", required: true },
@@ -353,6 +368,7 @@ export default function mautic(rl) {
353
368
  });
354
369
  // ── Campaign Contact ────────────────────────────────
355
370
  rl.registerAction("campaignContact.add", {
371
+ access: "write",
356
372
  description: "Add a contact to a campaign",
357
373
  inputSchema: {
358
374
  campaignId: { type: "string", required: true },
@@ -364,6 +380,7 @@ export default function mautic(rl) {
364
380
  },
365
381
  });
366
382
  rl.registerAction("campaignContact.remove", {
383
+ access: "write",
367
384
  description: "Remove a contact from a campaign",
368
385
  inputSchema: {
369
386
  campaignId: { type: "string", required: true },
@@ -376,6 +393,7 @@ export default function mautic(rl) {
376
393
  });
377
394
  // ── Company Contact ─────────────────────────────────
378
395
  rl.registerAction("companyContact.add", {
396
+ access: "write",
379
397
  description: "Add a contact to a company",
380
398
  inputSchema: {
381
399
  companyId: { type: "string", required: true },
@@ -387,6 +405,7 @@ export default function mautic(rl) {
387
405
  },
388
406
  });
389
407
  rl.registerAction("companyContact.remove", {
408
+ access: "write",
390
409
  description: "Remove a contact from a company",
391
410
  inputSchema: {
392
411
  companyId: { type: "string", required: true },
@@ -399,6 +418,7 @@ export default function mautic(rl) {
399
418
  });
400
419
  // ── Segment Email ───────────────────────────────────
401
420
  rl.registerAction("segmentEmail.send", {
421
+ access: "write",
402
422
  description: "Send a segment (list) email",
403
423
  inputSchema: {
404
424
  emailId: {
@@ -29,6 +29,7 @@ export default function medium(rl) {
29
29
  });
30
30
  const tok = (ctx) => ctx.connection.config.accessToken;
31
31
  rl.registerAction("post.create", {
32
+ access: "write",
32
33
  description: "Create a post on Medium. Posts under the authenticated user by default, or under a publication if publicationId is provided.",
33
34
  inputSchema: {
34
35
  title: {
@@ -105,6 +106,7 @@ export default function medium(rl) {
105
106
  },
106
107
  });
107
108
  rl.registerAction("publication.list", {
109
+ access: "read",
108
110
  description: "List publications for the authenticated user",
109
111
  inputSchema: { limit: { type: "number", required: false } },
110
112
  async execute(input, ctx) {
@@ -119,6 +121,7 @@ export default function medium(rl) {
119
121
  },
120
122
  });
121
123
  rl.registerAction("me", {
124
+ access: "read",
122
125
  description: "Get the authenticated user's profile",
123
126
  async execute(_input, ctx) {
124
127
  const resp = (await apiRequest(tok(ctx), "GET", "/me"));
@@ -28,6 +28,7 @@ export default function messagebird(rl) {
28
28
  });
29
29
  const key = (ctx) => ctx.connection.config.accessKey;
30
30
  rl.registerAction("sms.send", {
31
+ access: "write",
31
32
  description: "Send an SMS message",
32
33
  inputSchema: {
33
34
  originator: {
@@ -114,6 +115,7 @@ export default function messagebird(rl) {
114
115
  },
115
116
  });
116
117
  rl.registerAction("balance.get", {
118
+ access: "read",
117
119
  description: "Get current account balance",
118
120
  async execute(_input, ctx) {
119
121
  return apiRequest(key(ctx), "GET", "/balance");