runline 0.11.5 → 0.12.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 (253) 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/actionNetwork/src/index.js +23 -0
  7. package/dist/plugins/activeCampaign/src/index.js +48 -0
  8. package/dist/plugins/adalo/src/index.js +5 -0
  9. package/dist/plugins/affinity/src/index.js +16 -0
  10. package/dist/plugins/agileCrm/src/index.js +15 -0
  11. package/dist/plugins/airtable/src/index.js +10 -0
  12. package/dist/plugins/airtop/src/index.js +24 -0
  13. package/dist/plugins/apiTemplateIo/src/index.js +4 -0
  14. package/dist/plugins/asana/src/index.js +22 -0
  15. package/dist/plugins/autopilot/src/index.js +11 -0
  16. package/dist/plugins/bambooHr/src/index.js +11 -0
  17. package/dist/plugins/bannerbear/src/index.js +4 -0
  18. package/dist/plugins/baserow/src/index.js +8 -0
  19. package/dist/plugins/beeminder/src/index.js +18 -0
  20. package/dist/plugins/bitly/src/index.js +3 -0
  21. package/dist/plugins/bitwarden/src/index.js +19 -0
  22. package/dist/plugins/box/src/index.js +11 -0
  23. package/dist/plugins/brandfetch/src/index.js +5 -0
  24. package/dist/plugins/brevo/src/index.js +15 -0
  25. package/dist/plugins/bubble/src/index.js +5 -0
  26. package/dist/plugins/chargebee/src/index.js +5 -0
  27. package/dist/plugins/circleci/src/index.js +3 -0
  28. package/dist/plugins/ciscoWebex/src/index.js +10 -0
  29. package/dist/plugins/clearbit/src/index.js +3 -0
  30. package/dist/plugins/clickup/src/index.js +61 -0
  31. package/dist/plugins/clockify/src/index.js +25 -0
  32. package/dist/plugins/cloudflare/src/index.js +4 -0
  33. package/dist/plugins/cockpit/src/index.js +5 -0
  34. package/dist/plugins/coda/src/index.js +18 -0
  35. package/dist/plugins/coingecko/src/index.js +10 -0
  36. package/dist/plugins/contentful/src/index.js +7 -0
  37. package/dist/plugins/convertkit/src/index.js +16 -0
  38. package/dist/plugins/copper/src/index.js +7 -0
  39. package/dist/plugins/cortex/src/index.js +4 -0
  40. package/dist/plugins/currents/src/index.js +22 -0
  41. package/dist/plugins/customerIo/src/index.js +9 -0
  42. package/dist/plugins/databricks/src/index.js +34 -0
  43. package/dist/plugins/deepl/src/index.js +2 -0
  44. package/dist/plugins/demio/src/index.js +4 -0
  45. package/dist/plugins/dhl/src/index.js +1 -0
  46. package/dist/plugins/discord/src/index.js +13 -0
  47. package/dist/plugins/discourse/src/index.js +16 -0
  48. package/dist/plugins/disqus/src/index.js +4 -0
  49. package/dist/plugins/docker/src/index.js +5 -0
  50. package/dist/plugins/drift/src/index.js +5 -0
  51. package/dist/plugins/dropbox/src/index.js +9 -0
  52. package/dist/plugins/dropcontact/src/index.js +2 -0
  53. package/dist/plugins/egoi/src/index.js +4 -0
  54. package/dist/plugins/elasticsearch/src/index.js +9 -0
  55. package/dist/plugins/emelia/src/index.js +9 -0
  56. package/dist/plugins/erpnext/src/index.js +5 -0
  57. package/dist/plugins/facebookGraph/src/index.js +1 -0
  58. package/dist/plugins/freshdesk/src/index.js +10 -0
  59. package/dist/plugins/freshservice/src/index.js +7 -0
  60. package/dist/plugins/freshworksCrm/src/index.js +7 -0
  61. package/dist/plugins/getresponse/src/index.js +5 -0
  62. package/dist/plugins/ghost/src/index.js +5 -0
  63. package/dist/plugins/github/src/index.js +37 -0
  64. package/dist/plugins/gitlab/src/index.js +17 -0
  65. package/dist/plugins/gmail/src/index.js +32 -0
  66. package/dist/plugins/gong/src/index.js +4 -0
  67. package/dist/plugins/googleAppsScript/src/index.js +10 -0
  68. package/dist/plugins/googleCalendar/src/index.js +22 -0
  69. package/dist/plugins/googleContacts/src/index.js +10 -0
  70. package/dist/plugins/googleDocs/src/documents.js +4 -0
  71. package/dist/plugins/googleDocs/src/formatting.js +2 -0
  72. package/dist/plugins/googleDocs/src/images.js +2 -0
  73. package/dist/plugins/googleDocs/src/structure.js +13 -0
  74. package/dist/plugins/googleDocs/src/tables.js +11 -0
  75. package/dist/plugins/googleDocs/src/tabs.js +3 -0
  76. package/dist/plugins/googleDocs/src/text.js +9 -0
  77. package/dist/plugins/googleDrive/src/index.js +47 -0
  78. package/dist/plugins/googleImage/src/index.js +1 -0
  79. package/dist/plugins/googleSheets/src/index.js +23 -0
  80. package/dist/plugins/googleSlides/src/index.js +7 -0
  81. package/dist/plugins/googleTasks/src/index.js +12 -0
  82. package/dist/plugins/gotify/src/index.js +3 -0
  83. package/dist/plugins/gotowebinar/src/index.js +20 -0
  84. package/dist/plugins/grafana/src/index.js +17 -0
  85. package/dist/plugins/graphql/src/index.js +2 -0
  86. package/dist/plugins/grist/src/index.js +4 -0
  87. package/dist/plugins/hackernews/src/index.js +6 -0
  88. package/dist/plugins/halopsa/src/index.js +5 -0
  89. package/dist/plugins/harvest/src/index.js +14 -0
  90. package/dist/plugins/helpscout/src/index.js +13 -0
  91. package/dist/plugins/highlevel/src/index.js +17 -0
  92. package/dist/plugins/homeAssistant/src/index.js +13 -0
  93. package/dist/plugins/hubspot/src/index.js +14 -0
  94. package/dist/plugins/humanticAi/src/index.js +3 -0
  95. package/dist/plugins/hunter/src/index.js +3 -0
  96. package/dist/plugins/intercom/src/index.js +10 -0
  97. package/dist/plugins/iterable/src/index.js +6 -0
  98. package/dist/plugins/jenkins/src/index.js +11 -0
  99. package/dist/plugins/jira/src/index.js +16 -0
  100. package/dist/plugins/keap/src/index.js +28 -0
  101. package/dist/plugins/kobotoolbox/src/index.js +17 -0
  102. package/dist/plugins/lemlist/src/index.js +15 -0
  103. package/dist/plugins/linear/src/attachments.js +6 -0
  104. package/dist/plugins/linear/src/comments.js +5 -0
  105. package/dist/plugins/linear/src/cycles.js +2 -0
  106. package/dist/plugins/linear/src/initiatives.js +5 -0
  107. package/dist/plugins/linear/src/issues.js +14 -0
  108. package/dist/plugins/linear/src/labels.js +5 -0
  109. package/dist/plugins/linear/src/organization.js +1 -0
  110. package/dist/plugins/linear/src/projects.js +11 -0
  111. package/dist/plugins/linear/src/shared.js +2 -0
  112. package/dist/plugins/linear/src/states.js +2 -0
  113. package/dist/plugins/linear/src/teams.js +3 -0
  114. package/dist/plugins/linear/src/users.js +2 -0
  115. package/dist/plugins/linear/src/views.js +4 -0
  116. package/dist/plugins/linear/src/webhooks.js +4 -0
  117. package/dist/plugins/lingvanex/src/index.js +1 -0
  118. package/dist/plugins/linkedin/src/index.js +1 -0
  119. package/dist/plugins/lonescale/src/index.js +4 -0
  120. package/dist/plugins/magento/src/index.js +15 -0
  121. package/dist/plugins/mailcheck/src/index.js +1 -0
  122. package/dist/plugins/mailchimp/src/index.js +14 -0
  123. package/dist/plugins/mailerlite/src/index.js +4 -0
  124. package/dist/plugins/mailgun/src/index.js +1 -0
  125. package/dist/plugins/mailjet/src/index.js +3 -0
  126. package/dist/plugins/mandrill/src/index.js +2 -0
  127. package/dist/plugins/marketstack/src/index.js +3 -0
  128. package/dist/plugins/matrix/src/index.js +10 -0
  129. package/dist/plugins/mattermost/src/index.js +19 -0
  130. package/dist/plugins/mautic/src/index.js +20 -0
  131. package/dist/plugins/medium/src/index.js +3 -0
  132. package/dist/plugins/messagebird/src/index.js +2 -0
  133. package/dist/plugins/metabase/src/index.js +10 -0
  134. package/dist/plugins/microsoftCalendar/src/index.js +2 -0
  135. package/dist/plugins/microsoftFiles/src/index.js +5 -0
  136. package/dist/plugins/microsoftMail/src/index.js +4 -0
  137. package/dist/plugins/misp/src/index.js +44 -0
  138. package/dist/plugins/mocean/src/index.js +2 -0
  139. package/dist/plugins/monday/src/index.js +18 -0
  140. package/dist/plugins/monicaCrm/src/index.js +5 -0
  141. package/dist/plugins/msg91/src/index.js +1 -0
  142. package/dist/plugins/nasa/src/index.js +7 -0
  143. package/dist/plugins/netlify/src/index.js +7 -0
  144. package/dist/plugins/netscalerAdc/src/index.js +3 -0
  145. package/dist/plugins/nextcloud/src/index.js +13 -0
  146. package/dist/plugins/nocodb/src/index.js +5 -0
  147. package/dist/plugins/node/src/index.js +38 -0
  148. package/dist/plugins/notion/src/index.js +14 -0
  149. package/dist/plugins/npm/src/index.js +5 -0
  150. package/dist/plugins/odoo/src/index.js +6 -0
  151. package/dist/plugins/okta/src/index.js +5 -0
  152. package/dist/plugins/oneSimpleApi/src/index.js +10 -0
  153. package/dist/plugins/onfleet/src/index.js +24 -0
  154. package/dist/plugins/openThesaurus/src/index.js +1 -0
  155. package/dist/plugins/openai/src/index.js +1 -0
  156. package/dist/plugins/openweathermap/src/index.js +2 -0
  157. package/dist/plugins/oura/src/index.js +2 -0
  158. package/dist/plugins/paddle/src/index.js +9 -0
  159. package/dist/plugins/pagerduty/src/index.js +9 -0
  160. package/dist/plugins/parallel/src/index.js +1 -0
  161. package/dist/plugins/paypal/src/index.js +4 -0
  162. package/dist/plugins/peekalink/src/index.js +2 -0
  163. package/dist/plugins/phantombuster/src/index.js +5 -0
  164. package/dist/plugins/philipsHue/src/index.js +4 -0
  165. package/dist/plugins/pipedrive/src/index.js +14 -0
  166. package/dist/plugins/plivo/src/index.js +3 -0
  167. package/dist/plugins/postbin/src/index.js +6 -0
  168. package/dist/plugins/posthog/src/index.js +5 -0
  169. package/dist/plugins/profitwell/src/index.js +2 -0
  170. package/dist/plugins/pushbullet/src/index.js +4 -0
  171. package/dist/plugins/pushcut/src/index.js +1 -0
  172. package/dist/plugins/pushover/src/index.js +1 -0
  173. package/dist/plugins/quickbase/src/index.js +8 -0
  174. package/dist/plugins/quickbooks/src/index.js +5 -0
  175. package/dist/plugins/quickchart/src/index.js +1 -0
  176. package/dist/plugins/raindrop/src/index.js +13 -0
  177. package/dist/plugins/recraft/src/index.js +1 -0
  178. package/dist/plugins/reddit/src/index.js +10 -0
  179. package/dist/plugins/replicate/src/index.js +1 -0
  180. package/dist/plugins/rocketchat/src/index.js +1 -0
  181. package/dist/plugins/rundeck/src/index.js +2 -0
  182. package/dist/plugins/salesforce/src/metadata.js +4 -0
  183. package/dist/plugins/salesforce/src/query.js +5 -0
  184. package/dist/plugins/salesforce/src/sobjects.js +12 -0
  185. package/dist/plugins/salesmate/src/index.js +5 -0
  186. package/dist/plugins/securityScorecard/src/index.js +14 -0
  187. package/dist/plugins/segment/src/index.js +4 -0
  188. package/dist/plugins/sendgrid/src/index.js +10 -0
  189. package/dist/plugins/sendy/src/index.js +6 -0
  190. package/dist/plugins/sentry/src/index.js +24 -0
  191. package/dist/plugins/servicenow/src/index.js +10 -0
  192. package/dist/plugins/shiftLabs/src/index.js +15 -0
  193. package/dist/plugins/shiftLabs/src/issues.js +74 -0
  194. package/dist/plugins/shiftLabs/src/pages.js +148 -0
  195. package/dist/plugins/shiftLabs/src/shared.js +69 -0
  196. package/dist/plugins/shopify/src/index.js +10 -0
  197. package/dist/plugins/signl4/src/index.js +2 -0
  198. package/dist/plugins/slack/src/index.js +38 -0
  199. package/dist/plugins/sms77/src/index.js +2 -0
  200. package/dist/plugins/splunk/src/index.js +16 -0
  201. package/dist/plugins/spotify/src/index.js +30 -0
  202. package/dist/plugins/stackby/src/index.js +4 -0
  203. package/dist/plugins/steel/src/browser.js +7 -0
  204. package/dist/plugins/steel/src/captchas.js +3 -0
  205. package/dist/plugins/steel/src/credentials.js +4 -0
  206. package/dist/plugins/steel/src/extensions.js +5 -0
  207. package/dist/plugins/steel/src/files.js +10 -0
  208. package/dist/plugins/steel/src/profiles.js +4 -0
  209. package/dist/plugins/steel/src/sessions.js +11 -0
  210. package/dist/plugins/storyblok/src/index.js +7 -0
  211. package/dist/plugins/strapi/src/index.js +5 -0
  212. package/dist/plugins/strava/src/index.js +6 -0
  213. package/dist/plugins/stripe/src/index.js +20 -0
  214. package/dist/plugins/supabase/src/index.js +5 -0
  215. package/dist/plugins/syncromsp/src/index.js +20 -0
  216. package/dist/plugins/tapfiliate/src/index.js +11 -0
  217. package/dist/plugins/telegram/src/index.js +21 -0
  218. package/dist/plugins/thehive/src/index.js +23 -0
  219. package/dist/plugins/thehiveProject/src/index.js +31 -0
  220. package/dist/plugins/todoist/src/index.js +31 -0
  221. package/dist/plugins/together/src/index.js +1 -0
  222. package/dist/plugins/travisci/src/index.js +5 -0
  223. package/dist/plugins/trello/src/index.js +37 -0
  224. package/dist/plugins/twake/src/index.js +1 -0
  225. package/dist/plugins/twilio/src/index.js +2 -0
  226. package/dist/plugins/twist/src/index.js +22 -0
  227. package/dist/plugins/twitter/src/index.js +8 -0
  228. package/dist/plugins/unleashedSoftware/src/index.js +3 -0
  229. package/dist/plugins/uplead/src/index.js +2 -0
  230. package/dist/plugins/uproc/src/index.js +1 -0
  231. package/dist/plugins/uptimerobot/src/index.js +22 -0
  232. package/dist/plugins/urlscanio/src/index.js +3 -0
  233. package/dist/plugins/vercel/src/account.js +1 -0
  234. package/dist/plugins/vercel/src/deployments.js +5 -0
  235. package/dist/plugins/vercel/src/env.js +4 -0
  236. package/dist/plugins/vercel/src/projects.js +2 -0
  237. package/dist/plugins/vercel/src/shared.js +1 -0
  238. package/dist/plugins/vero/src/index.js +6 -0
  239. package/dist/plugins/vonage/src/index.js +1 -0
  240. package/dist/plugins/wekan/src/index.js +24 -0
  241. package/dist/plugins/woocommerce/src/index.js +5 -0
  242. package/dist/plugins/wordpress/src/index.js +10 -0
  243. package/dist/plugins/xai/src/index.js +1 -0
  244. package/dist/plugins/xero/src/index.js +8 -0
  245. package/dist/plugins/yourls/src/index.js +3 -0
  246. package/dist/plugins/zammad/src/index.js +12 -0
  247. package/dist/plugins/zendesk/src/index.js +18 -0
  248. package/dist/plugins/zoho/src/index.js +6 -0
  249. package/dist/plugins/zoom/src/index.js +5 -0
  250. package/dist/plugins/zulip/src/index.js +15 -0
  251. package/dist/sdk.d.ts +2 -1
  252. package/dist/sdk.js +1 -0
  253. package/package.json +1 -1
