runline 0.11.6 → 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 (251) 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/issues.js +4 -0
  193. package/dist/plugins/shiftLabs/src/pages.js +10 -0
  194. package/dist/plugins/shopify/src/index.js +10 -0
  195. package/dist/plugins/signl4/src/index.js +2 -0
  196. package/dist/plugins/slack/src/index.js +38 -0
  197. package/dist/plugins/sms77/src/index.js +2 -0
  198. package/dist/plugins/splunk/src/index.js +16 -0
  199. package/dist/plugins/spotify/src/index.js +30 -0
  200. package/dist/plugins/stackby/src/index.js +4 -0
  201. package/dist/plugins/steel/src/browser.js +7 -0
  202. package/dist/plugins/steel/src/captchas.js +3 -0
  203. package/dist/plugins/steel/src/credentials.js +4 -0
  204. package/dist/plugins/steel/src/extensions.js +5 -0
  205. package/dist/plugins/steel/src/files.js +10 -0
  206. package/dist/plugins/steel/src/profiles.js +4 -0
  207. package/dist/plugins/steel/src/sessions.js +11 -0
  208. package/dist/plugins/storyblok/src/index.js +7 -0
  209. package/dist/plugins/strapi/src/index.js +5 -0
  210. package/dist/plugins/strava/src/index.js +6 -0
  211. package/dist/plugins/stripe/src/index.js +20 -0
  212. package/dist/plugins/supabase/src/index.js +5 -0
  213. package/dist/plugins/syncromsp/src/index.js +20 -0
  214. package/dist/plugins/tapfiliate/src/index.js +11 -0
  215. package/dist/plugins/telegram/src/index.js +21 -0
  216. package/dist/plugins/thehive/src/index.js +23 -0
  217. package/dist/plugins/thehiveProject/src/index.js +31 -0
  218. package/dist/plugins/todoist/src/index.js +31 -0
  219. package/dist/plugins/together/src/index.js +1 -0
  220. package/dist/plugins/travisci/src/index.js +5 -0
  221. package/dist/plugins/trello/src/index.js +37 -0
  222. package/dist/plugins/twake/src/index.js +1 -0
  223. package/dist/plugins/twilio/src/index.js +2 -0
  224. package/dist/plugins/twist/src/index.js +22 -0
  225. package/dist/plugins/twitter/src/index.js +8 -0
  226. package/dist/plugins/unleashedSoftware/src/index.js +3 -0
  227. package/dist/plugins/uplead/src/index.js +2 -0
  228. package/dist/plugins/uproc/src/index.js +1 -0
  229. package/dist/plugins/uptimerobot/src/index.js +22 -0
  230. package/dist/plugins/urlscanio/src/index.js +3 -0
  231. package/dist/plugins/vercel/src/account.js +1 -0
  232. package/dist/plugins/vercel/src/deployments.js +5 -0
  233. package/dist/plugins/vercel/src/env.js +4 -0
  234. package/dist/plugins/vercel/src/projects.js +2 -0
  235. package/dist/plugins/vercel/src/shared.js +1 -0
  236. package/dist/plugins/vero/src/index.js +6 -0
  237. package/dist/plugins/vonage/src/index.js +1 -0
  238. package/dist/plugins/wekan/src/index.js +24 -0
  239. package/dist/plugins/woocommerce/src/index.js +5 -0
  240. package/dist/plugins/wordpress/src/index.js +10 -0
  241. package/dist/plugins/xai/src/index.js +1 -0
  242. package/dist/plugins/xero/src/index.js +8 -0
  243. package/dist/plugins/yourls/src/index.js +3 -0
  244. package/dist/plugins/zammad/src/index.js +12 -0
  245. package/dist/plugins/zendesk/src/index.js +18 -0
  246. package/dist/plugins/zoho/src/index.js +6 -0
  247. package/dist/plugins/zoom/src/index.js +5 -0
  248. package/dist/plugins/zulip/src/index.js +15 -0
  249. package/dist/sdk.d.ts +2 -1
  250. package/dist/sdk.js +1 -0
  251. package/package.json +1 -1
