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
@@ -35,6 +35,7 @@ export default function twist(rl) {
35
35
  const t = (ctx) => ctx.connection.config.accessToken;
36
36
  // ── Channel ─────────────────────────────────────────
37
37
  rl.registerAction("channel.create", {
38
+ access: "write",
38
39
  description: "Create a channel",
39
40
  inputSchema: {
40
41
  workspaceId: { type: "number", required: true },
@@ -48,6 +49,7 @@ export default function twist(rl) {
48
49
  },
49
50
  });
50
51
  rl.registerAction("channel.get", {
52
+ access: "read",
51
53
  description: "Get a channel",
52
54
  inputSchema: { id: { type: "number", required: true } },
53
55
  async execute(input, ctx) {
@@ -57,6 +59,7 @@ export default function twist(rl) {
57
59
  },
58
60
  });
59
61
  rl.registerAction("channel.list", {
62
+ access: "read",
60
63
  description: "List channels in a workspace",
61
64
  inputSchema: {
62
65
  workspaceId: { type: "number", required: true },
@@ -71,6 +74,7 @@ export default function twist(rl) {
71
74
  },
72
75
  });
73
76
  rl.registerAction("channel.update", {
77
+ access: "write",
74
78
  description: "Update a channel",
75
79
  inputSchema: {
76
80
  id: { type: "number", required: true },
@@ -82,6 +86,7 @@ export default function twist(rl) {
82
86
  },
83
87
  });
84
88
  rl.registerAction("channel.delete", {
89
+ access: "write",
85
90
  description: "Delete a channel",
86
91
  inputSchema: { id: { type: "number", required: true } },
87
92
  async execute(input, ctx) {
@@ -91,6 +96,7 @@ export default function twist(rl) {
91
96
  },
92
97
  });
93
98
  rl.registerAction("channel.archive", {
99
+ access: "write",
94
100
  description: "Archive a channel",
95
101
  inputSchema: { id: { type: "number", required: true } },
96
102
  async execute(input, ctx) {
@@ -100,6 +106,7 @@ export default function twist(rl) {
100
106
  },
101
107
  });
102
108
  rl.registerAction("channel.unarchive", {
109
+ access: "write",
103
110
  description: "Unarchive a channel",
104
111
  inputSchema: { id: { type: "number", required: true } },
105
112
  async execute(input, ctx) {
@@ -110,6 +117,7 @@ export default function twist(rl) {
110
117
  });
111
118
  // ── Thread ──────────────────────────────────────────
112
119
  rl.registerAction("thread.create", {
120
+ access: "write",
113
121
  description: "Create a thread",
114
122
  inputSchema: {
115
123
  channelId: { type: "number", required: true },
@@ -126,6 +134,7 @@ export default function twist(rl) {
126
134
  },
127
135
  });
128
136
  rl.registerAction("thread.get", {
137
+ access: "read",
129
138
  description: "Get a thread",
130
139
  inputSchema: { id: { type: "number", required: true } },
131
140
  async execute(input, ctx) {
@@ -135,6 +144,7 @@ export default function twist(rl) {
135
144
  },
136
145
  });
137
146
  rl.registerAction("thread.list", {
147
+ access: "read",
138
148
  description: "List threads in a channel",
139
149
  inputSchema: {
140
150
  channelId: { type: "number", required: true },
@@ -149,6 +159,7 @@ export default function twist(rl) {
149
159
  },
150
160
  });
151
161
  rl.registerAction("thread.update", {
162
+ access: "write",
152
163
  description: "Update a thread",
153
164
  inputSchema: {
154
165
  id: { type: "number", required: true },
@@ -160,6 +171,7 @@ export default function twist(rl) {
160
171
  },
161
172
  });
162
173
  rl.registerAction("thread.delete", {
174
+ access: "write",
163
175
  description: "Delete a thread",
164
176
  inputSchema: { id: { type: "number", required: true } },
165
177
  async execute(input, ctx) {
@@ -170,6 +182,7 @@ export default function twist(rl) {
170
182
  });
171
183
  // ── Comment ─────────────────────────────────────────
172
184
  rl.registerAction("comment.create", {
185
+ access: "write",
173
186
  description: "Add a comment to a thread",
174
187
  inputSchema: {
175
188
  threadId: { type: "number", required: true },
@@ -184,6 +197,7 @@ export default function twist(rl) {
184
197
  },
185
198
  });
186
199
  rl.registerAction("comment.get", {
200
+ access: "read",
187
201
  description: "Get a comment",
188
202
  inputSchema: { id: { type: "number", required: true } },
189
203
  async execute(input, ctx) {
@@ -194,6 +208,7 @@ export default function twist(rl) {
194
208
  },
195
209
  });
196
210
  rl.registerAction("comment.list", {
211
+ access: "read",
197
212
  description: "List comments in a thread",
198
213
  inputSchema: {
199
214
  threadId: { type: "number", required: true },
@@ -208,6 +223,7 @@ export default function twist(rl) {
208
223
  },
209
224
  });
210
225
  rl.registerAction("comment.update", {
226
+ access: "write",
211
227
  description: "Update a comment",
212
228
  inputSchema: {
213
229
  id: { type: "number", required: true },
@@ -218,6 +234,7 @@ export default function twist(rl) {
218
234
  },
219
235
  });
220
236
  rl.registerAction("comment.delete", {
237
+ access: "write",
221
238
  description: "Delete a comment",
222
239
  inputSchema: { id: { type: "number", required: true } },
223
240
  async execute(input, ctx) {
@@ -228,6 +245,7 @@ export default function twist(rl) {
228
245
  });
229
246
  // ── Message Conversation ────────────────────────────
230
247
  rl.registerAction("messageConversation.create", {
248
+ access: "write",
231
249
  description: "Send a message in a conversation",
232
250
  inputSchema: {
233
251
  workspaceId: { type: "number", required: true },
@@ -244,6 +262,7 @@ export default function twist(rl) {
244
262
  },
245
263
  });
246
264
  rl.registerAction("messageConversation.get", {
265
+ access: "read",
247
266
  description: "Get a conversation message",
248
267
  inputSchema: { id: { type: "number", required: true } },
249
268
  async execute(input, ctx) {
@@ -253,6 +272,7 @@ export default function twist(rl) {
253
272
  },
254
273
  });
255
274
  rl.registerAction("messageConversation.list", {
275
+ access: "read",
256
276
  description: "List messages in a conversation",
257
277
  inputSchema: { conversationId: { type: "number", required: true } },
258
278
  async execute(input, ctx) {
@@ -262,6 +282,7 @@ export default function twist(rl) {
262
282
  },
263
283
  });
264
284
  rl.registerAction("messageConversation.update", {
285
+ access: "write",
265
286
  description: "Update a conversation message",
266
287
  inputSchema: {
267
288
  id: { type: "number", required: true },
@@ -272,6 +293,7 @@ export default function twist(rl) {
272
293
  },
273
294
  });
274
295
  rl.registerAction("messageConversation.delete", {
296
+ access: "write",
275
297
  description: "Delete a conversation message",
276
298
  inputSchema: { id: { type: "number", required: true } },
277
299
  async execute(input, ctx) {
@@ -54,6 +54,7 @@ export default function twitter(rl) {
54
54
  const t = (ctx) => ctx.connection.config.bearerToken;
55
55
  // ── Tweet ───────────────────────────────────────────
56
56
  rl.registerAction("tweet.create", {
57
+ access: "write",
57
58
  description: "Create a tweet (post, quote, or reply)",
58
59
  inputSchema: {
59
60
  text: { type: "string", required: true },
@@ -85,6 +86,7 @@ export default function twitter(rl) {
85
86
  },
86
87
  });
87
88
  rl.registerAction("tweet.delete", {
89
+ access: "write",
88
90
  description: "Delete a tweet",
89
91
  inputSchema: { id: { type: "string", required: true } },
90
92
  async execute(input, ctx) {
@@ -92,6 +94,7 @@ export default function twitter(rl) {
92
94
  },
93
95
  });
94
96
  rl.registerAction("tweet.like", {
97
+ access: "write",
95
98
  description: "Like a tweet (requires user context)",
96
99
  inputSchema: { tweetId: { type: "string", required: true } },
97
100
  async execute(input, ctx) {
@@ -102,6 +105,7 @@ export default function twitter(rl) {
102
105
  },
103
106
  });
104
107
  rl.registerAction("tweet.retweet", {
108
+ access: "write",
105
109
  description: "Retweet a tweet (requires user context)",
106
110
  inputSchema: { tweetId: { type: "string", required: true } },
107
111
  async execute(input, ctx) {
@@ -112,6 +116,7 @@ export default function twitter(rl) {
112
116
  },
113
117
  });
114
118
  rl.registerAction("tweet.search", {
119
+ access: "read",
115
120
  description: "Search recent tweets (last 7 days)",
116
121
  inputSchema: {
117
122
  query: { type: "string", required: true },
@@ -157,6 +162,7 @@ export default function twitter(rl) {
157
162
  });
158
163
  // ── User ────────────────────────────────────────────
159
164
  rl.registerAction("user.get", {
165
+ access: "read",
160
166
  description: "Get a user by username or ID",
161
167
  inputSchema: {
162
168
  username: {
@@ -186,6 +192,7 @@ export default function twitter(rl) {
186
192
  });
187
193
  // ── List ────────────────────────────────────────────
188
194
  rl.registerAction("list.addMember", {
195
+ access: "write",
189
196
  description: "Add a user to a list",
190
197
  inputSchema: {
191
198
  listId: { type: "string", required: true },
@@ -200,6 +207,7 @@ export default function twitter(rl) {
200
207
  });
201
208
  // ── Direct Message ──────────────────────────────────
202
209
  rl.registerAction("dm.create", {
210
+ access: "write",
203
211
  description: "Send a direct message to a user",
204
212
  inputSchema: {
205
213
  userId: {
@@ -52,6 +52,7 @@ export default function unleashedSoftware(rl) {
52
52
  },
53
53
  });
54
54
  rl.registerAction("salesOrder.list", {
55
+ access: "read",
55
56
  description: "List sales orders",
56
57
  inputSchema: {
57
58
  limit: { type: "number", required: false },
@@ -79,6 +80,7 @@ export default function unleashedSoftware(rl) {
79
80
  },
80
81
  });
81
82
  rl.registerAction("stockOnHand.list", {
83
+ access: "read",
82
84
  description: "List stock on hand",
83
85
  inputSchema: {
84
86
  limit: { type: "number", required: false },
@@ -99,6 +101,7 @@ export default function unleashedSoftware(rl) {
99
101
  },
100
102
  });
101
103
  rl.registerAction("stockOnHand.get", {
104
+ access: "read",
102
105
  description: "Get stock on hand for a product",
103
106
  inputSchema: { productId: { type: "string", required: true } },
104
107
  async execute(input, ctx) {
@@ -26,6 +26,7 @@ export default function uplead(rl) {
26
26
  });
27
27
  const key = (ctx) => ctx.connection.config.apiKey;
28
28
  rl.registerAction("person.enrich", {
29
+ access: "write",
29
30
  description: "Enrich a person by email or name+domain",
30
31
  inputSchema: {
31
32
  email: { type: "string", required: false },
@@ -48,6 +49,7 @@ export default function uplead(rl) {
48
49
  },
49
50
  });
50
51
  rl.registerAction("company.enrich", {
52
+ access: "write",
51
53
  description: "Enrich a company by domain or name",
52
54
  inputSchema: {
53
55
  domain: { type: "string", required: false },
@@ -16,6 +16,7 @@ export default function uproc(rl) {
16
16
  },
17
17
  });
18
18
  rl.registerAction("process.run", {
19
+ access: "write",
19
20
  description: "Run a uProc data processor tool",
20
21
  inputSchema: {
21
22
  processor: {
@@ -32,6 +32,7 @@ export default function uptimerobot(rl) {
32
32
  const key = (ctx) => ctx.connection.config.apiKey;
33
33
  // ── Account ─────────────────────────────────────────
34
34
  rl.registerAction("account.get", {
35
+ access: "read",
35
36
  description: "Get account details",
36
37
  inputSchema: {},
37
38
  async execute(_input, ctx) {
@@ -41,6 +42,7 @@ export default function uptimerobot(rl) {
41
42
  });
42
43
  // ── Monitor ─────────────────────────────────────────
43
44
  rl.registerAction("monitor.create", {
45
+ access: "write",
44
46
  description: "Create a monitor",
45
47
  inputSchema: {
46
48
  friendlyName: { type: "string", required: true },
@@ -62,6 +64,7 @@ export default function uptimerobot(rl) {
62
64
  },
63
65
  });
64
66
  rl.registerAction("monitor.get", {
67
+ access: "read",
65
68
  description: "Get a monitor by ID",
66
69
  inputSchema: { id: { type: "string", required: true } },
67
70
  async execute(input, ctx) {
@@ -72,6 +75,7 @@ export default function uptimerobot(rl) {
72
75
  },
73
76
  });
74
77
  rl.registerAction("monitor.list", {
78
+ access: "read",
75
79
  description: "List monitors",
76
80
  inputSchema: { limit: { type: "number", required: false } },
77
81
  async execute(input, ctx) {
@@ -84,6 +88,7 @@ export default function uptimerobot(rl) {
84
88
  },
85
89
  });
86
90
  rl.registerAction("monitor.update", {
91
+ access: "write",
87
92
  description: "Update a monitor",
88
93
  inputSchema: {
89
94
  id: { type: "string", required: true },
@@ -105,6 +110,7 @@ export default function uptimerobot(rl) {
105
110
  },
106
111
  });
107
112
  rl.registerAction("monitor.delete", {
113
+ access: "write",
108
114
  description: "Delete a monitor",
109
115
  inputSchema: { id: { type: "string", required: true } },
110
116
  async execute(input, ctx) {
@@ -115,6 +121,7 @@ export default function uptimerobot(rl) {
115
121
  },
116
122
  });
117
123
  rl.registerAction("monitor.reset", {
124
+ access: "write",
118
125
  description: "Reset a monitor's stats",
119
126
  inputSchema: { id: { type: "string", required: true } },
120
127
  async execute(input, ctx) {
@@ -126,6 +133,7 @@ export default function uptimerobot(rl) {
126
133
  });
127
134
  // ── Alert Contact ───────────────────────────────────
128
135
  rl.registerAction("alertContact.create", {
136
+ access: "write",
129
137
  description: "Create an alert contact",
130
138
  inputSchema: {
131
139
  friendlyName: { type: "string", required: true },
@@ -147,6 +155,7 @@ export default function uptimerobot(rl) {
147
155
  },
148
156
  });
149
157
  rl.registerAction("alertContact.get", {
158
+ access: "read",
150
159
  description: "Get an alert contact by ID",
151
160
  inputSchema: { id: { type: "string", required: true } },
152
161
  async execute(input, ctx) {
@@ -157,6 +166,7 @@ export default function uptimerobot(rl) {
157
166
  },
158
167
  });
159
168
  rl.registerAction("alertContact.list", {
169
+ access: "read",
160
170
  description: "List alert contacts",
161
171
  inputSchema: { limit: { type: "number", required: false } },
162
172
  async execute(input, ctx) {
@@ -168,6 +178,7 @@ export default function uptimerobot(rl) {
168
178
  },
169
179
  });
170
180
  rl.registerAction("alertContact.update", {
181
+ access: "write",
171
182
  description: "Update an alert contact",
172
183
  inputSchema: {
173
184
  id: { type: "string", required: true },
@@ -186,6 +197,7 @@ export default function uptimerobot(rl) {
186
197
  },
187
198
  });
188
199
  rl.registerAction("alertContact.delete", {
200
+ access: "write",
189
201
  description: "Delete an alert contact",
190
202
  inputSchema: { id: { type: "string", required: true } },
191
203
  async execute(input, ctx) {
@@ -197,6 +209,7 @@ export default function uptimerobot(rl) {
197
209
  });
198
210
  // ── Maintenance Window ──────────────────────────────
199
211
  rl.registerAction("maintenanceWindow.create", {
212
+ access: "write",
200
213
  description: "Create a maintenance window",
201
214
  inputSchema: {
202
215
  friendlyName: { type: "string", required: true },
@@ -236,6 +249,7 @@ export default function uptimerobot(rl) {
236
249
  },
237
250
  });
238
251
  rl.registerAction("maintenanceWindow.get", {
252
+ access: "read",
239
253
  description: "Get a maintenance window",
240
254
  inputSchema: { id: { type: "string", required: true } },
241
255
  async execute(input, ctx) {
@@ -246,6 +260,7 @@ export default function uptimerobot(rl) {
246
260
  },
247
261
  });
248
262
  rl.registerAction("maintenanceWindow.list", {
263
+ access: "read",
249
264
  description: "List maintenance windows",
250
265
  inputSchema: { limit: { type: "number", required: false } },
251
266
  async execute(input, ctx) {
@@ -257,6 +272,7 @@ export default function uptimerobot(rl) {
257
272
  },
258
273
  });
259
274
  rl.registerAction("maintenanceWindow.update", {
275
+ access: "write",
260
276
  description: "Update a maintenance window",
261
277
  inputSchema: {
262
278
  id: { type: "string", required: true },
@@ -278,6 +294,7 @@ export default function uptimerobot(rl) {
278
294
  },
279
295
  });
280
296
  rl.registerAction("maintenanceWindow.delete", {
297
+ access: "write",
281
298
  description: "Delete a maintenance window",
282
299
  inputSchema: { id: { type: "string", required: true } },
283
300
  async execute(input, ctx) {
@@ -288,6 +305,7 @@ export default function uptimerobot(rl) {
288
305
  });
289
306
  // ── Public Status Page ──────────────────────────────
290
307
  rl.registerAction("publicStatusPage.create", {
308
+ access: "write",
291
309
  description: "Create a public status page",
292
310
  inputSchema: {
293
311
  friendlyName: { type: "string", required: true },
@@ -307,6 +325,7 @@ export default function uptimerobot(rl) {
307
325
  },
308
326
  });
309
327
  rl.registerAction("publicStatusPage.get", {
328
+ access: "read",
310
329
  description: "Get a public status page",
311
330
  inputSchema: { id: { type: "string", required: true } },
312
331
  async execute(input, ctx) {
@@ -317,6 +336,7 @@ export default function uptimerobot(rl) {
317
336
  },
318
337
  });
319
338
  rl.registerAction("publicStatusPage.list", {
339
+ access: "read",
320
340
  description: "List public status pages",
321
341
  inputSchema: { limit: { type: "number", required: false } },
322
342
  async execute(input, ctx) {
@@ -328,6 +348,7 @@ export default function uptimerobot(rl) {
328
348
  },
329
349
  });
330
350
  rl.registerAction("publicStatusPage.update", {
351
+ access: "write",
331
352
  description: "Update a public status page",
332
353
  inputSchema: {
333
354
  id: { type: "string", required: true },
@@ -346,6 +367,7 @@ export default function uptimerobot(rl) {
346
367
  },
347
368
  });
348
369
  rl.registerAction("publicStatusPage.delete", {
370
+ access: "write",
349
371
  description: "Delete a public status page",
350
372
  inputSchema: { id: { type: "string", required: true } },
351
373
  async execute(input, ctx) {
@@ -31,6 +31,7 @@ export default function urlscanio(rl) {
31
31
  });
32
32
  const key = (ctx) => ctx.connection.config.apiKey;
33
33
  rl.registerAction("scan.perform", {
34
+ access: "write",
34
35
  description: "Submit a URL for scanning",
35
36
  inputSchema: {
36
37
  url: { type: "string", required: true },
@@ -59,6 +60,7 @@ export default function urlscanio(rl) {
59
60
  },
60
61
  });
61
62
  rl.registerAction("scan.get", {
63
+ access: "read",
62
64
  description: "Get scan results by ID",
63
65
  inputSchema: { scanId: { type: "string", required: true } },
64
66
  async execute(input, ctx) {
@@ -66,6 +68,7 @@ export default function urlscanio(rl) {
66
68
  },
67
69
  });
68
70
  rl.registerAction("scan.search", {
71
+ access: "read",
69
72
  description: "Search scan results",
70
73
  inputSchema: {
71
74
  query: { type: "string", required: false, description: "Search query" },
@@ -2,6 +2,7 @@ import * as t from "typebox";
2
2
  import { TEAM_INPUT_SCHEMA, api } from "./shared.js";
3
3
  export function registerAccountActions(rl) {
4
4
  rl.registerAction("whoami", {
5
+ access: "read",
5
6
  description: "Validate the Vercel token and return the authenticated user/account context.",
6
7
  inputSchema: t.Object(TEAM_INPUT_SCHEMA),
7
8
  async execute(input, ctx) {
@@ -3,6 +3,7 @@ import { LIST_INPUT_SCHEMA, TEAM_INPUT_SCHEMA, api, bindGetAction } from "./shar
3
3
  export function registerDeploymentActions(rl) {
4
4
  const getAction = bindGetAction(rl);
5
5
  rl.registerAction("deployment.list", {
6
+ access: "read",
6
7
  description: "List Vercel deployments. Filter by project, state, target, user, or time window.",
7
8
  inputSchema: t.Object({
8
9
  ...LIST_INPUT_SCHEMA,
@@ -19,6 +20,7 @@ export function registerDeploymentActions(rl) {
19
20
  });
20
21
  getAction("deployment.get", "Get a Vercel deployment by ID or URL.", (id) => `/v13/deployments/${encodeURIComponent(id)}`);
21
22
  rl.registerAction("deployment.logs", {
23
+ access: "read",
22
24
  description: "Get build/deployment logs/events for a deployment. Use builds=1 for build logs and limit/since/until to avoid huge responses.",
23
25
  inputSchema: t.Object({
24
26
  ...TEAM_INPUT_SCHEMA,
@@ -39,6 +41,7 @@ export function registerDeploymentActions(rl) {
39
41
  },
40
42
  });
41
43
  rl.registerAction("deployment.runtimeLogs", {
44
+ access: "read",
42
45
  description: "Get runtime logs for a deployment. Requires projectId and deploymentId; use limit/since/until to keep responses bounded.",
43
46
  inputSchema: t.Object({
44
47
  ...TEAM_INPUT_SCHEMA,
@@ -54,6 +57,7 @@ export function registerDeploymentActions(rl) {
54
57
  },
55
58
  });
56
59
  rl.registerAction("deployment.cancel", {
60
+ access: "write",
57
61
  description: "Cancel a queued or building Vercel deployment.",
58
62
  inputSchema: t.Object({
59
63
  ...TEAM_INPUT_SCHEMA,
@@ -65,6 +69,7 @@ export function registerDeploymentActions(rl) {
65
69
  },
66
70
  });
67
71
  rl.registerAction("deployment.promote", {
72
+ access: "write",
68
73
  description: "Promote an existing deployment to production for a project, where supported by Vercel.",
69
74
  inputSchema: t.Object({
70
75
  ...TEAM_INPUT_SCHEMA,
@@ -19,6 +19,7 @@ function assertCreateEnvInput(body) {
19
19
  }
20
20
  export function registerEnvActions(rl) {
21
21
  rl.registerAction("env.list", {
22
+ access: "read",
22
23
  description: "List environment variables for a Vercel project.",
23
24
  inputSchema: t.Object({
24
25
  ...TEAM_INPUT_SCHEMA,
@@ -34,6 +35,7 @@ export function registerEnvActions(rl) {
34
35
  },
35
36
  });
36
37
  rl.registerAction("env.get", {
38
+ access: "read",
37
39
  description: "Get one environment variable by ID for a Vercel project, including decrypted value when permitted.",
38
40
  inputSchema: t.Object({
39
41
  ...TEAM_INPUT_SCHEMA,
@@ -46,6 +48,7 @@ export function registerEnvActions(rl) {
46
48
  },
47
49
  });
48
50
  rl.registerAction("env.set", {
51
+ access: "write",
49
52
  description: "Create or update a Vercel project environment variable. Without id, creates a variable and requires key, value, type, and target/customEnvironmentIds. With id, updates that exact variable. Be explicit about target to avoid changing the wrong environment.",
50
53
  inputSchema: t.Object({
51
54
  ...TEAM_INPUT_SCHEMA,
@@ -83,6 +86,7 @@ export function registerEnvActions(rl) {
83
86
  },
84
87
  });
85
88
  rl.registerAction("env.delete", {
89
+ access: "write",
86
90
  description: "Delete an environment variable from a Vercel project. This removes the variable for the specified project/environment scope.",
87
91
  inputSchema: t.Object({
88
92
  ...TEAM_INPUT_SCHEMA,
@@ -3,6 +3,7 @@ import { LIST_INPUT_SCHEMA, TEAM_INPUT_SCHEMA, api, bindGetAction } from "./shar
3
3
  export function registerProjectActions(rl) {
4
4
  const getAction = bindGetAction(rl);
5
5
  rl.registerAction("project.list", {
6
+ access: "read",
6
7
  description: "List Vercel projects visible to the token.",
7
8
  inputSchema: t.Object({
8
9
  ...LIST_INPUT_SCHEMA,
@@ -15,6 +16,7 @@ export function registerProjectActions(rl) {
15
16
  });
16
17
  getAction("project.get", "Get a Vercel project by ID or name.", (id) => `/v9/projects/${encodeURIComponent(id)}`);
17
18
  rl.registerAction("project.domains", {
19
+ access: "read",
18
20
  description: "List domains configured for a Vercel project.",
19
21
  inputSchema: t.Object({
20
22
  ...TEAM_INPUT_SCHEMA,
@@ -59,6 +59,7 @@ export const LIST_INPUT_SCHEMA = {
59
59
  export function bindGetAction(rl) {
60
60
  return (name, description, pathForId) => {
61
61
  rl.registerAction(name, {
62
+ access: "read",
62
63
  description,
63
64
  inputSchema: t.Object({
64
65
  id: t.String({ description: "Resource ID, name, or URL" }),
@@ -28,6 +28,7 @@ export default function vero(rl) {
28
28
  });
29
29
  const key = (ctx) => ctx.connection.config.authToken;
30
30
  rl.registerAction("user.create", {
31
+ access: "write",
31
32
  description: "Create/identify a user",
32
33
  inputSchema: {
33
34
  id: { type: "string", required: true },
@@ -49,6 +50,7 @@ export default function vero(rl) {
49
50
  },
50
51
  });
51
52
  rl.registerAction("user.alias", {
53
+ access: "write",
52
54
  description: "Alias (re-identify) a user",
53
55
  inputSchema: {
54
56
  id: { type: "string", required: true },
@@ -64,6 +66,7 @@ export default function vero(rl) {
64
66
  });
65
67
  for (const op of ["unsubscribe", "resubscribe", "delete"]) {
66
68
  rl.registerAction(`user.${op}`, {
69
+ access: "write",
67
70
  description: `${op.charAt(0).toUpperCase() + op.slice(1)} a user`,
68
71
  inputSchema: { id: { type: "string", required: true } },
69
72
  async execute(input, ctx) {
@@ -74,6 +77,7 @@ export default function vero(rl) {
74
77
  });
75
78
  }
76
79
  rl.registerAction("user.addTags", {
80
+ access: "write",
77
81
  description: "Add tags to a user",
78
82
  inputSchema: {
79
83
  id: { type: "string", required: true },
@@ -92,6 +96,7 @@ export default function vero(rl) {
92
96
  },
93
97
  });
94
98
  rl.registerAction("user.removeTags", {
99
+ access: "write",
95
100
  description: "Remove tags from a user",
96
101
  inputSchema: {
97
102
  id: { type: "string", required: true },
@@ -110,6 +115,7 @@ export default function vero(rl) {
110
115
  },
111
116
  });
112
117
  rl.registerAction("event.track", {
118
+ access: "write",
113
119
  description: "Track an event",
114
120
  inputSchema: {
115
121
  id: { type: "string", required: true },
@@ -16,6 +16,7 @@ export default function vonage(rl) {
16
16
  },
17
17
  });
18
18
  rl.registerAction("sms.send", {
19
+ access: "write",
19
20
  description: "Send an SMS",
20
21
  inputSchema: {
21
22
  from: {