@@ -37,6 +37,7 @@ export default function slack(rl) {
37
37
  const t = (ctx) => ctx.connection.config.accessToken;
38
38
  // ── Message ─────────────────────────────────────────
39
39
  rl.registerAction("message.post", {
40
+ access: "write",
40
41
  description: "Post a message to a channel or user",
41
42
  inputSchema: {
42
43
  channel: { type: "string", required: true },
@@ -63,6 +64,7 @@ export default function slack(rl) {
63
64
  },
64
65
  });
65
66
  rl.registerAction("message.update", {
67
+ access: "write",
66
68
  description: "Update a message",
67
69
  inputSchema: {
68
70
  channel: { type: "string", required: true },
@@ -75,6 +77,7 @@ export default function slack(rl) {
75
77
  },
76
78
  });
77
79
  rl.registerAction("message.delete", {
80
+ access: "write",
78
81
  description: "Delete a message",
79
82
  inputSchema: {
80
83
  channel: { type: "string", required: true },
@@ -85,6 +88,7 @@ export default function slack(rl) {
85
88
  },
86
89
  });
87
90
  rl.registerAction("message.getPermalink", {
91
+ access: "read",
88
92
  description: "Get a message permalink",
89
93
  inputSchema: {
90
94
  channel: { type: "string", required: true },
@@ -99,6 +103,7 @@ export default function slack(rl) {
99
103
  },
100
104
  });
101
105
  rl.registerAction("message.search", {
106
+ access: "read",
102
107
  description: "Search messages",
103
108
  inputSchema: {
104
109
  query: { type: "string", required: true },
@@ -122,6 +127,7 @@ export default function slack(rl) {
122
127
  });
123
128
  // ── Channel ─────────────────────────────────────────
124
129
  rl.registerAction("channel.create", {
130
+ access: "write",
125
131
  description: "Create a channel",
126
132
  inputSchema: {
127
133
  name: { type: "string", required: true },
@@ -137,6 +143,7 @@ export default function slack(rl) {
137
143
  },
138
144
  });
139
145
  rl.registerAction("channel.get", {
146
+ access: "read",
140
147
  description: "Get channel info",
141
148
  inputSchema: { channel: { type: "string", required: true } },
142
149
  async execute(input, ctx) {
@@ -145,6 +152,7 @@ export default function slack(rl) {
145
152
  },
146
153
  });
147
154
  rl.registerAction("channel.list", {
155
+ access: "read",
148
156
  description: "List channels",
149
157
  inputSchema: {
150
158
  limit: { type: "number", required: false },
@@ -169,6 +177,7 @@ export default function slack(rl) {
169
177
  },
170
178
  });
171
179
  rl.registerAction("channel.history", {
180
+ access: "read",
172
181
  description: "Get channel message history",
173
182
  inputSchema: {
174
183
  channel: { type: "string", required: true },
@@ -190,6 +199,7 @@ export default function slack(rl) {
190
199
  },
191
200
  });
192
201
  rl.registerAction("channel.replies", {
202
+ access: "read",
193
203
  description: "Get thread replies",
194
204
  inputSchema: {
195
205
  channel: { type: "string", required: true },
@@ -206,6 +216,7 @@ export default function slack(rl) {
206
216
  },
207
217
  });
208
218
  rl.registerAction("channel.invite", {
219
+ access: "write",
209
220
  description: "Invite users to a channel",
210
221
  inputSchema: {
211
222
  channel: { type: "string", required: true },
@@ -225,6 +236,7 @@ export default function slack(rl) {
225
236
  },
226
237
  });
227
238
  rl.registerAction("channel.kick", {
239
+ access: "write",
228
240
  description: "Remove a user from a channel",
229
241
  inputSchema: {
230
242
  channel: { type: "string", required: true },
@@ -235,6 +247,7 @@ export default function slack(rl) {
235
247
  },
236
248
  });
237
249
  rl.registerAction("channel.join", {
250
+ access: "write",
238
251
  description: "Join a channel",
239
252
  inputSchema: { channel: { type: "string", required: true } },
240
253
  async execute(input, ctx) {
@@ -245,6 +258,7 @@ export default function slack(rl) {
245
258
  },
246
259
  });
247
260
  rl.registerAction("channel.leave", {
261
+ access: "write",
248
262
  description: "Leave a channel",
249
263
  inputSchema: { channel: { type: "string", required: true } },
250
264
  async execute(input, ctx) {
@@ -254,6 +268,7 @@ export default function slack(rl) {
254
268
  },
255
269
  });
256
270
  rl.registerAction("channel.archive", {
271
+ access: "write",
257
272
  description: "Archive a channel",
258
273
  inputSchema: { channel: { type: "string", required: true } },
259
274
  async execute(input, ctx) {
@@ -263,6 +278,7 @@ export default function slack(rl) {
263
278
  },
264
279
  });
265
280
  rl.registerAction("channel.unarchive", {
281
+ access: "write",
266
282
  description: "Unarchive a channel",
267
283
  inputSchema: { channel: { type: "string", required: true } },
268
284
  async execute(input, ctx) {
@@ -272,6 +288,7 @@ export default function slack(rl) {
272
288
  },
273
289
  });
274
290
  rl.registerAction("channel.rename", {
291
+ access: "write",
275
292
  description: "Rename a channel",
276
293
  inputSchema: {
277
294
  channel: { type: "string", required: true },
@@ -283,6 +300,7 @@ export default function slack(rl) {
283
300
  },
284
301
  });
285
302
  rl.registerAction("channel.setTopic", {
303
+ access: "write",
286
304
  description: "Set channel topic",
287
305
  inputSchema: {
288
306
  channel: { type: "string", required: true },
@@ -294,6 +312,7 @@ export default function slack(rl) {
294
312
  },
295
313
  });
296
314
  rl.registerAction("channel.setPurpose", {
315
+ access: "write",
297
316
  description: "Set channel purpose",
298
317
  inputSchema: {
299
318
  channel: { type: "string", required: true },
@@ -305,6 +324,7 @@ export default function slack(rl) {
305
324
  },
306
325
  });
307
326
  rl.registerAction("channel.members", {
327
+ access: "read",
308
328
  description: "List channel members",
309
329
  inputSchema: {
310
330
  channel: { type: "string", required: true },
@@ -321,6 +341,7 @@ export default function slack(rl) {
321
341
  });
322
342
  // ── Reaction ────────────────────────────────────────
323
343
  rl.registerAction("reaction.add", {
344
+ access: "write",
324
345
  description: "Add a reaction to a message",
325
346
  inputSchema: {
326
347
  channel: { type: "string", required: true },
@@ -336,6 +357,7 @@ export default function slack(rl) {
336
357
  },
337
358
  });
338
359
  rl.registerAction("reaction.remove", {
360
+ access: "write",
339
361
  description: "Remove a reaction",
340
362
  inputSchema: {
341
363
  channel: { type: "string", required: true },
@@ -347,6 +369,7 @@ export default function slack(rl) {
347
369
  },
348
370
  });
349
371
  rl.registerAction("reaction.get", {
372
+ access: "read",
350
373
  description: "Get reactions for a message",
351
374
  inputSchema: {
352
375
  channel: { type: "string", required: true },
@@ -358,6 +381,7 @@ export default function slack(rl) {
358
381
  });
359
382
  // ── User ────────────────────────────────────────────
360
383
  rl.registerAction("user.info", {
384
+ access: "read",
361
385
  description: "Get user info",
362
386
  inputSchema: { user: { type: "string", required: true } },
363
387
  async execute(input, ctx) {
@@ -368,6 +392,7 @@ export default function slack(rl) {
368
392
  },
369
393
  });
370
394
  rl.registerAction("user.list", {
395
+ access: "read",
371
396
  description: "List all users",
372
397
  inputSchema: { limit: { type: "number", required: false } },
373
398
  async execute(input, ctx) {
@@ -379,6 +404,7 @@ export default function slack(rl) {
379
404
  },
380
405
  });
381
406
  rl.registerAction("user.getPresence", {
407
+ access: "read",
382
408
  description: "Get a user's presence",
383
409
  inputSchema: { user: { type: "string", required: true } },
384
410
  async execute(input, ctx) {
@@ -388,6 +414,7 @@ export default function slack(rl) {
388
414
  },
389
415
  });
390
416
  rl.registerAction("user.getProfile", {
417
+ access: "read",
391
418
  description: "Get a user's profile",
392
419
  inputSchema: { user: { type: "string", required: true } },
393
420
  async execute(input, ctx) {
@@ -398,6 +425,7 @@ export default function slack(rl) {
398
425
  },
399
426
  });
400
427
  rl.registerAction("user.updateProfile", {
428
+ access: "write",
401
429
  description: "Update the authenticated user's profile",
402
430
  inputSchema: {
403
431
  profile: {
@@ -415,6 +443,7 @@ export default function slack(rl) {
415
443
  });
416
444
  // ── User Group ──────────────────────────────────────
417
445
  rl.registerAction("userGroup.create", {
446
+ access: "write",
418
447
  description: "Create a user group",
419
448
  inputSchema: {
420
449
  name: { type: "string", required: true },
@@ -427,6 +456,7 @@ export default function slack(rl) {
427
456
  },
428
457
  });
429
458
  rl.registerAction("userGroup.list", {
459
+ access: "read",
430
460
  description: "List user groups",
431
461
  inputSchema: { includeUsers: { type: "boolean", required: false } },
432
462
  async execute(input, ctx) {
@@ -438,6 +468,7 @@ export default function slack(rl) {
438
468
  },
439
469
  });
440
470
  rl.registerAction("userGroup.update", {
471
+ access: "write",
441
472
  description: "Update a user group",
442
473
  inputSchema: {
443
474
  usergroup: { type: "string", required: true },
@@ -451,6 +482,7 @@ export default function slack(rl) {
451
482
  },
452
483
  });
453
484
  rl.registerAction("userGroup.enable", {
485
+ access: "write",
454
486
  description: "Enable a user group",
455
487
  inputSchema: { usergroup: { type: "string", required: true } },
456
488
  async execute(input, ctx) {
@@ -461,6 +493,7 @@ export default function slack(rl) {
461
493
  },
462
494
  });
463
495
  rl.registerAction("userGroup.disable", {
496
+ access: "write",
464
497
  description: "Disable a user group",
465
498
  inputSchema: { usergroup: { type: "string", required: true } },
466
499
  async execute(input, ctx) {
@@ -472,6 +505,7 @@ export default function slack(rl) {
472
505
  });
473
506
  // ── File ────────────────────────────────────────────
474
507
  rl.registerAction("file.get", {
508
+ access: "read",
475
509
  description: "Get file info",
476
510
  inputSchema: { file: { type: "string", required: true } },
477
511
  async execute(input, ctx) {
@@ -482,6 +516,7 @@ export default function slack(rl) {
482
516
  },
483
517
  });
484
518
  rl.registerAction("file.list", {
519
+ access: "read",
485
520
  description: "List files",
486
521
  inputSchema: {
487
522
  channel: { type: "string", required: false },
@@ -503,6 +538,7 @@ export default function slack(rl) {
503
538
  });
504
539
  // ── Star ────────────────────────────────────────────
505
540
  rl.registerAction("star.add", {
541
+ access: "write",
506
542
  description: "Star an item",
507
543
  inputSchema: {
508
544
  channel: { type: "string", required: false },
@@ -514,6 +550,7 @@ export default function slack(rl) {
514
550
  },
515
551
  });
516
552
  rl.registerAction("star.remove", {
553
+ access: "write",
517
554
  description: "Unstar an item",
518
555
  inputSchema: {
519
556
  channel: { type: "string", required: false },
@@ -525,6 +562,7 @@ export default function slack(rl) {
525
562
  },
526
563
  });
527
564
  rl.registerAction("star.list", {
565
+ access: "read",
528
566
  description: "List starred items",
529
567
  inputSchema: { limit: { type: "number", required: false } },
530
568
  async execute(input, ctx) {
@@ -27,6 +27,7 @@ export default function sms77(rl) {
27
27
  });
28
28
  const key = (ctx) => ctx.connection.config.apiKey;
29
29
  rl.registerAction("sms.send", {
30
+ access: "write",
30
31
  description: "Send an SMS via seven",
31
32
  inputSchema: {
32
33
  to: {
@@ -67,6 +68,7 @@ export default function sms77(rl) {
67
68
  },
68
69
  });
69
70
  rl.registerAction("voice.send", {
71
+ access: "write",
70
72
  description: "Convert text to voice and call a number",
71
73
  inputSchema: {
72
74
  to: { type: "string", required: true },
@@ -71,6 +71,7 @@ export default function splunk(rl) {
71
71
  });
72
72
  // ── Search Jobs ─────────────────────────────────────
73
73
  rl.registerAction("search.create", {
74
+ access: "write",
74
75
  description: "Create a search job",
75
76
  inputSchema: {
76
77
  search: { type: "string", required: true, description: "SPL query" },
@@ -107,6 +108,7 @@ export default function splunk(rl) {
107
108
  },
108
109
  });
109
110
  rl.registerAction("search.get", {
111
+ access: "read",
110
112
  description: "Get a search job by ID",
111
113
  inputSchema: { searchJobId: { type: "string", required: true } },
112
114
  async execute(input, ctx) {
@@ -115,6 +117,7 @@ export default function splunk(rl) {
115
117
  },
116
118
  });
117
119
  rl.registerAction("search.list", {
120
+ access: "read",
118
121
  description: "List search jobs",
119
122
  inputSchema: {
120
123
  limit: { type: "number", required: false },
@@ -137,6 +140,7 @@ export default function splunk(rl) {
137
140
  },
138
141
  });
139
142
  rl.registerAction("search.delete", {
143
+ access: "write",
140
144
  description: "Delete a search job",
141
145
  inputSchema: { searchJobId: { type: "string", required: true } },
142
146
  async execute(input, ctx) {
@@ -146,6 +150,7 @@ export default function splunk(rl) {
146
150
  },
147
151
  });
148
152
  rl.registerAction("search.getResults", {
153
+ access: "read",
149
154
  description: "Get results of a search job",
150
155
  inputSchema: {
151
156
  searchJobId: { type: "string", required: true },
@@ -176,6 +181,7 @@ export default function splunk(rl) {
176
181
  });
177
182
  // ── Alerts ──────────────────────────────────────────
178
183
  rl.registerAction("alert.getMetrics", {
184
+ access: "read",
179
185
  description: "Get metric alerts",
180
186
  inputSchema: {},
181
187
  async execute(_input, ctx) {
@@ -184,6 +190,7 @@ export default function splunk(rl) {
184
190
  },
185
191
  });
186
192
  rl.registerAction("alert.getFired", {
193
+ access: "read",
187
194
  description: "Get fired alerts report",
188
195
  inputSchema: {},
189
196
  async execute(_input, ctx) {
@@ -193,6 +200,7 @@ export default function splunk(rl) {
193
200
  });
194
201
  // ── Reports (Saved Searches) ────────────────────────
195
202
  rl.registerAction("report.create", {
203
+ access: "write",
196
204
  description: "Create a saved search / report from a search job",
197
205
  inputSchema: {
198
206
  name: { type: "string", required: true },
@@ -223,6 +231,7 @@ export default function splunk(rl) {
223
231
  },
224
232
  });
225
233
  rl.registerAction("report.get", {
234
+ access: "read",
226
235
  description: "Get a saved search / report",
227
236
  inputSchema: { reportId: { type: "string", required: true } },
228
237
  async execute(input, ctx) {
@@ -231,6 +240,7 @@ export default function splunk(rl) {
231
240
  },
232
241
  });
233
242
  rl.registerAction("report.list", {
243
+ access: "read",
234
244
  description: "List saved searches / reports",
235
245
  inputSchema: { limit: { type: "number", required: false } },
236
246
  async execute(input, ctx) {
@@ -245,6 +255,7 @@ export default function splunk(rl) {
245
255
  },
246
256
  });
247
257
  rl.registerAction("report.delete", {
258
+ access: "write",
248
259
  description: "Delete a saved search / report",
249
260
  inputSchema: { reportId: { type: "string", required: true } },
250
261
  async execute(input, ctx) {
@@ -255,6 +266,7 @@ export default function splunk(rl) {
255
266
  });
256
267
  // ── Users ───────────────────────────────────────────
257
268
  rl.registerAction("user.create", {
269
+ access: "write",
258
270
  description: "Create a Splunk user",
259
271
  inputSchema: {
260
272
  name: { type: "string", required: true, description: "Login name" },
@@ -283,6 +295,7 @@ export default function splunk(rl) {
283
295
  },
284
296
  });
285
297
  rl.registerAction("user.get", {
298
+ access: "read",
286
299
  description: "Get a user",
287
300
  inputSchema: {
288
301
  userId: { type: "string", required: true, description: "Username" },
@@ -293,6 +306,7 @@ export default function splunk(rl) {
293
306
  },
294
307
  });
295
308
  rl.registerAction("user.list", {
309
+ access: "read",
296
310
  description: "List users",
297
311
  inputSchema: { limit: { type: "number", required: false } },
298
312
  async execute(input, ctx) {
@@ -307,6 +321,7 @@ export default function splunk(rl) {
307
321
  },
308
322
  });
309
323
  rl.registerAction("user.update", {
324
+ access: "write",
310
325
  description: "Update a user",
311
326
  inputSchema: {
312
327
  userId: { type: "string", required: true, description: "Username" },
@@ -335,6 +350,7 @@ export default function splunk(rl) {
335
350
  },
336
351
  });
337
352
  rl.registerAction("user.delete", {
353
+ access: "write",
338
354
  description: "Delete a user",
339
355
  inputSchema: {
340
356
  userId: { type: "string", required: true, description: "Username" },
@@ -41,6 +41,7 @@ export default function spotify(rl) {
41
41
  const t = (ctx) => ctx.connection.config.accessToken;
42
42
  // ── Player ──────────────────────────────────────────
43
43
  rl.registerAction("player.pause", {
44
+ access: "write",
44
45
  description: "Pause playback",
45
46
  inputSchema: {},
46
47
  async execute(_i, ctx) {
@@ -48,6 +49,7 @@ export default function spotify(rl) {
48
49
  },
49
50
  });
50
51
  rl.registerAction("player.resume", {
52
+ access: "write",
51
53
  description: "Resume playback",
52
54
  inputSchema: {},
53
55
  async execute(_i, ctx) {
@@ -55,6 +57,7 @@ export default function spotify(rl) {
55
57
  },
56
58
  });
57
59
  rl.registerAction("player.next", {
60
+ access: "write",
58
61
  description: "Skip to next track",
59
62
  inputSchema: {},
60
63
  async execute(_i, ctx) {
@@ -62,6 +65,7 @@ export default function spotify(rl) {
62
65
  },
63
66
  });
64
67
  rl.registerAction("player.previous", {
68
+ access: "write",
65
69
  description: "Skip to previous track",
66
70
  inputSchema: {},
67
71
  async execute(_i, ctx) {
@@ -69,6 +73,7 @@ export default function spotify(rl) {
69
73
  },
70
74
  });
71
75
  rl.registerAction("player.currentlyPlaying", {
76
+ access: "read",
72
77
  description: "Get currently playing track",
73
78
  inputSchema: {},
74
79
  async execute(_i, ctx) {
@@ -76,6 +81,7 @@ export default function spotify(rl) {
76
81
  },
77
82
  });
78
83
  rl.registerAction("player.recentlyPlayed", {
84
+ access: "read",
79
85
  description: "Get recently played tracks",
80
86
  inputSchema: { limit: { type: "number", required: false } },
81
87
  async execute(input, ctx) {
@@ -87,6 +93,7 @@ export default function spotify(rl) {
87
93
  },
88
94
  });
89
95
  rl.registerAction("player.addToQueue", {
96
+ access: "write",
90
97
  description: "Add a track to the queue",
91
98
  inputSchema: {
92
99
  uri: { type: "string", required: true, description: "Track URI or ID" },
@@ -98,6 +105,7 @@ export default function spotify(rl) {
98
105
  },
99
106
  });
100
107
  rl.registerAction("player.setVolume", {
108
+ access: "write",
101
109
  description: "Set playback volume",
102
110
  inputSchema: {
103
111
  volumePercent: { type: "number", required: true, description: "0-100" },
@@ -109,6 +117,7 @@ export default function spotify(rl) {
109
117
  },
110
118
  });
111
119
  rl.registerAction("player.startMusic", {
120
+ access: "write",
112
121
  description: "Start playing an album, artist, or playlist",
113
122
  inputSchema: {
114
123
  contextUri: {
@@ -125,6 +134,7 @@ export default function spotify(rl) {
125
134
  });
126
135
  // ── Album ───────────────────────────────────────────
127
136
  rl.registerAction("album.get", {
137
+ access: "read",
128
138
  description: "Get an album",
129
139
  inputSchema: { id: { type: "string", required: true } },
130
140
  async execute(input, ctx) {
@@ -132,6 +142,7 @@ export default function spotify(rl) {
132
142
  },
133
143
  });
134
144
  rl.registerAction("album.getTracks", {
145
+ access: "read",
135
146
  description: "Get an album's tracks",
136
147
  inputSchema: {
137
148
  id: { type: "string", required: true },
@@ -147,6 +158,7 @@ export default function spotify(rl) {
147
158
  },
148
159
  });
149
160
  rl.registerAction("album.getNewReleases", {
161
+ access: "read",
150
162
  description: "Get new album releases",
151
163
  inputSchema: {
152
164
  limit: { type: "number", required: false },
@@ -164,6 +176,7 @@ export default function spotify(rl) {
164
176
  },
165
177
  });
166
178
  rl.registerAction("album.search", {
179
+ access: "read",
167
180
  description: "Search albums",
168
181
  inputSchema: {
169
182
  query: { type: "string", required: true },
@@ -182,6 +195,7 @@ export default function spotify(rl) {
182
195
  });
183
196
  // ── Artist ──────────────────────────────────────────
184
197
  rl.registerAction("artist.get", {
198
+ access: "read",
185
199
  description: "Get an artist",
186
200
  inputSchema: { id: { type: "string", required: true } },
187
201
  async execute(input, ctx) {
@@ -189,6 +203,7 @@ export default function spotify(rl) {
189
203
  },
190
204
  });
191
205
  rl.registerAction("artist.getAlbums", {
206
+ access: "read",
192
207
  description: "Get an artist's albums",
193
208
  inputSchema: {
194
209
  id: { type: "string", required: true },
@@ -204,6 +219,7 @@ export default function spotify(rl) {
204
219
  },
205
220
  });
206
221
  rl.registerAction("artist.getRelatedArtists", {
222
+ access: "read",
207
223
  description: "Get related artists",
208
224
  inputSchema: { id: { type: "string", required: true } },
209
225
  async execute(input, ctx) {
@@ -212,6 +228,7 @@ export default function spotify(rl) {
212
228
  },
213
229
  });
214
230
  rl.registerAction("artist.getTopTracks", {
231
+ access: "read",
215
232
  description: "Get an artist's top tracks",
216
233
  inputSchema: {
217
234
  id: { type: "string", required: true },
@@ -224,6 +241,7 @@ export default function spotify(rl) {
224
241
  },
225
242
  });
226
243
  rl.registerAction("artist.search", {
244
+ access: "read",
227
245
  description: "Search artists",
228
246
  inputSchema: {
229
247
  query: { type: "string", required: true },
@@ -242,6 +260,7 @@ export default function spotify(rl) {
242
260
  });
243
261
  // ── Playlist ────────────────────────────────────────
244
262
  rl.registerAction("playlist.get", {
263
+ access: "read",
245
264
  description: "Get a playlist",
246
265
  inputSchema: { id: { type: "string", required: true } },
247
266
  async execute(input, ctx) {
@@ -249,6 +268,7 @@ export default function spotify(rl) {
249
268
  },
250
269
  });
251
270
  rl.registerAction("playlist.getTracks", {
271
+ access: "read",
252
272
  description: "Get a playlist's tracks",
253
273
  inputSchema: {
254
274
  id: { type: "string", required: true },
@@ -264,6 +284,7 @@ export default function spotify(rl) {
264
284
  },
265
285
  });
266
286
  rl.registerAction("playlist.create", {
287
+ access: "write",
267
288
  description: "Create a playlist",
268
289
  inputSchema: {
269
290
  name: { type: "string", required: true },
@@ -275,6 +296,7 @@ export default function spotify(rl) {
275
296
  },
276
297
  });
277
298
  rl.registerAction("playlist.addTrack", {
299
+ access: "write",
278
300
  description: "Add a track to a playlist",
279
301
  inputSchema: {
280
302
  id: { type: "string", required: true },
@@ -290,6 +312,7 @@ export default function spotify(rl) {
290
312
  },
291
313
  });
292
314
  rl.registerAction("playlist.removeTrack", {
315
+ access: "write",
293
316
  description: "Remove a track from a playlist",
294
317
  inputSchema: {
295
318
  id: { type: "string", required: true },
@@ -301,6 +324,7 @@ export default function spotify(rl) {
301
324
  },
302
325
  });
303
326
  rl.registerAction("playlist.listMine", {
327
+ access: "read",
304
328
  description: "Get the current user's playlists",
305
329
  inputSchema: { limit: { type: "number", required: false } },
306
330
  async execute(input, ctx) {
@@ -312,6 +336,7 @@ export default function spotify(rl) {
312
336
  },
313
337
  });
314
338
  rl.registerAction("playlist.search", {
339
+ access: "read",
315
340
  description: "Search playlists",
316
341
  inputSchema: {
317
342
  query: { type: "string", required: true },
@@ -330,6 +355,7 @@ export default function spotify(rl) {
330
355
  });
331
356
  // ── Track ───────────────────────────────────────────
332
357
  rl.registerAction("track.get", {
358
+ access: "read",
333
359
  description: "Get a track",
334
360
  inputSchema: { id: { type: "string", required: true } },
335
361
  async execute(input, ctx) {
@@ -337,6 +363,7 @@ export default function spotify(rl) {
337
363
  },
338
364
  });
339
365
  rl.registerAction("track.getAudioFeatures", {
366
+ access: "read",
340
367
  description: "Get audio features for a track",
341
368
  inputSchema: { id: { type: "string", required: true } },
342
369
  async execute(input, ctx) {
@@ -344,6 +371,7 @@ export default function spotify(rl) {
344
371
  },
345
372
  });
346
373
  rl.registerAction("track.search", {
374
+ access: "read",
347
375
  description: "Search tracks",
348
376
  inputSchema: {
349
377
  query: { type: "string", required: true },
@@ -362,6 +390,7 @@ export default function spotify(rl) {
362
390
  });
363
391
  // ── Library ─────────────────────────────────────────
364
392
  rl.registerAction("library.getLikedTracks", {
393
+ access: "read",
365
394
  description: "Get liked tracks",
366
395
  inputSchema: { limit: { type: "number", required: false } },
367
396
  async execute(input, ctx) {
@@ -374,6 +403,7 @@ export default function spotify(rl) {
374
403
  });
375
404
  // ── My Data ─────────────────────────────────────────
376
405
  rl.registerAction("myData.getFollowingArtists", {
406
+ access: "read",
377
407
  description: "Get followed artists",
378
408
  inputSchema: { limit: { type: "number", required: false } },
379
409
  async execute(input, ctx) {
@@ -31,6 +31,7 @@ export default function stackby(rl) {
31
31
  });
32
32
  const key = (ctx) => ctx.connection.config.apiKey;
33
33
  rl.registerAction("row.read", {
34
+ access: "read",
34
35
  description: "Read a row by ID",
35
36
  inputSchema: {
36
37
  stackId: { type: "string", required: true },
@@ -44,6 +45,7 @@ export default function stackby(rl) {
44
45
  },
45
46
  });
46
47
  rl.registerAction("row.list", {
48
+ access: "read",
47
49
  description: "List rows from a table",
48
50
  inputSchema: {
49
51
  stackId: { type: "string", required: true },
@@ -63,6 +65,7 @@ export default function stackby(rl) {
63
65
  },
64
66
  });
65
67
  rl.registerAction("row.append", {
68
+ access: "write",
66
69
  description: "Append rows to a table",
67
70
  inputSchema: {
68
71
  stackId: { type: "string", required: true },
@@ -80,6 +83,7 @@ export default function stackby(rl) {
80
83
  },
81
84
  });
82
85
  rl.registerAction("row.delete", {
86
+ access: "write",
83
87
  description: "Delete a row by ID",
84
88
  inputSchema: {
85
89
  stackId: { type: "string", required: true },