@@ -62,6 +62,7 @@ export default function discourse(rl) {
62
62
  });
63
63
  // ── Category ────────────────────────────────────────
64
64
  rl.registerAction("category.create", {
65
+ access: "write",
65
66
  description: "Create a category",
66
67
  inputSchema: {
67
68
  name: { type: "string", required: true, description: "Category name" },
@@ -87,6 +88,7 @@ export default function discourse(rl) {
87
88
  },
88
89
  });
89
90
  rl.registerAction("category.list", {
91
+ access: "read",
90
92
  description: "List all categories",
91
93
  inputSchema: {
92
94
  limit: { type: "number", required: false, description: "Max results" },
@@ -102,6 +104,7 @@ export default function discourse(rl) {
102
104
  },
103
105
  });
104
106
  rl.registerAction("category.update", {
107
+ access: "write",
105
108
  description: "Update a category",
106
109
  inputSchema: {
107
110
  categoryId: {
@@ -130,6 +133,7 @@ export default function discourse(rl) {
130
133
  });
131
134
  // ── Group ───────────────────────────────────────────
132
135
  rl.registerAction("group.create", {
136
+ access: "write",
133
137
  description: "Create a group",
134
138
  inputSchema: {
135
139
  name: { type: "string", required: true, description: "Group name" },
@@ -143,6 +147,7 @@ export default function discourse(rl) {
143
147
  },
144
148
  });
145
149
  rl.registerAction("group.get", {
150
+ access: "read",
146
151
  description: "Get a group by name",
147
152
  inputSchema: {
148
153
  name: { type: "string", required: true, description: "Group name" },
@@ -154,6 +159,7 @@ export default function discourse(rl) {
154
159
  },
155
160
  });
156
161
  rl.registerAction("group.list", {
162
+ access: "read",
157
163
  description: "List all groups",
158
164
  inputSchema: {
159
165
  limit: { type: "number", required: false, description: "Max results" },
@@ -168,6 +174,7 @@ export default function discourse(rl) {
168
174
  },
169
175
  });
170
176
  rl.registerAction("group.update", {
177
+ access: "write",
171
178
  description: "Update a group",
172
179
  inputSchema: {
173
180
  groupId: { type: "string", required: true, description: "Group ID" },
@@ -180,6 +187,7 @@ export default function discourse(rl) {
180
187
  });
181
188
  // ── Post ────────────────────────────────────────────
182
189
  rl.registerAction("post.create", {
190
+ access: "write",
183
191
  description: "Create a post (new topic or reply)",
184
192
  inputSchema: {
185
193
  title: {
@@ -223,6 +231,7 @@ export default function discourse(rl) {
223
231
  },
224
232
  });
225
233
  rl.registerAction("post.get", {
234
+ access: "read",
226
235
  description: "Get a post by ID",
227
236
  inputSchema: {
228
237
  postId: { type: "string", required: true, description: "Post ID" },
@@ -232,6 +241,7 @@ export default function discourse(rl) {
232
241
  },
233
242
  });
234
243
  rl.registerAction("post.list", {
244
+ access: "read",
235
245
  description: "List latest posts",
236
246
  inputSchema: {
237
247
  limit: { type: "number", required: false, description: "Max results" },
@@ -246,6 +256,7 @@ export default function discourse(rl) {
246
256
  },
247
257
  });
248
258
  rl.registerAction("post.update", {
259
+ access: "write",
249
260
  description: "Update a post",
250
261
  inputSchema: {
251
262
  postId: { type: "string", required: true, description: "Post ID" },
@@ -271,6 +282,7 @@ export default function discourse(rl) {
271
282
  });
272
283
  // ── User ────────────────────────────────────────────
273
284
  rl.registerAction("user.create", {
285
+ access: "write",
274
286
  description: "Create a user",
275
287
  inputSchema: {
276
288
  name: { type: "string", required: true, description: "Full name" },
@@ -292,6 +304,7 @@ export default function discourse(rl) {
292
304
  },
293
305
  });
294
306
  rl.registerAction("user.get", {
307
+ access: "read",
295
308
  description: "Get a user by username or external ID",
296
309
  inputSchema: {
297
310
  username: { type: "string", required: false, description: "Username" },
@@ -311,6 +324,7 @@ export default function discourse(rl) {
311
324
  },
312
325
  });
313
326
  rl.registerAction("user.list", {
327
+ access: "read",
314
328
  description: "List users (admin)",
315
329
  inputSchema: {
316
330
  flag: {
@@ -344,6 +358,7 @@ export default function discourse(rl) {
344
358
  });
345
359
  // ── User Group ──────────────────────────────────────
346
360
  rl.registerAction("userGroup.add", {
361
+ access: "write",
347
362
  description: "Add users to a group",
348
363
  inputSchema: {
349
364
  groupId: { type: "string", required: true, description: "Group ID" },
@@ -359,6 +374,7 @@ export default function discourse(rl) {
359
374
  },
360
375
  });
361
376
  rl.registerAction("userGroup.remove", {
377
+ access: "write",
362
378
  description: "Remove users from a group",
363
379
  inputSchema: {
364
380
  groupId: { type: "string", required: true, description: "Group ID" },
@@ -56,6 +56,7 @@ export default function disqus(rl) {
56
56
  },
57
57
  });
58
58
  rl.registerAction("forum.get", {
59
+ access: "read",
59
60
  description: "Get forum details",
60
61
  inputSchema: {
61
62
  forum: {
@@ -87,6 +88,7 @@ export default function disqus(rl) {
87
88
  },
88
89
  });
89
90
  rl.registerAction("forum.listPosts", {
91
+ access: "read",
90
92
  description: "List posts in a forum",
91
93
  inputSchema: {
92
94
  forum: {
@@ -142,6 +144,7 @@ export default function disqus(rl) {
142
144
  },
143
145
  });
144
146
  rl.registerAction("forum.listCategories", {
147
+ access: "read",
145
148
  description: "List categories in a forum",
146
149
  inputSchema: {
147
150
  forum: {
@@ -166,6 +169,7 @@ export default function disqus(rl) {
166
169
  },
167
170
  });
168
171
  rl.registerAction("forum.listThreads", {
172
+ access: "read",
169
173
  description: "List threads in a forum",
170
174
  inputSchema: {
171
175
  forum: {
@@ -8,6 +8,7 @@ export default function docker(rl) {
8
8
  }
9
9
  });
10
10
  rl.registerAction("containers.list", {
11
+ access: "read",
11
12
  description: "List Docker containers",
12
13
  inputSchema: {
13
14
  all: {
@@ -33,6 +34,7 @@ export default function docker(rl) {
33
34
  },
34
35
  });
35
36
  rl.registerAction("containers.start", {
37
+ access: "write",
36
38
  description: "Start a Docker container",
37
39
  inputSchema: {
38
40
  id: {
@@ -48,6 +50,7 @@ export default function docker(rl) {
48
50
  },
49
51
  });
50
52
  rl.registerAction("containers.stop", {
53
+ access: "write",
51
54
  description: "Stop a Docker container",
52
55
  inputSchema: {
53
56
  id: {
@@ -63,6 +66,7 @@ export default function docker(rl) {
63
66
  },
64
67
  });
65
68
  rl.registerAction("images.list", {
69
+ access: "read",
66
70
  description: "List Docker images",
67
71
  execute() {
68
72
  const { rows } = syncExec("docker", ["images", "--format", "{{json .}}", "--no-trunc"], { parser: "jsonlines" });
@@ -75,6 +79,7 @@ export default function docker(rl) {
75
79
  },
76
80
  });
77
81
  rl.registerAction("images.pull", {
82
+ access: "write",
78
83
  description: "Pull a Docker image",
79
84
  inputSchema: {
80
85
  image: {
@@ -33,6 +33,7 @@ export default function drift(rl) {
33
33
  });
34
34
  const tok = (ctx) => ctx.connection.config.accessToken;
35
35
  rl.registerAction("contact.create", {
36
+ access: "write",
36
37
  description: "Create a contact",
37
38
  inputSchema: {
38
39
  email: { type: "string", required: true, description: "Email address" },
@@ -53,6 +54,7 @@ export default function drift(rl) {
53
54
  },
54
55
  });
55
56
  rl.registerAction("contact.get", {
57
+ access: "read",
56
58
  description: "Get a contact by ID",
57
59
  inputSchema: {
58
60
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -63,6 +65,7 @@ export default function drift(rl) {
63
65
  },
64
66
  });
65
67
  rl.registerAction("contact.update", {
68
+ access: "write",
66
69
  description: "Update a contact",
67
70
  inputSchema: {
68
71
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -84,6 +87,7 @@ export default function drift(rl) {
84
87
  },
85
88
  });
86
89
  rl.registerAction("contact.delete", {
90
+ access: "write",
87
91
  description: "Delete a contact",
88
92
  inputSchema: {
89
93
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -94,6 +98,7 @@ export default function drift(rl) {
94
98
  },
95
99
  });
96
100
  rl.registerAction("contact.getCustomAttributes", {
101
+ access: "read",
97
102
  description: "List all custom contact attributes",
98
103
  async execute(_input, ctx) {
99
104
  const data = (await apiRequest(tok(ctx), "GET", "/contacts/attributes"));
@@ -60,6 +60,7 @@ export default function dropbox(rl) {
60
60
  const tok = (ctx) => ctx.connection.config.accessToken;
61
61
  // ── File ────────────────────────────────────────────
62
62
  rl.registerAction("file.copy", {
63
+ access: "write",
63
64
  description: "Copy a file",
64
65
  inputSchema: {
65
66
  fromPath: {
@@ -82,6 +83,7 @@ export default function dropbox(rl) {
82
83
  },
83
84
  });
84
85
  rl.registerAction("file.move", {
86
+ access: "write",
85
87
  description: "Move a file",
86
88
  inputSchema: {
87
89
  fromPath: {
@@ -104,6 +106,7 @@ export default function dropbox(rl) {
104
106
  },
105
107
  });
106
108
  rl.registerAction("file.delete", {
109
+ access: "write",
107
110
  description: "Delete a file",
108
111
  inputSchema: {
109
112
  path: {
@@ -120,6 +123,7 @@ export default function dropbox(rl) {
120
123
  });
121
124
  // ── Folder ──────────────────────────────────────────
122
125
  rl.registerAction("folder.create", {
126
+ access: "write",
123
127
  description: "Create a folder",
124
128
  inputSchema: {
125
129
  path: {
@@ -135,6 +139,7 @@ export default function dropbox(rl) {
135
139
  },
136
140
  });
137
141
  rl.registerAction("folder.list", {
142
+ access: "read",
138
143
  description: "List contents of a folder",
139
144
  inputSchema: {
140
145
  path: {
@@ -166,6 +171,7 @@ export default function dropbox(rl) {
166
171
  },
167
172
  });
168
173
  rl.registerAction("folder.copy", {
174
+ access: "write",
169
175
  description: "Copy a folder",
170
176
  inputSchema: {
171
177
  fromPath: {
@@ -188,6 +194,7 @@ export default function dropbox(rl) {
188
194
  },
189
195
  });
190
196
  rl.registerAction("folder.move", {
197
+ access: "write",
191
198
  description: "Move a folder",
192
199
  inputSchema: {
193
200
  fromPath: {
@@ -210,6 +217,7 @@ export default function dropbox(rl) {
210
217
  },
211
218
  });
212
219
  rl.registerAction("folder.delete", {
220
+ access: "write",
213
221
  description: "Delete a folder",
214
222
  inputSchema: {
215
223
  path: {
@@ -226,6 +234,7 @@ export default function dropbox(rl) {
226
234
  });
227
235
  // ── Search ──────────────────────────────────────────
228
236
  rl.registerAction("search.query", {
237
+ access: "read",
229
238
  description: "Search for files and folders",
230
239
  inputSchema: {
231
240
  query: { type: "string", required: true, description: "Search query" },
@@ -28,6 +28,7 @@ export default function dropcontact(rl) {
28
28
  });
29
29
  const key = (ctx) => ctx.connection.config.apiKey;
30
30
  rl.registerAction("contact.enrich", {
31
+ access: "write",
31
32
  description: "Enrich contacts — find B2B emails from name and website",
32
33
  inputSchema: {
33
34
  contacts: {
@@ -57,6 +58,7 @@ export default function dropcontact(rl) {
57
58
  },
58
59
  });
59
60
  rl.registerAction("contact.fetchRequest", {
61
+ access: "read",
60
62
  description: "Fetch results of a previous enrich request by ID",
61
63
  inputSchema: {
62
64
  requestId: {
@@ -54,6 +54,7 @@ export default function egoi(rl) {
54
54
  });
55
55
  const key = (ctx) => ctx.connection.config.apiKey;
56
56
  rl.registerAction("contact.create", {
57
+ access: "write",
57
58
  description: "Create a contact in a list",
58
59
  inputSchema: {
59
60
  listId: { type: "string", required: true, description: "List ID" },
@@ -110,6 +111,7 @@ export default function egoi(rl) {
110
111
  },
111
112
  });
112
113
  rl.registerAction("contact.get", {
114
+ access: "read",
113
115
  description: "Get a contact by ID or email",
114
116
  inputSchema: {
115
117
  listId: { type: "string", required: true, description: "List ID" },
@@ -130,6 +132,7 @@ export default function egoi(rl) {
130
132
  },
131
133
  });
132
134
  rl.registerAction("contact.list", {
135
+ access: "read",
133
136
  description: "List contacts in a list",
134
137
  inputSchema: {
135
138
  listId: { type: "string", required: true, description: "List ID" },
@@ -141,6 +144,7 @@ export default function egoi(rl) {
141
144
  },
142
145
  });
143
146
  rl.registerAction("contact.update", {
147
+ access: "write",
144
148
  description: "Update a contact",
145
149
  inputSchema: {
146
150
  listId: { type: "string", required: true, description: "List ID" },
@@ -64,6 +64,7 @@ export default function elasticsearch(rl) {
64
64
  });
65
65
  // ── Document ────────────────────────────────────────
66
66
  rl.registerAction("document.create", {
67
+ access: "write",
67
68
  description: "Index (create) a document",
68
69
  inputSchema: {
69
70
  index: { type: "string", required: true, description: "Index name" },
@@ -81,6 +82,7 @@ export default function elasticsearch(rl) {
81
82
  },
82
83
  });
83
84
  rl.registerAction("document.get", {
85
+ access: "read",
84
86
  description: "Get a document by ID",
85
87
  inputSchema: {
86
88
  index: { type: "string", required: true, description: "Index name" },
@@ -92,6 +94,7 @@ export default function elasticsearch(rl) {
92
94
  },
93
95
  });
94
96
  rl.registerAction("document.update", {
97
+ access: "write",
95
98
  description: "Update a document",
96
99
  inputSchema: {
97
100
  index: { type: "string", required: true, description: "Index name" },
@@ -108,6 +111,7 @@ export default function elasticsearch(rl) {
108
111
  },
109
112
  });
110
113
  rl.registerAction("document.delete", {
114
+ access: "write",
111
115
  description: "Delete a document",
112
116
  inputSchema: {
113
117
  index: { type: "string", required: true, description: "Index name" },
@@ -119,6 +123,7 @@ export default function elasticsearch(rl) {
119
123
  },
120
124
  });
121
125
  rl.registerAction("document.search", {
126
+ access: "read",
122
127
  description: "Search documents in an index",
123
128
  inputSchema: {
124
129
  index: { type: "string", required: true, description: "Index name" },
@@ -152,6 +157,7 @@ export default function elasticsearch(rl) {
152
157
  });
153
158
  // ── Index ───────────────────────────────────────────
154
159
  rl.registerAction("index.create", {
160
+ access: "write",
155
161
  description: "Create an index",
156
162
  inputSchema: {
157
163
  index: { type: "string", required: true, description: "Index name" },
@@ -177,6 +183,7 @@ export default function elasticsearch(rl) {
177
183
  },
178
184
  });
179
185
  rl.registerAction("index.get", {
186
+ access: "read",
180
187
  description: "Get index details",
181
188
  inputSchema: {
182
189
  index: { type: "string", required: true, description: "Index name" },
@@ -186,12 +193,14 @@ export default function elasticsearch(rl) {
186
193
  },
187
194
  });
188
195
  rl.registerAction("index.list", {
196
+ access: "read",
189
197
  description: "List all indices",
190
198
  async execute(_input, ctx) {
191
199
  return req(ctx, "GET", "/_cat/indices", undefined, { format: "json" });
192
200
  },
193
201
  });
194
202
  rl.registerAction("index.delete", {
203
+ access: "write",
195
204
  description: "Delete an index",
196
205
  inputSchema: {
197
206
  index: { type: "string", required: true, description: "Index name" },
@@ -32,6 +32,7 @@ export default function emelia(rl) {
32
32
  const key = (ctx) => ctx.connection.config.apiKey;
33
33
  // ── Campaign ────────────────────────────────────────
34
34
  rl.registerAction("campaign.create", {
35
+ access: "write",
35
36
  description: "Create a new campaign",
36
37
  inputSchema: {
37
38
  name: { type: "string", required: true, description: "Campaign name" },
@@ -45,6 +46,7 @@ export default function emelia(rl) {
45
46
  },
46
47
  });
47
48
  rl.registerAction("campaign.get", {
49
+ access: "read",
48
50
  description: "Get a campaign by ID",
49
51
  inputSchema: {
50
52
  campaignId: {
@@ -66,6 +68,7 @@ export default function emelia(rl) {
66
68
  },
67
69
  });
68
70
  rl.registerAction("campaign.list", {
71
+ access: "read",
69
72
  description: "List all campaigns",
70
73
  inputSchema: {
71
74
  limit: { type: "number", required: false, description: "Max results" },
@@ -86,6 +89,7 @@ export default function emelia(rl) {
86
89
  },
87
90
  });
88
91
  rl.registerAction("campaign.addContact", {
92
+ access: "write",
89
93
  description: "Add a contact to a campaign",
90
94
  inputSchema: {
91
95
  campaignId: {
@@ -119,6 +123,7 @@ export default function emelia(rl) {
119
123
  },
120
124
  });
121
125
  rl.registerAction("campaign.start", {
126
+ access: "write",
122
127
  description: "Start a campaign",
123
128
  inputSchema: {
124
129
  campaignId: {
@@ -133,6 +138,7 @@ export default function emelia(rl) {
133
138
  },
134
139
  });
135
140
  rl.registerAction("campaign.pause", {
141
+ access: "write",
136
142
  description: "Pause a campaign",
137
143
  inputSchema: {
138
144
  campaignId: {
@@ -147,6 +153,7 @@ export default function emelia(rl) {
147
153
  },
148
154
  });
149
155
  rl.registerAction("campaign.duplicate", {
156
+ access: "write",
150
157
  description: "Duplicate a campaign",
151
158
  inputSchema: {
152
159
  campaignId: {
@@ -198,6 +205,7 @@ export default function emelia(rl) {
198
205
  });
199
206
  // ── Contact List ────────────────────────────────────
200
207
  rl.registerAction("contactList.list", {
208
+ access: "read",
201
209
  description: "List all contact lists",
202
210
  inputSchema: {
203
211
  limit: { type: "number", required: false, description: "Max results" },
@@ -215,6 +223,7 @@ export default function emelia(rl) {
215
223
  },
216
224
  });
217
225
  rl.registerAction("contactList.addContact", {
226
+ access: "write",
218
227
  description: "Add a contact to a contact list",
219
228
  inputSchema: {
220
229
  contactListId: {
@@ -61,6 +61,7 @@ export default function erpnext(rl) {
61
61
  },
62
62
  });
63
63
  rl.registerAction("document.get", {
64
+ access: "read",
64
65
  description: "Get a document by DocType and name",
65
66
  inputSchema: {
66
67
  docType: {
@@ -81,6 +82,7 @@ export default function erpnext(rl) {
81
82
  },
82
83
  });
83
84
  rl.registerAction("document.list", {
85
+ access: "read",
84
86
  description: "List documents of a DocType",
85
87
  inputSchema: {
86
88
  docType: { type: "string", required: true, description: "Document type" },
@@ -125,6 +127,7 @@ export default function erpnext(rl) {
125
127
  },
126
128
  });
127
129
  rl.registerAction("document.create", {
130
+ access: "write",
128
131
  description: "Create a document",
129
132
  inputSchema: {
130
133
  docType: { type: "string", required: true, description: "Document type" },
@@ -141,6 +144,7 @@ export default function erpnext(rl) {
141
144
  },
142
145
  });
143
146
  rl.registerAction("document.update", {
147
+ access: "write",
144
148
  description: "Update a document",
145
149
  inputSchema: {
146
150
  docType: { type: "string", required: true, description: "Document type" },
@@ -162,6 +166,7 @@ export default function erpnext(rl) {
162
166
  },
163
167
  });
164
168
  rl.registerAction("document.delete", {
169
+ access: "write",
165
170
  description: "Delete a document",
166
171
  inputSchema: {
167
172
  docType: { type: "string", required: true, description: "Document type" },
@@ -10,6 +10,7 @@ export default function facebookGraph(rl) {
10
10
  },
11
11
  });
12
12
  rl.registerAction("request", {
13
+ access: "write",
13
14
  description: "Make a request to the Facebook Graph API. Supports GET, POST, DELETE against any node/edge combination.",
14
15
  inputSchema: {
15
16
  hostUrl: {
@@ -76,6 +76,7 @@ export default function freshdesk(rl) {
76
76
  });
77
77
  // ── Ticket ──────────────────────────────────────────
78
78
  rl.registerAction("ticket.create", {
79
+ access: "write",
79
80
  description: "Create a ticket",
80
81
  inputSchema: {
81
82
  email: {
@@ -191,6 +192,7 @@ export default function freshdesk(rl) {
191
192
  },
192
193
  });
193
194
  rl.registerAction("ticket.get", {
195
+ access: "read",
194
196
  description: "Get a ticket by ID",
195
197
  inputSchema: {
196
198
  ticketId: { type: "string", required: true, description: "Ticket ID" },
@@ -200,6 +202,7 @@ export default function freshdesk(rl) {
200
202
  },
201
203
  });
202
204
  rl.registerAction("ticket.list", {
205
+ access: "read",
203
206
  description: "List tickets",
204
207
  inputSchema: {
205
208
  limit: {
@@ -266,6 +269,7 @@ export default function freshdesk(rl) {
266
269
  },
267
270
  });
268
271
  rl.registerAction("ticket.update", {
272
+ access: "write",
269
273
  description: "Update a ticket",
270
274
  inputSchema: {
271
275
  ticketId: { type: "string", required: true, description: "Ticket ID" },
@@ -329,6 +333,7 @@ export default function freshdesk(rl) {
329
333
  },
330
334
  });
331
335
  rl.registerAction("ticket.delete", {
336
+ access: "write",
332
337
  description: "Delete a ticket",
333
338
  inputSchema: {
334
339
  ticketId: { type: "string", required: true, description: "Ticket ID" },
@@ -340,6 +345,7 @@ export default function freshdesk(rl) {
340
345
  });
341
346
  // ── Contact ─────────────────────────────────────────
342
347
  rl.registerAction("contact.create", {
348
+ access: "write",
343
349
  description: "Create a contact",
344
350
  inputSchema: {
345
351
  name: { type: "string", required: true, description: "Full name" },
@@ -386,6 +392,7 @@ export default function freshdesk(rl) {
386
392
  },
387
393
  });
388
394
  rl.registerAction("contact.get", {
395
+ access: "read",
389
396
  description: "Get a contact by ID",
390
397
  inputSchema: {
391
398
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -395,6 +402,7 @@ export default function freshdesk(rl) {
395
402
  },
396
403
  });
397
404
  rl.registerAction("contact.list", {
405
+ access: "read",
398
406
  description: "List contacts",
399
407
  inputSchema: {
400
408
  email: {
@@ -441,6 +449,7 @@ export default function freshdesk(rl) {
441
449
  },
442
450
  });
443
451
  rl.registerAction("contact.update", {
452
+ access: "write",
444
453
  description: "Update a contact",
445
454
  inputSchema: {
446
455
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -480,6 +489,7 @@ export default function freshdesk(rl) {
480
489
  },
481
490
  });
482
491
  rl.registerAction("contact.delete", {
492
+ access: "write",
483
493
  description: "Delete a contact",
484
494
  inputSchema: {
485
495
  contactId: { type: "string", required: true, description: "Contact ID" },
@@ -46,6 +46,7 @@ function unwrap(data) {
46
46
  }
47
47
  function registerCrud(rl, resource, apiPath, singularKey, opts) {
48
48
  rl.registerAction(`${resource}.create`, {
49
+ access: "write",
49
50
  description: `Create a ${resource}`,
50
51
  inputSchema: {
51
52
  ...(opts?.extraCreateFields ?? {}),
@@ -62,6 +63,7 @@ function registerCrud(rl, resource, apiPath, singularKey, opts) {
62
63
  },
63
64
  });
64
65
  rl.registerAction(`${resource}.get`, {
66
+ access: "read",
65
67
  description: `Get a ${resource} by ID`,
66
68
  inputSchema: {
67
69
  id: { type: "number", required: true, description: `${resource} ID` },
@@ -71,6 +73,7 @@ function registerCrud(rl, resource, apiPath, singularKey, opts) {
71
73
  },
72
74
  });
73
75
  rl.registerAction(`${resource}.list`, {
76
+ access: "read",
74
77
  description: `List ${resource}s`,
75
78
  inputSchema: {
76
79
  limit: { type: "number", required: false, description: "Max results" },
@@ -87,6 +90,7 @@ function registerCrud(rl, resource, apiPath, singularKey, opts) {
87
90
  },
88
91
  });
89
92
  rl.registerAction(`${resource}.update`, {
93
+ access: "write",
90
94
  description: `Update a ${resource}`,
91
95
  inputSchema: {
92
96
  id: { type: "number", required: true, description: `${resource} ID` },
@@ -103,6 +107,7 @@ function registerCrud(rl, resource, apiPath, singularKey, opts) {
103
107
  });
104
108
  if (!opts?.noDelete) {
105
109
  rl.registerAction(`${resource}.delete`, {
110
+ access: "write",
106
111
  description: `Delete a ${resource}`,
107
112
  inputSchema: {
108
113
  id: { type: "number", required: true, description: `${resource} ID` },
@@ -149,6 +154,7 @@ export default function freshservice(rl) {
149
154
  registerCrud(rl, "ticket", "/tickets", "ticket");
150
155
  // agentRole is read-only (get + list only)
151
156
  rl.registerAction("agentRole.get", {
157
+ access: "read",
152
158
  description: "Get an agent role by ID",
153
159
  inputSchema: {
154
160
  id: { type: "number", required: true, description: "Role ID" },
@@ -158,6 +164,7 @@ export default function freshservice(rl) {
158
164
  },
159
165
  });
160
166
  rl.registerAction("agentRole.list", {
167
+ access: "read",
161
168
  description: "List agent roles",
162
169
  inputSchema: {
163
170
  limit: { type: "number", required: false, description: "Max results" },